From d8f7cc9553701f5cc53c22ee2e48041ceb19e78c Mon Sep 17 00:00:00 2001 From: Alan Coopersmith Date: Sun, 28 Nov 2021 12:40:28 -0800 Subject: Adapt to X.Org standard coding style Signed-off-by: Alan Coopersmith --- dsimple.c | 96 ++++++++-------- dsimple.h | 16 +-- xlsfonts.c | 365 +++++++++++++++++++++++++++++++------------------------------ 3 files changed, 243 insertions(+), 234 deletions(-) diff --git a/dsimple.c b/dsimple.c index 99bff1d..5227f5c 100644 --- a/dsimple.c +++ b/dsimple.c @@ -51,40 +51,40 @@ from The Open Group. * Written by Mark Lillibridge. Last updated 7/1/87 */ - /* This stuff is defined in the calling program by just_display.h */ -const char *program_name = "unknown_program"; +const char *program_name = "unknown_program"; Display *dpy = NULL; -int screen = 0; +int screen = 0; /* * Get_Display_Name (argc, argv) Look for -display, -d, or host:dpy (obsolete) * If found, remove it from command line. Don't go past a lone -. */ static char * -Get_Display_Name(int *pargc/* MODIFIED */, char **argv/* MODIFIED */) +Get_Display_Name(int *pargc /* MODIFIED */, char **argv /* MODIFIED */) { int argc = *pargc; - char **pargv = argv+1; + char **pargv = argv + 1; char *displayname = NULL; int i; for (i = 1; i < argc; i++) { - char *arg = argv[i]; - - if (!strcmp (arg, "-display") || !strcmp (arg, "-d")) { - if (++i >= argc) usage ("-display requires an argument"); - - displayname = argv[i]; - *pargc -= 2; - continue; - } - if (!strcmp(arg,"-")) { - while (i= argc) + usage("-display requires an argument"); + + displayname = argv[i]; + *pargc -= 2; + continue; + } + if (!strcmp(arg, "-")) { + while (i < argc) + *pargv++ = argv[i++]; + break; + } + *pargv++ = arg; } *pargv = NULL; @@ -99,16 +99,16 @@ Get_Display_Name(int *pargc/* MODIFIED */, char **argv/* MODIFIED */) static Display * Open_Display(char *display_name) { - Display *d; + Display *d; - d = XOpenDisplay(display_name); - if (d == NULL) { - fprintf (stderr, "%s: unable to open display '%s'\n", - program_name, XDisplayName (display_name)); - exit(1); - } + d = XOpenDisplay(display_name); + if (d == NULL) { + fprintf(stderr, "%s: unable to open display '%s'\n", + program_name, XDisplayName(display_name)); + exit(1); + } - return(d); + return (d); } @@ -120,41 +120,43 @@ Open_Display(char *display_name) * Does not require dpy or screen defined. */ void -Setup_Display_And_Screen(int *argc/* MODIFIED */, char **argv/* MODIFIED */) +Setup_Display_And_Screen(int *argc /* MODIFIED */, char **argv /* MODIFIED */) { - char *displayname = Get_Display_Name(argc, argv); + char *displayname = Get_Display_Name(argc, argv); - dpy = Open_Display (displayname); - screen = XDefaultScreen(dpy); + dpy = Open_Display(displayname); + screen = XDefaultScreen(dpy); } /* * Close_Display: Close display */ -void Close_Display(void) +void +Close_Display(void) { if (dpy == NULL) - return; - + return; + XCloseDisplay(dpy); dpy = NULL; } - /* * Standard fatal error routine - call like printf but maximum of 7 arguments. * Does not require dpy or screen defined. */ -void Fatal_Error(const char *msg, ...) +void +Fatal_Error(const char *msg, ...) { - va_list args; - fflush(stdout); - fflush(stderr); - fprintf(stderr, "%s: error: ", program_name); - va_start(args, msg); - vfprintf(stderr, msg, args); - va_end(args); - fprintf(stderr, "\n"); - Close_Display(); - exit(EXIT_FAILURE); + va_list args; + + fflush(stdout); + fflush(stderr); + fprintf(stderr, "%s: error: ", program_name); + va_start(args, msg); + vfprintf(stderr, msg, args); + va_end(args); + fprintf(stderr, "\n"); + Close_Display(); + exit(EXIT_FAILURE); } diff --git a/dsimple.h b/dsimple.h index a559d44..aeb5eda 100644 --- a/dsimple.h +++ b/dsimple.h @@ -49,12 +49,12 @@ from The Open Group. /* Global variables used by routines in just_display.c */ -extern const char *program_name; /* Name of this program */ -extern Display *dpy; /* The current display */ -extern int screen; /* The current screen */ +extern const char *program_name; /* Name of this program */ +extern Display *dpy; /* The current display */ +extern int screen; /* The current screen */ -#define INIT_NAME program_name=argv[0] /* use this in main to setup - program_name */ +#define INIT_NAME program_name=argv[0] /* use this in main to setup + program_name */ /* Declarations for functions in dsimple.c */ @@ -62,7 +62,7 @@ void Setup_Display_And_Screen(int *, char **); void Close_Display(void); void usage(const char *errmsg) _X_NORETURN; -#define X_USAGE "[host:display]" /* X arguments handled by - Get_Display_Name */ +#define X_USAGE "[host:display]" /* X arguments handled by + Get_Display_Name */ -void Fatal_Error(const char *, ...) _X_NORETURN _X_ATTRIBUTE_PRINTF(1,2); +void Fatal_Error(const char *, ...) _X_NORETURN _X_ATTRIBUTE_PRINTF(1, 2); diff --git a/xlsfonts.c b/xlsfonts.c index b8dbcfc..52d3807 100644 --- a/xlsfonts.c +++ b/xlsfonts.c @@ -36,10 +36,10 @@ in this Software without prior written authorization from The Open Group. #include #include "dsimple.h" -#define N_START INT_MAX /* Maximum # of fonts to start with (should - * always be be > 10000 as modern OSes like - * Solaris 8 already have more than 9000 XLFD - * fonts available) */ +#define N_START INT_MAX /* Maximum # of fonts to start with (should + * always be be > 10000 as modern OSes like + * Solaris 8 already have more than 9000 XLFD + * fonts available) */ #define L_SHORT 0 #define L_MEDIUM 1 @@ -58,8 +58,8 @@ static int font_cnt = 0; static int min_max; typedef struct { - char *name; - XFontStruct *info; + char *name; + XFontStruct *info; } FontList; static FontList *font_list = NULL; @@ -68,37 +68,39 @@ static FontList *font_list = NULL; static void get_list(const char *pattern); static int compare(const void *arg1, const void *arg2); static void show_fonts(void); -static void copy_number(char **pp1, char**pp2, int n1, int n2); +static void copy_number(char **pp1, char **pp2, int n1, int n2); static int IgnoreError(Display *disp, XErrorEvent *event); static void PrintProperty(XFontProp *prop); static void ComputeFontType(XFontStruct *fs); static void print_character_metrics(register XFontStruct *info); -static void do_query_font (Display *dpy, char *name); +static void do_query_font(Display *dpy, char *name); -void usage(const char *errmsg) +void +usage(const char *errmsg) { if (errmsg != NULL) - fprintf (stderr, "%s: %s\n\n", program_name, errmsg); - - fprintf (stderr, "usage: %s [-options] [-fn pattern]\n%s", program_name, - "where options include:\n" - " -l[l[l]] give long info about each font\n" - " -m give character min and max bounds\n" - " -C force columns\n" - " -1 force single column\n" - " -u keep output unsorted\n" - " -o use OpenFont/QueryFont instead of ListFonts\n" - " -w width maximum width for multiple columns\n" - " -n columns number of columns if multi column\n" - " -display displayname X server to contact\n" - " -d displayname (alias for -display displayname)\n" - " -v print program version\n" - "\n"); + fprintf(stderr, "%s: %s\n\n", program_name, errmsg); + + fprintf(stderr, "usage: %s [-options] [-fn pattern]\n%s", program_name, + "where options include:\n" + " -l[l[l]] give long info about each font\n" + " -m give character min and max bounds\n" + " -C force columns\n" + " -1 force single column\n" + " -u keep output unsorted\n" + " -o use OpenFont/QueryFont instead of ListFonts\n" + " -w width maximum width for multiple columns\n" + " -n columns number of columns if multi column\n" + " -display displayname X server to contact\n" + " -d displayname (alias for -display displayname)\n" + " -v print program version\n" + "\n"); Close_Display(); exit(EXIT_FAILURE); } -int main(int argc, char **argv) +int +main(int argc, char **argv) { int argcnt = 0, i; @@ -110,9 +112,9 @@ int main(int argc, char **argv) for (argv++, argc--; argc; argv++, argc--) { if (argv[0][0] == '-') { if (argcnt > 0) - usage ("options may not be specified after font names"); - for (i=1; argv[0][i]; i++) - switch(argv[0][i]) { + usage("options may not be specified after font names"); + for (i = 1; argv[0][i]; i++) + switch (argv[0][i]) { case 'l': long_list++; break; @@ -125,24 +127,27 @@ int main(int argc, char **argv) case '1': columns = 1; break; - case 'f': /* "-fn" */ - if (argv[0][i+1] != 'n') { - fprintf (stderr, "%s: unrecognized argument %s\n\n", - program_name, argv[0]); + case 'f': /* "-fn" */ + if (argv[0][i + 1] != 'n') { + fprintf(stderr, "%s: unrecognized argument %s\n\n", + program_name, argv[0]); usage(NULL); } - if (--argc <= 0) usage ("-fn requires an argument"); + if (--argc <= 0) + usage("-fn requires an argument"); argcnt++; argv++; get_list(argv[0]); goto next; case 'w': - if (--argc <= 0) usage ("-w requires an argument"); + if (--argc <= 0) + usage("-w requires an argument"); argv++; max_output_line_width = atoi(argv[0]); goto next; case 'n': - if (--argc <= 0) usage ("-n requires an argument"); + if (--argc <= 0) + usage("-n requires an argument"); argv++; columns = atoi(argv[0]); goto next; @@ -156,56 +161,56 @@ int main(int argc, char **argv) puts(PACKAGE_STRING); exit(0); default: - fprintf (stderr, "%s: unrecognized argument -%c\n\n", - program_name, argv[0][i]); + fprintf(stderr, "%s: unrecognized argument -%c\n\n", + program_name, argv[0][i]); usage(NULL); break; } if (i == 1) { - fprintf (stderr, "%s: unrecognized argument %s\n\n", - program_name, argv[0]); + fprintf(stderr, "%s: unrecognized argument %s\n\n", + program_name, argv[0]); usage(NULL); } - } else { + } + else { argcnt++; get_list(argv[0]); } - next: ; + next: ; } if (argcnt == 0) get_list("*"); show_fonts(); - + Close_Display(); return EXIT_SUCCESS; } - -static -void get_list(const char *pattern) +static void +get_list(const char *pattern) { - int available = nnames+1, - i; - char **fonts; - XFontStruct *info; + int available = nnames + 1, i; + char **fonts; + XFontStruct *info; /* Get list of fonts matching pattern */ for (;;) { if (open_instead_of_list) { - info = XLoadQueryFont (dpy, pattern); + info = XLoadQueryFont(dpy, pattern); if (info) { fonts = &pattern; available = 1; - XUnloadFont (dpy, info->fid); - } else { + XUnloadFont(dpy, info->fid); + } + else { fonts = NULL; } break; } - + if (long_list == L_MEDIUM) fonts = XListFontsWithInfo(dpy, pattern, nnames, &available, &info); else @@ -228,19 +233,19 @@ void get_list(const char *pattern) font_list = realloc(font_list, (font_cnt + available) * sizeof(FontList)); if (font_list == NULL) Fatal_Error("Out of memory!"); - for (i=0; iname; while (*p1 && *p2 && *p1 == *p2) - p1++, p2++; - return(*p1 - *p2); + p1++, p2++; + return (*p1 - *p2); } -static -void show_fonts(void) +static void +show_fonts(void) { int i; @@ -261,18 +266,20 @@ void show_fonts(void) return; /* first sort the output */ - if (sort_output) qsort(font_list, font_cnt, sizeof(FontList), compare); + if (sort_output) + qsort(font_list, font_cnt, sizeof(FontList), compare); if (long_list > L_MEDIUM) { for (i = 0; i < font_cnt; i++) { - do_query_font (dpy, font_list[i].name); + do_query_font(dpy, font_list[i].name); } return; } if (long_list == L_MEDIUM) { XFontStruct *pfi; - const char *string; + + const char *string; printf("DIR "); printf("MIN "); @@ -284,26 +291,31 @@ void show_fonts(void) printf("DESC "); printf("NAME"); printf("\n"); - for (i=0; idirection) { - case FontLeftToRight: string = "-->"; break; - case FontRightToLeft: string = "<--"; break; - default: string = "???"; break; + switch (pfi->direction) { + case FontLeftToRight: + string = "-->"; + break; + case FontRightToLeft: + string = "<--"; + break; + default: + string = "???"; + break; } printf("%-4s", string); - if (pfi->min_byte1 == 0 && - pfi->max_byte1 == 0) { + if (pfi->min_byte1 == 0 && pfi->max_byte1 == 0) { printf(" %3d ", pfi->min_char_or_byte2); printf(" %3d ", pfi->max_char_or_byte2); - } else { + } + else { printf("*%3d ", pfi->min_byte1); printf("*%3d ", pfi->max_byte1); } @@ -314,10 +326,9 @@ void show_fonts(void) printf("%4d ", pfi->descent); printf("%s\n", font_list[i].name); if (min_max) { - char min[ BUFSIZ ], - max[ BUFSIZ ]; - char *pmax = max, - *pmin = min; + char min[BUFSIZ], max[BUFSIZ]; + + char *pmax = max, *pmin = min; strcpy(pmin, " min(l,r,w,a,d) = ("); strcpy(pmax, " max(l,r,w,a,d) = ("); @@ -353,13 +364,9 @@ void show_fonts(void) } if ((columns == 0 && isatty(1)) || columns > 1) { - int width, - max_width = 0, - lines_per_column, - j, - index; + int width, max_width = 0, lines_per_column, j, index; - for (i=0; i max_width) max_width = width; @@ -371,48 +378,49 @@ void show_fonts(void) if ((max_width * 2) + output_line_padding > max_output_line_width) { columns = 1; - } else { + } + else { max_width += output_line_padding; columns = ((max_output_line_width + output_line_padding) / max_width); } - } else { + } + else { max_width += output_line_padding; } - if (columns <= 1) goto single_column; + if (columns <= 1) + goto single_column; if (font_cnt < columns) columns = font_cnt; lines_per_column = (font_cnt + columns - 1) / columns; - for (i=0; i= font_cnt) break; - if (j+1 == columns) - printf("%s", font_list[ index ].name); + if (j + 1 == columns) + printf("%s", font_list[index].name); else - printf("%-*s", - max_width, - font_list[ index ].name); + printf("%-*s", max_width, font_list[index].name); } printf("\n"); } return; } - single_column: - for (i=0; iwidth, p->lbearing, \ p->rbearing, p->ascent, p->descent, p->attributes); } - -static const char* stringValued [] = { /* values are atoms */ +static const char *stringValued[] = { /* values are atoms */ /* font name components (see section 3.2 of the XLFD) */ "FOUNDRY", "FAMILY_NAME", @@ -459,7 +464,7 @@ static const char* stringValued [] = { /* values are atoms */ /* other standard X font properties (see section 3.2 of the XLFD) */ "FONT", "FACE_NAME", - "FULL_NAME", /* deprecated */ + "FULL_NAME", /* deprecated */ "COPYRIGHT", "NOTICE", "FONT_TYPE", @@ -469,7 +474,7 @@ static const char* stringValued [] = { /* values are atoms */ /* other registered font properties (see the X.org Registry, sec. 15) */ "_ADOBE_POSTSCRIPT_FONTNAME", - + /* unregistered font properties */ "CHARSET_COLLECTIONS", "CLASSIFICATION", @@ -479,11 +484,11 @@ static const char* stringValued [] = { /* values are atoms */ "QUALITY", "RELATIVE_SET", "STYLE", - NULL - }; + NULL +}; -static -void PrintProperty(XFontProp *prop) +static void +PrintProperty(XFontProp * prop) { char *atom, *value; char nosuch[40]; @@ -494,36 +499,37 @@ void PrintProperty(XFontProp *prop) if (!atom) { atom = nosuch; nosuch[0] = '\0'; - (void)sprintf (atom, "No such atom = %ld", prop->name); + (void) sprintf(atom, "No such atom = %ld", prop->name); } - printf (" %s", atom); + printf(" %s", atom); /* Pad out to a column width of 22, but ensure there is always at least one space between property name & value. */ - for (i = strlen(atom); i < 21; i++) putchar (' '); + for (i = strlen(atom); i < 21; i++) + putchar(' '); putchar(' '); - for (i = 0; ; i++) { + for (i = 0;; i++) { if (stringValued[i] == NULL) { - printf ("%ld\n", prop->card32); + printf("%ld\n", prop->card32); break; } if (strcmp(stringValued[i], atom) == 0) { value = XGetAtomName(dpy, prop->card32); if (value == NULL) - printf ("%ld (expected string value)\n", prop->card32); + printf("%ld (expected string value)\n", prop->card32); else { - printf ("%s\n", value); - XFree (value); + printf("%s\n", value); + XFree(value); } break; } - } - if (atom != nosuch) XFree (atom); - XSetErrorHandler (oldhandler); + } + if (atom != nosuch) + XFree(atom); + XSetErrorHandler(oldhandler); } - static void ComputeFontType(XFontStruct *fs) { @@ -531,11 +537,11 @@ ComputeFontType(XFontStruct *fs) Bool char_cell = True; const char *reason = NULL; XCharStruct *cs; - Atom awatom = XInternAtom (dpy, "AVERAGE_WIDTH", False); + Atom awatom = XInternAtom(dpy, "AVERAGE_WIDTH", False); - printf (" font type:\t\t"); + printf(" font type:\t\t"); if (fs->min_bounds.width != fs->max_bounds.width) { - printf ("Proportional (min and max widths not equal)\n"); + printf("Proportional (min and max widths not equal)\n"); return; } @@ -553,10 +559,11 @@ ComputeFontType(XFontStruct *fs) if (fs->per_char) { for (i = fs->min_char_or_byte2, cs = fs->per_char; i <= fs->max_char_or_byte2; i++, cs++) { - if (cs->width == 0) continue; + if (cs->width == 0) + continue; if (cs->width != fs->max_bounds.width) { /* this shouldn't happen since we checked above */ - printf ("Proportional (characters not all the same width)\n"); + printf("Proportional (characters not all the same width)\n"); return; } if (char_cell) { @@ -567,7 +574,8 @@ ComputeFontType(XFontStruct *fs) char_cell = False; reason = "ink outside bounding box"; } - } else { + } + else { if (!(0 <= cs->lbearing && cs->lbearing <= cs->rbearing && cs->rbearing <= cs->width)) { @@ -577,21 +585,21 @@ ComputeFontType(XFontStruct *fs) } if (!(cs->ascent <= fs->ascent && cs->descent <= fs->descent)) { - char_cell = False; + char_cell = False; reason = "characters not all same ascent or descent"; } } } } - printf ("%s", char_cell ? "Character Cell" : "Monospaced"); - if (reason) printf (" (%s)", reason); - printf ("\n"); - + printf("%s", char_cell ? "Character Cell" : "Monospaced"); + if (reason) + printf(" (%s)", reason); + printf("\n"); + return; } - static void print_character_metrics(register XFontStruct *info) { @@ -599,16 +607,17 @@ print_character_metrics(register XFontStruct *info) register int i, j; unsigned n, saven; - printf (" character metrics:\n"); + printf(" character metrics:\n"); saven = ((info->min_byte1 << 8) | info->min_char_or_byte2); for (j = info->min_byte1; j <= info->max_byte1; j++) { n = saven; for (i = info->min_char_or_byte2; i <= info->max_char_or_byte2; i++) { - char *s = XKeysymToString ((KeySym) n); - printf ("\t0x%02x%02x (%u)\t%4d %4d %4d %4d %4d 0x%04x %s\n", - j, i, n, pc->width, pc->lbearing, - pc->rbearing, pc->ascent, pc->descent, pc->attributes, - s ? s : "."); + char *s = XKeysymToString((KeySym) n); + + printf("\t0x%02x%02x (%u)\t%4d %4d %4d %4d %4d 0x%04x %s\n", + j, i, n, pc->width, pc->lbearing, + pc->rbearing, pc->ascent, pc->descent, pc->attributes, + s ? s : "."); pc++; n++; } @@ -616,47 +625,45 @@ print_character_metrics(register XFontStruct *info) } } -static -void do_query_font (Display *dpy, char *name) +static void +do_query_font(Display *dpy, char *name) { register int i; - register XFontStruct *info = XLoadQueryFont (dpy, name); + register XFontStruct *info = XLoadQueryFont(dpy, name); if (!info) { - fprintf (stderr, "%s: unable to get info about font \"%s\"\n", - program_name, name); + fprintf(stderr, "%s: unable to get info about font \"%s\"\n", + program_name, name); return; } - printf ("name: %s\n", name ? name : "(nil)"); - printf (" direction:\t\t%s\n", ((info->direction == FontLeftToRight) - ? "left to right" : "right to left")); - printf (" indexing:\t\t%s\n", - ((info->min_byte1 == 0 && info->max_byte1 == 0) ? "linear" : - "matrix")); - printf (" rows:\t\t\t0x%02x thru 0x%02x (%d thru %d)\n", - info->min_byte1, info->max_byte1, - info->min_byte1, info->max_byte1); - printf (" columns:\t\t0x%02x thru 0x%02x (%d thru %d)\n", - info->min_char_or_byte2, info->max_char_or_byte2, - info->min_char_or_byte2, info->max_char_or_byte2); - printf (" all chars exist:\t%s\n", - (info->all_chars_exist) ? "yes" : "no"); - printf (" default char:\t\t0x%04x (%d)\n", - info->default_char, info->default_char); - printf (" ascent:\t\t%d\n", info->ascent); - printf (" descent:\t\t%d\n", info->descent); - ComputeFontType (info); - printf (" bounds:\t\t%s", bounds_metrics_title); - PrintBounds ("min", &info->min_bounds); - PrintBounds ("max", &info->max_bounds); - if (info->per_char && long_list >= L_VERYLONG) - print_character_metrics (info); - printf (" properties:\t\t%d\n", info->n_properties); + printf("name: %s\n", name ? name : "(nil)"); + printf(" direction:\t\t%s\n", ((info->direction == FontLeftToRight) + ? "left to right" : "right to left")); + printf(" indexing:\t\t%s\n", + ((info->min_byte1 == 0 && info->max_byte1 == 0) + ? "linear" : "matrix")); + printf(" rows:\t\t\t0x%02x thru 0x%02x (%d thru %d)\n", + info->min_byte1, info->max_byte1, + info->min_byte1, info->max_byte1); + printf(" columns:\t\t0x%02x thru 0x%02x (%d thru %d)\n", + info->min_char_or_byte2, info->max_char_or_byte2, + info->min_char_or_byte2, info->max_char_or_byte2); + printf(" all chars exist:\t%s\n", + (info->all_chars_exist) ? "yes" : "no"); + printf(" default char:\t\t0x%04x (%d)\n", + info->default_char, info->default_char); + printf(" ascent:\t\t%d\n", info->ascent); + printf(" descent:\t\t%d\n", info->descent); + ComputeFontType(info); + printf(" bounds:\t\t%s", bounds_metrics_title); + PrintBounds("min", &info->min_bounds); + PrintBounds("max", &info->max_bounds); + if (info->per_char && long_list >= L_VERYLONG) + print_character_metrics(info); + printf(" properties:\t\t%d\n", info->n_properties); for (i = 0; i < info->n_properties; i++) - PrintProperty (&info->properties[i]); - printf ("\n"); + PrintProperty(&info->properties[i]); + printf("\n"); - XFreeFontInfo (NULL, info, 1); + XFreeFontInfo(NULL, info, 1); } - - -- cgit v1.2.3