/[anubis]/anubis/src/message.c
ViewVC logotype

Diff of /anubis/src/message.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.11 by gray, Thu Aug 14 12:31:17 2003 UTC revision 1.12 by gray, Sun Aug 17 15:38:52 2003 UTC
# Line 151  expand_ampersand(char *value, char *old_ Line 151  expand_ampersand(char *value, char *old_
151          } else {          } else {
152                  struct obstack stk;                  struct obstack stk;
153                  int old_length = strlen(old_value);                  int old_length = strlen(old_value);
                   
                 obstack_init(&stk);  
                 for (; p; p = strchr(value, '&')) {  
                         int length = p - value;  
154    
155                          obstack_grow(&stk, value, length);                  obstack_init(&stk);
156                          if (p > value && p[-1] == '\\')                  for (; *value; value++) {
157                                  obstack_1grow(&stk, *p);                          switch (*value) {
158                          else                          case '\\':
159                                    value++;
160                                    if (*value != '&')
161                                            obstack_1grow(&stk, '\\');
162                                    obstack_1grow(&stk, *value);
163                                    break;
164                            case '&':
165                                  obstack_grow(&stk, old_value, old_length);                                  obstack_grow(&stk, old_value, old_length);
166                          value = p + 1;                                  break;
167                            default:
168                                    obstack_1grow(&stk, *value);
169                            }
170                  }                  }
                 if (value && value[0])  
                         obstack_grow(&stk, value, strlen(value));  
171                  obstack_1grow(&stk, 0);                  obstack_1grow(&stk, 0);
172                  p = strdup(obstack_finish(&stk));                  p = strdup(obstack_finish(&stk));
173                  obstack_free(&stk, NULL);                  obstack_free(&stk, NULL);
# Line 235  message_free(MESSAGE *msg) Line 238  message_free(MESSAGE *msg)
238  }  }
239    
240  /* EOF */  /* EOF */
   

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.12

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26