comparison src/file-coding.c @ 261:405dd6d1825b r20-5b29

Import from CVS: tag r20-5b29
author cvs
date Mon, 13 Aug 2007 10:23:51 +0200
parents 11cf20601dec
children 727739f917cb
comparison
equal deleted inserted replaced
260:052205f7dd5f 261:405dd6d1825b
358 setup_eol_coding_systems (struct Lisp_Coding_System *codesys) 358 setup_eol_coding_systems (struct Lisp_Coding_System *codesys)
359 { 359 {
360 Lisp_Object codesys_obj = Qnil; 360 Lisp_Object codesys_obj = Qnil;
361 int len = string_length (XSYMBOL (CODING_SYSTEM_NAME (codesys))->name); 361 int len = string_length (XSYMBOL (CODING_SYSTEM_NAME (codesys))->name);
362 char *codesys_name = (char *) alloca (len + 7); 362 char *codesys_name = (char *) alloca (len + 7);
363 363 int mlen = -1;
364 int mlen = XSTRING_LENGTH(CODING_SYSTEM_MNEMONIC (codesys)); 364 char *codesys_mnemonic;
365 char *codesys_mnemonic = (char *) alloca (mlen + 7);
366 365
367 Lisp_Object codesys_name_sym, sub_codesys_obj; 366 Lisp_Object codesys_name_sym, sub_codesys_obj;
368 367
369 /* kludge */ 368 /* kludge */
370 369
371 XSETCODING_SYSTEM (codesys_obj, codesys); 370 XSETCODING_SYSTEM (codesys_obj, codesys);
372 371
373 memcpy (codesys_name, 372 memcpy (codesys_name,
374 string_data (XSYMBOL (CODING_SYSTEM_NAME (codesys))->name), len); 373 string_data (XSYMBOL (CODING_SYSTEM_NAME (codesys))->name), len);
375 374
376 memcpy (codesys_mnemonic, 375 if (STRINGP (CODING_SYSTEM_MNEMONIC (codesys)))
377 XSTRING_DATA (CODING_SYSTEM_MNEMONIC (codesys)), mlen); 376 {
377 mlen = XSTRING_LENGTH(CODING_SYSTEM_MNEMONIC (codesys));
378 codesys_mnemonic = (char *) alloca (mlen + 7);
379 memcpy (codesys_mnemonic,
380 XSTRING_DATA (CODING_SYSTEM_MNEMONIC (codesys)), mlen);
381 }
378 382
379 #define DEFINE_SUB_CODESYS(op_sys, op_sys_abbr, Type) do { \ 383 #define DEFINE_SUB_CODESYS(op_sys, op_sys_abbr, Type) do { \
380 strcpy (codesys_name + len, "-" op_sys); \ 384 strcpy (codesys_name + len, "-" op_sys); \
381 strcpy (codesys_mnemonic + mlen, op_sys_abbr); \ 385 if (mlen != -1) \
386 strcpy (codesys_mnemonic + mlen, op_sys_abbr); \
382 codesys_name_sym = intern (codesys_name); \ 387 codesys_name_sym = intern (codesys_name); \
383 sub_codesys_obj = Fcopy_coding_system (codesys_obj, codesys_name_sym); \ 388 sub_codesys_obj = Fcopy_coding_system (codesys_obj, codesys_name_sym); \
384 XCODING_SYSTEM_EOL_TYPE (sub_codesys_obj) = Type; \ 389 XCODING_SYSTEM_EOL_TYPE (sub_codesys_obj) = Type; \
385 XCODING_SYSTEM_MNEMONIC(sub_codesys_obj) = build_string(codesys_mnemonic); \ 390 if (mlen != -1) \
391 XCODING_SYSTEM_MNEMONIC(sub_codesys_obj) = \
392 build_string(codesys_mnemonic); \
386 CODING_SYSTEM_##Type (codesys) = sub_codesys_obj; \ 393 CODING_SYSTEM_##Type (codesys) = sub_codesys_obj; \
387 } while (0) 394 } while (0)
388 395
389 DEFINE_SUB_CODESYS("unix", "", EOL_LF); 396 DEFINE_SUB_CODESYS("unix", "", EOL_LF);
390 DEFINE_SUB_CODESYS("dos", "(T)", EOL_CRLF); 397 DEFINE_SUB_CODESYS("dos", "(T)", EOL_CRLF);
514 CODING_SYSTEM_EOL_TYPE (codesys) = EOL_AUTODETECT; 521 CODING_SYSTEM_EOL_TYPE (codesys) = EOL_AUTODETECT;
515 CODING_SYSTEM_EOL_CRLF (codesys) = Qnil; 522 CODING_SYSTEM_EOL_CRLF (codesys) = Qnil;
516 CODING_SYSTEM_EOL_CR (codesys) = Qnil; 523 CODING_SYSTEM_EOL_CR (codesys) = Qnil;
517 CODING_SYSTEM_EOL_LF (codesys) = Qnil; 524 CODING_SYSTEM_EOL_LF (codesys) = Qnil;
518 CODING_SYSTEM_TYPE (codesys) = type; 525 CODING_SYSTEM_TYPE (codesys) = type;
526 CODING_SYSTEM_MNEMONIC (codesys) = Qnil;
519 #ifdef MULE 527 #ifdef MULE
520 if (type == CODESYS_ISO2022) 528 if (type == CODESYS_ISO2022)
521 { 529 {
522 int i; 530 int i;
523 for (i = 0; i < 4; i++) 531 for (i = 0; i < 4; i++)
4716 defsymbol (&Qctext, "ctext"); 4724 defsymbol (&Qctext, "ctext");
4717 defsymbol (&coding_category_symbol[CODING_CATEGORY_SHIFT_JIS], 4725 defsymbol (&coding_category_symbol[CODING_CATEGORY_SHIFT_JIS],
4718 "shift-jis"); 4726 "shift-jis");
4719 defsymbol (&coding_category_symbol[CODING_CATEGORY_BIG5], 4727 defsymbol (&coding_category_symbol[CODING_CATEGORY_BIG5],
4720 "big5"); 4728 "big5");
4721 #endif /* MULE */
4722 defsymbol (&coding_category_symbol[CODING_CATEGORY_ISO_7], 4729 defsymbol (&coding_category_symbol[CODING_CATEGORY_ISO_7],
4723 "iso-7"); 4730 "iso-7");
4724 defsymbol (&coding_category_symbol[CODING_CATEGORY_ISO_8_DESIGNATE], 4731 defsymbol (&coding_category_symbol[CODING_CATEGORY_ISO_8_DESIGNATE],
4725 "iso-8-designate"); 4732 "iso-8-designate");
4726 defsymbol (&coding_category_symbol[CODING_CATEGORY_ISO_8_1], 4733 defsymbol (&coding_category_symbol[CODING_CATEGORY_ISO_8_1],
4727 "iso-8-1"); 4734 "iso-8-1");
4728 defsymbol (&coding_category_symbol[CODING_CATEGORY_ISO_8_2], 4735 defsymbol (&coding_category_symbol[CODING_CATEGORY_ISO_8_2],
4729 "iso-8-2"); 4736 "iso-8-2");
4730 defsymbol (&coding_category_symbol[CODING_CATEGORY_ISO_LOCK_SHIFT], 4737 defsymbol (&coding_category_symbol[CODING_CATEGORY_ISO_LOCK_SHIFT],
4731 "iso-lock-shift"); 4738 "iso-lock-shift");
4739 #endif /* MULE */
4732 defsymbol (&coding_category_symbol[CODING_CATEGORY_NO_CONVERSION], 4740 defsymbol (&coding_category_symbol[CODING_CATEGORY_NO_CONVERSION],
4733 "no-conversion"); 4741 "no-conversion");
4734 } 4742 }
4735 4743
4736 void 4744 void