Warning, /sdk/kde-dev-scripts/gettext.patch is written in an unsupported language. File is not indexed.
0001 diff -ru src.orig/xget-lex.c src/xget-lex.c 0002 --- src.orig/xget-lex.c Fri May 1 06:45:12 1998 0003 +++ src/xget-lex.c Fri Apr 27 16:05:06 2001 0004 @@ -78,17 +78,18 @@ 0005 0006 enum token_type_ty 0007 { 0008 - token_type_character_constant, 0009 - token_type_eof, 0010 - token_type_eoln, 0011 - token_type_hash, 0012 - token_type_lp, 0013 - token_type_comma, 0014 - token_type_name, 0015 - token_type_number, 0016 - token_type_string_literal, 0017 - token_type_symbol, 0018 - token_type_white_space 0019 + token_type_character_constant = 0, 0020 + token_type_eof = 1, 0021 + token_type_eoln = 2, 0022 + token_type_hash = 3, 0023 + token_type_lp = 4, 0024 + token_type_rp = 5, 0025 + token_type_comma = 6, 0026 + token_type_name = 7, 0027 + token_type_number = 8, 0028 + token_type_string_literal = 9, 0029 + token_type_symbol = 10, 0030 + token_type_white_space = 11 0031 }; 0032 typedef enum token_type_ty token_type_ty; 0033 0034 @@ -941,6 +942,10 @@ 0035 tp->type = token_type_lp; 0036 return; 0037 0038 + case ')': 0039 + tp->type = token_type_rp; 0040 + return; 0041 + 0042 case ',': 0043 tp->type = token_type_comma; 0044 return; 0045 @@ -1236,6 +1241,11 @@ 0046 tp->type = xgettext_token_type_lp; 0047 return; 0048 0049 + case token_type_rp: 0050 + last_non_comment_line = newline_count; 0051 + tp->type = xgettext_token_type_rp; 0052 + return; 0053 + 0054 case token_type_comma: 0055 last_non_comment_line = newline_count; 0056 0057 diff -ru src.orig/xget-lex.h src/xget-lex.h 0058 --- src.orig/xget-lex.h Fri May 1 06:45:23 1998 0059 +++ src/xget-lex.h Fri Apr 27 16:05:06 2001 0060 @@ -22,13 +22,14 @@ 0061 0062 enum xgettext_token_type_ty 0063 { 0064 - xgettext_token_type_eof, 0065 - xgettext_token_type_keyword1, 0066 - xgettext_token_type_keyword2, 0067 - xgettext_token_type_lp, 0068 - xgettext_token_type_comma, 0069 - xgettext_token_type_string_literal, 0070 - xgettext_token_type_symbol 0071 + xgettext_token_type_eof = 0, 0072 + xgettext_token_type_keyword1 = 1, 0073 + xgettext_token_type_keyword2 = 2, 0074 + xgettext_token_type_lp = 3, 0075 + xgettext_token_type_rp = 4, 0076 + xgettext_token_type_comma = 5, 0077 + xgettext_token_type_string_literal = 6, 0078 + xgettext_token_type_symbol = 7 0079 }; 0080 typedef enum xgettext_token_type_ty xgettext_token_type_ty; 0081 0082 diff -ru src.orig/xgettext.c src/xgettext.c 0083 --- src.orig/xgettext.c Wed Apr 29 18:57:50 1998 0084 +++ src/xgettext.c Fri Apr 27 16:33:46 2001 0085 @@ -835,7 +835,8 @@ 0086 int is_cpp_file; 0087 { 0088 int state; 0089 - 0090 + char *msgid = 0; 0091 + 0092 /* Inform scanner whether we have C++ files or not. */ 0093 if (is_cpp_file) 0094 xgettext_lex_cplusplus (); 0095 @@ -861,8 +862,12 @@ 0096 State 3 = seen one of our keywords with string in second parameter 0097 State 4 = was in state 3 and now saw a left paren 0098 State 5 = waiting for comma after being in state 4 0099 - State 6 = saw comma after being in state 5 */ 0100 + State 6 = saw comma after being in state 5 0101 + State 7 = after comma and being in state 2 0102 + State 8 = after string and being in state 7 0103 + */ 0104 xgettext_lex (&token); 0105 + 0106 switch (token.type) 0107 { 0108 case xgettext_token_type_keyword1: 0109 @@ -886,18 +891,62 @@ 0110 state = 0; 0111 } 0112 continue; 0113 + 0114 + case xgettext_token_type_rp: 0115 + if (state == 2 || state == 8) { 0116 + token.string = strdup(msgid); 0117 + remember_a_message (mlp, &token); 0118 + free(msgid); 0119 + msgid = 0; 0120 + state = 0; 0121 + } 0122 + continue; 0123 0124 case xgettext_token_type_comma: 0125 - state = state == 5 ? 6 : 0; 0126 + switch (state) { 0127 + case 5: 0128 + state = 6; 0129 + break; 0130 + case 2: 0131 + state = 7; 0132 + break; 0133 + case 8: { 0134 + char *newstring = (char*)malloc(strlen(msgid) + 2); 0135 + strcpy(newstring, "_n:"); 0136 + strcat(newstring, msgid + 2); 0137 + free(msgid); 0138 + token.string = newstring; 0139 + remember_a_message (mlp, &token); 0140 + msgid = 0; 0141 + state = 0; 0142 + break; 0143 + } 0144 + default: 0145 + state = 0; 0146 + break; 0147 + } 0148 continue; 0149 0150 case xgettext_token_type_string_literal: 0151 if (extract_all || state == 2 || state == 6) 0152 { 0153 - remember_a_message (mlp, &token); 0154 - state = 0; 0155 + if (msgid) 0156 + free(msgid); 0157 + msgid = strdup(token.string); 0158 + // state = 0; 0159 } 0160 - else 0161 + else if (state == 7) 0162 + { 0163 + if (msgid) { 0164 + char *newstring = (char*)malloc(strlen(msgid) + strlen(token.string) + 20); 0165 + sprintf(newstring, "_: %s\n%s", msgid, token.string); 0166 + free(msgid); 0167 + free(token.string); 0168 + token.string = msgid = newstring; 0169 + state = 8; 0170 + } 0171 + } 0172 + else 0173 { 0174 free (token.string); 0175 state = (state == 4 || state == 5) ? 5 : 0; 0176 @@ -905,8 +954,8 @@ 0177 continue; 0178 0179 case xgettext_token_type_symbol: 0180 - state = (state == 4 || state == 5) ? 5 : 0; 0181 - continue; 0182 + state = (state == 4 || state == 5) ? 5 : 0; 0183 + continue; 0184 0185 default: 0186 state = 0; 0187 @@ -915,6 +964,7 @@ 0188 case xgettext_token_type_eof: 0189 break; 0190 } 0191 + 0192 break; 0193 } 0194