From 9f18e67a9bb5ff0387f76e5a2870b49558f868ad Mon Sep 17 00:00:00 2001 From: Ambrose Li Date: Sun, 23 Aug 2020 22:20:43 -0400 Subject: 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. --- file.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'file.c') 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("", h_env); return 1; case HTML_Q: +#ifdef USE_M17N +#ifdef USE_UNICODE + if (DisplayCharset != WC_CES_US_ASCII) { + HTMLlineproc1((obuf->q_level & 1 ? "“": "‘"), 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 ? "”": "’"), h_env); + } + else +#endif +#endif HTMLlineproc1("'", h_env); return 1; case HTML_FIGURE: -- cgit v1.2.3