Mercurial > hg > xemacs-beta
annotate lib-src/make-msgfile.c @ 4953:304aebb79cd3
function renamings to track names of char typedefs
-------------------- ChangeLog entries follow: --------------------
man/ChangeLog addition:
2010-01-27 Ben Wing <ben@xemacs.org>
* internals/internals.texi (lrecords):
* internals/internals.texi (The DFC API):
* internals/internals.texi (Conversion to and from External Data):
* internals/internals.texi (Mule-izing Code):
* internals/internals.texi (Pervasive changes throughout XEmacs sources):
* internals/internals.texi (Ben's README):
* internals/internals.texi (Future Work -- Localized Text/Messages):
* emodules.texi (Defining Variables):
Rename:
write_c_string -> write_cistring
build_intstring -> build_istring
build_string -> build_cistring
build_ext_string -> build_extstring
make_ext_string -> make_extstring
buffer_insert_c_string -> buffer_insert_ascstring
intern_int -> intern_istring
See comment in src/ChangeLog about this.
modules/ChangeLog addition:
2010-01-27 Ben Wing <ben@xemacs.org>
* postgresql/postgresql.c (print_pgconn):
* postgresql/postgresql.c (print_pgresult):
* postgresql/postgresql.c (Fpq_conn_defaults):
* postgresql/postgresql.c (Fpq_pgconn):
* postgresql/postgresql.c (Fpq_res_status):
* postgresql/postgresql.c (Fpq_result_error_message):
* postgresql/postgresql.c (Fpq_fname):
* postgresql/postgresql.c (Fpq_get_value):
* postgresql/postgresql.c (Fpq_cmd_status):
* postgresql/postgresql.c (Fpq_cmd_tuples):
* postgresql/postgresql.c (Fpq_notifies):
* postgresql/postgresql.c (Fpq_get_line):
* postgresql/postgresql.c (Fpq_get_line_async):
* postgresql/postgresql.c (FROB):
* postgresql/postgresql.c (init_postgresql_from_environment):
* ldap/eldap.c:
* ldap/eldap.c (Fldap_open):
* ldap/eldap.c (Fldap_search_basic):
* canna/canna_api.c:
* canna/canna_api.c (make_euc_string):
Rename:
write_c_string -> write_cistring
build_intstring -> build_istring
build_string -> build_cistring
build_ext_string -> build_extstring
make_ext_string -> make_extstring
buffer_insert_c_string -> buffer_insert_ascstring
intern_int -> intern_istring
See comment in src/ChangeLog about this.
src/ChangeLog addition:
2010-01-27 Ben Wing <ben@xemacs.org>
* .gdbinit.in.in:
* README:
* abbrev.c (write_abbrev):
* abbrev.c (describe_abbrev):
* alloc.c (make_extstring):
* alloc.c (build_istring):
* alloc.c (build_cistring):
* alloc.c (build_ascstring):
* alloc.c (build_extstring):
* alloc.c (build_msg_istring):
* alloc.c (build_defer_istring):
* buffer.c (Fgenerate_new_buffer_name):
* buffer.c (init_buffer_2):
* console-tty.c (tty_init_console):
* console-x.c (get_display_arg_connection):
* console-x.c (x_perhaps_init_unseen_key_defaults):
* database.c (dbm_map):
* database.c (dbm_get):
* database.c (berkdb_get):
* database.c (berkdb_map):
* device-gtk.c (FROB_PIXMAP):
* device-gtk.c (Fgtk_style_info):
* device-msw.c (msprinter_default_printer):
* device-msw.c (sync_printer_with_devmode):
* device-x.c (coding_system_of_xrm_database):
* device-x.c (x_init_device):
* device-x.c (signal_if_x_error):
* device-x.c (Fx_get_resource):
* device-x.c (Fx_server_vendor):
* device-x.c (Fx_get_font_path):
* dialog-x.c (maybe_run_dbox_text_callback):
* doc.c (extract_object_file_name):
* doc.c (unparesseuxify_doc_string):
* doc.c (get_doc_string):
* doc.c (get_object_file_name):
* doc.c (Fdocumentation):
* doc.c (Fsnarf_documentation):
* doc.c (Fsubstitute_command_keys):
* editfns.c (init_editfns):
* editfns.c (Ftemp_directory):
* editfns.c (Fuser_login_name):
* editfns.c (Fuser_real_login_name):
* editfns.c (Fuser_home_directory):
* editfns.c (Fformat_time_string):
* editfns.c (Fcurrent_time_string):
* editfns.c (Fcurrent_time_zone):
* emacs.c:
* emacs.c (main_1):
* emodules.c (Flist_modules):
* emodules.c (emodules_load):
* emodules.c (emodules_doc_sym):
* emodules.c (vars_of_module):
* event-Xt.c (x_has_keysym):
* event-gtk.c (emacs_gtk_format_magic_event):
* event-gtk.c (dragndrop_data_received):
* event-gtk.c (gtk_reset_key_mapping):
* event-msw.c (mswindows_dde_callback):
* event-msw.c (mswindows_wnd_proc):
* faces.c (complex_vars_of_faces):
* file-coding.c (find_coding_system):
* file-coding.c (setup_eol_coding_systems):
* file-coding.c (make_coding_system_1):
* file-coding.c (snarf_coding_system):
* fileio.c:
* fileio.c (lisp_strerror):
* fileio.c (Ffile_name_directory):
* fileio.c (Ffile_name_as_directory):
* fileio.c (Fdirectory_file_name):
* fileio.c (if):
* fileio.c (Ffile_symlink_p):
* fileio.c (Fencrypt_string):
* fileio.c (Fdecrypt_string):
* filelock.c (lock_file):
* filelock.c (Ffile_locked_p):
* floatfns.c (matherr):
* font-mgr.c (build_fcapi_string):
* font-mgr.c (make_xlfd_font_regexp):
* frame-msw.c (mswindows_window_id):
* frame-msw.c (mswindows_frame_property):
* frame-x.c:
* frame-x.c (color_to_string):
* frame-x.c (maybe_set_frame_title_format):
* frame-x.c (x_cde_transfer_callback):
* frame-x.c (Fx_window_id):
* glade.c (connector):
* glade.c (Fglade_xml_textdomain):
* glade.c (syms_of_glade):
* glyphs-eimage.c (jpeg_instantiate):
* glyphs-eimage.c (png_instantiate):
* glyphs-eimage.c (tiff_instantiate):
* glyphs-gtk.c (font_instantiate):
* glyphs-gtk.c (BUILD_GLYPH_INST):
* glyphs-x.c (x_locate_pixmap_file):
* glyphs-x.c (font_instantiate):
* glyphs-x.c (x_widget_property):
* glyphs-x.c (BUILD_GLYPH_INST):
* glyphs.c (print_image_instance):
* glyphs.c (bitmap_to_lisp_data):
* glyphs.c (pixmap_to_lisp_data):
* gpmevent.c (turn_off_gpm):
* gpmevent.c (Fgpm_enabled_p):
* gpmevent.c (Fgpm_enable):
* gtk-glue.c (__make_string_mapper):
* gtk-glue.c (xemacs_gtklist_to_list):
* gtk-xemacs.c (FROB_FACE):
* gtk-xemacs.c (xemacs_gtk_convert_color):
* hpplay.c (player_error_internal):
* hpplay.c (myHandler):
* insdel.c (buffer_insert_ascstring_1):
* insdel.h:
* insdel.h (buffer_insert_ascstring):
* intl.c (Fcurrent_locale):
* intl.c (Fset_current_locale):
* keymap.c (make_key_description):
* keymap.c (Ftext_char_description):
* keymap.c (describe_command):
* keymap.c (describe_map):
* lisp.h:
* lread.c:
* lread.c (locate_file_in_directory_mapper):
* lread.c (locate_file_construct_suffixed_files_mapper):
* mule-charset.c (Fmake_charset):
* nt.c (Fmswindows_short_file_name):
* nt.c (Fmswindows_long_file_name):
* objects-gtk.c (__get_gtk_font_truename):
* objects-gtk.c (__gtk_font_list_internal):
* objects-msw.c (font_enum_callback_2):
* objects-msw.c (create_hfont_from_font_spec):
* objects-msw.c (mswindows_font_list):
* objects-msw.c (mswindows_font_spec_matches_charset_stage_2):
* objects-tty.c (tty_initialize_font_instance):
* objects-x.c (x_font_truename):
* objects-x.c (x_font_instance_truename):
* objects-x.c (x_font_instance_properties):
* objects-x.c (x_font_list):
* print.c (write_cistring):
* print.c (print_vector_internal):
* print.c (print_cons):
* process-nt.c (nt_canonicalize_host_name):
* process-unix.c (unix_create_process):
* process-unix.c (unix_canonicalize_host_name):
* process.c (status_message):
* process.c (status_notify):
* process.c (init_xemacs_process):
* process.c (syms_of_process):
* redisplay-tty.c (term_get_fkeys_1):
* redisplay-tty.c (CONDITIONAL_REASSIGN):
* search.c (compile_pattern_1):
* select-common.h (selection_data_to_lisp_data):
* select-gtk.c (atom_to_symbol):
* select-gtk.c (PROCESSING_GTK_CODE):
* select-msw.c (mswindows_get_foreign_selection):
* select-x.c (x_atom_to_symbol):
* select-x.c (Fx_get_cutbuffer_internal):
* symbols.c (intern_istring):
* symbols.c (intern):
* symbols.c (intern_converting_underscores_to_dashes):
* symbols.c (Fintern):
* sysdep.c (init_system_name):
* sysdll.c (dll_error):
* sysdll.c (dll_open):
* syswindows.h:
* syswindows.h (build_tstr_string):
* tests.c (DFC_CHECK_LENGTH):
* tests.c (DFC_CHECK_CONTENT):
* tests.c (DFC_RESULT_PASS):
* tests.c (Ftest_data_format_conversion):
* text.c:
* text.c (new_dfc_convert_now_damn_it):
* text.h:
* text.h (build_wext_string):
* tooltalk.c (tt_build_c_string):
* tooltalk.c (Ftooltalk_default_procid):
* tooltalk.c (Ftooltalk_default_session):
* tooltalk.c (init_tooltalk):
* ui-byhand.c (Fgtk_clist_get_text):
* ui-byhand.c (Fgtk_clist_get_pixtext):
* ui-byhand.c (Fgtk_label_get):
* ui-byhand.c (Fgtk_notebook_query_tab_label_packing):
* ui-gtk.c (emacs_gtk_object_printer):
* ui-gtk.c (emacs_gtk_boxed_printer):
* ui-gtk.c (gtk_type_to_lisp):
* ui-gtk.c (symbol_to_enum):
* ui-gtk.c (enum_to_symbol):
* unexaix.c (report_error):
* unexaix.c (ERROR0):
* unexec.c (report_error):
* unexec.c (ERROR0):
* unicode.c (unicode_to_ichar):
* win32.c (tstr_to_local_file_format):
* win32.c (Fmswindows_cygwin_to_win32_path):
* win32.c (struct read_link_hash):
* xemacs.def.in.in:
Rename:
write_c_string -> write_cistring
build_intstring -> build_istring
build_string -> build_cistring
build_ext_string -> build_extstring
make_ext_string -> make_extstring
buffer_insert_c_string -> buffer_insert_ascstring
intern_int -> intern_istring
These functions have been renamed so that the naming harmonizes
with the typedefs for strings: `cistring' along with CIbyte *,
`istring' along with Ibyte *, `extstring' along with Extbyte *,
`ascstring' along with Ascbyte *.
Also make buffer_insert_ascstring take Ascbyte * and assert
that its argument is ASCII.
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Wed, 27 Jan 2010 00:35:36 -0600 |
parents | ecf1ebac70d8 |
children |
rev | line source |
---|---|
2367 | 1 /* #### Old code! Replaced with make-msgfile.lex. */ |
428 | 2 |
3 | |
4 /* Scan specified C and Lisp files, extracting the following messages: | |
5 | |
6 C files: | |
7 GETTEXT (...) | |
8 DEFER_GETTEXT (...) | |
9 DEFUN interactive prompts | |
10 Lisp files: | |
11 (gettext ...) | |
12 (dgettext "domain-name" ...) | |
13 (defer-gettext ...) | |
14 (interactive ...) | |
15 | |
16 The arguments given to this program are all the C and Lisp source files | |
613 | 17 of XEmacs. .el and .c files are allowed. There is no support for .elc |
428 | 18 files at this time, but they may be specified; the corresponding .el file |
19 will be used. Similarly, .o files can also be specified, and the corresponding | |
20 .c file will be used. This helps the makefile pass the correct list of files. | |
21 | |
22 The results, which go to standard output or to a file specified with -a or -o | |
23 (-a to append, -o to start from nothing), are quoted strings wrapped in | |
24 gettext(...). The results can be passed to xgettext to produce a .po message | |
25 file. | |
26 */ | |
27 | |
28 #include <stdio.h> | |
29 #include <string.h> | |
30 | |
31 #define LINESIZE 256 | |
32 #define GET_LINE fgets (line, LINESIZE, infile) | |
33 #define CHECK_EOL(p) if (*(p) == '\0') (p) = GET_LINE | |
34 #define SKIP_BLANKS(p) while ((*p) == ' ' || (*p) == '\t') (p)++ | |
35 | |
36 enum filetype { C_FILE, LISP_FILE, INVALID_FILE }; | |
37 /* some brain-dead headers define this ... */ | |
38 #undef FALSE | |
39 #undef TRUE | |
40 enum boolean { FALSE, TRUE }; | |
41 | |
42 FILE *infile; | |
43 FILE *outfile; | |
44 char line[LINESIZE]; | |
45 | |
46 | |
47 void scan_file (char *filename); | |
48 void process_C_file (void); | |
49 void process_Lisp_file (void); | |
50 char *copy_up_to_paren (register char *p); | |
51 char *copy_quoted_string (register char *p); | |
52 enum boolean no_interactive_prompt (register char *q); | |
53 char *skip_blanks (register char *p); | |
54 | |
55 | |
56 main (int argc, char *argv[]) | |
57 { | |
58 register int i; | |
59 | |
60 outfile = stdout; | |
61 | |
62 /* If first two args are -o FILE, output to FILE. */ | |
63 i = 1; | |
64 if (argc > i + 1 && strcmp (argv[i], "-o") == 0) { | |
65 outfile = fopen (argv[++i], "w"); | |
66 ++i; | |
67 } | |
68 /* ...Or if args are -a FILE, append to FILE. */ | |
69 if (argc > i + 1 && strcmp (argv[i], "-a") == 0) { | |
70 outfile = fopen (argv[++i], "a"); | |
71 ++i; | |
72 } | |
73 if (!outfile) { | |
74 fprintf (stderr, "Unable to open output file %s\n", argv[--i]); | |
75 return; | |
76 } | |
77 | |
78 for (; i < argc; i++) | |
79 scan_file (argv[i]); | |
80 | |
81 return 0; | |
82 } | |
83 | |
84 | |
85 void scan_file (char *filename) | |
86 { | |
87 enum filetype type = INVALID_FILE; | |
88 register char *p = filename + strlen (filename); | |
89 | |
90 if (strcmp (p - 4, ".elc") == 0) { | |
91 *--p = '\0'; /* Use .el file instead */ | |
92 type = LISP_FILE; | |
93 } else if (strcmp (p - 3, ".el") == 0) | |
94 type = LISP_FILE; | |
95 else if (strcmp (p - 2, ".o") == 0) { | |
96 *--p = 'c'; /* Use .c file instead */ | |
97 type = C_FILE; | |
98 } else if (strcmp (p - 2, ".c") == 0) | |
99 type = C_FILE; | |
100 | |
101 if (type == INVALID_FILE) { | |
102 fprintf (stderr, "File %s being ignored\n", filename); | |
103 return; | |
104 } | |
105 infile = fopen (filename, "r"); | |
106 if (!infile) { | |
107 fprintf (stderr, "Unable to open input file %s\n", filename); | |
108 return; | |
109 } | |
110 | |
111 fprintf (outfile, "/* %s */\n", filename); | |
112 if (type == C_FILE) | |
113 process_C_file (); | |
114 else | |
115 process_Lisp_file (); | |
116 fputc ('\n', outfile); | |
442 | 117 |
428 | 118 fclose (infile); |
119 } | |
120 | |
121 | |
122 void process_C_file (void) | |
123 { | |
124 register char *p; | |
125 char *gettext, *defun; | |
126 | |
127 while (p = GET_LINE) { | |
128 gettext = strstr (p, "GETTEXT"); | |
129 defun = strstr (p, "DEFUN"); | |
130 if (gettext || defun) { | |
131 if (gettext) { | |
132 p = gettext; | |
133 p += 7; /* Skip over "GETTEXT" */ | |
134 } | |
135 else if (defun) { | |
136 p = defun; | |
137 p += 5; /* Skip over "DEFUN" */ | |
138 } | |
139 | |
140 p = skip_blanks (p); | |
141 if (*p++ != '(') | |
142 continue; | |
143 | |
144 if (defun) { | |
145 register int i; | |
146 | |
147 for (i = 0; i < 5; i++) /* Skip over commas to doc string */ | |
148 while (*p++ != ',') | |
149 CHECK_EOL (p); | |
150 if (*p == '\n') | |
151 p = GET_LINE; | |
152 } | |
153 | |
154 p = skip_blanks (p); | |
155 if (*p != '\"') /* Make sure there is a quoted string */ | |
156 continue; | |
157 | |
158 if (defun && no_interactive_prompt (p)) | |
159 continue; | |
160 | |
161 fprintf (outfile, "gettext("); | |
162 if (gettext) | |
163 p = copy_up_to_paren (p); | |
164 else | |
165 p = copy_quoted_string (p); | |
166 fprintf (outfile, ")\n"); | |
167 } | |
168 } | |
169 } | |
170 | |
171 | |
172 void process_Lisp_file (void) | |
173 { | |
174 register char *p; | |
175 char *gettext, *interactive; | |
176 enum boolean dgettext = FALSE; | |
177 | |
178 while (p = GET_LINE) { | |
179 gettext = strstr (p, "gettext"); | |
180 interactive = strstr (p, "(interactive"); | |
181 if (gettext || interactive) { | |
182 if (!interactive) | |
183 p = gettext; | |
184 else if (!gettext) | |
185 p = interactive; | |
186 else if (gettext < interactive) { | |
187 p = gettext; | |
188 interactive = NULL; | |
189 } else { | |
190 p = interactive; | |
191 gettext = NULL; | |
192 } | |
193 | |
194 if (gettext) { | |
195 if (p > line && *(p-1) == 'd') | |
196 dgettext = TRUE; | |
197 p += 7; /* Skip over "gettext" */ | |
198 } else | |
199 p += 12; /* Skip over "(interactive" */ | |
200 | |
201 p = skip_blanks (p); | |
202 if (*p != '\"') /* Make sure there is a quoted string */ | |
203 continue; | |
204 | |
205 if (dgettext) { /* Skip first quoted string (domain name) */ | |
206 while (*++p != '"') | |
207 ; /* null statement */ | |
208 ++p; | |
209 p = skip_blanks (p); | |
210 if (*p != '\"') /* Check for second quoted string (message) */ | |
211 continue; | |
212 } | |
213 | |
214 if (interactive && no_interactive_prompt (p)) | |
215 continue; | |
216 | |
217 fprintf (outfile, "gettext("); | |
218 p = copy_up_to_paren (p); | |
219 fprintf (outfile, ")\n"); | |
220 } | |
221 } | |
222 } | |
223 | |
224 | |
225 /* Assuming p points to some character beyond an opening parenthesis, copy | |
226 everything to outfile up to but not including the closing parenthesis. | |
227 */ | |
228 char *copy_up_to_paren (register char *p) | |
229 { | |
230 for (;;) { | |
231 SKIP_BLANKS (p); /* We don't call skip_blanks() in order to */ | |
232 CHECK_EOL (p); /* preserve blanks at the beginning of the line */ | |
233 if (*p == ')') | |
234 break; | |
235 | |
236 if (*p == '\"') | |
237 p = copy_quoted_string (p); | |
238 else | |
239 fputc (*p++, outfile); | |
240 } | |
241 return p; | |
242 } | |
243 | |
244 | |
245 /* Assuming p points to a quote character, copy the quoted string to outfile. | |
246 */ | |
247 char *copy_quoted_string (register char *p) | |
248 { | |
249 do { | |
250 if (*p == '\\') | |
251 fputc (*p++, outfile); | |
252 fputc (*p++, outfile); | |
253 CHECK_EOL (p); | |
254 } while (*p != '\"'); | |
255 | |
256 fputc (*p++, outfile); | |
257 return p; | |
258 } | |
259 | |
260 | |
261 /* Return TRUE if the interactive specification consists only | |
262 of code letters and no prompt. | |
263 */ | |
264 enum boolean no_interactive_prompt (register char *q) | |
265 { | |
266 while (++q, *q == '*' || *q == '@') | |
267 ; /* null statement */ | |
268 if (*q == '\"') | |
269 return TRUE; | |
270 skip_code_letter: | |
271 if (*++q == '\"') | |
272 return TRUE; | |
273 if (*q == '\\' && *++q == 'n') { | |
274 ++q; | |
275 goto skip_code_letter; | |
276 } | |
277 return FALSE; | |
278 } | |
279 | |
280 | |
281 char *skip_blanks (register char *p) | |
282 { | |
283 while (*p == ' ' || *p == '\t' || *p == '\n') { | |
284 p++; | |
285 CHECK_EOL (p); | |
286 } | |
287 return p; | |
288 } |