TDCOMPARE(1)

πŸ’… TDCOMPARE πŸ’…

okay bestie, so you found a manual page from the termdebug family β€” this one's for tdcompare, and it's literally the "did my terminal program do the same thing twice?" detective tool. welcome, you're gonna slay this.


✨ NAME ✨

tdcompare β€” compare two recordings of a terminal program. two files, one vibe check, no cap.


🌈 SYNOPSIS 🌈

tdcompare [OPTIONS]... OLD NEW

πŸ’– DESCRIPTION πŸ’–

so tdcompare takes two recordings of a terminal program and goes "are these actually the same output or are we lying to ourselves?" it can do that comparison in two whole ways: at the input/output level, or at the visual level. pick your fighter.

when you're comparing at the input/output level, any difference gets reported as line numbers in the OLD and NEW files. super literal, super precise, love that for us.

for visual comparisons? you get a whole glow-up. a textual description of the first difference can be produced, and a picture of the first different terminal state can be written out β€” but only if termdebug was compiled with Cairo support. so like, check your build first, queen.

the whole point of tdcompare is verifying that a new recording of the same program produced the same result. if you wanna do on-line verification instead, go use tdreplay(1). different tool, different energy. ✨


πŸŽ€ OPTIONS πŸŽ€

tdcompare accepts the following options:

  • -h, --help β€” shows you a short help message. the little "hey bestie here's what I do" moment.
  • -V, --version β€” prints version and copyright info. receipts, basically.
  • -v, --visual-compare β€” checks for visual equality instead of exact input/output behaviour. (requires a build with ncurses support, so no ncurses no vibes.)
  • -D, --describe β€” writes a description of the first visual difference it bumps into. only useful with -v/--visual-compare. (requires a build with ncurses support.)
  • -p name, --picture=name β€” writes a picture of the difference to name. only useful with -v/--visual-compare. (requires a build with ncurses and Cairo support. both. yes, both.)
  • -f font, --font=font β€” uses font to show text in generated pictures. only useful with -p/--picture or -P/--picture-series. (requires a build with ncurses and Cairo support.)
  • -W width, --cell-width=width β€” uses cells that are width pixels wide in generated pictures. only useful with -p/--picture or -P/--picture-series. (requires a build with ncurses and Cairo support.)
  • -H height, --cell-height=height β€” uses cells of height pixels wide in generated pictures. only useful with -p/--picture or -P/--picture-series. (requires a build with ncurses and Cairo support.)
  • -P name, --picture-series=name β€” creates a series of pictures representing the different visual steps in the client interface, using name as the file name template. name is a printf(3) format string, and a single d-type conversion is required. (requires a build with ncurses and Cairo support.)
  • -s, --stop-on-difference β€” stops the second it finds the first visual difference. only valid with -P/--picture-series.
okay quick PSA: if a file name starts with a dash, tdcompare is gonna think it's an option, and that's a whole mess. so to stop tdcompare from interpreting file names that start with a dash as options, you can drop a double dash (--), and after that tdreplay will interpret any following arguments as files to read. 🫢

πŸ’€ BUGS πŸ’€

found a bug? iconic of you honestly. but first β€” please check that you're running the latest version of termdebug over at <http://os.ghalkes.nl/termdebug>. and when you report it, please include a minimal example that demonstrates the problem, because a vague "it's broken" is not it, bestie. give us the receipts. 😭


πŸ‘‘ AUTHOR πŸ‘‘

G.P. Halkes <termdebug@ghalkes.nl>


Copyright Β© 2010,2012-2013 G.P. Halkes

termdebug is licensed under the GNU General Public License version 3. for more deets on the license, see the file COPYING in the documentation directory. on Un*x systems this is usually /usr/share/doc/termdebug.


πŸ¦‹ SEE ALSO πŸ¦‹

termdebug(1), tdrecord(1), tdrerecord(1), tdview(1), tdreplay(1)


and that's the whole page, periodt. this was version 2.2, dated 2013/03/03, straight out of the termdebug fam. go compare something. you got this. πŸ’–βœ¨πŸŽ€