# HG changeset patch # User Aidan Kehoe # Date 1254311301 -3600 # Node ID 6dfca4f26f53a7394eb293193788befd8179a010 # Parent eb1a409c317bf789ab40c9ccb13aba7fe274353e Register any CCL programs used by fixed-width coding-systems. src/ChangeLog addition: 2009-09-30 Aidan Kehoe * mule-coding.c (fixed_width_putprop): Register any CCL programs, avoiding crashes described by Robert Delius Royar. Though it's unclear why, I'll try to investigate once I'm on a 32-bit Unix machine regularly again. diff -r eb1a409c317b -r 6dfca4f26f53 src/ChangeLog --- a/src/ChangeLog Mon Sep 28 18:04:07 2009 +0200 +++ b/src/ChangeLog Wed Sep 30 12:48:21 2009 +0100 @@ -1,3 +1,10 @@ +2009-09-30 Aidan Kehoe + + * mule-coding.c (fixed_width_putprop): + Register any CCL programs, avoiding crashes described by Robert + Delius Royar. Though it's unclear why, I'll try to investigate + once I'm on a 32-bit Unix machine regularly again. + 2009-09-23 Stephen Turnbull * glyphs-eimage.c (png_instantiate): diff -r eb1a409c317b -r 6dfca4f26f53 src/mule-coding.c --- a/src/mule-coding.c Mon Sep 28 18:04:07 2009 +0200 +++ b/src/mule-coding.c Wed Sep 30 12:48:21 2009 +0100 @@ -3538,6 +3538,17 @@ if (EQ (key, Qdecode) || EQ (key, Qencode)) { + Lisp_Object sym; + + CHECK_VECTOR (value); + + sym = Fintern (concat3 (XSYMBOL_NAME (XCODING_SYSTEM_NAME (codesys)), + build_string ("-"), + XSYMBOL_NAME (key)), Qnil); + + Fregister_ccl_program (sym, value); + + /* Check if the CCL infrastructure thinks this is a sane CCL program: */ if (setup_ccl_program (&test_ccl, value) < 0) @@ -3547,11 +3558,11 @@ if (EQ (key, Qdecode)) { - XCODING_SYSTEM_FIXED_WIDTH_DECODE (codesys) = value; + XCODING_SYSTEM_FIXED_WIDTH_DECODE (codesys) = sym; } else { - XCODING_SYSTEM_FIXED_WIDTH_ENCODE (codesys) = value; + XCODING_SYSTEM_FIXED_WIDTH_ENCODE (codesys) = sym; } } else if (EQ (key, Qfrom_unicode))