Author: pstef
Date: Wed Aug 15 18:19:45 2018
New Revision: 337862
URL: https://svnweb.freebsd.org/changeset/base/337862

Log:
  indent(1): bug fix after r336333
  
  The bug was that isalnum() is not exactly equivalent to previous code which
  also allowed characters "$" and "_", so check for those explicitly.
  
  Reported by:  tuexen@

Modified:
  head/usr.bin/indent/lexi.c
  head/usr.bin/indent/tests/float.0
  head/usr.bin/indent/tests/float.0.stdout

Modified: head/usr.bin/indent/lexi.c
==============================================================================
--- head/usr.bin/indent/lexi.c  Wed Aug 15 17:41:19 2018        (r337861)
+++ head/usr.bin/indent/lexi.c  Wed Aug 15 18:19:45 2018        (r337862)
@@ -193,6 +193,7 @@ lexi(struct parser_state *state)
 
     /* Scan an alphanumeric token */
     if (isalnum((unsigned char)*buf_ptr) ||
+       *buf_ptr == '_' || *buf_ptr == '$' ||
        (buf_ptr[0] == '.' && isdigit((unsigned char)buf_ptr[1]))) {
        /*
         * we have a character or number
@@ -222,7 +223,7 @@ lexi(struct parser_state *state)
        else
            while (isalnum((unsigned char)*buf_ptr) ||
                *buf_ptr == BACKSLASH ||
-               *buf_ptr == '_') {
+               *buf_ptr == '_' || *buf_ptr == '$') {
                /* fill_buffer() terminates buffer with newline */
                if (*buf_ptr == BACKSLASH) {
                    if (*(buf_ptr + 1) == '\n') {

Modified: head/usr.bin/indent/tests/float.0
==============================================================================
--- head/usr.bin/indent/tests/float.0   Wed Aug 15 17:41:19 2018        
(r337861)
+++ head/usr.bin/indent/tests/float.0   Wed Aug 15 18:19:45 2018        
(r337862)
@@ -4,4 +4,5 @@ void t(void) {
        double y[] = {0x1P+9F, 0.3, .1, 1.2f, 0xa.p01f, 3.14f, 2.L};
        int z = 0b0101;
        DO_NOTHING;
+       x._y = 5;
 }

Modified: head/usr.bin/indent/tests/float.0.stdout
==============================================================================
--- head/usr.bin/indent/tests/float.0.stdout    Wed Aug 15 17:41:19 2018        
(r337861)
+++ head/usr.bin/indent/tests/float.0.stdout    Wed Aug 15 18:19:45 2018        
(r337862)
@@ -6,4 +6,5 @@ t(void)
        double          y[] = {0x1P+9F, 0.3, .1, 1.2f, 0xa.p01f, 3.14f, 2.L};
        int             z = 0b0101;
        DO_NOTHING;
+       x._y = 5;
 }
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to