Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > gnu.groff.bug > #1793
| Path | csiph.com!xmission!news.snarked.org!news.linkpendium.com!news.linkpendium.com!panix!usenet.stanford.edu!not-for-mail |
|---|---|
| From | "G. Branden Robinson" <INVALID.NOREPLY@gnu.org> |
| Newsgroups | gnu.groff.bug |
| Subject | [bug #58153] input_stack::backtrace() over-suppresses output |
| Date | Fri, 10 Apr 2020 04:10:03 -0400 (EDT) |
| Lines | 93 |
| Approved | bug-groff@gnu.org |
| Message-ID | <mailman.443.1586506221.2644.bug-groff@gnu.org> (permalink) |
| References | <20200410-081001.sv108747.36720@savannah.gnu.org> |
| NNTP-Posting-Host | lists.gnu.org |
| Mime-Version | 1.0 |
| Content-Type | text/plain;charset=UTF-8 |
| X-Trace | usenet.stanford.edu 1586506221 24251 209.51.188.17 (10 Apr 2020 08:10:21 GMT) |
| X-Complaints-To | action@cs.stanford.edu |
| To | "G. Branden Robinson" <g.branden.robinson@gmail.com>, bug-groff@gnu.org |
| Envelope-to | bug-groff@gnu.org |
| X-PHP-Originating-Script | 1001:sendmail.php |
| X-Savane-Server | savannah.gnu.org:443 [209.51.188.72] |
| X-Savane-Project | groff |
| X-Savane-Tracker | bugs |
| X-Savane-Item-ID | 58153 |
| User-Agent | Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0 |
| X-Apparently-From | 1.144.105.92 (Savane authenticated user gbranden) |
| In-Reply-To | |
| X-detected-operating-system | by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] |
| X-Received-From | 209.51.188.72 |
| X-BeenThere | bug-groff@gnu.org |
| X-Mailman-Version | 2.1.23 |
| Precedence | list |
| List-Id | "Bug reports for the GNU version of nroff, troff et al" <bug-groff.gnu.org> |
| List-Unsubscribe | <https://lists.gnu.org/mailman/options/bug-groff>, <mailto:bug-groff-request@gnu.org?subject=unsubscribe> |
| List-Archive | <https://lists.gnu.org/archive/html/bug-groff> |
| List-Post | <mailto:bug-groff@gnu.org> |
| List-Help | <mailto:bug-groff-request@gnu.org?subject=help> |
| List-Subscribe | <https://lists.gnu.org/mailman/listinfo/bug-groff>, <mailto:bug-groff-request@gnu.org?subject=subscribe> |
| X-Mailman-Original-Message-ID | <20200410-081001.sv108747.36720@savannah.gnu.org> |
| Xref | csiph.com gnu.groff.bug:1793 |
Show key headers only | View raw
URL:
<https://savannah.gnu.org/bugs/?58153>
Summary: input_stack::backtrace() over-suppresses output
Project: GNU troff
Submitted by: gbranden
Submitted on: Fri 10 Apr 2020 08:10:01 AM UTC
Category: Core
Severity: 3 - Normal
Item Group: Incorrect behaviour
Status: In Progress
Privacy: Public
Assigned to: gbranden
Open/Closed: Open
Discussion Lock: Any
Planned Release: None
_______________________________________________________
Details:
The above function in src/roff/troff/input.cpp has the following condition in
a for loop with an accompanying comment:
// only backtrace down to (not including) the topmost file
...
p && !p->get_location(0, &f, &n);
However, for reasons I admit I haven't been able to quite figure out, this
conditional fails under more cases than intended. Specifically, it seems to
fail (ending the loop) when _any_ file_iterator is encountered, halting the
backtrace across .so, .nx, or .pso boundaries. This doesn't happen for the
.backtrace request--only for backtraces triggered by warnings or errors in
input combined with the groff -b flag.
Since read files and not just stdin are involved, I'm attaching a reproducing
case. Here's what I get with the groff 1.22.4 in my distribution:
$ /usr/bin/groff -b -ww -U /tmp/outer >/dev/null
troff: printf '\s[10]\n';printf '\s[-20]\n';printf 'foobar':2: warning: \s
escape results in non-positive point size; set to 1
And here's groff git HEAD with a patch I'm preparing:
$ ./test-groff -U /tmp/outer >/dev/null
troff: backtrace: pipe 'printf '\s[10]\n';printf '\s[-20]\n';printf
'foobar'':2
troff: backtrace: file '/tmp/inner':3
troff: backtrace: pipe 'echo .so /tmp/inner':1
troff: backtrace: file '/tmp/outer':1
troff: printf '\s[10]\n';printf '\s[-20]\n';printf 'foobar':2: warning:
point-size escape results in non-positive size -10000u; set to 1u
This patch does result in one additional line of output when -b is given and
an error or (non-ignored) warning happens at the top level. However, I regard
this as unobjectionable because (1) a backtrace was in fact explicitly
requested; and (2) it seems a poor tradeoff to suppress the backtrace in all
complicated and frustrating cases for the sake of less backtrace output in a
trivial one.
_______________________________________________________
File Attachments:
-------------------------------------------------------
Date: Fri 10 Apr 2020 08:10:01 AM UTC Name: outer Size: 25B By: gbranden
<http://savannah.gnu.org/bugs/download.php?file_id=48799>
-------------------------------------------------------
Date: Fri 10 Apr 2020 08:10:01 AM UTC Name: inner Size: 66B By: gbranden
<http://savannah.gnu.org/bugs/download.php?file_id=48800>
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?58153>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
Back to gnu.groff.bug | Previous | Next | Find similar
[bug #58153] input_stack::backtrace() over-suppresses output "G. Branden Robinson" <INVALID.NOREPLY@gnu.org> - 2020-04-10 04:10 -0400
csiph-web