xfree86/config: Kludge around const strings

defaultFontPath is now a const char * so that it can be initialized
from a string constant. This patch kludges around that by inserting
suitable casts to eliminate warnings. Fixing this 'correctly' would
involve inserting some new variables and conditionals to use them.

Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
Keith Packard 2013-11-16 23:26:19 -08:00
parent 86647e7279
commit 8a9aa44a45

View File

@ -171,7 +171,7 @@ xf86GetPathElem(char **pnt)
static char * static char *
xf86ValidateFontPath(char *path) xf86ValidateFontPath(char *path)
{ {
char *tmp_path, *out_pnt, *path_elem, *next, *p1, *dir_elem; char *next, *tmp_path, *out_pnt, *path_elem, *p1, *dir_elem;
struct stat stat_buf; struct stat stat_buf;
int flag; int flag;
int dirlen; int dirlen;
@ -589,33 +589,35 @@ configFiles(XF86ConfFilesPtr fileconf)
/* FontPath */ /* FontPath */
must_copy = TRUE; must_copy = TRUE;
temp_path = defaultFontPath ? defaultFontPath : (char *) ""; temp_path = defaultFontPath ? (char *) defaultFontPath : (char *) "";
if (xf86fpFlag) if (xf86fpFlag)
pathFrom = X_CMDLINE; pathFrom = X_CMDLINE;
else if (fileconf && fileconf->file_fontpath) { else if (fileconf && fileconf->file_fontpath) {
pathFrom = X_CONFIG; pathFrom = X_CONFIG;
if (xf86Info.useDefaultFontPath) { if (xf86Info.useDefaultFontPath) {
if (asprintf(&defaultFontPath, "%s%s%s", fileconf->file_fontpath, char *new_font_path;
if (asprintf(&new_font_path, "%s%s%s", fileconf->file_fontpath,
*temp_path ? "," : "", temp_path) == -1) *temp_path ? "," : "", temp_path) == -1)
defaultFontPath = NULL; new_font_path = NULL;
else else
must_copy = FALSE; must_copy = FALSE;
defaultFontPath = new_font_path;
} }
else else
defaultFontPath = fileconf->file_fontpath; defaultFontPath = fileconf->file_fontpath;
} }
else else
pathFrom = X_DEFAULT; pathFrom = X_DEFAULT;
temp_path = defaultFontPath ? defaultFontPath : (char *) ""; temp_path = defaultFontPath ? (char *) defaultFontPath : (char *) "";
/* xf86ValidateFontPath modifies its argument, but returns a copy of it. */ /* xf86ValidateFontPath modifies its argument, but returns a copy of it. */
temp_path = must_copy ? xnfstrdup(defaultFontPath) : defaultFontPath; temp_path = must_copy ? xnfstrdup(defaultFontPath) : (char *) defaultFontPath;
defaultFontPath = xf86ValidateFontPath(temp_path); defaultFontPath = xf86ValidateFontPath(temp_path);
free(temp_path); free(temp_path);
/* make fontpath more readable in the logfiles */ /* make fontpath more readable in the logfiles */
countDirs = 1; countDirs = 1;
temp_path = defaultFontPath; temp_path = (char *) defaultFontPath;
while ((temp_path = index(temp_path, ',')) != NULL) { while ((temp_path = index(temp_path, ',')) != NULL) {
countDirs++; countDirs++;
temp_path++; temp_path++;
@ -623,7 +625,7 @@ configFiles(XF86ConfFilesPtr fileconf)
log_buf = xnfalloc(strlen(defaultFontPath) + (2 * countDirs) + 1); log_buf = xnfalloc(strlen(defaultFontPath) + (2 * countDirs) + 1);
temp_path = log_buf; temp_path = log_buf;
start = defaultFontPath; start = (char *) defaultFontPath;
while ((end = index(start, ',')) != NULL) { while ((end = index(start, ',')) != NULL) {
size = (end - start) + 1; size = (end - start) + 1;
*(temp_path++) = '\t'; *(temp_path++) = '\t';