annotate lib-src/ad2c @ 4745:0c54de4c4b9d

Resolve the unregistered-CCL-programs-get-garbage-collected problem correctly src/ChangeLog addition: 2009-11-15 Aidan Kehoe <kehoea@parhasard.net> * mule-ccl.c (CCL_CALL_FOR_MAP_INSTRUCTION): Assert that we always have a symbol in this macro. (setup_ccl_program): Ensure we're not allocating unreachable memory in this function; all symbols must have been resolved in a given CCL program before this function is called. (find_ccl_program): New function, return a CCL program with all its symbols resolved if it is valid (possibly allocating memory), Qnil otherwise. (get_ccl_program): New function, exported to other files; call find_ccl_program, and error if it gives nil. (Fccl_program_p): Call find_ccl_program from this function instead of implementing the bulk of it here. (Fccl_execute): Call get_ccl_program instead of implementing the bulk of it here. (Fccl_execute_on_string): Ditto. * mule-ccl.h (Vfont_ccl_encoder_alist): Remove this declaration, it hasn't been used in years. (get_ccl_program): Declare this function. * mule-coding.c (ccl_putprop): Use get_ccl_program on any specified encode or decode CCL program property. (fixed_width_putprop): Ditto. * mule-charset.c (Fmake_charset): Use get_ccl_program on any specified ccl-program. (Fset_charset_ccl_program): Ditto.
author Aidan Kehoe <kehoea@parhasard.net>
date Sun, 15 Nov 2009 16:53:14 +0000
parents 376386a54a3c
children ac2d302a0011 26a007fa2f4c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1 #!/bin/sh
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2 #
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3 # ad2c : Convert app-defaults file to C strings decls.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
4 #
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
5 # George Ferguson, ferguson@cs.rcohester.edu, 12 Nov 1990.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
6 # 19 Mar 1991 : gf
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
7 # Made it self-contained.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
8 # 6 Jan 1992 : mycroft@gnu.ai.mit.edu (Charles Hannum)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
9 # Removed use of "-n" and ":read" label since Gnu and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
10 # IBM sed print pattern space on "n" command. Still works
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
11 # with Sun sed, of course.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
12 # 7 Jan 1992: matthew@sunpix.East.Sun.COM (Matthew Stier)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
13 # Escape quotes after escaping backslashes.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
14 #
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
15 # Synched up with: Not in FSF.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
16
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
17 sed '
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
18 /^!/d
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
19 /^$/d
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
20 s/\\/\\\\/g
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
21 s/\\$//g
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
22 s/"/\\"/g
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
23 s/^/"/
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
24 : test
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
25 /\\$/b slash
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
26 s/$/",/
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
27 p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
28 d
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
29 : slash
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
30 n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
31 /^!/d
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
32 /^$/d
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
33 s/"/\\"/g
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
34 s/\\\\/\\/g
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
35 s/\\n/\\\\n/g
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
36 s/\\t/\\\\t/g
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
37 s/\\f/\\\\f/g
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
38 s/\\b/\\\\b/g
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
39 b test' "$@"