unitdiff(1)
π unitdiff(1) β the FPC unit difference viewer, bestie edition π
okay so you know how you've got two versions of a Free Pascal unit and you're squinting at them like π trying to spot what changed? yeah. that's this. welcome to unitdiff, a whole little tool from the Free Pascal family that reads your unit source files and tells you what's different. she's niche, she's specific, and honestly? she ate. β¨
πΈ NAME πΈ
unitdiff β describes the differences in the interface of a FPC unit. that's it, that's the job, no cap. π¦
β¨ SYNOPSIS β¨
unitdiff [ --disable-arguments] [ --disable-private] [ --disable-protected] [ --help] [ --lang=language] [ --list] [ --output=filename] [ --sparse] file1 file2
π Description π
okay so basically: unitdiff scans one or two Free Pascal unit source files, and then does one of two things β either it lists every available identifier, or it tells you the differences in identifiers between the two units. that's the whole vibe. pick your adventure. π
π«Ά Usage π«Ά
you can invoke unitdiff with just one required argument, a single input filename. do that and it'll simply list all the available identifiers for you. cute, simple, low-effort. π
but the regular use β the main character usage, if you will β is calling unitdiff with input1 input2 arguments. then it shows you the difference in the interface between the two units, or lists the available identifiers in both of them. iconic behavior. π
by default, the output of unitdiff goes to standard output. so like, it just shows up on your screen. no extra steps. π¦
π₯ Options π₯
unitdiff has some options, most of them optional (the audacity, the nerve, the gall π) β and in most cases the defaults will be used, so don't stress if you ignore them.
--disable-argumentsβ if you specify this,unitdiffwill not check the arguments of functions and procedures. by default? yeah, those get checked too. so this is you telling her to mind her own business about the args. π--disable-privateβ by default, private methods of classes are checked. but if you specify this option, private fields or methods are not checked. your private business stays private, periodt. π--disable-protectedβ by default, protected methods of classes are checked. if you specify this option, then protected and private fields or methods are not checked. it's giving "don't look at me" energy. π«£--helpβ emits a short help text and exits. the "just tell me what to do" button. π- *
--lang=language* β sets the language for the output file. this mainly sets the strings used for the headers in various parts of the documentation files (by default they're in english). currently, the valid options are:deβ German. π©πͺfrβ French. π«π·nlβ Dutch. π³π±
--listβ if this option is specified, only the list of available identifiers will be specified for the unit or units. and heads up bestie: if only 1 unit is specified, this option is automatically assumed. no take-backs. β¨- *
--output=filename* β this option tellsunitdiffwhere the output should go. if you don't specify it, the output is sent to standard output (the screen). so like, filename = where it goes, nothing = your eyeballs. π --sparseβ turns on sparse mode. in this mode, the output will not contain the types of the identifiers β only the names of the identifiers get written to the output. by default, type descriptions are written too. minimalism era. π
π SEE ALSO π
go read those too, they're the supporting cast and they're lowkey essential. π
real talk: this is a documentation-ish tool, so when you point it at files, make sure you actually know which files you're pointing it at. it reads and compares, it doesn't judge (much). π§
okay that's the whole page!! this one came from Free Pascal and it's dated 14 November 2004 β an absolute vintage baddie, older than most of us and still doing her thing. mwah. πβ¨π
π¦ where this page comes from
- arch rolling: fpc 3.2.2-11 Β· GPL AND LGPL AND custom
- epel 10: fpc 3.2.2-20.el10_1 Β· GPL-2.0-or-later AND LGPL-2.1-or-later WITH Independent-modules-exception
- epel 9: fpc 3.2.2-10.el9 Β· GPLv2+ and LGPLv2+ with exceptions
- fedora 43: fpc 3.2.2-20.fc43 Β· GPL-2.0-or-later AND LGPL-2.1-or-later WITH Independent-modules-exception
- fedora 43: fpc 3.2.2-20.fc43 Β· GPL-2.0-or-later AND LGPL-2.1-or-later WITH Independent-modules-exception
- fedora 44: fpc 3.2.4~rc1-3.fc44 Β· GPL-2.0-or-later AND LGPL-2.1-or-later WITH Independent-modules-exception
- fedora 44: fpc 3.2.4~rc1-3.fc44 Β· GPL-2.0-or-later AND LGPL-2.1-or-later WITH Independent-modules-exception
- nixos 26.05: fpc 3.2.2
- nixos 26.05: lazarus-gtk2 4.4-0
- nixos 26.05: lazarus-qt5 4.4-0
- nixos 26.05: lazarus-qt6 4.4-0
- nixpkgs unstable: fpc 3.2.2
- nixpkgs unstable: lazarus-cocoa 4.8-0
- nixpkgs unstable: lazarus-gtk3 4.8-0
- nixpkgs unstable: lazarus-qt5 4.8-0
- nixpkgs unstable: lazarus-qt6 4.8-0
- opensuse-leap 16.0: fpc 3.2.2-bp160.1.35 Β· GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: fpc 3.2.2-bp160.1.35 Β· GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: fpc 3.2.2-bp160.1.35 Β· GPL-2.0-or-later AND LGPL-2.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms