The branch main has been updated by jamie:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=3d11af1e595b5a3646be370e33c4aa850dc62bb0

commit 3d11af1e595b5a3646be370e33c4aa850dc62bb0
Author:     Jamie Gritton <ja...@freebsd.org>
AuthorDate: 2025-02-13 15:48:18 +0000
Commit:     Jamie Gritton <ja...@freebsd.org>
CommitDate: 2025-02-13 15:48:18 +0000

    jls: fix the -q option to put quotes around all whitespace
    PR:             283414
---
 usr.sbin/jls/jls.c | 21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

diff --git a/usr.sbin/jls/jls.c b/usr.sbin/jls/jls.c
index e172c4698f57..2d173a29ac40 100644
--- a/usr.sbin/jls/jls.c
+++ b/usr.sbin/jls/jls.c
@@ -37,6 +37,7 @@
 #include <arpa/inet.h>
 #include <netinet/in.h>
 
+#include <ctype.h>
 #include <errno.h>
 #include <jail.h>
 #include <limits.h>
@@ -515,13 +516,21 @@ quoted_print(int pflags, char *name, char *value)
        }
 
        /*
-        * The value will be surrounded by quotes if it contains spaces
-        * or quotes.
+        * The value will be surrounded by quotes if it contains
+        * whitespace or quotes.
         */
-       qc = strchr(p, '\'') ? '"'
-               : strchr(p, '"') ? '\''
-               : strchr(p, ' ') || strchr(p, '\t') ? '"'
-               : 0;
+       if (strchr(p, '\''))
+               qc = '"';
+       else if (strchr(p, '"'))
+               qc = '\'';
+       else {
+               qc = 0;
+               for (; *p; ++p)
+                       if (isspace(*p)) {
+                               qc = '"';
+                               break;
+                       }
+       }
 
        if (qc && pflags & PRINT_QUOTED)
                xo_emit("{P:/%c}", qc);

Reply via email to