I tried a couple of terminals (xterm and kitty): still same bug (when I say bug 
I mean wrong indentation).

So I started digging a bit deeper and downloaded source code from gnu website 
(version 4.4.1) and build it myself locally (with ./configure && make): still 
same bug.

Then I re-extracted the source tree, went to src/main.c line 324 and changed 
the last letter ("y") in "Unconditionally" into an "x". I did not change 
anything else. 

So at this point if I run cmp on the untouched and touched version of main.c I 
get

cmp {un,}touched/make-4.4.1/src/main.c
untouched/make-4.4.1/src/main.c touched/make-4.4.1/src/main.c differ: byte 
8337, line 324

I built again (got an executable which is 8 bytes bigger) and now if I run 
./make --help then only that line that I manually changed does not present the 
bug anymore:
  ...
  -B, --always-make           Unconditionallx make all targets.
  ...
(i.e. with the right indentation, note the x instead of the y)
all the other lines are still wrongly indented.

This seems extremely odd to me. How is that possible that changing a character 
changes also the spaces?? 

Any help much appreciated.






On Thursday, 9 October 2025 at 17:59, Pollo <[email protected]> wrote:

> sorry.
> 
> ok i see - i m using default terminal in kubuntu, i.e. Konsole.
> 
> i ll try to investigate and will let you know
> 
> 
> 
> Sent with Proton Mail secure email.
> 
> 
> On Thursday, 9 October 2025 at 14:49, Paul Smith [email protected] wrote:
> 
> > On Thu, 2025-10-09 at 08:14 +0000, Pollo wrote:
> > 
> > > Pls see attached. Is it expected that the alignment looks like this?
> > > I highlighted in red some of the lines which do not seem right.
> > > In green some of the ones that look ok. When u go to new line, it
> > > seems always ok.
> > > 
> > > I am running bash on kubuntu 24.04. Output of make -v is also in the
> > > screenshot.
> > 
> > We prefer cut/paste with formatting (or using plain text messages
> > rather than HTML messages) rather than attached screenshots.
> > 
> > In any event, I can't reproduce the behavior you see, either with the
> > latest release or with GNU Make 4.3. Maybe it's something strange
> > about your terminal? Have you tried with a simple xterm instead of
> > whatever terminal you're using?
> > 
> > ~$ ~/src/make/old/make-4.3/make --version
> > GNU Make 4.3
> > Built for x86_64-pc-linux-gnu
> > Copyright (C) 1988-2020 Free Software Foundation, Inc.
> > License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
> > 
> > This is free software: you are free to change and redistribute it.
> > There is NO WARRANTY, to the extent permitted by law.
> > 
> > ~$ ~/src/make/old/make-4.3/make --help
> > Usage: make [options] [target] ...
> > Options:
> > -b, -m Ignored for compatibility.
> > -B, --always-make Unconditionally make all targets.
> > -C DIRECTORY, --directory=DIRECTORY
> > Change to DIRECTORY before doing anything.
> > -d Print lots of debugging information.
> > --debug[=FLAGS] Print various types of debugging information.
> > -e, --environment-overrides
> > Environment variables override makefiles.
> > -E STRING, --eval=STRING Evaluate STRING as a makefile statement.
> > -f FILE, --file=FILE, --makefile=FILE
> > Read FILE as a makefile.
> > -h, --help Print this message and exit.
> > -i, --ignore-errors Ignore errors from recipes.
> > -I DIRECTORY, --include-dir=DIRECTORY
> > Search DIRECTORY for included makefiles.
> > -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no arg.
> > -k, --keep-going Keep going when some targets can't be made.
> > -l [N], --load-average[=N], --max-load[=N]
> > Don't start multiple jobs unless load is below N.
> > -L, --check-symlink-times Use the latest mtime between symlinks and target.
> > -n, --just-print, --dry-run, --recon
> > Don't actually run any recipe; just print them.
> > -o FILE, --old-file=FILE, --assume-old=FILE
> > Consider FILE to be very old and don't remake it.
> > -O[TYPE], --output-sync[=TYPE]
> > Synchronize output of parallel jobs by TYPE.
> > -p, --print-data-base Print make's internal database.
> > -q, --question Run no recipe; exit status says if up to date.
> > -r, --no-builtin-rules Disable the built-in implicit rules.
> > -R, --no-builtin-variables Disable the built-in variable settings.
> > -s, --silent, --quiet Don't echo recipes.
> > --no-silent Echo recipes (disable --silent mode).
> > -S, --no-keep-going, --stop
> > Turns off -k.
> > -t, --touch Touch targets instead of remaking them.
> > --trace Print tracing information.
> > -v, --version Print the version number of make and exit.
> > -w, --print-directory Print the current directory.
> > --no-print-directory Turn off -w, even if it was turned on implicitly.
> > -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE
> > Consider FILE to be infinitely new.
> > --warn-undefined-variables Warn when an undefined variable is referenced.
> > 
> > This program built for x86_64-pc-linux-gnu
> > Report bugs to [email protected]

Reply via email to