void show_fonts(hash_entry h[]) { int i; if ( h == NULL ) { return; } for(i=0; i<HASH_KEYS_PER_TABLE; i++) { if ( h[i].key == NULL ) { continue; } if ( h[i].key == hash_next_magic ) { show_fonts(h[i].value); } else { printf("%s\t%p\t%s\n", h[i].key, h[i].value, (*(((fontface*)h[i].value)->ftface))->family_name); } } }
int main(int argc, char **argv) { int argcnt = 0, i; INIT_NAME; /* Handle command line arguments, open display */ Setup_Display_And_Screen(&argc, argv); for (argv++, argc--; argc; argv++, argc--) { if (argv[0][0] == '-') { if (argcnt > 0) usage (); for (i=1; argv[0][i]; i++) switch(argv[0][i]) { case 'l': long_list++; break; case 'm': min_max++; break; case 'C': columns = 0; break; case '1': columns = 1; break; case 'f': /* "-fn" */ if (--argc <= 0) usage (); if (argv[0][i+1] != 'n') usage (); argcnt++; argv++; get_list(argv[0]); goto next; case 'w': if (--argc <= 0) usage (); argv++; max_output_line_width = atoi(argv[0]); goto next; case 'n': if (--argc <= 0) usage (); argv++; columns = atoi(argv[0]); goto next; case 'o': open_instead_of_list = True; break; case 'u': sort_output = False; break; default: usage(); break; } if (i == 1) usage(); } else { argcnt++; get_list(argv[0]); } next: ; } if (argcnt == 0) get_list("*"); show_fonts(); Close_Display(); return EXIT_SUCCESS; }
int main(int argc, char *argv[]) { int argcnt = 0, i; char *servername = NULL; program_name = argv[0]; for (i = 1; i < argc; i++) { if (strncmp(argv[i], "-s", 2) == 0) { if (++i >= argc) usage(); servername = argv[i]; } } if ((svr = FSOpenServer(servername)) == NULL) { if (FSServerName(servername) == NULL) { fprintf(stderr, "%s: no font server defined\n", program_name); exit(0); } fprintf(stderr, "%s: unable to open server \"%s\"\n", program_name, FSServerName(servername)); exit(0); } /* Handle command line arguments, open display */ for (argv++, argc--; argc; argv++, argc--) { if (argv[0][0] == '-') { if (argcnt > 0) usage(); for (i = 1; argv[0][i]; i++) switch (argv[0][i]) { case 'l': long_list++; break; case 'm': min_max++; break; case 'C': columns = 0; break; case '1': columns = 1; break; case 'f': if (--argc <= 0) usage(); argcnt++; argv++; get_list(argv[0]); goto next; case 'w': if (--argc <= 0) usage(); argv++; max_output_line_width = atoi(argv[0]); goto next; case 'n': if (--argc <= 0) usage(); argv++; columns = atoi(argv[0]); goto next; case 'u': sort_output = False; break; case 's': /* eat -s */ if (--argc <= 0) usage(); argv++; goto next; default: usage(); break; } if (i == 1) usage(); } else { argcnt++; get_list(argv[0]); } next: ; } if (argcnt == 0) get_list("*"); FSCloseServer(svr); show_fonts(); exit(0); }