Centralize catgets() calls through MsgCat
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 commit is contained in:
committed by
Jon Trulson
parent
3379999106
commit
a6ea2a2d52
@@ -104,7 +104,7 @@ int austext_dopen (
|
||||
/* Test dbname */
|
||||
if (dbname == NULL) {
|
||||
INVALID_DBNAME:
|
||||
sprintf (sprintbuf, catgets (dtsearch_catd, 13, 348,
|
||||
sprintf (sprintbuf, CATGETS(dtsearch_catd, 13, 348,
|
||||
"%s Invalid database name '%s'."),
|
||||
PROGNAME"348", NULLORSTR(dbname));
|
||||
DtSearchAddMessage (sprintbuf);
|
||||
@@ -175,7 +175,7 @@ INVALID_DBNAME:
|
||||
SETPAGES (PROGNAME "283", cache, 4);
|
||||
d_open (dbdbuf, "o");
|
||||
if (db_status != S_OKAY) {
|
||||
sprintf (sprintbuf, catgets (dtsearch_catd, 13, 379,
|
||||
sprintf (sprintbuf, CATGETS(dtsearch_catd, 13, 379,
|
||||
"%s Could not open database '%s':\n %s."),
|
||||
PROGNAME"379", dbdbuf, vista_msg (PROGNAME"379"));
|
||||
DtSearchAddMessage (sprintbuf);
|
||||
|
||||
Reference in New Issue
Block a user