[BACK]Return to names.h CVS log [TXT][DIR] Up to [local] / src / usr.bin / file

Annotation of src/usr.bin/file/names.h, Revision 1.2

1.2     ! deraadt     1: /* * $OpenBSD: names.h,v 1.1.1.1 1995/10/18 08:45:09 deraadt Exp $*/
1.1       deraadt     2: /*
                      3:  * Names.h - names and types used by ascmagic in file(1).
                      4:  * These tokens are here because they can appear anywhere in
                      5:  * the first HOWMANY bytes, while tokens in /etc/magic must
                      6:  * appear at fixed offsets into the file. Don't make HOWMANY
                      7:  * too high unless you have a very fast CPU.
                      8:  *
                      9:  * Copyright (c) Ian F. Darwin, 1987.
                     10:  * Written by Ian F. Darwin.
                     11:  *
                     12:  * See LEGAL.NOTICE
                     13:  *
                     14:  */
                     15:
                     16: /* these types are used to index the table 'types': keep em in sync! */
                     17: #define L_C    0               /* first and foremost on UNIX */
                     18: #define        L_FORT  1               /* the oldest one */
                     19: #define L_MAKE 2               /* Makefiles */
                     20: #define L_PLI  3               /* PL/1 */
                     21: #define L_MACH 4               /* some kinda assembler */
                     22: #define L_ENG  5               /* English */
                     23: #define        L_PAS   6               /* Pascal */
                     24: #define        L_MAIL  7               /* Electronic mail */
                     25: #define        L_NEWS  8               /* Usenet Netnews */
                     26:
                     27: static char *types[] = {
                     28:        "C program text",
                     29:        "FORTRAN program text",
                     30:        "make commands text" ,
                     31:        "PL/1 program text",
                     32:        "assembler program text",
                     33:        "English text",
                     34:        "Pascal program text",
                     35:        "mail text",
                     36:        "news text",
                     37:        "can't happen error on names.h/types",
                     38:        0};
                     39:
                     40: static struct names {
                     41:        char *name;
                     42:        short type;
                     43: } names[] = {
                     44:        /* These must be sorted by eye for optimal hit rate */
                     45:        /* Add to this list only after substantial meditation */
                     46:        {"/*",          L_C},   /* must precede "The", "the", etc. */
                     47:        {"#include",    L_C},
                     48:        {"char",        L_C},
                     49:        {"The",         L_ENG},
                     50:        {"the",         L_ENG},
                     51:        {"double",      L_C},
                     52:        {"extern",      L_C},
                     53:        {"float",       L_C},
                     54:        {"real",        L_C},
                     55:        {"struct",      L_C},
                     56:        {"union",       L_C},
                     57:        {"CFLAGS",      L_MAKE},
                     58:        {"LDFLAGS",     L_MAKE},
                     59:        {"all:",        L_MAKE},
                     60:        {".PRECIOUS",   L_MAKE},
                     61: /* Too many files of text have these words in them.  Find another way
                     62:  * to recognize Fortrash.
                     63:  */
                     64: #ifdef NOTDEF
                     65:        {"subroutine",  L_FORT},
                     66:        {"function",    L_FORT},
                     67:        {"block",       L_FORT},
                     68:        {"common",      L_FORT},
                     69:        {"dimension",   L_FORT},
                     70:        {"integer",     L_FORT},
                     71:        {"data",        L_FORT},
                     72: #endif /*NOTDEF*/
                     73:        {".ascii",      L_MACH},
                     74:        {".asciiz",     L_MACH},
                     75:        {".byte",       L_MACH},
                     76:        {".even",       L_MACH},
                     77:        {".globl",      L_MACH},
                     78:        {".text",       L_MACH},
                     79:        {"clr",         L_MACH},
                     80:        {"(input,",     L_PAS},
                     81:        {"dcl",         L_PLI},
                     82:        {"Received:",   L_MAIL},
                     83:        {">From",       L_MAIL},
                     84:        {"Return-Path:",L_MAIL},
                     85:        {"Cc:",         L_MAIL},
                     86:        {"Newsgroups:", L_NEWS},
                     87:        {"Path:",       L_NEWS},
                     88:        {"Organization:",L_NEWS},
                     89:        {NULL,          0}
                     90: };
                     91: #define NNAMES ((sizeof(names)/sizeof(struct names)) - 1)