home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / games / volume8 / unidraw / part01 / keymap.c < prev    next >
C/C++ Source or Header  |  1989-12-19  |  2KB  |  101 lines

  1. #ifndef LINT
  2. static char COPYRIGHT[]="\
  3.   COPYRIGHT --- COPYRIGHT --- COPYRIGHT --- COPYRIGHT \n\
  4.   This program is copyright 1989 Nils McCarthy. This \
  5.   program may be distributed if it is impossible for \
  6.   the distributor to get a more up-to-date-version of \
  7.   it. \n\
  8.   COPYRIGHT --- COPYRIGHT --- COPYRIGHT --- COPYRIGHT \n\
  9.   ";
  10. static char AUTHOR[]="Copyright 1989 Nils McCarthy";
  11. #endif /* LINT */
  12.  
  13. #include "unidraw.h"
  14. mapkey(name,key)
  15.  char *name;
  16.  char key;
  17. {
  18.    if(!strcmp(name,"up"))
  19.       up=key;
  20.    else if(!strcmp(name,"down"))
  21.       down=key;
  22.    else if(!strcmp(name,"right"))
  23.       right=key;
  24.    else if(!strcmp(name,"left"))
  25.       up_left=key;
  26.    else if(!strcmp(name,"up_left"))
  27.       up_right=key;
  28.    else if(!strcmp(name,"up_right"))
  29.       down_left=key;
  30.    else if(!strcmp(name,"down_left"))
  31.       down_right=key;
  32.    else if(!strcmp(name,"down_right"))
  33.       down_right=key;
  34.    else if(!strcmp(name,"pentoggle"))
  35.       pentoggle=key;
  36.    else if(!strcmp(name,"penkey"))
  37.       penkey=key;
  38.    else if(!strcmp(name,"special"))
  39.       special=key;
  40.    else if(!strcmp(name,"brk"))
  41.       brk=key;
  42.    else if(!strcmp(name,"suspend"))
  43.       suspend=key;
  44.    else {
  45.       fprintf(stderr,"setenv misformat: %s=%c\n",name,key);
  46.       sleep(5);
  47.    }
  48. }
  49.  
  50.  
  51. keymaps()
  52. {
  53.    char *beginname,*endname;
  54.    char name[80];
  55.    if(vi) {
  56.       up='k';
  57.       down='j';
  58.       right='l';
  59.       left='h';
  60.       up_right='u';
  61.       up_left='y';
  62.       down_right='n';
  63.       down_left='b';
  64.    } else {
  65.       up='8';
  66.       down='2';
  67.       right='6';
  68.       left='4';
  69.       up_right='9';
  70.       up_left='7';
  71.       down_right='3';
  72.       down_left='1';
  73.    }
  74.    suspend=25;
  75.    pentoggle='p';
  76.    penkey='\\';
  77.    brk=3;
  78.    redr=' ';
  79.    special='>';
  80.    if(getenv("UNIDRAW")==NULL)
  81.       return;
  82.    beginname=(char *) getenv("UNIDRAW");
  83.    endname=beginname; /* so if it isn't setenv'd to anything... */
  84.    while(*beginname!=NULL) {
  85.       name[0]=NULL;
  86.       for(endname=beginname;*endname!='=';endname++) {
  87.      name[strlen(name)+1]=NULL;
  88.      name[strlen(name)]= (*endname);
  89.       }
  90.       if(*(endname+2)!=',' && *(endname+2)!=NULL) {
  91.      fprintf(stderr,"environment misusage.\n");
  92.      exit(-1);
  93.       }
  94.       mapkey(name,*(endname+1));
  95.       beginname=endname+3;
  96.       if(*(endname+2)=NULL)
  97.      beginname--;
  98.    }
  99. }
  100.  
  101.