On Tue, Aug 26, 2025 at 06:46:07PM -0400, Thomas Dickey wrote:
> On Tue, Aug 26, 2025 at 07:07:57PM +0200, наб wrote:
> > Package: cproto
> > Version: 4.7x-1
> > Severity: normal
> >
> > Dear Maintainer,
> >
> > I'm trying to work around some explosive source code (src:tgif 1:4.2.5-2)
> > with something like
> > cproto -E 'cpp' -D'ARGS_DECL(...)=__VA_ARGS__' -{P,F,C}"int f(a, b)" -a
> > exec.c
> >
> > Quoth cproto(1):
> > -E cpp Pipe the input files through the specified C preprocessor command
> > when generating prototypes. By default, the program uses /lib/cpp.
>
> ...actually the manpage could be improved, to show the actual compiled-in
> default.
>
> > -E 0 Do not run the C preprocessor.
> >
> > This doesn't appear to hold at all. /lib/cpp isn't a valid preprocessor,
> > but even supplying -E cpp or -E /bin/cpp I see no preprocessing happen
> > (and don't see an execve() in strace at all).
>
> cproto's using popen.
>
> (I agree, it should re-escape/re-quote parameters -- it seems that noone's
> recently bit on this).Actually, it does quote parameters. The problem is the -a option, which isn't readily addressed. If cproto is told to use the -a or -t options, it works only for the unpreprocessed source. But since cproto has only a very limited ability to handle preprocess-related stuff, it cannot find the header files, nor can it expand macros by itself. I'll document this in the manpage. > > It looks like -E working at all is guarded on #ifdef CPP? > > It would be nice, for future readers, to say "-E ... ignored", > > these two lines are unclear > > > if this is intended. > > > > Best, > > > > -- System Information: > > Debian Release: 12.11 > > APT prefers stable-updates > > APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, > > 'stable-debug'), (500, 'stable') > > Architecture: amd64 (x86_64) > > Foreign Architectures: i386 > > > > Kernel: Linux 6.1.0-35-amd64 (SMP w/24 CPU threads; PREEMPT) > > Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_FIRMWARE_WORKAROUND, > > TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE > > Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), > > LANGUAGE=en_GB:en > > Shell: /bin/sh linked to /usr/bin/dash > > Init: systemd (via /run/systemd/system) > > LSM: AppArmor: enabled > > > > Versions of packages cproto depends on: > > ii gcc 4:12.2.0-3 > > ii libc6 2.36-9+deb12u10 > > > > cproto recommends no packages. > > > > cproto suggests no packages. > > > > -- no debconf information > > > > -- > Thomas E. Dickey <[email protected]> > https://invisible-island.net -- Thomas E. Dickey <[email protected]> https://invisible-island.net
signature.asc
Description: PGP signature

