From 178d4659feafd9bbc767b854272c63b43e60b739 Mon Sep 17 00:00:00 2001 From: Michal Moskal Date: Tue, 6 Aug 2002 11:21:51 +0000 Subject: [PATCH] - outdated Changed files: gettext-dml.patch -> 1.4 --- gettext-dml.patch | 207 ---------------------------------------------- 1 file changed, 207 deletions(-) delete mode 100644 gettext-dml.patch diff --git a/gettext-dml.patch b/gettext-dml.patch deleted file mode 100644 index 46ef5dc..0000000 --- a/gettext-dml.patch +++ /dev/null @@ -1,207 +0,0 @@ -diff -ur gettext-0.10.35/src/xgettext.c gettext-0.10.35-dml/src/xgettext.c ---- gettext-0.10.35/src/xgettext.c Wed Apr 29 18:57:50 1998 -+++ gettext-0.10.35-dml/src/xgettext.c Sat Jan 13 00:40:22 2001 -@@ -711,6 +711,195 @@ - NULL, /* comment_special */ - }; - -+/* DML scanner */ -+struct dml_parser_state { -+ FILE *in; -+ char *filename; -+ int line; -+ int close; -+ -+ char *buf; -+ int buflen, bufpos; -+ int seen; -+ message_list_ty *mlp; -+}; -+ -+static void -+dml_open_file(ctx) -+ struct dml_parser_state *ctx; -+{ -+ size_t len1, len2; -+ int j; -+ const char *dir; -+ char *new_name; -+ -+ ctx->line = 1; -+ ctx->close = 1; -+ ctx->buf = NULL; -+ ctx->buflen = 0; -+ ctx->bufpos = 0; -+ -+ if (strcmp(ctx->filename, "-") == 0) { -+ ctx->filename = xstrdup(_("standard input")); -+ ctx->in = stdin; -+ ctx->close = 0; -+ return; -+ } -+ if (ctx->filename[0] == '/') { -+ ctx->in = fopen(ctx->filename, "r"); -+ if (ctx->in == 0) -+ error(EXIT_FAILURE, errno, _("\ -+error while opening \"%s\" for reading"), -+ ctx->filename); -+ ctx->filename = xstrdup(ctx->filename); -+ return; -+ } -+ -+ len2 = strlen(ctx->filename); -+ for (j = 0;; ++j) { -+ dir = dir_list_nth(j); -+ if (dir == NULL) -+ error(EXIT_FAILURE, ENOENT, _("\ -+error while opening \"%s\" for reading"), ctx->filename); -+ -+ if (dir[0] == '.' && dir[1] == '\0') -+ new_name = xstrdup(ctx->filename); -+ else { -+ len1 = strlen(dir); -+ new_name = xmalloc(len1 + len2 + 2); -+ stpcpy(stpcpy(stpcpy(new_name, dir), "/"), ctx->filename); -+ } -+ -+ ctx->in = fopen(new_name, "r"); -+ if (ctx->in != NULL) -+ break; -+ -+ if (errno != ENOENT) -+ error(EXIT_FAILURE, errno, _("\ -+error while opening \"%s\" for reading"), new_name); -+ free(new_name); -+ } -+ -+ ctx->filename = new_name; -+} -+ -+static void dml_remember_a_message(ctx) -+ struct dml_parser_state *ctx; -+{ -+ char *msgid; -+ message_ty *mp; -+ char *msgstr; -+ -+ msgid = ctx->buf; -+ -+ /* See whether we shall exclude this message. */ -+ if (exclude != NULL && message_list_search(exclude, msgid) != NULL) -+ return; -+ -+ /* See if we have seen this message before. */ -+ mp = message_list_search(ctx->mlp, msgid); -+ if (mp == NULL) { -+ static lex_pos_ty pos = { __FILE__, __LINE__ }; -+ -+ /* Allocate a new message and append the message to the list. */ -+ mp = message_alloc(xstrdup(msgid), NULL); -+ /* Do not free msgid. */ -+ message_list_append(ctx->mlp, mp); -+ -+ /* Construct the msgstr from the prefix and suffix, otherwise use the -+ empty string. */ -+ if (msgstr_prefix) { -+ msgstr = (char *) xmalloc(strlen(msgstr_prefix) -+ + strlen(msgid) -+ + strlen(msgstr_suffix) + -+ 1); -+ stpcpy(stpcpy -+ (stpcpy(msgstr, msgstr_prefix), msgid), -+ msgstr_suffix); -+ } else -+ msgstr = ""; -+ message_variant_append(mp, MESSAGE_DOMAIN_DEFAULT, msgstr, -+ strlen(msgstr) + 1, &pos); -+ -+ mp->is_c_format = no; -+ mp->do_wrap = yes; /* By default we wrap. Is it ok? */ -+ } -+ -+ /* Remember where we saw this msgid. */ -+ if (line_comment) -+ message_comment_filepos(mp, ctx->filename, ctx->line); -+} -+ -+/* Read a string until '}}' is found. */ -+static void -+dml_get_string(ctx) -+ struct dml_parser_state *ctx; -+{ -+ int c, last_brace = 0; -+ -+ ctx->seen = ctx->line; -+ ctx->bufpos = 0; -+ -+ for (;;) { -+ c = fgetc(ctx->in); -+ if (c == EOF) -+ error(EXIT_FAILURE, 0, _("%s:%d: unmatched {{"), -+ ctx->filename, ctx->seen); -+ if (c == '\n') -+ ctx->line++; -+ -+ if (c == '}') { -+ if (last_brace) -+ break; -+ last_brace = 1; -+ } else -+ last_brace = 0; -+ if (ctx->bufpos == ctx->buflen) { -+ if (ctx->buflen == 0) -+ ctx->buflen = 128; -+ ctx->buf = xrealloc(ctx->buf, ctx->buflen *= 2); -+ } -+ ctx->buf[ctx->bufpos++] = c; -+ } -+ -+ /* remove last } */ -+ ctx->buf[--ctx->bufpos] = 0; -+ dml_remember_a_message(ctx); -+} -+ -+/* We don't really bother scanning the shell syntax. -+ We just hunt for strings in {{ }} -+ */ -+static void -+scanner_dml(filename, mlp) -+ char *filename; -+ message_list_ty *mlp; -+{ -+ struct dml_parser_state ctx; -+ int c; -+ -+ ctx.filename = filename; -+ ctx.mlp = mlp; -+ dml_open_file(&ctx); -+ -+ for (;;) { -+ while ((c = fgetc(ctx.in)) != EOF) -+ if (c == '{' && -+ ((c = fgetc(ctx.in)) == EOF || c == '{')) -+ break; -+ else if (c == '\n') -+ ctx.line++; -+ -+ if (c == EOF) -+ break; -+ dml_get_string(&ctx); -+ } -+ -+ if (ctx.close) -+ fclose(ctx.in); -+ free(ctx.buf); -+ free(ctx.filename); -+} - - static void - read_exclusion_file (file_name) -@@ -1330,6 +1519,7 @@ - { "C", scanner_c, }, - { "C++", scanner_cxx, }, - { "PO", read_po_file, }, -+ { "DML", scanner_dml, }, - /* Here will follow more languages and their scanners: awk, perl, - etc... Make sure new scanners honor the --exlude-file option. */ - }; -- 2.44.0