Mercurial > masqmail
comparison src/parse.c @ 366:41958685480d
Switched to `type *name' style
Andrew Koenig's ``C Traps and Pitfalls'' (Ch.2.1) convinced
me that it is best to go with the way C had been designed.
The ``declaration reflects use'' concept conflicts with a
``type* name'' notation. Hence I switched.
author | markus schnalke <meillo@marmaro.de> |
---|---|
date | Thu, 22 Sep 2011 15:07:40 +0200 |
parents | 89199eda6144 |
children | b27f66555ba8 |
comparison
equal
deleted
inserted
replaced
365:934a223e4ee8 | 366:41958685480d |
---|---|
33 static gchar *specials = "()<>@,;:\\\".[]`"; | 33 static gchar *specials = "()<>@,;:\\\".[]`"; |
34 | 34 |
35 char *parse_error = NULL; | 35 char *parse_error = NULL; |
36 | 36 |
37 static gchar* | 37 static gchar* |
38 skip_comment(gchar * p) | 38 skip_comment(gchar *p) |
39 { | 39 { |
40 | 40 |
41 #ifdef PARSE_TEST | 41 #ifdef PARSE_TEST |
42 g_print("skip_comment: %s\n", p); | 42 g_print("skip_comment: %s\n", p); |
43 #endif | 43 #endif |
53 | 53 |
54 return p; | 54 return p; |
55 } | 55 } |
56 | 56 |
57 static gboolean | 57 static gboolean |
58 read_word(gchar * p, gchar ** b, gchar ** e) | 58 read_word(gchar *p, gchar **b, gchar **e) |
59 { | 59 { |
60 #ifdef PARSE_TEST | 60 #ifdef PARSE_TEST |
61 g_print("read_word: %s\n", p); | 61 g_print("read_word: %s\n", p); |
62 #endif | 62 #endif |
63 /* eat leading spaces */ | 63 /* eat leading spaces */ |
83 *e = p; | 83 *e = p; |
84 return TRUE; | 84 return TRUE; |
85 } | 85 } |
86 | 86 |
87 static gboolean | 87 static gboolean |
88 read_word_with_dots(gchar * p, gchar ** b, gchar ** e) | 88 read_word_with_dots(gchar *p, gchar **b, gchar **e) |
89 { | 89 { |
90 gchar *b0 = p; | 90 gchar *b0 = p; |
91 | 91 |
92 #ifdef PARSE_TEST | 92 #ifdef PARSE_TEST |
93 g_print("read_word_with_dots: %s\n", p); | 93 g_print("read_word_with_dots: %s\n", p); |
106 *e = p; | 106 *e = p; |
107 return TRUE; | 107 return TRUE; |
108 } | 108 } |
109 | 109 |
110 static gboolean | 110 static gboolean |
111 read_domain(gchar * p, gchar ** b, gchar ** e) | 111 read_domain(gchar *p, gchar **b, gchar **e) |
112 { | 112 { |
113 #ifdef PARSE_TEST | 113 #ifdef PARSE_TEST |
114 g_print("read_domain: %s\n", p); | 114 g_print("read_domain: %s\n", p); |
115 #endif | 115 #endif |
116 *b = p; | 116 *b = p; |
132 *e = p; | 132 *e = p; |
133 return TRUE; | 133 return TRUE; |
134 } | 134 } |
135 | 135 |
136 gboolean | 136 gboolean |
137 parse_address_rfc822(gchar* string, gchar** local_begin, gchar** local_end, gchar** domain_begin, | 137 parse_address_rfc822(gchar *string, gchar **local_begin, gchar **local_end, gchar **domain_begin, |
138 gchar** domain_end, gchar** address_end) | 138 gchar **domain_end, gchar **address_end) |
139 { | 139 { |
140 gint angle_brackets = 0; | 140 gint angle_brackets = 0; |
141 | 141 |
142 gchar *p = string; | 142 gchar *p = string; |
143 gchar *b, *e; | 143 gchar *b, *e; |
282 /* we successfully parsed the address */ | 282 /* we successfully parsed the address */ |
283 return TRUE; | 283 return TRUE; |
284 } | 284 } |
285 | 285 |
286 gboolean | 286 gboolean |
287 parse_address_rfc821(gchar* string, gchar** local_begin, gchar** local_end, gchar** domain_begin, | 287 parse_address_rfc821(gchar *string, gchar **local_begin, gchar **local_end, gchar **domain_begin, |
288 gchar** domain_end, gchar** address_end) | 288 gchar **domain_end, gchar **address_end) |
289 { | 289 { |
290 gint angle_brackets = 0; | 290 gint angle_brackets = 0; |
291 | 291 |
292 gchar *p = string; | 292 gchar *p = string; |
293 gchar *b, *e; | 293 gchar *b, *e; |
377 end may be NULL, if we are not interested. | 377 end may be NULL, if we are not interested. |
378 | 378 |
379 parses both rfc 821 and rfc 822 addresses, depending on flag is_rfc821 | 379 parses both rfc 821 and rfc 822 addresses, depending on flag is_rfc821 |
380 */ | 380 */ |
381 address* | 381 address* |
382 _create_address(gchar * string, gchar ** end, gboolean is_rfc821) | 382 _create_address(gchar *string, gchar **end, gboolean is_rfc821) |
383 { | 383 { |
384 gchar *loc_beg, *loc_end; | 384 gchar *loc_beg, *loc_end; |
385 gchar *dom_beg, *dom_end; | 385 gchar *dom_beg, *dom_end; |
386 gchar *addr_end; | 386 gchar *addr_end; |
387 gboolean ret; | 387 gboolean ret; |
446 | 446 |
447 return addr; | 447 return addr; |
448 } | 448 } |
449 | 449 |
450 address* | 450 address* |
451 create_address_rfc822(gchar * string, gchar ** end) | 451 create_address_rfc822(gchar *string, gchar **end) |
452 { | 452 { |
453 return _create_address(string, end, FALSE); | 453 return _create_address(string, end, FALSE); |
454 } | 454 } |
455 | 455 |
456 address* | 456 address* |
457 create_address_rfc821(gchar * string, gchar ** end) | 457 create_address_rfc821(gchar *string, gchar **end) |
458 { | 458 { |
459 return _create_address(string, end, TRUE); | 459 return _create_address(string, end, TRUE); |
460 } | 460 } |
461 | 461 |
462 GList* | 462 GList* |
463 addr_list_append_rfc822(GList * addr_list, gchar * string, gchar * domain) | 463 addr_list_append_rfc822(GList *addr_list, gchar *string, gchar *domain) |
464 { | 464 { |
465 gchar *p = string; | 465 gchar *p = string; |
466 gchar *end; | 466 gchar *end; |
467 | 467 |
468 while (*p) { | 468 while (*p) { |