]> git.ipfire.org Git - thirdparty/gettext.git/commitdiff
xgettext: PHP: Disallow character \x7f in identifiers.
authorBruno Haible <bruno@clisp.org>
Wed, 18 Sep 2024 18:26:42 +0000 (20:26 +0200)
committerBruno Haible <bruno@clisp.org>
Wed, 18 Sep 2024 18:26:42 +0000 (20:26 +0200)
* gettext-tools/src/x-php.c (phase4_get): Don't allow character \x7f in symbol
tokens.

gettext-tools/src/x-php.c

index b4f53a25e1fd99a02b69fd9779662f08b5ff085e..dd8a9f07b8b325bff0c4e47543a141f3939742cc 100644 (file)
 
 
 /* The PHP syntax is defined in phpdoc/manual/langref.html.
-   See also php-4.1.0/Zend/zend_language_scanner.l
-   and      php-4.1.0/Zend/zend_language_parser.y.
+   See also php-8.1.0/Zend/zend_language_scanner.l
+   and      php-8.1.0/Zend/zend_language_parser.y.
    Note that variable and function names can contain bytes in the range
-   0x7f..0xff; see
-     http://www.php.net/manual/en/language.variables.php
-     http://www.php.net/manual/en/language.functions.php  */
+   0x80..0xff; see
+     https://www.php.net/manual/en/language.variables.basics.php  */
 
 
 /* ====================== Keyword set customization.  ====================== */
@@ -825,25 +824,25 @@ phase4_get (token_ty *tp)
         case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n':
         case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u':
         case 'v': case 'w': case 'x': case 'y': case 'z':
-        case 127: case 128: case 129: case 130: case 131: case 132: case 133:
-        case 134: case 135: case 136: case 137: case 138: case 139: case 140:
-        case 141: case 142: case 143: case 144: case 145: case 146: case 147:
-        case 148: case 149: case 150: case 151: case 152: case 153: case 154:
-        case 155: case 156: case 157: case 158: case 159: case 160: case 161:
-        case 162: case 163: case 164: case 165: case 166: case 167: case 168:
-        case 169: case 170: case 171: case 172: case 173: case 174: case 175:
-        case 176: case 177: case 178: case 179: case 180: case 181: case 182:
-        case 183: case 184: case 185: case 186: case 187: case 188: case 189:
-        case 190: case 191: case 192: case 193: case 194: case 195: case 196:
-        case 197: case 198: case 199: case 200: case 201: case 202: case 203:
-        case 204: case 205: case 206: case 207: case 208: case 209: case 210:
-        case 211: case 212: case 213: case 214: case 215: case 216: case 217:
-        case 218: case 219: case 220: case 221: case 222: case 223: case 224:
-        case 225: case 226: case 227: case 228: case 229: case 230: case 231:
-        case 232: case 233: case 234: case 235: case 236: case 237: case 238:
-        case 239: case 240: case 241: case 242: case 243: case 244: case 245:
-        case 246: case 247: case 248: case 249: case 250: case 251: case 252:
-        case 253: case 254: case 255:
+        case 128: case 129: case 130: case 131: case 132: case 133: case 134:
+        case 135: case 136: case 137: case 138: case 139: case 140: case 141:
+        case 142: case 143: case 144: case 145: case 146: case 147: case 148:
+        case 149: case 150: case 151: case 152: case 153: case 154: case 155:
+        case 156: case 157: case 158: case 159: case 160: case 161: case 162:
+        case 163: case 164: case 165: case 166: case 167: case 168: case 169:
+        case 170: case 171: case 172: case 173: case 174: case 175: case 176:
+        case 177: case 178: case 179: case 180: case 181: case 182: case 183:
+        case 184: case 185: case 186: case 187: case 188: case 189: case 190:
+        case 191: case 192: case 193: case 194: case 195: case 196: case 197:
+        case 198: case 199: case 200: case 201: case 202: case 203: case 204:
+        case 205: case 206: case 207: case 208: case 209: case 210: case 211:
+        case 212: case 213: case 214: case 215: case 216: case 217: case 218:
+        case 219: case 220: case 221: case 222: case 223: case 224: case 225:
+        case 226: case 227: case 228: case 229: case 230: case 231: case 232:
+        case 233: case 234: case 235: case 236: case 237: case 238: case 239:
+        case 240: case 241: case 242: case 243: case 244: case 245: case 246:
+        case 247: case 248: case 249: case 250: case 251: case 252: case 253:
+        case 254: case 255:
           bufpos = 0;
           for (;;)
             {
@@ -869,28 +868,28 @@ phase4_get (token_ty *tp)
                 case 'y': case 'z':
                 case '0': case '1': case '2': case '3': case '4':
                 case '5': case '6': case '7': case '8': case '9':
-                case 127: case 128: case 129: case 130: case 131: case 132:
-                case 133: case 134: case 135: case 136: case 137: case 138:
-                case 139: case 140: case 141: case 142: case 143: case 144:
-                case 145: case 146: case 147: case 148: case 149: case 150:
-                case 151: case 152: case 153: case 154: case 155: case 156:
-                case 157: case 158: case 159: case 160: case 161: case 162:
-                case 163: case 164: case 165: case 166: case 167: case 168:
-                case 169: case 170: case 171: case 172: case 173: case 174:
-                case 175: case 176: case 177: case 178: case 179: case 180:
-                case 181: case 182: case 183: case 184: case 185: case 186:
-                case 187: case 188: case 189: case 190: case 191: case 192:
-                case 193: case 194: case 195: case 196: case 197: case 198:
-                case 199: case 200: case 201: case 202: case 203: case 204:
-                case 205: case 206: case 207: case 208: case 209: case 210:
-                case 211: case 212: case 213: case 214: case 215: case 216:
-                case 217: case 218: case 219: case 220: case 221: case 222:
-                case 223: case 224: case 225: case 226: case 227: case 228:
-                case 229: case 230: case 231: case 232: case 233: case 234:
-                case 235: case 236: case 237: case 238: case 239: case 240:
-                case 241: case 242: case 243: case 244: case 245: case 246:
-                case 247: case 248: case 249: case 250: case 251: case 252:
-                case 253: case 254: case 255:
+                case 128: case 129: case 130: case 131: case 132: case 133:
+                case 134: case 135: case 136: case 137: case 138: case 139:
+                case 140: case 141: case 142: case 143: case 144: case 145:
+                case 146: case 147: case 148: case 149: case 150: case 151:
+                case 152: case 153: case 154: case 155: case 156: case 157:
+                case 158: case 159: case 160: case 161: case 162: case 163:
+                case 164: case 165: case 166: case 167: case 168: case 169:
+                case 170: case 171: case 172: case 173: case 174: case 175:
+                case 176: case 177: case 178: case 179: case 180: case 181:
+                case 182: case 183: case 184: case 185: case 186: case 187:
+                case 188: case 189: case 190: case 191: case 192: case 193:
+                case 194: case 195: case 196: case 197: case 198: case 199:
+                case 200: case 201: case 202: case 203: case 204: case 205:
+                case 206: case 207: case 208: case 209: case 210: case 211:
+                case 212: case 213: case 214: case 215: case 216: case 217:
+                case 218: case 219: case 220: case 221: case 222: case 223:
+                case 224: case 225: case 226: case 227: case 228: case 229:
+                case 230: case 231: case 232: case 233: case 234: case 235:
+                case 236: case 237: case 238: case 239: case 240: case 241:
+                case 242: case 243: case 244: case 245: case 246: case 247:
+                case 248: case 249: case 250: case 251: case 252: case 253:
+                case 254: case 255:
                   continue;
 
                 default: