This is mkcmdtab.c in view mode; [Download] [Up]
/* vi:set ts=4 sw=4: * * VIM - Vi IMproved by Bram Moolenaar * * Do ":help uganda" in Vim to read copying and usage conditions. * Do ":help credits" in Vim to see a list of people who contributed. */ /* * mkcmdtab.c * * Standalone program that reads "ex_docmd.h" and produces "ex_cmds.h". * * call with: mkcmdtab ex_docmd.h ex_cmds.h */ #include "vim.h" #if defined(UTS4) int #else void #endif main(argc, argv) int argc; char **argv; { int c; char buffer[100]; int count; int i; FILE *ifp, *ofp; if (argc != 3) { fprintf(stderr, "Usage: mkcmdtab ex_docmd.h ex_cmds.h\n"); exit(10); } ifp = fopen(argv[1], "r"); if (ifp == NULL) { perror(argv[1]); exit(10); } ofp = fopen(argv[2], "w"); if (ofp == NULL) { perror(argv[2]); exit(10); } fprintf(ofp, "/* THIS FILE IS AUTOMATICALLY PRODUCED - DO NOT EDIT */\n"); /* Skip until the start of the table */ while ((c = getc(ifp)) != '|' && c != EOF) ; for (count = 0;; ++count) { /* * Find the command name, inside quotes * Copy it to buffer[]. */ while ((c = getc(ifp)) != '"' && c != EOF) ; if (c == EOF) break; for (i = 0; (c = getc(ifp)) != '"' && c != EOF; ++i) buffer[i] = c; buffer[i] = 0; /* * Translate special-character commands to a name. */ switch (buffer[0]) { case '@': strcpy(buffer, "at"); break; case '!': strcpy(buffer, "bang"); break; case '<': strcpy(buffer, "lshift"); break; case '>': strcpy(buffer, "rshift"); break; case '=': strcpy(buffer, "equal"); break; case '&': strcpy(buffer, "and"); break; case '~': strcpy(buffer, "tilde"); break; case '#': strcpy(buffer, "pound"); break; } fprintf(ofp, "#define CMD_%s %d\n", buffer, count); } fprintf(ofp, "#define CMD_SIZE %d\n", count); exit(0); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.