1
0
Fork 0
mirror of git://git.code.sf.net/p/cdesktopenv/code synced 2025-03-09 15:50:02 +00:00
cde/src/cmd/builtin
Martijn Dekker 3fc6cf0e2f iffe: really abort on output{ fail (re: e20c0c6b, e72543a, b6bd981)
After further examining the iffe code I found that fail{ ... }end
as well as pass{ ... }end blocks are executed in iffe's current
environment, using a simple 'eval', with no safeguards whatsoever!

This does of course afford maximum flexibility... for example, a
block can 'exit 1' to abort the iffe run and the whole build with
it. We can use this to abort properly on fatal compilation errors.

src/cmd/INIT/iffe.sh:
- Complete the fail{ and pass{ documentation; it should really be
  known that they run in iffe's current environment.
- Make one change: for just the 'eval' command that runs these
  blocks, redirect standard error back to the saved $stderr file
  descriptor so these blocks can write error messages using the
  standard >&2 instead of the undocumented >&$stderr.

src/lib/**/features/*:
- Write error message to standard error and error out properly when
  an output{ ... }end block fails to compile, instead of writing an
  #error directive to error out later.
2022-01-01 02:28:27 +00:00
..
features iffe: really abort on output{ fail (re: e20c0c6b, e72543a, b6bd981) 2022-01-01 02:28:27 +00:00
Mamfile INIT: remove proto, ratz (re: 46593a89, 6137b99a); major cleanup 2021-12-24 07:05:22 +00:00
pty.c INIT: remove proto, ratz (re: 46593a89, 6137b99a); major cleanup 2021-12-24 07:05:22 +00:00
RELEASE Various minor capitalization and typo fixes (#371) 2021-12-13 01:49:42 +01:00