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 wrote: > > From: dalanicolai > > 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? >