#include "m.h" #define FM_size 90000 #include static char * crsr_end, * Floor; char * log_crsr, * file_hook; void init_FM(){log_crsr = Floor = (char *)core(FM_size, "File log"); crsr_end = log_crsr + FM_size;} static void byt(char w){if(log_crsr==crsr_end) bitch("Too much log!\n"); *log_crsr++ = w;} void w_log(b32 C v){fprintf(out,cen("l:%ld\n"), (long signed)v); if(v<191) byt(v+1); else if (v== -1) byt(0); else {b32 C e = v-191; w_log(e>>6); byt(192+(e&63));}} b32 r_log(){uchar f = *--log_crsr; assert(log_crsr >= Floor); if(f<192) return f-1; else return (r_log()<<6)+191 + (f&63);} #if 0 b32 mcnt=0, chr_cnt=0, fcnt=0, GBlc=0; char * xx; void t(b32); void t(b32 z){log_crsr=xx; w_log(z); if(z == r_log() && log_crsr == xx) return; log_crsr = xx; w_log(z); {char * x; for(x=xx; x