This has meant very little for a long time as configure.ac just
hardcoded these values depending on the current OS versions at the
time.
The only place where this is really 'needed' is XlationSvc.c in DtSvc
so that differences between locale specifications on various versions
of an OS can be accounted for. So for now, we just define those when
building DtSvc.
We could probably safely remove them as well with an update to the
Xlate locale DB to remove ancient cruft we don't care about anymore.
For various other modules, like dtlogin, dtsession, etc we just use
the code that was already being used due to the hardcoded values we've
had for the last 10-ish years.
When building a program foo in-tree, libtool 2.4.6 generates an
executable called lt-foo with a wrapper script called foo. This
means that argv[0] inside the program is lt-foo rather than foo.
This is a problem for dtcodegen, which uses the program name for various
purposes including the "generated by" banner and the logfile name.
Remove the lt- prefix if present to avoid this.
CDE has relied upon catgets() implementations following a relaxed
interpretation of the XPG internationalization standard that ignored
-1, the standard error value returned by catopen, as the catalog
argument. However, this same behavior causes segmentation faults with
the musl C library.
This patch:
- Centralizes (with the exception of ToolTalk) all calls to catopen(),
catgets(), and catclose() through MsgCat within the DtSvc library.
- Prevents calls to catgets() and catclose() that rely upon
undefined behavior.
- Eliminates a number of bespoke catgets() wrappers, including multiple
redundant caching implementations designed to work around a design
peculiarity in HP/UX.
- Eases building CDE without XPG internationalization support by providing
the appropriate macros.
This patch fixes many warnings from the beginning of the build up to
and including the depend stage. Nearly all warnings should be gone
even with -Wall.
Removed all the cases of sys_errlist[], no one should be using that
today. Also, correct code generation so that declarations like
'Widget w = NULL; Pixmap p = NULL;' etc, aren't produced, which is
wrong. Use '0', not NULL for these.
This should also correct the 2 mis-definitions of Pixmap that commit
6a9327f2ab attempted to fix in ttsnoop.
dtappbuilder still needs a lot of work.
Fixes many, though not all 64bit-warnings. In lots of places, pointers are
cast to ints to be then used as array subscripts. The only way to deal with
this is to change them to long. Additionally, use calloc() to allocate the
int_array in istr.c and drop the (wrong) macro patch to istr.h. Should make
dtbuilder work on 32bit again.
This reverts commit 0d2f7866ac.
This causes great mayhem in building/generating dtbuilder .msg files
(corrupting them, and inserting '(nil)' all over the place).
These would cause dtbuilder, and any other program built by dtcodegen
to have screwed up colors, missing callbacks and other mayhem.
This was confirmed by others on the list - reverting this made those
issues go away.
It may be that the int -> long is correct, but the NULL check
certainly does not seem to do what was intended. I'll leave it up to
Pascal to investigate :)
This is a non-POSIX/ISO-C header. It is ok to include this on Linux, but it
is obsolete on BSD; FreeBSD even throws an error if you include it with
__STDC__ defined. Every system should nowadays have malloc() defined in
stdlib.h.
Diff is largely mechanical, replacing malloc.h with stdlib.h where it is not
yet included anyway.