From: Kristaps Dzonsons <kristaps@bsd.lv>
To: tech@mdocml.bsd.lv, jmc@kerhand.co.uk
Subject: [PATCH] TODO entries for `Ns' and `No' spacing.
Date: Thu, 30 Sep 2010 11:21:23 +0200 [thread overview]
Message-ID: <4CA45693.10809@bsd.lv> (raw)
[-- Attachment #1: Type: text/plain, Size: 663 bytes --]
Hi,
Can anybody Ok that this patch correctly handles the cases of `No' and
`Ns' with respect to spacing and without fallout? Cf. TODO items
- .No text No ) is "text )", not "text)"
see the terrible example
case word in [[(] pattern [| pattern] ... ) list ;; ] ... esac
in OpenBSD ksh(1)
- .It ${name Ns [ selector ] Ns }
should be "${name[selector]}" not "${name [selector]}"
This is parsed as
text("${name") text("[") Ns() text(selector)...
Opening punctuation should not fall out of .Ns.
see for example OpenBSD csh(1)
Note that the ellipsis suppresses whitespace because of the trailing
period. This is a new TODO.
Kristaps
[-- Attachment #2: patch.txt --]
[-- Type: text/plain, Size: 3305 bytes --]
? .TODO.swp
? config.h
? config.log
? csh.1
? foo.1
? foo.1.html
? foo.3
? gcc.1
? ksh.1
? mandoc
? mandoc.core
? patch.txt
? regress/output
Index: mdoc_macro.c
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/mdoc_macro.c,v
retrieving revision 1.94
diff -u -r1.94 mdoc_macro.c
--- mdoc_macro.c 26 Sep 2010 20:22:28 -0000 1.94
+++ mdoc_macro.c 30 Sep 2010 09:17:41 -0000
@@ -139,7 +139,7 @@
{ in_line_argn, MDOC_CALLABLE | MDOC_PARSED }, /* Fx */
{ in_line, MDOC_CALLABLE | MDOC_PARSED }, /* Ms */
{ in_line_argn, MDOC_CALLABLE | MDOC_PARSED }, /* No */
- { in_line_argn, MDOC_CALLABLE | MDOC_PARSED }, /* Ns */
+ { in_line_argn, MDOC_CALLABLE | MDOC_PARSED | MDOC_IGNDELIM }, /* Ns */
{ in_line_argn, MDOC_CALLABLE | MDOC_PARSED }, /* Nx */
{ in_line_argn, MDOC_CALLABLE | MDOC_PARSED }, /* Ox */
{ blk_exp_close, MDOC_EXPLICIT | MDOC_CALLABLE | MDOC_PARSED }, /* Pc */
Index: mdoc_term.c
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/mdoc_term.c,v
retrieving revision 1.191
diff -u -r1.191 mdoc_term.c
--- mdoc_term.c 27 Sep 2010 23:03:44 -0000 1.191
+++ mdoc_term.c 30 Sep 2010 09:17:41 -0000
@@ -75,11 +75,11 @@
static void termp_bx_post(DECL_ARGS);
static void termp_d1_post(DECL_ARGS);
static void termp_fo_post(DECL_ARGS);
+static void termp_igndelim_post(DECL_ARGS);
static void termp_in_post(DECL_ARGS);
static void termp_it_post(DECL_ARGS);
static void termp_lb_post(DECL_ARGS);
static void termp_nm_post(DECL_ARGS);
-static void termp_pf_post(DECL_ARGS);
static void termp_quote_post(DECL_ARGS);
static void termp_sh_post(DECL_ARGS);
static void termp_ss_post(DECL_ARGS);
@@ -102,6 +102,7 @@
static int termp_fn_pre(DECL_ARGS);
static int termp_fo_pre(DECL_ARGS);
static int termp_ft_pre(DECL_ARGS);
+static int termp_igndelim_pre(DECL_ARGS);
static int termp_in_pre(DECL_ARGS);
static int termp_it_pre(DECL_ARGS);
static int termp_li_pre(DECL_ARGS);
@@ -109,7 +110,6 @@
static int termp_nd_pre(DECL_ARGS);
static int termp_nm_pre(DECL_ARGS);
static int termp_ns_pre(DECL_ARGS);
-static int termp_pf_pre(DECL_ARGS);
static int termp_quote_pre(DECL_ARGS);
static int termp_rs_pre(DECL_ARGS);
static int termp_rv_pre(DECL_ARGS);
@@ -196,12 +196,12 @@
{ NULL, NULL }, /* Eo */
{ termp_xx_pre, NULL }, /* Fx */
{ termp_bold_pre, NULL }, /* Ms */
- { NULL, NULL }, /* No */
+ { termp_igndelim_pre, termp_igndelim_post }, /* No */
{ termp_ns_pre, NULL }, /* Ns */
{ termp_xx_pre, NULL }, /* Nx */
{ termp_xx_pre, NULL }, /* Ox */
{ NULL, NULL }, /* Pc */
- { termp_pf_pre, termp_pf_post }, /* Pf */
+ { termp_igndelim_pre, termp_igndelim_post }, /* Pf */
{ termp_quote_pre, termp_quote_post }, /* Po */
{ termp_quote_pre, termp_quote_post }, /* Pq */
{ NULL, NULL }, /* Qc */
@@ -1684,7 +1684,7 @@
/* ARGSUSED */
static int
-termp_pf_pre(DECL_ARGS)
+termp_igndelim_pre(DECL_ARGS)
{
p->flags |= TERMP_IGNDELIM;
@@ -1694,11 +1694,12 @@
/* ARGSUSED */
static void
-termp_pf_post(DECL_ARGS)
+termp_igndelim_post(DECL_ARGS)
{
p->flags &= ~TERMP_IGNDELIM;
- p->flags |= TERMP_NOSPACE;
+ if (MDOC_Pf == n->tok)
+ p->flags |= TERMP_NOSPACE;
}
next reply other threads:[~2010-09-30 9:21 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-30 9:21 Kristaps Dzonsons [this message]
2010-10-01 0:23 ` Ingo Schwarze
2010-10-01 20:49 ` Ingo Schwarze
2010-10-01 20:52 ` Kristaps Dzonsons
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4CA45693.10809@bsd.lv \
--to=kristaps@bsd.lv \
--cc=jmc@kerhand.co.uk \
--cc=tech@mdocml.bsd.lv \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).