latin1.ed - vx32 - Local 9vx git repository for patches.
 (HTM) git clone git://r-36.net/vx32
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       latin1.ed (612B)
       ---
            1 ,s;Rune.*\*so;Rune so[64];
            2 /k\[0\] == 'X'/s/$/{/
            3 /return -5/a
            4         }
            5 .
            6 1a
            7 #include "lib.h"
            8 #include "mem.h"
            9 #include "dat.h"
           10 #include "fns.h"
           11 #include "keyboard.h"
           12 
           13 .
           14 $a
           15 
           16 // Plan 9 VX
           17 void
           18 latin1putc(int c, void (*kputc)(int))
           19 {
           20         int i;
           21         static int collecting, nk;
           22         static Rune kc[5];
           23 
           24          if(c == Kalt){
           25                  collecting = !collecting;
           26                  nk = 0;
           27                  return;
           28          }
           29 
           30          if(!collecting){
           31                  kputc(c);
           32                  return;
           33          }
           34 
           35         kc[nk++] = c;
           36         c = latin1(kc, nk);
           37         if(c < -1)  /* need more keystrokes */
           38                 return;
           39         if(c != -1) /* valid sequence */
           40                 kputc(c);
           41         else
           42                 for(i=0; i<nk; i++)
           43                          kputc(kc[i]);
           44         nk = 0;
           45         collecting = 0;
           46 }
           47 
           48 .