[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[7142] parsetexi encodings
From: |
Gavin D. Smith |
Subject: |
[7142] parsetexi encodings |
Date: |
Thu, 28 Apr 2016 19:37:42 +0000 |
Revision: 7142
http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=7142
Author: gavin
Date: 2016-04-28 19:37:41 +0000 (Thu, 28 Apr 2016)
Log Message:
-----------
parsetexi encodings
Modified Paths:
--------------
trunk/tp/parsetexi/end_line.c
Modified: trunk/tp/parsetexi/end_line.c
===================================================================
--- trunk/tp/parsetexi/end_line.c 2016-04-27 21:09:00 UTC (rev 7141)
+++ trunk/tp/parsetexi/end_line.c 2016-04-28 19:37:41 UTC (rev 7142)
@@ -1337,17 +1337,55 @@
}
else if (current->cmd == CM_documentencoding) // 3190
{
+ int i; char *p;
// TODO: ignore_global_commands
/* See tp/Texinfo/Encoding.pm (whole file) */
- // TODO: Canonicalize encoding
- /* 'us-ascii', 'utf-8', 'iso-8859-1',
- 'iso-8859-15','iso-8859-2','koi8-r', 'koi8-u' */
+ text = strdup (text);
+ for (p = text; *p; p++)
+ *p = tolower (*p);
+ add_extra_string (current, "input_encoding_name", text); // 3199
- add_extra_string (current, "input_encoding_name",
- text); // 3199
- add_extra_string (current, "input_perl_encoding", text);
+ {
+ static char *canonical_encodings[] = {
+ "us-ascii", "utf-8", "iso-8859-1",
+ "iso-8859-15","iso-8859-2","koi8-r", "koi8-u",
+ 0
+ };
+ for (i = 0; (canonical_encodings[i]); i++)
+ {
+ if (!strcasecmp (text, canonical_encodings[i]))
+ break;
+ }
+ if (!(canonical_encodings[i]))
+ {
+ command_warn (current, "encoding `%s' is not a "
+ "canonical texinfo encoding");
+ }
+ }
+
+ {
+ struct encoding_map {
+ char *from; char *to;
+ };
+ static struct encoding_map map[] = {
+ "utf-8", "utf-8-strict"
+ };
+ char *perl_encoding = text;
+ for (i = 0; i < sizeof map / sizeof *map; i++)
+ {
+ if (!strcasecmp (text, map[i].from))
+ {
+ perl_encoding = map[i].to;
+ break;
+ }
+ }
+ add_extra_string (current, "input_perl_encoding",
+ perl_encoding);
+ }
+
+
global_info.input_encoding_name = text; // 3210
// TODO: Need to convert input in input.c from this encoding.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [7142] parsetexi encodings,
Gavin D. Smith <=