aboutsummaryrefslogtreecommitdiffstats
path: root/file.c
diff options
context:
space:
mode:
authorAmbrose Li <ambrose.li@gmail.com>2020-08-24 02:20:43 +0000
committerAmbrose Li <ambrose.li@gmail.com>2020-08-24 02:20:43 +0000
commit9f18e67a9bb5ff0387f76e5a2870b49558f868ad (patch)
treefeb45c9c4e518c0ab784b82b25b6ea85158e0455 /file.c
parentUpdate ChangeLog (diff)
downloadw3m-9f18e67a9bb5ff0387f76e5a2870b49558f868ad.tar.gz
w3m-9f18e67a9bb5ff0387f76e5a2870b49558f868ad.zip
Cleaned version of 20200823_q branch. Changes the behaviour of the q tag (when m17n and Unicode are configured) to use "smart" quotes if the display charset can handle them. Falls back to old behaviour (ASCII quotes with left/right quote semantics for 6/0 and 2/6) if display charset is us-ascii.
Also changes the behaviour of conv_entity() to convert left/right quotes and some dashes because named entities are needed for the new code for the q tag.
Diffstat (limited to 'file.c')
-rw-r--r--file.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/file.c b/file.c
index c0fc044..cf7a931 100644
--- a/file.c
+++ b/file.c
@@ -4487,9 +4487,27 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env)
HTMLlineproc1("</b>", h_env);
return 1;
case HTML_Q:
+#ifdef USE_M17N
+#ifdef USE_UNICODE
+ if (DisplayCharset != WC_CES_US_ASCII) {
+ HTMLlineproc1((obuf->q_level & 1 ? "&ldquo;": "&lsquo;"), h_env);
+ obuf->q_level += 1;
+ }
+ else
+#endif
+#endif
HTMLlineproc1("`", h_env);
return 1;
case HTML_N_Q:
+#ifdef USE_M17N
+#ifdef USE_UNICODE
+ if (DisplayCharset != WC_CES_US_ASCII) {
+ obuf->q_level -= 1;
+ HTMLlineproc1((obuf->q_level & 1 ? "&rdquo;": "&rsquo;"), h_env);
+ }
+ else
+#endif
+#endif
HTMLlineproc1("'", h_env);
return 1;
case HTML_FIGURE: