Mercurial > pidgin.yaz
comparison plugins/spellchk.c @ 106:e05e6373ea5a
[gaim-migrate @ 116]
Modified spellchk.c so now it uses a more customizable dictionary and added
filectl.c to allow remote-control of gaim.
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Wed, 12 Apr 2000 06:51:37 +0000 |
parents | c5a1a1b05c26 |
children | d927bb34e2c6 |
comparison
equal
deleted
inserted
replaced
105:c76d4c0c5e3a | 106:e05e6373ea5a |
---|---|
43 } | 43 } |
44 } | 44 } |
45 | 45 |
46 void gaim_plugin_init(void *handle) { | 46 void gaim_plugin_init(void *handle) { |
47 struct replace_words *p; | 47 struct replace_words *p; |
48 FILE *file; | |
49 char buffer[256]; | |
50 char *good; | |
51 char *bad; | |
48 | 52 |
49 p = malloc(sizeof *p); | 53 sprintf(buffer, "%s/.gaim/dict", getenv("HOME")); |
50 p->bad = "definately"; | 54 file = fopen(buffer, "r"); |
51 p->good = "definitely"; | 55 while (fgets(buffer, sizeof buffer, file)) { |
52 words = g_list_append(words, p); | 56 buffer[strlen(buffer) - 1] = 0; |
53 | 57 p = malloc(sizeof *p); |
54 p = malloc(sizeof *p); | 58 good = strdup(strpbrk(strpbrk(buffer, " \t\r\f\n"), |
55 p->bad = "u"; | 59 "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM")); |
56 p->good = "you"; | 60 bad = strpbrk(buffer, " \t\r\f\n"); |
57 words = g_list_append(words, p); | 61 bad[0] = 0; |
58 | 62 bad = strdup(buffer); |
59 p = malloc(sizeof *p); | 63 p->bad = bad; |
60 p->bad = "r"; | 64 p->good = good; |
61 p->good = "are"; | 65 words = g_list_append(words, p); |
62 words = g_list_append(words, p); | 66 } |
63 | |
64 p = malloc(sizeof *p); | |
65 p->bad = "teh"; | |
66 p->good = "the"; | |
67 words = g_list_append(words, p); | |
68 | 67 |
69 gaim_signal_connect(handle, event_im_send, spell_check, NULL); | 68 gaim_signal_connect(handle, event_im_send, spell_check, NULL); |
70 } | 69 } |
71 | 70 |
72 char *name() { | 71 char *name() { |
90 state = 1; | 89 state = 1; |
91 } else if (m[pos] == '<') | 90 } else if (m[pos] == '<') |
92 state = 2; | 91 state = 2; |
93 break; | 92 break; |
94 case 1: /* inside word */ | 93 case 1: /* inside word */ |
95 if (isspace(m[pos])) | 94 if (isspace(m[pos]) || m[pos] == '\'' || m[pos] == '.') |
96 state = 0; | 95 state = 0; |
96 else if (m[pos] == '<') | |
97 state = 2; | |
97 break; | 98 break; |
98 case 2: /* inside HTML tag */ | 99 case 2: /* inside HTML tag */ |
99 if (m[pos] == '>') | 100 if (m[pos] == '>') |
100 state = 0; | 101 state = 0; |
101 break; | 102 break; |
117 state = 1; | 118 state = 1; |
118 } else if (m[pos] == '<') | 119 } else if (m[pos] == '<') |
119 state = 2; | 120 state = 2; |
120 break; | 121 break; |
121 case 1: | 122 case 1: |
122 if (isspace(m[pos])) | 123 if (isspace(m[pos]) || m[pos] == '\'' || m[pos] == '.') |
123 state = 0; | 124 state = 0; |
124 break; | 125 break; |
125 case 2: | 126 case 2: |
126 if (m[pos] == '>') | 127 if (m[pos] == '>') |
127 state = 0; | 128 state = 0; |
130 } | 131 } |
131 return pos - 1; | 132 return pos - 1; |
132 } | 133 } |
133 | 134 |
134 char *have_word(char *m, int pos) { | 135 char *have_word(char *m, int pos) { |
135 char *tmp = strpbrk(&m[pos], "' \t\f\r\n"); | 136 char *tmp = strpbrk(&m[pos], "' \t\f\r\n."); |
136 int len = (int)(tmp - &m[pos]); | 137 int len = (int)(tmp - &m[pos]); |
137 | 138 |
138 if (tmp == NULL) { | 139 if (tmp == NULL) { |
139 tmp = strdup(&m[pos]); | 140 tmp = strdup(&m[pos]); |
140 return tmp; | 141 return tmp; |