comparison src/mule-wnnfns.c @ 300:3cc9f0ebfbd1 r21-0b48

Import from CVS: tag r21-0b48
author cvs
date Mon, 13 Aug 2007 10:40:26 +0200
parents c5d627a313b1
children 8626e4521993
comparison
equal deleted inserted replaced
299:24cff6e8d715 300:3cc9f0ebfbd1
330 login name LNAME in the server. 330 login name LNAME in the server.
331 Return nil if error occurs 331 Return nil if error occurs
332 */ 332 */
333 (hname, lname)) 333 (hname, lname))
334 { 334 {
335 char envname[32]; 335 char *envname;
336 char langname[32]; 336 char *langname;
337 char hostname[32]; 337 char *hostname;
338 int snum; 338 int snum;
339 int size;
339 CHECK_STRING (lname); 340 CHECK_STRING (lname);
340 341
341 snum = check_wnn_server_type (); 342 snum = check_wnn_server_type ();
342 switch (snum) 343 switch (snum)
343 { 344 {
344 case WNNSERVER_J: 345 case WNNSERVER_J:
345 strcpy (langname, "ja_JP"); 346 langname = "ja_JP";
346 break; 347 break;
347 case WNNSERVER_C: 348 case WNNSERVER_C:
348 strcpy (langname, "zh_CN"); 349 langname = "zh_CN";
349 break; 350 break;
350 /* 351 /*
351 case WNNSERVER_T: 352 case WNNSERVER_T:
352 strcpy (langname, "zh_TW"); 353 strcpy (langname, "zh_TW");
353 break; 354 break;
354 */ 355 */
355 case WNNSERVER_K: 356 case WNNSERVER_K:
356 strcpy (langname, "ko_KR"); 357 langname = "ko_KR";
357 break; 358 break;
358 } 359 case -1:
359 strncpy (envname, (char *) XSTRING_DATA (lname), 32); 360 default:
360 if (NILP (hname)) strcpy (hostname, ""); 361 return Qnil;
362 }
363 size = XSTRING_LENGTH (lname) > 1024 ? 1026 : XSTRING_LENGTH (lname) + 2;
364 envname = alloca (size);
365 strncpy (envname, (char *) XSTRING_DATA (lname), size-2);
366 envname[size-2] = '\0';
367 if (NILP (hname)) hostname = "";
361 else 368 else
362 { 369 {
363 CHECK_STRING (hname); 370 CHECK_STRING (hname);
364 strncpy (hostname, (char *) XSTRING_DATA (hname), 32); 371 size = XSTRING_LENGTH(hname) > 1024 ? 1025 : XSTRING_LENGTH(hname) + 1;
372
373 hostname = alloca (size);
374 strncpy (hostname, (char *) XSTRING_DATA (hname), size-1);
375 hostname[size-1] = '\0';
365 } 376 }
366 CHECK_STRING (lname); 377 CHECK_STRING (lname);
367 /* 97/4/16 jhod@po.iijnet.or.jp 378 /* 97/4/16 jhod@po.iijnet.or.jp
368 * libwnn uses SIGALRM, so we need to stop and start interrupts. 379 * libwnn uses SIGALRM, so we need to stop and start interrupts.
369 */ 380 */