aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDF_String.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2022-02-08 15:18:08 +0100
committerJay Berkenbilt <ejb@ql.org>2022-02-08 17:51:15 +0100
commitcb769c62e55599e9f980001830bc61d9fcaa64a9 (patch)
tree0bf980c385a61cbc8720cf990762ffc1200f9d6a /libqpdf/QPDF_String.cc
parent716381f65a2b2dc72f8da2426ba71aeab02c507f (diff)
downloadqpdf-cb769c62e55599e9f980001830bc61d9fcaa64a9.tar.zst
WHITESPACE ONLY -- expand tabs in source code
This comment expands all tabs using an 8-character tab-width. You should ignore this commit when using git blame or use git blame -w. In the early days, I used to use tabs where possible for indentation, since emacs did this automatically. In recent years, I have switched to only using spaces, which means qpdf source code has been a mixture of spaces and tabs. I have avoided cleaning this up because of not wanting gratuitous whitespaces change to cloud the output of git blame, but I changed my mind after discussing with users who view qpdf source code in editors/IDEs that have other tab widths by default and in light of the fact that I am planning to start applying automatic code formatting soon.
Diffstat (limited to 'libqpdf/QPDF_String.cc')
-rw-r--r--libqpdf/QPDF_String.cc174
1 files changed, 87 insertions, 87 deletions
diff --git a/libqpdf/QPDF_String.cc b/libqpdf/QPDF_String.cc
index 8f10b977..0fcec2d3 100644
--- a/libqpdf/QPDF_String.cc
+++ b/libqpdf/QPDF_String.cc
@@ -70,102 +70,102 @@ QPDF_String::unparse(bool force_binary)
bool use_hexstring = force_binary;
if (! use_hexstring)
{
- unsigned int nonprintable = 0;
- int consecutive_printable = 0;
- for (unsigned int i = 0; i < this->val.length(); ++i)
- {
- char ch = this->val.at(i);
- // Note: do not use locale to determine printability. The
- // PDF specification accepts arbitrary binary data. Some
- // locales imply multibyte characters. We'll consider
- // something printable if it is printable in 7-bit ASCII.
- // We'll code this manually rather than being rude and
- // setting locale.
- if ((ch == 0) || (! (is_ascii_printable(ch) ||
- strchr("\n\r\t\b\f", ch))))
- {
- ++nonprintable;
- consecutive_printable = 0;
- }
- else
- {
- if (++consecutive_printable > 5)
- {
- // If there are more than 5 consecutive printable
- // characters, I want to see them as such.
- nonprintable = 0;
- break;
- }
- }
- }
-
- // Use hex notation if more than 20% of the characters are not
- // printable in plain ASCII.
- if (5 * nonprintable > val.length())
- {
- use_hexstring = true;
- }
+ unsigned int nonprintable = 0;
+ int consecutive_printable = 0;
+ for (unsigned int i = 0; i < this->val.length(); ++i)
+ {
+ char ch = this->val.at(i);
+ // Note: do not use locale to determine printability. The
+ // PDF specification accepts arbitrary binary data. Some
+ // locales imply multibyte characters. We'll consider
+ // something printable if it is printable in 7-bit ASCII.
+ // We'll code this manually rather than being rude and
+ // setting locale.
+ if ((ch == 0) || (! (is_ascii_printable(ch) ||
+ strchr("\n\r\t\b\f", ch))))
+ {
+ ++nonprintable;
+ consecutive_printable = 0;
+ }
+ else
+ {
+ if (++consecutive_printable > 5)
+ {
+ // If there are more than 5 consecutive printable
+ // characters, I want to see them as such.
+ nonprintable = 0;
+ break;
+ }
+ }
+ }
+
+ // Use hex notation if more than 20% of the characters are not
+ // printable in plain ASCII.
+ if (5 * nonprintable > val.length())
+ {
+ use_hexstring = true;
+ }
}
std::string result;
if (use_hexstring)
{
- result += "<" + QUtil::hex_encode(this->val) + ">";
+ result += "<" + QUtil::hex_encode(this->val) + ">";
}
else
{
- result += "(";
- for (unsigned int i = 0; i < this->val.length(); ++i)
- {
- char ch = this->val.at(i);
- switch (ch)
- {
- case '\n':
- result += "\\n";
- break;
-
- case '\r':
- result += "\\r";
- break;
-
- case '\t':
- result += "\\t";
- break;
-
- case '\b':
- result += "\\b";
- break;
-
- case '\f':
- result += "\\f";
- break;
-
- case '(':
- result += "\\(";
- break;
-
- case ')':
- result += "\\)";
- break;
-
- case '\\':
- result += "\\\\";
- break;
-
- default:
- if (is_iso_latin1_printable(ch))
- {
- result += this->val.at(i);
- }
- else
- {
- result += "\\" + QUtil::int_to_string_base(
+ result += "(";
+ for (unsigned int i = 0; i < this->val.length(); ++i)
+ {
+ char ch = this->val.at(i);
+ switch (ch)
+ {
+ case '\n':
+ result += "\\n";
+ break;
+
+ case '\r':
+ result += "\\r";
+ break;
+
+ case '\t':
+ result += "\\t";
+ break;
+
+ case '\b':
+ result += "\\b";
+ break;
+
+ case '\f':
+ result += "\\f";
+ break;
+
+ case '(':
+ result += "\\(";
+ break;
+
+ case ')':
+ result += "\\)";
+ break;
+
+ case '\\':
+ result += "\\\\";
+ break;
+
+ default:
+ if (is_iso_latin1_printable(ch))
+ {
+ result += this->val.at(i);
+ }
+ else
+ {
+ result += "\\" + QUtil::int_to_string_base(
static_cast<int>(static_cast<unsigned char>(ch)),
8, 3);
- }
- break;
- }
- }
- result += ")";
+ }
+ break;
+ }
+ }
+ result += ")";
}
return result;