Mercurial > hg > xemacs-beta
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 |