home *** CD-ROM | disk | FTP | other *** search
/ ftp.update.uu.se / ftp.update.uu.se.2014.03.zip / ftp.update.uu.se / pub / rainbow / cpm / emacs / emacssrc.lzh / memisc.c < prev    next >
C/C++ Source or Header  |  1992-03-11  |  1KB  |  90 lines

  1. #define OWNER 1
  2. #include    "metab.h"
  3.  
  4. FILE * kbdmf;
  5. int kbdmstate;
  6.  
  7. getstroke()
  8. {    /* get physical key from current source. */
  9.     register int    c;
  10.  
  11.     if ( kbdmstate == 2 )
  12.     {    /* execute "keyboard mac" or "exec file" */
  13.         if (( c = getc( kbdmf )) == EOF || c == 26 )
  14.         {    kbdmclose();
  15.         }
  16.     }
  17.     if ( kbdmstate != 2 )
  18.     {    c = conin();
  19.         if ( kbdmstate == 1 )
  20.         {    /* save keyboard mac */
  21.             if ( putc( c, kbdmf ) == EOF )
  22.             {    ctrlg();
  23.             }
  24.         }
  25.     }
  26.     return ( c );
  27. }
  28. /*
  29. kbdmget()
  30. {    return( getc( kbdmf ));
  31. }
  32. */
  33. kbdmclose()
  34. {    if ( kbdmf ) fclose( kbdmf );
  35.     kbdmf = kbdmstate = 0;
  36. }
  37. conin()
  38. {    return( bios( 3 ));
  39. }
  40.  
  41. getkey()
  42. {
  43.     register int c;
  44.     
  45.     if ( ( c = getstroke()) == METACH )    /* Apply M- prefix */
  46.     {    return (META | getstroke());
  47.     }
  48. #ifdef NEVER
  49.     if ( c == CMINUSCH ) return ( c );
  50.         /* negative parameter introducer. */
  51.     if ( c <= 0x1F )            /* C0 control -> C-    */
  52.         c |= ( CTRL | '@' );
  53. #endif
  54.     return (c);
  55. }
  56.  
  57. #ifdef NEVER
  58. /*
  59.  * Get a key.
  60.  * Apply control modifications
  61.  * to the read key.
  62.  */
  63. getctl()
  64. {
  65.     register int    c;
  66.  
  67.     if ( ( c = getstroke()) <= 0x1f )
  68.         c |= ( CTRL | '@' );
  69.     if ( islower( c ))
  70.         c -= 0x20;
  71.     return (c);
  72. }
  73. #endif
  74. /*
  75.  * Abort.
  76.  * Beep the beeper.
  77.  * Kill off any keyboard macro,
  78.  * etc., that is in progress.
  79.  * Sometimes called as a routine,
  80.  * to do general aborting of
  81.  * stuff.
  82.  */
  83.  
  84. ctrlg()
  85. {
  86.     conout( 7 );
  87.     kbdmclose();
  88.     return (ABORT);
  89. }
  90.