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