- Add TRUE/FALSE macro definitions to FolioObject.hh and List.hh
to ensure they are defined before use with C11 standard
- Fix config.h include paths in DtSR_BookcaseEntry.C and
DtSR_SearchResultsEntry.C to use relative path ../../config.h
so ON_DEBUG and ISSPACE_C macros are available
XKeycodeToKeysym() has been deprecated since X11R6.1 (1996).
Use XkbKeycodeToKeysym() instead, which takes an additional group
parameter (0 for default keyboard group).
API change:
XKeycodeToKeysym(display, keycode, index)
-> XkbKeycodeToKeysym(display, keycode, 0, index)
Files modified:
- lib/DtWidget/Editor.c
- programs/dtcalc/motif.c
- programs/dtsession/SmSave.c
- programs/dtwm/WmCPlace.c
- programs/dtwm/WmResParse.c
- programs/dtwm/WmWinConf.c
Replace strncat(buf, str, strlen(str)) with strcat(buf, str).
Using strlen(src) as the bound to strncat is pointless - it will
always copy the entire source string, making it equivalent to strcat.
This also triggers -Wstringop-overflow warnings on modern GCC.
Similarly, strncat with literal strings and their exact length
(e.g., strncat(buf, "==", 2)) is equivalent to strcat.
The PAM configuration directory was hardcoded to /etc/pam.d (or
/usr/local/etc/pam.d on FreeBSD), which prevented non-root installations.
This change:
- Adds --with-pam-dir configure option to specify PAM config location
- Defaults to /etc/pam.d for system installs (prefix=/usr or /usr/local)
- Defaults to PREFIX/etc/pam.d for local/user installs
- Updates dtlogin/config/Makefile.am to use the PAM_CONFDIR variable
Examples:
# User installation (PAM config goes to ~/cde/etc/pam.d)
./configure --prefix=$HOME/cde
# System install with standard PAM location
./configure --prefix=/usr # PAM goes to /etc/pam.d
# Explicit PAM directory
./configure --prefix=/opt/cde --with-pam-dir=/etc/pam.d
It _probably_ works to just pass free(ptr) another two arguments, but
compilers don't like this kind of sloppiness anymore.
The call site only expects this function to free the first value,
ignoring the other two, so model that in the local wrapper function.
putenv doesn't copy the data, so the stack address used here is plain
wrong. It _probably_ doesn't matter all that much because it's
immediately followed by execv(), but let's keep things clean.
From a diff file provided by Mariusz Zynel:
Every time, every dt program gives that error on its
start. t_optmgmt() is called once in _tt_tli_set_nodelay(), as the
name says, to set TCP_NODELAY option for ToolTalk connections.
The current behavior is not standards conformant, and will cause the
format operation to result in empty text as glibc fails any calls to
getwc against a narrow stream with WEOF. Additionally, narrow write
operations against a wide stream appears to bypass the buffer, causing
incorrect formatting results.
Fix this by changing all write operations against the reformatted output
file stream to be wide operations, and reopening the temporary input
file before performing any wide read operations.