home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 11 Util / 11-Util.zip / file39a.zip / src / names.h < prev    next >
C/C++ Source or Header  |  1993-04-05  |  2KB  |  91 lines

  1. /*
  2.  * Names.h - names and types used by ascmagic in file(1).
  3.  * These tokens are here because they can appear anywhere in
  4.  * the first HOWMANY bytes, while tokens in /etc/magic must
  5.  * appear at fixed offsets into the file. Don't make HOWMANY
  6.  * too high unless you have a very fast CPU.
  7.  *
  8.  * Copyright (c) Ian F. Darwin, 1987.
  9.  * Written by Ian F. Darwin.
  10.  *
  11.  * See LEGAL.NOTICE
  12.  *
  13.  * $Id: names.h,v 1.10 93/03/24 14:22:56 ian Exp $
  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 preced "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.     {"clr",        L_MACH},
  79.     {"(input,",    L_PAS},
  80.     {"dcl",        L_PLI},
  81.     {"Received:",    L_MAIL},
  82.     {">From",    L_MAIL},
  83.     {"Return-Path:",L_MAIL},
  84.     {"Cc:",        L_MAIL},
  85.     {"Newsgroups:",    L_NEWS},
  86.     {"Path:",    L_NEWS},
  87.     {"Organization:",L_NEWS},
  88.     {0}
  89.     };
  90. #define NNAMES ((sizeof(names)/sizeof(struct names)) - 1)
  91.