home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1993 May / SIMTEL_0593.ISO / msdos / eel / dectoch.e < prev    next >
Text File  |  1991-03-12  |  2KB  |  77 lines

  1. /* dectoch.e */
  2. /* by D.A.Bauman on  Nov-27-1989 */
  3. /* Modified for Epsilon V5 on Aug-16-1990 */
  4.  
  5. /* Usage: ALT(CTRL('Q')): insert graphics chars from decimal value 
  6.     251 = √   ,   135 = ç   ,   48 = 0   ,  etc */
  7.  
  8. /* Usage: CTRL('U') ALT(CTRL('G')): insert graphics borders from numpad:
  9.     ┌┬┐  7 8 9
  10.     ├┼┤  4 5 6
  11.     └┴┘  1 2 3
  12.     │─   0 .  */
  13. /* Usage: CTRL('U') ALT(CTRL('T')): insert double graphics border from numpad:
  14.     ╔╦╗  7 8 9
  15.     ╠╬╣  4 5 6
  16.     ╚╩╝  1 2 3
  17.     ║═   0 .  */
  18.  
  19. #include "eel.h"
  20.  
  21. command dec_to_char() on reg_tab[ALT(CTRL('q'))]
  22. {char str[80];
  23.  int i;
  24.  get_string(str,"Enter decimal value to insert as a char: ");
  25.  if (*str)
  26.   {i=strtoi(str,10);
  27.    if (i)
  28.     {
  29.      bprintf("%c",i);
  30.     }
  31.   }
  32. }
  33.  
  34. command select_graphics_single() on reg_tab[ALT(CTRL('g'))]
  35. {
  36.  select_graphics_char(1);
  37. }
  38.  
  39. command select_graphics_double() on reg_tab[ALT(CTRL('t'))]
  40. {
  41.  select_graphics_char(2);
  42. }
  43.  
  44. int _sgc_first=1;
  45. short sp[11]= {0x5200,0x4f00,0x5000,0x5100,0x4b00,0x4c00,
  46.                0x4d00,0x4700,0x4800,0x4900,0x5300};
  47.  
  48. int select_graphics_char(type) int type;
  49. {int c,i,j,k=0;
  50.  char *ptr;
  51.  char *ptr1="│└┴┘├┼┤┌┬┐─";
  52.  char *ptr2="║╚╩╝╠╬╣╔╦╗═";
  53.  if (iter>1) k=1;
  54.  iter=1;
  55.  if (type==1) ptr=ptr1; else ptr=ptr2;
  56.  if (_sgc_first == 1) {_sgc_first=0; set_show_graphic();}
  57.  refresh();
  58.  say("Select cooresponding NUM Keypad representing outline graphics char: ");
  59.  do
  60.   {i=getkey();
  61.    j=0;
  62.    for(c=0; c<11; c++) if (sp[c]==key_code) {j=ptr[c]; break;}
  63.    if (!j)
  64.     {if ((i==8) || (i==127)) {backward_delete_character(); refresh();}
  65.      else if ((i==10) || (i==13)) j=10;
  66.      else if ((i>=' ') && (i<=254)) j=i;
  67. /*     else if ((i>=292) && (i<=302)) j=ptr[i-292]; */ /* < EEL V5.0 */
  68.      else if (!key_code && i==309) j=ptr[5];
  69.      else k=0;
  70.     }
  71.    if (j) {bprintf("%c",j); refresh();}
  72.    iter=1;
  73.   }
  74.  while(k);
  75.  say("");
  76. }
  77.