]> git.sesse.net Git - plocate/blobdiff - serializer.cpp
Release plocate 1.1.22.
[plocate] / serializer.cpp
index d2f126c0aaa89fe3ee42833fa1b35894553ac75f..356094fde659f86715a730d76cf5801135782af0 100644 (file)
@@ -32,7 +32,7 @@ void print_possibly_escaped(const string &str)
        if (print_nul) {
                printf("%s%c", str.c_str(), 0);
                return;
-       } else if (!stdout_is_tty) {
+       } else if (literal_printing || !stdout_is_tty) {
                printf("%s\n", str.c_str());
                return;
        }
@@ -56,6 +56,9 @@ void print_possibly_escaped(const string &str)
                        break;  // EOF.
                } else if (pwc < 32 || pwc == '\'' || pwc == '"' || pwc == '\\') {
                        all_safe = false;
+               } else if (pwc == '`') {
+                       // A rather odd case; ls quotes this but does not escape it.
+                       all_safe = false;
                } else {
                        ptr += ret;
                        len -= ret;
@@ -88,7 +91,7 @@ void print_possibly_escaped(const string &str)
                } else if (ret == 0) {
                        break;  // EOF.
                }
-               if (*ptr < 32 || *ptr == '\'' || *ptr == '"' || *ptr == '\\') {
+               if ((unsigned char)*ptr < 32 || *ptr == '\'' || *ptr == '"' || *ptr == '\\') {
                        if (!in_escaped_mode) {
                                printf("'$'");
                                in_escaped_mode = true;