discuss@mandoc.bsd.lv
 help / color / mirror / Atom feed
* Re: mdocml: .Bl -column phrases ignore spacing rules for trailing
       [not found] <201008202251.o7KMpT4F020687@krisdoz.my.domain>
@ 2010-08-21 11:18 ` Kristaps Dzonsons
  2010-08-21 16:06   ` Ingo Schwarze
  0 siblings, 1 reply; 6+ messages in thread
From: Kristaps Dzonsons @ 2010-08-21 11:18 UTC (permalink / raw)
  To: discuss

schwarze@mdocml.bsd.lv wrote:
> Log Message:
> -----------
> .Bl -column phrases ignore spacing rules for trailing punctuation
> and render it just like normal text.
> Minimal fix of a formatting bug in operator(7) reported by ray@.
> 
> Modified Files:
> --------------
>     mdocml:
>         TODO
>         mdoc_term.c

This needs to be backed out, unfortunately: it causes fallout.

.Bl -column asdasdf asdfasdf
.It hallo . Ta world .     \" (1)
.It hallo .<TAB>world .    \" (2)
.It hallo . <TAB>world .   \" (3)
.El

Old/new groff:

      hallo.     world.
      hallo .    world.
      hallo.     world.

new mandoc:

      hallo .    world .
      hallo .    world .
      hallo .    world .

old mandoc:

      hallo.     world.
      hallo.     world.
      hallo.     world.

The fallout of case (1) is the biggest: Ta lists should not get 
IGNDELIM.  This is hard to switch on because the TAB-Ta switching is 
done in libmdoc, and is not exported to the formatter.

But I recall (2) and (3) being discussed.  It was agreed, without a 
clear solution, that the issue was the space-before-tab.

By following groff's logic, you'd have to say "if you have a tab 
directly after the last token in a list column, the punctuation will be 
considered normal text", which is not clear to a dummy like me anyway.

I suggest that we go with mandoc's old behaviour at the expense of this 
one issue.  It's easier to make unilateral statements: punctuation at 
the end of a list column, whether separated by Ta, tabs, tabs and 
spaces, etc., is treated as delimiting punctuation.

Note that mdoc.7 explicitly allows for quoted tab-separated `It' 
columns, which may be appropriate in this case.  Or just escaping the 
punctuation.  So the above would be modified "the un-quoted...".

Thoughts?

Kristaps
--
 To unsubscribe send an email to discuss+unsubscribe@mdocml.bsd.lv

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: mdocml: .Bl -column phrases ignore spacing rules for trailing
  2010-08-21 11:18 ` mdocml: .Bl -column phrases ignore spacing rules for trailing Kristaps Dzonsons
@ 2010-08-21 16:06   ` Ingo Schwarze
  2010-08-21 17:29     ` Kristaps Dzonsons
  0 siblings, 1 reply; 6+ messages in thread
From: Ingo Schwarze @ 2010-08-21 16:06 UTC (permalink / raw)
  To: discuss

Hi Kristaps,

> By following groff's logic, you'd have to say "if you have a tab
> directly after the last token in a list column, the punctuation will
> be considered normal text", which is not clear to a dummy like me
> anyway.

Or:
Literal tabs are considered normal word characters, even when
delimiting column phrases.
But that is about as confusing and surprising.

> I suggest that we go with mandoc's old behaviour at the expense of
> this one issue.  It's easier to make unilateral statements:
> punctuation at the end of a list column, whether separated by Ta,
> tabs, tabs and spaces, etc., is treated as delimiting punctuation.

Right, after pondering this for some time, i tend to agree that
traditional roff behaviour of treating tab, space-tab and Ta
differently is so surprising that it should indeed be called a bug
and not a feature.

Now, as you said, this does not affect column lists only,
but literal tabs outside column lists as well.
But in literal context, there is no issue because spacing
is kept verbatim in any case, and outside literal context,
tabs are discouraged anyway.  So, basically, the tab vs space-tab
surprise only affects column lists in practice.

Given that the traditional behaviour of column lists has been
so quirky in so many ways, i regard it as sane to make it a bit
easier to understand at the expense of minor issues with backward
compatibility.  This is a case where i feel that idea applies.

So, i propose the following patch instead.
It works with all formatters.

Yours,
  Ingo


Index: operator.7
===================================================================
RCS file: /cvs/src/share/man/man7/operator.7,v
retrieving revision 1.7
diff -u -p -r1.7 operator.7
--- operator.7	31 May 2007 19:19:58 -0000	1.7
+++ operator.7	21 Aug 2010 16:04:55 -0000
@@ -41,7 +41,7 @@
 .Bl -column "= += -= *= /= %= <<= >>= &= ^= |="
 .It Operator	Associativity
 .It --------	-------------
-.It \&() [] -> .	left to right
+.It \&() [] -> \&.	left to right
 .It "! ~ ++ -- - (type) * & sizeof"	right to left
 .It \&* / %	left to right
 .It \&+ -	left to right
--
 To unsubscribe send an email to discuss+unsubscribe@mdocml.bsd.lv

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: mdocml: .Bl -column phrases ignore spacing rules for trailing
  2010-08-21 16:06   ` Ingo Schwarze
@ 2010-08-21 17:29     ` Kristaps Dzonsons
  2010-08-21 20:12       ` mdoc(7) COMPATIBILITY Ingo Schwarze
  0 siblings, 1 reply; 6+ messages in thread
From: Kristaps Dzonsons @ 2010-08-21 17:29 UTC (permalink / raw)
  To: discuss

Ingo,

> Now, as you said, this does not affect column lists only,
> but literal tabs outside column lists as well.
> But in literal context, there is no issue because spacing
> is kept verbatim in any case, and outside literal context,
> tabs are discouraged anyway.  So, basically, the tab vs space-tab
> surprise only affects column lists in practice.

Damn, I didn't know that it also worked as such outside of the `It'
context.  Even more gross.

Note well.  `It -column' can be changed to be like groff with fairly
minimal effort.  In short, the MDOC_EOS flag would need to be unset if
the tab is immediately preceded by non-whitespace.  It'd be only a few
lines, but I don't think this behaviour is worth following.  As you
noted, the "principle of most surprise" should not hold.

That reminds me: can you put a note in mdoc.7 COMPATIBILITY?

> Given that the traditional behaviour of column lists has been
> so quirky in so many ways, i regard it as sane to make it a bit
> easier to understand at the expense of minor issues with backward
> compatibility.  This is a case where i feel that idea applies.
> 
> So, i propose the following patch instead.
> It works with all formatters.

I agree, for what it's worth.

Thanks!

Kristaps
--
 To unsubscribe send an email to discuss+unsubscribe@mdocml.bsd.lv

^ permalink raw reply	[flat|nested] 6+ messages in thread

* mdoc(7) COMPATIBILITY
  2010-08-21 17:29     ` Kristaps Dzonsons
@ 2010-08-21 20:12       ` Ingo Schwarze
  2010-08-21 20:20         ` Kristaps Dzonsons
  0 siblings, 1 reply; 6+ messages in thread
From: Ingo Schwarze @ 2010-08-21 20:12 UTC (permalink / raw)
  To: discuss

Hi Kristaps,

> That reminds me: can you put a note in mdoc.7 COMPATIBILITY?

Uh.
I felt unable to decide where to put it...

So, here is a proposal to sort that section by macro names,
to uniformly put these at the beginning of each line,
in order to make it easier to navigate,
and to distinguish shortcomings in groff from
unimplemented features in mandoc.

I have removed a few entries because they seem untrue or
irrelevant:

 - "The comment syntax `\."' is no longer accepted."
   It is discouraged, but mandoc does accept it.
 - .Bd -ragged = -filled, -literal = -unfilled
   I'm not aware of any real difference between groff and mandoc
   in this respect.
 - .Cd was restricted to section 4 manuals.
   .Er was restricted to section 2 manuals.
   .Ex was restricted to section 1, 6, and 8 manuals.
   .Rv was restricted to section 2 and 3 manuals.
   Actually, groff always renders these macros correctly,
   even though it warns about .Ex and .Rv used elsewhere.

Of course, i have also added the sentence about spacing in
.Bd -column, now that it's clear where to put it.  ;-)

OK?

Yours,
  Ingo


Index: mdoc.7
===================================================================
RCS file: /cvs/src/share/man/man7/mdoc.7,v
retrieving revision 1.48
diff -u -p -r1.48 mdoc.7
--- mdoc.7	18 Aug 2010 01:59:59 -0000	1.48
+++ mdoc.7	21 Aug 2010 20:03:10 -0000
@@ -2715,155 +2715,132 @@ file re-write
 Heirloom troff, the other significant troff implementation accepting
 \-mdoc, is similar to historic groff.
 .Pp
+The following problematic behaviour is found in groff:
+.ds hist (Historic groff only.)
+.Pp
 .Bl -dash -compact
 .It
-groff only accepts a single
-.Sq \&Lk
-link-name argument; the remainder is misformatted.
+.Sx \&At
+with unknown arguments produces no output at all.
+\*[hist]
+Newer groff and mandoc print
+.Qq AT&T UNIX
+and the arguments.
 .It
-The
-.Sq \&%C
-macro is not implemented in groff.
+.Sx \&Bd Fl column
+does not recognize trailing punctuation characters when they immediately
+precede tabulator characters, but treats them as normal text and
+outputs a space before them.
+.It
+.Sx \&Bd Fl ragged compact
+does not start a new line.
+\*[hist]
 .It
-An empty
-.Sq \&Dd
-macro in groff prints
+.Sx \&Dd
+without an argument prints
 .Dq Epoch .
 In mandoc, it resolves to the current date.
 .It
-The \es (font size), \em (font colour), and \eM (font filling colour)
-font decoration escapes are all discarded in mandoc.
+.Sx \&Fl
+does not print a dash for an empty argument.
+\*[hist]
 .It
-Old groff fails to assert a newline before
-.Sx \&Bd Fl ragged compact .
+.Sx \&Fn
+does not start a new line unless invoked as the line macro in the
+.Em SYNOPSIS
+section.
+\*[hist]
 .It
-groff behaves inconsistently when encountering
-.Pf non- Sx \&Fa
-children of
 .Sx \&Fo
-regarding spacing between arguments.
-In mandoc, this is not the case: each argument is consistently followed
-by a single space and the trailing
-.Sq \&)
-suppresses prior spacing.
+with
+.Pf non- Sx \&Fa
+children causes inconsistent spacing between arguments.
+In mandoc, a single space is always inserted between arguments.
 .It
-groff behaves inconsistently when encountering
 .Sx \&Ft
-and
-.Sx \&Fn
 in the
-.Em SYNOPSIS :
-at times newline(s) are suppressed depending on whether a prior
+.Em SYNOPSIS
+causes inconsistent vertical spacing, depending on whether a prior
 .Sx \&Fn
 has been invoked.
-In mandoc, this is not the case.
 See
 .Sx \&Ft
 and
 .Sx \&Fn
-for the normalised behaviour.
-.It
-Historic groff does not break before an
-.Sx \&Fn
-when not invoked as the line macro in the
-.Em SYNOPSIS
-section.
+for the normalised behaviour in mandoc.
 .It
-Historic groff formats the
 .Sx \&In
-badly: trailing arguments are trashed and
-.Em SYNOPSIS
-is not specially treated.
+ignores additional arguments and is not treated specially in the
+.Em SYNOPSIS .
+\*[hist]
+.It
+.Sx \&It
+sometimes requires a
+.Fl nested
+flag.
+\*[hist]
+In new groff and mandoc, any list may be nested by default and
+.Fl enum
+lists will restart the sequence only for the sub-list.
+.It
+.Sx \&Li
+followed by a reserved character is incorrectly used in some manuals
+instead of properly quoting that character, which sometimes works with
+historic groff.
 .It
-groff does not accept the
-.Sq \&Ta
-pseudo-macro as a line macro.
-mandoc does.
-.It
-The comment syntax
-.Sq \e\."
-is no longer accepted.
+.Sx \&Lk
+only accepts a single link-name argument; the remainder is misformatted.
 .It
-In groff, the
 .Sx \&Pa
-macro does not format its arguments when used in the FILES section under
+does not format its arguments when used in the FILES section under
 certain list types.
-mandoc does.
 .It
-Historic groff does not print a dash for empty
-.Sx \&Fl
-arguments.
-mandoc and newer groff implementations do.
+.Sx \&Ta
+can only be called by other macros, but not at the beginning of a line.
+.It
+.Sx \&%C
+is not implemented.
+.It
+Historic groff has many un-callable macros.
+Most of these (excluding some block-level macros) are callable
+in new groff and mandoc.
+.It
+.Sq \(ba
+(vertical bar) is not fully supported as a delimiter.
+\*[hist]
 .It
-groff behaves irregularly when specifying
 .Sq \ef
 .Sx Text Decoration
-within line-macro scopes.
-mandoc follows a consistent system.
+escapes behave irregularly when specified within line-macro scopes.
 .It
-In mandoc, negative scaling units are truncated to zero; groff would
-move to prior lines.
-Furthermore, the
-.Sq f
-scaling unit, while accepted, is rendered as the default unit.
+Negative scaling units return to prior lines.
+Instead, mandoc truncates them to zero.
+.El
+.Pp
+The following features are unimplemented in mandoc:
+.Pp
+.Bl -dash -compact
 .It
-In quoted literals, groff allowed pairwise double-quotes to produce a
-standalone double-quote in formatted output.
-This idiosyncratic behaviour is not applicable in mandoc.
+.Sx \&Bd
+.Fl file Ar file .
 .It
-Display offsets
 .Sx \&Bd
 .Fl offset Ar center
 and
-.Fl offset Ar right
-are disregarded in mandoc.
-Furthermore, troff specifies a
-.Fl file Ar file
-argument that is not supported in mandoc.
-Lastly, since text is not right-justified in mandoc (or even groff),
-.Fl ragged
-and
-.Fl filled
-are aliases, as are
-.Fl literal
-and
-.Fl unfilled .
-.It
-Historic groff has many un-callable macros.
-Most of these (excluding some block-level macros) are now callable.
+.Fl offset Ar right .
+Groff does not implement centered and flush-right rendering either,
+but produces large indentations.
 .It
-The vertical bar
-.Sq \(ba
-made historic groff
-.Qq go orbital
-but has been a proper delimiter since then.
-.It
-.Sx \&It Fl nested
-is assumed for all lists (it wasn't in historic groff): any list may be
-nested and
-.Fl enum
-lists will restart the sequence only for the sub-list.
+The \em (font colour), \eM (font filling colour), and \es (font size)
+font decoration escapes are all discarded in mandoc.
 .It
-Some manuals use
-.Sx \&Li
-incorrectly by following it with a reserved character and expecting the
-delimiter to render.
-This is not supported in mandoc.
-.It
-In groff, the
-.Sx \&Cd ,
-.Sx \&Er ,
-.Sx \&Ex ,
-and
-.Sx \&Rv
-macros were stipulated only to occur in certain manual sections.
-mandoc does not have these restrictions.
+The
+.Sq f
+scaling unit is accepted by mandoc, but rendered as the default unit.
 .It
-Newer groff and mandoc print
-.Qq AT&T UNIX
-prior to unknown arguments of
-.Sx \&At ;
-older groff did nothing.
+In quoted literals, groff allows pairwise double-quotes to produce a
+standalone double-quote in formatted output.
+This is not supported by mandoc.
 .El
 .Sh SEE ALSO
 .Xr man 1 ,
--
 To unsubscribe send an email to discuss+unsubscribe@mdocml.bsd.lv

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: mdoc(7) COMPATIBILITY
  2010-08-21 20:12       ` mdoc(7) COMPATIBILITY Ingo Schwarze
@ 2010-08-21 20:20         ` Kristaps Dzonsons
  2010-08-22  9:27           ` Kristaps Dzonsons
  0 siblings, 1 reply; 6+ messages in thread
From: Kristaps Dzonsons @ 2010-08-21 20:20 UTC (permalink / raw)
  To: discuss

>> That reminds me: can you put a note in mdoc.7 COMPATIBILITY?
> 
> Uh.
> I felt unable to decide where to put it...
> 
> So, here is a proposal to sort that section by macro names,
> to uniformly put these at the beginning of each line,
> in order to make it easier to navigate,
> and to distinguish shortcomings in groff from
> unimplemented features in mandoc.
> 
> I have removed a few entries because they seem untrue or
> irrelevant:
> 
>  - "The comment syntax `\."' is no longer accepted."
>    It is discouraged, but mandoc does accept it.
>  - .Bd -ragged = -filled, -literal = -unfilled
>    I'm not aware of any real difference between groff and mandoc
>    in this respect.
>  - .Cd was restricted to section 4 manuals.
>    .Er was restricted to section 2 manuals.
>    .Ex was restricted to section 1, 6, and 8 manuals.
>    .Rv was restricted to section 2 and 3 manuals.
>    Actually, groff always renders these macros correctly,
>    even though it warns about .Ex and .Rv used elsewhere.
> 
> Of course, i have also added the sentence about spacing in
> .Bd -column, now that it's clear where to put it.  ;-)

Ingo,

I like this approach.  What follows are some further suggestions.

First, there are a few more escapes we ignore; check mandoc.c and/or
out.c for the scoop.

Second, can you treat the man.7 manual the same way?  For consistency.
I'm still on the fence as to whether \f and friends should be in
mandoc_char.7 or something to avoid duplication across man.7 and mdoc.7.

Third, let's make

     -   The \m (font colour), \M (font filling colour), and \s
         (font size) font decoration escapes are all discarded in
         mandoc.
     -   The `f' scaling unit is accepted by mandoc, but rendered as
         the default unit.

so that it's consistently

     -   The \f (font) scaling unit is accepted by mandoc, but
             ^^^^^^^^
         rendered as the default unit.

In general, the escapes are sometimes quoted with e.g. `\f' and
sometimes not.  These should be unified.

I also note, very particularly, that \m and friends are font decorations
but text decorations...

Kristaps
--
 To unsubscribe send an email to discuss+unsubscribe@mdocml.bsd.lv

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: mdoc(7) COMPATIBILITY
  2010-08-21 20:20         ` Kristaps Dzonsons
@ 2010-08-22  9:27           ` Kristaps Dzonsons
  0 siblings, 0 replies; 6+ messages in thread
From: Kristaps Dzonsons @ 2010-08-22  9:27 UTC (permalink / raw)
  To: discuss

[-- Attachment #1: Type: text/plain, Size: 35 bytes --]

Replying to myself with a patch...

[-- Attachment #2: patch.txt --]
[-- Type: text/plain, Size: 8245 bytes --]

? config.h
? config.log
? foo.1
? foo.1.html
? mandoc
? patch.txt
Index: man.7
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/man.7,v
retrieving revision 1.81
diff -u -r1.81 man.7
--- man.7	6 Aug 2010 17:07:11 -0000	1.81
+++ man.7	22 Aug 2010 09:26:26 -0000
@@ -917,24 +917,39 @@
 .Pp
 .Bl -dash -compact
 .It
-The \es (font size), \em (font colour), and \eM (font filling colour)
-font decoration escapes are all discarded in mandoc.
-.It
 In quoted literals, GNU troff allowed pair-wise double-quotes to produce
 a standalone double-quote in formatted output.
 It is not known whether this behaviour is exhibited by other formatters.
 .It
+troff suppresses a newline before
+.Sq \(aq
+macro output; in mandoc, it is an alias for the standard
+.Sq \&.
+control character.
+.It
+The
+.Sq \eh
+.Pq horizontal position ,
+.Sq \ev
+.Pq vertical position ,
+.Sq \em
+.Pq text colour ,
+.Sq \eM
+.Pq text filling colour ,
+and
+.Sq \es
+.Pq text size
+.Sx Text Decoration
+escapes are all discarded in mandoc.
+.It
+The
+.Sq \ef
+scaling unit is accepted by mandoc, but rendered as the default unit.
+.It
 The
 .Sx \&sp
 macro does not accept negative values in mandoc.
 In GNU troff, this would result in strange behaviour.
-.It
-The
-.Sq \(aq
-macro control character, in GNU troff (and prior troffs) suppresses a
-newline before macro output; in mandoc, it is an alias for the standard
-.Sq \&.
-control character.
 .El
 .Sh SEE ALSO
 .Xr mandoc 1 ,
Index: mdoc.7
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/mdoc.7,v
retrieving revision 1.149
diff -u -r1.149 mdoc.7
--- mdoc.7	9 Aug 2010 00:07:51 -0000	1.149
+++ mdoc.7	22 Aug 2010 09:26:27 -0000
@@ -2715,155 +2715,148 @@
 Heirloom troff, the other significant troff implementation accepting
 \-mdoc, is similar to historic groff.
 .Pp
+The following problematic behaviour is found in groff:
+.ds hist (Historic groff only.)
+.Pp
 .Bl -dash -compact
 .It
-groff only accepts a single
-.Sq \&Lk
-link-name argument; the remainder is misformatted.
+.Sx \&At
+with unknown arguments produces no output at all.
+\*[hist]
+Newer groff and mandoc print
+.Qq AT&T UNIX
+and the arguments.
 .It
-The
-.Sq \&%C
-macro is not implemented in groff.
+.Sx \&Bd Fl column
+does not recognize trailing punctuation characters when they immediately
+precede tabulator characters, but treats them as normal text and
+outputs a space before them.
+.It
+.Sx \&Bd Fl ragged compact
+does not start a new line.
+\*[hist]
 .It
-An empty
-.Sq \&Dd
-macro in groff prints
+.Sx \&Dd
+without an argument prints
 .Dq Epoch .
 In mandoc, it resolves to the current date.
 .It
-The \es (font size), \em (font colour), and \eM (font filling colour)
-font decoration escapes are all discarded in mandoc.
+.Sx \&Fl
+does not print a dash for an empty argument.
+\*[hist]
 .It
-Old groff fails to assert a newline before
-.Sx \&Bd Fl ragged compact .
+.Sx \&Fn
+does not start a new line unless invoked as the line macro in the
+.Em SYNOPSIS
+section.
+\*[hist]
 .It
-groff behaves inconsistently when encountering
-.Pf non- Sx \&Fa
-children of
 .Sx \&Fo
-regarding spacing between arguments.
-In mandoc, this is not the case: each argument is consistently followed
-by a single space and the trailing
-.Sq \&)
-suppresses prior spacing.
+with
+.Pf non- Sx \&Fa
+children causes inconsistent spacing between arguments.
+In mandoc, a single space is always inserted between arguments.
 .It
-groff behaves inconsistently when encountering
 .Sx \&Ft
-and
-.Sx \&Fn
 in the
-.Em SYNOPSIS :
-at times newline(s) are suppressed depending on whether a prior
+.Em SYNOPSIS
+causes inconsistent vertical spacing, depending on whether a prior
 .Sx \&Fn
 has been invoked.
-In mandoc, this is not the case.
 See
 .Sx \&Ft
 and
 .Sx \&Fn
-for the normalised behaviour.
+for the normalised behaviour in mandoc.
 .It
-Historic groff does not break before an
-.Sx \&Fn
-when not invoked as the line macro in the
-.Em SYNOPSIS
-section.
-.It
-Historic groff formats the
 .Sx \&In
-badly: trailing arguments are trashed and
-.Em SYNOPSIS
-is not specially treated.
+ignores additional arguments and is not treated specially in the
+.Em SYNOPSIS .
+\*[hist]
+.It
+.Sx \&It
+sometimes requires a
+.Fl nested
+flag.
+\*[hist]
+In new groff and mandoc, any list may be nested by default and
+.Fl enum
+lists will restart the sequence only for the sub-list.
 .It
-groff does not accept the
-.Sq \&Ta
-pseudo-macro as a line macro.
-mandoc does.
-.It
-The comment syntax
-.Sq \e\."
-is no longer accepted.
+.Sx \&Li
+followed by a reserved character is incorrectly used in some manuals
+instead of properly quoting that character, which sometimes works with
+historic groff.
+.It
+.Sx \&Lk
+only accepts a single link-name argument; the remainder is misformatted.
 .It
-In groff, the
 .Sx \&Pa
-macro does not format its arguments when used in the FILES section under
+does not format its arguments when used in the FILES section under
 certain list types.
-mandoc does.
 .It
-Historic groff does not print a dash for empty
-.Sx \&Fl
-arguments.
-mandoc and newer groff implementations do.
+.Sx \&Ta
+can only be called by other macros, but not at the beginning of a line.
+.It
+.Sx \&%C
+is not implemented.
+.It
+Historic groff has many un-callable macros.
+Most of these (excluding some block-level macros) are callable
+in new groff and mandoc.
 .It
-groff behaves irregularly when specifying
+.Sq \(ba
+(vertical bar) is not fully supported as a delimiter.
+\*[hist]
+.It
+.Sq \ef
+.Pq font face
+and
 .Sq \ef
+.Pq font family face
 .Sx Text Decoration
-within line-macro scopes.
-mandoc follows a consistent system.
+escapes behave irregularly when specified within line-macro scopes.
 .It
-In mandoc, negative scaling units are truncated to zero; groff would
-move to prior lines.
-Furthermore, the
-.Sq f
-scaling unit, while accepted, is rendered as the default unit.
+Negative scaling units return to prior lines.
+Instead, mandoc truncates them to zero.
+.El
+.Pp
+The following features are unimplemented in mandoc:
+.Pp
+.Bl -dash -compact
 .It
-In quoted literals, groff allowed pairwise double-quotes to produce a
-standalone double-quote in formatted output.
-This idiosyncratic behaviour is not applicable in mandoc.
+.Sx \&Bd
+.Fl file Ar file .
 .It
-Display offsets
 .Sx \&Bd
 .Fl offset Ar center
 and
-.Fl offset Ar right
-are disregarded in mandoc.
-Furthermore, troff specifies a
-.Fl file Ar file
-argument that is not supported in mandoc.
-Lastly, since text is not right-justified in mandoc (or even groff),
-.Fl ragged
-and
-.Fl filled
-are aliases, as are
-.Fl literal
-and
-.Fl unfilled .
-.It
-Historic groff has many un-callable macros.
-Most of these (excluding some block-level macros) are now callable.
-.It
-The vertical bar
-.Sq \(ba
-made historic groff
-.Qq go orbital
-but has been a proper delimiter since then.
-.It
-.Sx \&It Fl nested
-is assumed for all lists (it wasn't in historic groff): any list may be
-nested and
-.Fl enum
-lists will restart the sequence only for the sub-list.
+.Fl offset Ar right .
+Groff does not implement centered and flush-right rendering either,
+but produces large indentations.
 .It
-Some manuals use
-.Sx \&Li
-incorrectly by following it with a reserved character and expecting the
-delimiter to render.
-This is not supported in mandoc.
-.It
-In groff, the
-.Sx \&Cd ,
-.Sx \&Er ,
-.Sx \&Ex ,
+The
+.Sq \eh
+.Pq horizontal position ,
+.Sq \ev
+.Pq vertical position ,
+.Sq \em
+.Pq text colour ,
+.Sq \eM
+.Pq text filling colour ,
 and
-.Sx \&Rv
-macros were stipulated only to occur in certain manual sections.
-mandoc does not have these restrictions.
+.Sq \es
+.Pq text size
+.Sx Text Decoration
+escapes are all discarded in mandoc.
 .It
-Newer groff and mandoc print
-.Qq AT&T UNIX
-prior to unknown arguments of
-.Sx \&At ;
-older groff did nothing.
+The
+.Sq \ef
+scaling unit is accepted by mandoc, but rendered as the default unit.
+.It
+In quoted literals, groff allows pairwise double-quotes to produce a
+standalone double-quote in formatted output.
+This is not supported by mandoc.
 .El
 .Sh SEE ALSO
 .Xr mandoc 1 ,

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2010-08-22  9:27 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <201008202251.o7KMpT4F020687@krisdoz.my.domain>
2010-08-21 11:18 ` mdocml: .Bl -column phrases ignore spacing rules for trailing Kristaps Dzonsons
2010-08-21 16:06   ` Ingo Schwarze
2010-08-21 17:29     ` Kristaps Dzonsons
2010-08-21 20:12       ` mdoc(7) COMPATIBILITY Ingo Schwarze
2010-08-21 20:20         ` Kristaps Dzonsons
2010-08-22  9:27           ` Kristaps Dzonsons

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).