diff options
| author | Stefan Monnier | 2012-03-25 16:37:21 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2012-03-25 16:37:21 -0400 |
| commit | 699c782b7668c44d0fa4446331b0590a6d5dac82 (patch) | |
| tree | 5dcce364741d0761920a3d274b0fc8aba4103d45 /src/xrdb.c | |
| parent | 98fb480ee31bf74cf554044f60f21df16566dd7f (diff) | |
| parent | e99a9b8bdccadded1f6fae88ee7a2a93dfd4eacf (diff) | |
| download | emacs-pending.tar.gz emacs-pending.zip | |
Merge from trunkpending
Diffstat (limited to 'src/xrdb.c')
| -rw-r--r-- | src/xrdb.c | 45 |
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 | ||
| 4 | Author: Joseph Arceneaux | 4 | Author: Joseph Arceneaux |
| 5 | Created: 4/90 | 5 | Created: 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 | ||
| 653 | static List | 651 | static List |
| 654 | member (elt, list) | 652 | member (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 | ||
| 667 | static void | 663 | static void |
| 668 | fatal (msg, prog, x1, x2, x3, x4, x5) | 664 | fatal (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 | ||
| 679 | main (argc, argv) | 673 | int |
| 680 | int argc; | 674 | main (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 */ |