Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-ports
Path: blob/main/japanese/FreeWnn-lib/files/patch-Wnn-etc-msg.c
18157 views
1
Index: Wnn/etc/msg.c
2
===================================================================
3
RCS file: /home/cvs/private/hrs/freewnn/Wnn/etc/msg.c,v
4
retrieving revision 1.1.1.1
5
retrieving revision 1.2
6
diff -u -p -r1.1.1.1 -r1.2
7
--- Wnn/etc/msg.c 20 Dec 2008 07:13:30 -0000 1.1.1.1
8
+++ Wnn/etc/msg.c 20 Dec 2008 15:22:40 -0000 1.2
9
@@ -5,7 +5,7 @@
10
/*
11
* FreeWnn is a network-extensible Kana-to-Kanji conversion system.
12
* This file is part of FreeWnn.
13
- *
14
+ *
15
* Copyright Kyoto University Research Institute for Mathematical Sciences
16
* 1987, 1988, 1989, 1990, 1991, 1992
17
* Copyright OMRON Corporation. 1987, 1988, 1989, 1990, 1991, 1992, 1999
18
@@ -69,124 +69,116 @@
19
#include "msg.h"
20
21
static char *
22
-getlang (lang)
23
- char *lang;
24
+getlang(char *lang)
25
{
26
- static char tmp[32];
27
- char *p;
28
- int i;
29
+ static char tmp[32];
30
+ char *p;
31
+ int i;
32
33
- if (lang == NULL || *lang == '\0')
34
- {
35
+ if (lang == NULL || *lang == '\0') {
36
#ifdef HAS_SETLOCALE
37
- lang = setlocale (LC_ALL, NULL);
38
- if (lang == NULL || *lang == '\0')
39
+ lang = setlocale(LC_ALL, NULL);
40
+ if (lang == NULL || *lang == '\0')
41
#endif
42
- {
43
- lang = getenv ("LC_MESSAGES");
44
- if (lang == NULL || *lang == '\0')
45
- {
46
- lang = getenv ("LANG");
47
- if (lang == NULL || *lang == '\0')
48
- {
49
- lang = DEF_LANG;
50
- }
51
- }
52
- }
53
- }
54
- for (i = 0, p = lang; *p && *p != '.'; i++, p++)
55
- {
56
- tmp[i] = *p;
57
- }
58
- tmp[i] = '\0';
59
- return (tmp);
60
- /*
61
- return(lang);
62
- */
63
+ {
64
+ lang = getenv("LC_MESSAGES");
65
+ if (lang == NULL || *lang == '\0') {
66
+ lang = getenv("LANG");
67
+
68
+ if (lang == NULL || *lang == '\0') {
69
+ lang = DEF_LANG;
70
+ }
71
+ }
72
+ }
73
+ }
74
+ for (i = 0, p = lang; *p && *p != '.'; i++, p++)
75
+ tmp[i] = *p;
76
+
77
+ tmp[i] = '\0';
78
+
79
+ return (tmp);
80
+ /*
81
+ return(lang);
82
+ */
83
}
84
85
static int
86
-_search (id, bd)
87
- int *id;
88
- struct msg_bd *bd;
89
+_search(int *id,
90
+ struct msg_bd *bd)
91
{
92
- return (*id - bd->msg_id);
93
+ return (*id - bd->msg_id);
94
}
95
96
static void
97
-_escape (op, ip)
98
- register char *op, *ip;
99
+_escape(register char *op,
100
+ register char *ip)
101
{
102
- for (; *ip != 0; ip++, op++)
103
- {
104
- if (*ip == '\\')
105
- {
106
- switch (*++ip)
107
- {
108
- case 'n':
109
- *op = '\n';
110
- break;
111
- case 't':
112
- *op = '\t';
113
- break;
114
- case 'b':
115
- *op = '\b';
116
- break;
117
- case 'r':
118
- *op = '\r';
119
- break;
120
- case 'f':
121
- *op = '\f';
122
- break;
123
- case 'v':
124
- *op = '\v';
125
- break;
126
- case '0':
127
- *op = 0;
128
- break;
129
- /*
130
- case 'a':
131
- *op = '\a';
132
- break;
133
- case 'e':
134
- case 'E':
135
- case 'o':
136
- case 'd':
137
- case 'x':
138
- break;
139
- */
140
- default:
141
- *op = *ip;
142
- break;
143
- }
144
- }
145
- else
146
- {
147
- if (*ip == '\n')
148
- {
149
- *op = '\0';
150
- }
151
- else
152
- {
153
- *op = *ip;
154
- }
155
- }
156
- }
157
- *op = 0;
158
+ for (; *ip != 0; ip++, op++) {
159
+ if (*ip == '\\') {
160
+ switch (*++ip) {
161
+ case 'n':
162
+ *op = '\n';
163
+ break;
164
+ case 't':
165
+ *op = '\t';
166
+ break;
167
+ case 'b':
168
+ *op = '\b';
169
+ break;
170
+ case 'r':
171
+ *op = '\r';
172
+ break;
173
+ case 'f':
174
+ *op = '\f';
175
+ break;
176
+ case 'v':
177
+ *op = '\v';
178
+ break;
179
+ case '0':
180
+ *op = 0;
181
+ break;
182
+ /*
183
+ case 'a':
184
+ *op = '\a';
185
+ break;
186
+ case 'e':
187
+ case 'E':
188
+ case 'o':
189
+ case 'd':
190
+ case 'x':
191
+ break;
192
+ */
193
+ default:
194
+ *op = *ip;
195
+ break;
196
+ }
197
+ } else {
198
+ if (*ip == '\n')
199
+ *op = '\0';
200
+ else
201
+ *op = *ip;
202
+ }
203
+ }
204
+ *op = 0;
205
}
206
207
static char *
208
-get_msg_bd (cd, id)
209
- struct msg_cat *cd;
210
- int id;
211
+get_msg_bd(struct msg_cat *cd,
212
+ int id)
213
{
214
- register struct msg_bd *bd;
215
- if (cd->msg_bd == 0 || cd->msg_cnt == 0)
216
- return (NULL);
217
- bd = (struct msg_bd *) bsearch (&id, cd->msg_bd, cd->msg_cnt, sizeof (struct msg_bd), _search);
218
- if (bd == NULL)
219
- return (NULL);
220
- return (bd->msg);
221
+ register struct msg_bd *bd;
222
+
223
+ if (cd->msg_bd == 0 || cd->msg_cnt == 0)
224
+ return (NULL);
225
+
226
+ bd = (struct msg_bd *)bsearch(&id,
227
+ cd->msg_bd,
228
+ cd->msg_cnt,
229
+ sizeof (struct msg_bd),
230
+ _search);
231
+ if (bd == NULL)
232
+ return (NULL);
233
+ return (bd->msg);
234
}
235
236
/* expand
237
@@ -195,229 +187,236 @@ get_msg_bd (cd, id)
238
%l: the language element from LANG
239
%t: the territory element from LANG
240
%c: the codeset element from LANG
241
- %%: a single % charctor
242
+ %%: a single % charctor
243
*/
244
static int
245
-expand (op, ip, name, lang)
246
- register char *op, *ip, *name, *lang;
247
+expand (register char *op,
248
+ register char *ip,
249
+ register char *name,
250
+ register char *lang)
251
{
252
- if (!ip || !*ip)
253
- return (-1);
254
- for (; *ip != 0; ip++)
255
- {
256
- if (*ip == '%')
257
- {
258
- switch (*++ip)
259
- {
260
- case 'N':
261
- if (!name || !*name)
262
- return (-1);
263
- strcpy (op, name);
264
- op += strlen (name);
265
- break;
266
- case 'L':
267
- if (!lang || !*lang)
268
- return (-1);
269
- strcpy (op, lang);
270
- op += strlen (lang);
271
- break;
272
- /*
273
- case 'l':
274
- strcpy(op, language);
275
- op += strlen(language);
276
- break;
277
- case 't':
278
- strcpy(op, terr);
279
- op += strlen(terr);
280
- break;
281
- case 'c':
282
- strcpy(op, code);
283
- op += strlen(code);
284
- break;
285
- case '%':
286
- strcpy(op, "%");
287
- op += strlen("%");
288
- break;
289
- */
290
- default:
291
- break;
292
- }
293
- }
294
- else
295
- {
296
- *op = *ip;
297
- op++;
298
- }
299
- }
300
- *op = '\0';
301
- return (0);
302
+ if (!ip || !*ip)
303
+ return (-1);
304
+
305
+ for (; *ip != 0; ip++) {
306
+ if (*ip == '%') {
307
+ switch (*++ip) {
308
+ case 'N':
309
+ if (!name || !*name)
310
+ return (-1);
311
+ strcpy(op, name);
312
+ op += strlen(name);
313
+ break;
314
+ case 'L':
315
+ if (!lang || !*lang)
316
+ return (-1);
317
+ strcpy(op, lang);
318
+ op += strlen(lang);
319
+ break;
320
+ /*
321
+ case 'l':
322
+ strcpy(op, language);
323
+ op += strlen(language);
324
+ break;
325
+ case 't':
326
+ strcpy(op, terr);
327
+ op += strlen(terr);
328
+ break;
329
+ case 'c':
330
+ strcpy(op, code);
331
+ op += strlen(code);
332
+ break;
333
+ case '%':
334
+ strcpy(op, "%");
335
+ op += strlen("%");
336
+ break;
337
+ */
338
+ default:
339
+ break;
340
+ }
341
+ } else {
342
+ *op = *ip;
343
+ op++;
344
+ }
345
+ }
346
+ *op = '\0';
347
+
348
+ return (0);
349
}
350
351
352
struct msg_cat *
353
-msg_open (name, nlspath, lang)
354
- char *name;
355
- char *nlspath;
356
- char *lang;
357
+msg_open (char *name,
358
+ char *nlspath,
359
+ char *lang)
360
{
361
- struct msg_cat *cd;
362
+ struct msg_cat *cd;
363
364
- char fn[MAXPATHLEN];
365
- FILE *fp;
366
- char data[1024];
367
- char save[1024];
368
- int msg_cnt = 0;
369
- int msg_byte = 0;
370
- register char *dp;
371
- register struct msg_bd *bd;
372
- register char *msg, *l;
373
-
374
- l = getlang (lang);
375
- if (name && *name == '/')
376
- {
377
- strcpy (fn, name);
378
- }
379
- else
380
- {
381
- if (expand (fn, nlspath, name, l) == -1)
382
- {
383
- return (NULL);
384
+ char fn[MAXPATHLEN];
385
+ FILE *fp;
386
+ char data[1024];
387
+ char save[1024];
388
+ int msg_cnt = 0;
389
+ int msg_byte = 0;
390
+ register char *dp;
391
+ register struct msg_bd *bd;
392
+ register char *msg, *l;
393
+
394
+ l = getlang(lang);
395
+
396
+ if (name && *name == '/')
397
+ strcpy (fn, name);
398
+ else {
399
+ if (expand (fn, nlspath, name, l) == -1)
400
+ return (NULL);
401
}
402
- }
403
404
- if (!(cd = (struct msg_cat *) malloc (sizeof (struct msg_cat))))
405
- return (NULL);
406
+ if (!(cd = (struct msg_cat *) malloc (sizeof (struct msg_cat))))
407
+ return (NULL);
408
+
409
+ strcpy (cd->name, name);
410
+ strcpy (cd->lang, l);
411
+ strcpy (cd->nlspath, nlspath);
412
+ cd->nextp = NULL;
413
+ cd->msg_cnt = 0;
414
+
415
+ if ((fp = fopen (fn, "r")) == NULL) {
416
+ /* message file not found */
417
+ cd->msg_bd = 0;
418
+ return (cd);
419
+ }
420
+
421
+ for (;;) {
422
+ /* first: count bytes */
423
+ if (fgets (data, 1024, fp) == NULL)
424
+ break;
425
+
426
+ /* comment */
427
+ if (*data == '#')
428
+ continue;
429
+
430
+ for (dp = data; *dp && *dp != '\t'; dp++);
431
+ /* msg_id:message\n */
432
+
433
+ if (*dp == '\0')
434
+ continue;
435
+
436
+ dp++;
437
+ msg_byte += strlen (dp);
438
+ msg_cnt++;
439
+ }
440
+
441
+ rewind(fp);
442
+
443
+ cd->msg_cnt = msg_cnt;
444
+
445
+ if (!(bd = cd->msg_bd =
446
+ (struct msg_bd *)malloc((sizeof (struct msg_bd)) * msg_cnt + msg_byte + 1))) {
447
+ fclose(fp);
448
+ free(cd);
449
+ return (NULL);
450
+ }
451
+
452
+ msg = (char *) bd + (sizeof (struct msg_bd)) * msg_cnt;
453
+
454
+ for (;;) {
455
+ /* second : get message */
456
+ if (fgets(data, 1024, fp) == NULL)
457
+ break;
458
+
459
+ if (*data == '#')
460
+ /* comment */
461
+ continue;
462
+
463
+ for (dp = data; *dp && *dp != '\t'; dp++);
464
+ /* msg_id:message\n */
465
+
466
+ if (*dp == '\0')
467
+ continue;
468
+
469
+ *dp = 0;
470
+ dp++;
471
+ bd->msg_id = atoi(data);
472
+ bd->msg = msg;
473
+ bd++;
474
+ _escape(save, dp);
475
+ strcpy(msg, save);
476
+ msg += strlen(save);
477
+ *msg = 0;
478
+ msg++;
479
+ }
480
481
- strcpy (cd->name, name);
482
- strcpy (cd->lang, l);
483
- strcpy (cd->nlspath, nlspath);
484
- cd->nextp = NULL;
485
- cd->msg_cnt = 0;
486
-
487
- if ((fp = fopen (fn, "r")) == NULL)
488
- {
489
- /* message file not found */
490
- cd->msg_bd = 0;
491
- return (cd);
492
- }
493
- for (;;)
494
- {
495
- /* first: count bytes */
496
- if (fgets (data, 1024, fp) == NULL)
497
- break;
498
- if (*data == '#')
499
- continue; /* comment */
500
- for (dp = data; *dp && *dp != '\t'; dp++); /* msg_id:message\n */
501
- if (*dp == '\0')
502
- continue;
503
- dp++;
504
- msg_byte += strlen (dp);
505
- msg_cnt++;
506
- }
507
- rewind (fp);
508
-
509
- cd->msg_cnt = msg_cnt;
510
- if (!(bd = cd->msg_bd = (struct msg_bd *) malloc ((sizeof (struct msg_bd)) * msg_cnt + msg_byte + 1)))
511
- {
512
- fclose (fp);
513
- free (cd);
514
- return (NULL);
515
- }
516
- msg = (char *) bd + (sizeof (struct msg_bd)) * msg_cnt;
517
-
518
- for (;;)
519
- {
520
- /* second : get message */
521
- if (fgets (data, 1024, fp) == NULL)
522
- break;
523
- if (*data == '#')
524
- continue; /* comment */
525
- for (dp = data; *dp && *dp != '\t'; dp++); /* msg_id:message\n */
526
- if (*dp == '\0')
527
- continue;
528
- *dp = 0;
529
- dp++;
530
- bd->msg_id = atoi (data);
531
- bd->msg = msg;
532
- bd++;
533
- _escape (save, dp);
534
- strcpy (msg, save);
535
- msg += strlen (save);
536
- *msg = 0;
537
- msg++;
538
- }
539
- fclose (fp);
540
- return (cd);
541
+ fclose(fp);
542
+ return (cd);
543
}
544
545
char *
546
-msg_get (catd, id, msg, lang)
547
- struct msg_cat *catd;
548
- int id;
549
- char *msg;
550
- register char *lang;
551
+msg_get(struct msg_cat *catd,
552
+ int id,
553
+ char *msg,
554
+ register char *lang)
555
{
556
- register struct msg_cat *cd;
557
- register char *msg_bd;
558
+ register struct msg_cat *cd;
559
+ register char *msg_bd;
560
561
- if (catd == 0)
562
- goto error;
563
- cd = catd;
564
- if (lang == 0 || *lang == '\0')
565
- {
566
- lang = cd->lang;
567
- }
568
- else
569
- {
570
- for (;; cd = cd->nextp)
571
- {
572
- if (strcmp (lang, cd->lang) == 0)
573
- break;
574
- if (cd->nextp == 0)
575
- {
576
- cd->nextp = msg_open (cd->name, cd->nlspath, lang);
577
- cd = cd->nextp;
578
- break;
579
- }
580
- }
581
- }
582
+ if (catd == 0)
583
+ goto error;
584
+
585
+ cd = catd;
586
+
587
+ if (lang == 0 || *lang == '\0')
588
+ lang = cd->lang;
589
+ else {
590
+ for (;; cd = cd->nextp) {
591
+ if (strcmp(lang, cd->lang) == 0)
592
+ break;
593
+ if (cd->nextp == 0) {
594
+ cd->nextp = msg_open(cd->name, cd->nlspath, lang);
595
+ cd = cd->nextp;
596
+ break;
597
+ }
598
+ }
599
+ }
600
601
- if (msg_bd = get_msg_bd (cd, id))
602
- return (msg_bd);
603
+ if (msg_bd = get_msg_bd(cd, id))
604
+ return (msg_bd);
605
error:
606
- if (msg != 0 && *msg != '\0')
607
- return (msg);
608
- {
609
- static char ret[128];
610
- sprintf (ret, "mes_id = %d: %s", id, DEF_MSG);
611
- return (ret);
612
- }
613
+
614
+ if (msg != 0 && *msg != '\0')
615
+ return (msg);
616
+
617
+ {
618
+ static char ret[128];
619
+ sprintf(ret, "mes_id = %d: %s", id, DEF_MSG);
620
+ return (ret);
621
+ }
622
}
623
624
void
625
-msg_close (cd)
626
- register struct msg_cat *cd;
627
+msg_close(register struct msg_cat *cd)
628
{
629
- if (cd->nextp)
630
- msg_close (cd->nextp);
631
- if (cd->msg_bd)
632
- free (cd->msg_bd);
633
- if (cd)
634
- free (cd);
635
+ if (cd->nextp)
636
+ msg_close(cd->nextp);
637
+
638
+ if (cd->msg_bd)
639
+ free(cd->msg_bd);
640
+
641
+ if (cd)
642
+ free(cd);
643
}
644
645
#ifdef not_use
646
/* test */
647
-main ()
648
+main()
649
{
650
- struct msg_cat *cd;
651
+ struct msg_cat *cd;
652
653
- cd = msg_open ("msg", "%L", "ja_JP");
654
+ cd = msg_open("msg", "%L", "ja_JP");
655
656
- printf (msg_get (cd, 5, "message not found\n", "ja_JP"), 555);
657
- printf (msg_get (cd, 6, "message not found\n", "zh_CN"));
658
- printf (msg_get (cd, -1, "", "ja_JP"), 555);
659
- printf (msg_get (cd, 2, "message not found\n", "ja_JP"), "abc");
660
- printf (msg_get (cd, 100, "message not found\n", "zh_CN"), "abc");
661
+ printf (msg_get(cd, 5, "message not found\n", "ja_JP"), 555);
662
+ printf (msg_get(cd, 6, "message not found\n", "zh_CN"));
663
+ printf (msg_get(cd, -1, "", "ja_JP"), 555);
664
+ printf (msg_get(cd, 2, "message not found\n", "ja_JP"), "abc");
665
+ printf (msg_get(cd, 100, "message not found\n", "zh_CN"), "abc");
666
}
667
#endif /* not_use */
668
669