aboutsummaryrefslogtreecommitdiffstats
path: root/src/xrdb.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/xrdb.c')
-rw-r--r--src/xrdb.c45
1 files changed, 20 insertions, 25 deletions
diff --git a/src/xrdb.c b/src/xrdb.c
index e18ff65f799..5998e49b07e 100644
--- a/src/xrdb.c
+++ b/src/xrdb.c
@@ -1,5 +1,5 @@
1/* Deal with the X Resource Manager. 1/* Deal with the X Resource Manager.
2 Copyright (C) 1990, 1993-1994, 2000-2011 Free Software Foundation, Inc. 2 Copyright (C) 1990, 1993-1994, 2000-2012 Free Software Foundation, Inc.
3 3
4Author: Joseph Arceneaux 4Author: Joseph Arceneaux
5Created: 4/90 5Created: 4/90
@@ -426,24 +426,22 @@ get_environ_db (void)
426{ 426{
427 XrmDatabase db; 427 XrmDatabase db;
428 char *p; 428 char *p;
429 char *path = 0, *home = 0; 429 char *path = 0;
430 const char *host;
431 430
432 if ((p = getenv ("XENVIRONMENT")) == NULL) 431 if ((p = getenv ("XENVIRONMENT")) == NULL)
433 { 432 {
434 home = gethomedir (); 433 static char const xdefaults[] = ".Xdefaults-";
435 host = get_system_name (); 434 char *home = gethomedir ();
436 path = (char *) xmalloc (strlen (home) 435 char const *host = get_system_name ();
437 + sizeof (".Xdefaults-") 436 ptrdiff_t pathsize = strlen (home) + sizeof xdefaults + strlen (host);
438 + strlen (host)); 437 path = (char *) xrealloc (home, pathsize);
439 sprintf (path, "%s%s%s", home, ".Xdefaults-", host); 438 strcat (strcat (path, xdefaults), host);
440 p = path; 439 p = path;
441 } 440 }
442 441
443 db = XrmGetFileDatabase (p); 442 db = XrmGetFileDatabase (p);
444 443
445 xfree (path); 444 xfree (path);
446 xfree (home);
447 445
448 return db; 446 return db;
449} 447}
@@ -604,8 +602,8 @@ x_get_resource (XrmDatabase rdb, const char *name, const char *class,
604 XrmClass classlist[100]; 602 XrmClass classlist[100];
605 XrmRepresentation type; 603 XrmRepresentation type;
606 604
607 XrmStringToNameList(name, namelist); 605 XrmStringToNameList (name, namelist);
608 XrmStringToClassList(class, classlist); 606 XrmStringToClassList (class, classlist);
609 607
610 if (XrmQGetResource (rdb, namelist, classlist, &type, &value) == True 608 if (XrmQGetResource (rdb, namelist, classlist, &type, &value) == True
611 && (type == expected_type)) 609 && (type == expected_type))
@@ -651,9 +649,7 @@ typedef char **List;
651#define free_arglist(list) 649#define free_arglist(list)
652 650
653static List 651static List
654member (elt, list) 652member (char *elt, List list)
655 char *elt;
656 List list;
657{ 653{
658 List p; 654 List p;
659 655
@@ -665,20 +661,17 @@ member (elt, list)
665} 661}
666 662
667static void 663static void
668fatal (msg, prog, x1, x2, x3, x4, x5) 664fatal (char *msg, char *prog)
669 char *msg, *prog;
670 int x1, x2, x3, x4, x5;
671{ 665{
672 if (errno) 666 if (errno)
673 perror (prog); 667 perror (prog);
674 668
675 (void) fprintf (stderr, msg, prog, x1, x2, x3, x4, x5); 669 (void) fprintf (stderr, msg, prog);
676 exit (1); 670 exit (1);
677} 671}
678 672
679main (argc, argv) 673int
680 int argc; 674main (int argc, char **argv)
681 char **argv;
682{ 675{
683 Display *display; 676 Display *display;
684 char *displayname, *resource_string, *class, *name; 677 char *displayname, *resource_string, *class, *name;
@@ -749,5 +742,7 @@ main (argc, argv)
749 printf ("\tExit.\n\n"); 742 printf ("\tExit.\n\n");
750 743
751 XCloseDisplay (display); 744 XCloseDisplay (display);
745
746 return 0;
752} 747}
753#endif /* TESTRM */ 748#endif /* TESTRM */