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