Subject: bug#57854: 29.0.50; Different exit code in Emacs and terminal for identical process

From: dalanicolai <[email-masked]>
Date: Fri, 16 Sep 2022 21:29:15 +0200

I don't understand the answer well (my knowledge about computers is very
limited),
i.e. I do not immediately understand what it means for a file to be a tty.

But also, I think the isatty() is about the TOC file, i.e. the file given
as INFILE (after the `<`)
But I am not giving any INFILE (which would make the command add the TOC to
the file given as argument),
Instead I simply provide a single filepath as argument so that the command
simply prints the TOC.

(I hope this answer makes sense, I might be misunderstanding something)

On Fri, 16 Sept 2022 at 13:00, Eli Zaretskii <[email-masked]> wrote:

> > From: dalanicolai <[email-masked]>
> > Date: Fri, 16 Sep 2022 12:00:09 +0200
> >
> > When looking into the `pdftocio` package I find the following piece of
> code
> >
> > ```
> >     try:
> >         with open_pdf(path_in) as doc:
> >             if toc_file.isatty() or print_toc:
> >                 # no input from user, switch to output mode and extract
> the toc
> >                 # of pdf
> >                 toc = read_toc(doc)
> >                 if len(toc) == 0:
> >                     print("error: no table of contents found",
> file=sys.stderr)
> >                     sys.exit(1)
> >
> >                 if readable:
> >                     print(pprint_toc(toc))
> >                 else:
> >                     print(dump_toc(toc), end="")
> >                 sys.exit(0)
> >
> >             # an input is given, so switch to input mode
> >             toc = parse_toc(toc_file)
> >             write_toc(doc, toc)
> > ```
>
> Note that the above distinguishes between TTY and non-TTY input, and
> call-process works via the non-TTY case, AFAIU.  So maybe what you see
> is entirely expected?
>