home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume17 / mgr / part18 < prev    next >
Encoding:
Internet Message Format  |  1989-01-19  |  52.6 KB

  1. Subject:  v17i019:  MGR, Bellcore window manager, Part19/61
  2. Newsgroups: comp.sources.unix
  3. Approved: rsalz@uunet.UU.NET
  4.  
  5. Submitted-by: Stephen A. Uhler <sau@bellcore.com>
  6. Posting-number: Volume 17, Issue 19
  7. Archive-name: mgr/part19
  8.  
  9.  
  10.  
  11.  
  12. #! /bin/sh
  13. # This is a shell archive.  Remove anything before this line, then unpack
  14. # it by saving it into a file and typing "sh file".  To overwrite existing
  15. # files, type "sh file -c".  You can also feed this as standard input via
  16. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  17. # will see the following message at the end:
  18. #        "End of archive 18 (of 61)."
  19. # Contents:  demo/icon/Makefile demo/icon/mclock.c
  20. #   doc/usrman/croff/mktable.c font-16/Ucmr10x16b font-16/Ucmr10x16bI
  21. #   font-16/Ucmr10x16bu font-32/Ucmr10x16b font-32/Ucmr10x16bI
  22. #   font-32/Ucmr10x16bu misc/rotate.c src/data.c src/event.h src/kbd.c
  23. # Wrapped by rsalz@papaya.bbn.com on Thu Nov 17 21:05:20 1988
  24. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  25. if test -f 'demo/icon/Makefile' -a "${1}" != "-c" ; then 
  26.   echo shar: Will not clobber existing file \"'demo/icon/Makefile'\"
  27. else
  28. echo shar: Extracting \"'demo/icon/Makefile'\" \(3557 characters\)
  29. sed "s/^X//" >'demo/icon/Makefile' <<'END_OF_FILE'
  30. X#                        Copyright (c) 1987 Bellcore
  31. X#                            All Rights Reserved
  32. X#       Permission is granted to copy or use this program, EXCEPT that it
  33. X#       may not be sold for profit, the copyright notice must be reproduced
  34. X#       on copies, and credit should be given to Bellcore where it is due.
  35. X#       BELLCORE MAKES NO WARRANTY AND ACCEPTS NO LIABILITY FOR THIS PROGRAM.
  36. X
  37. X#    $Header: Makefile,v 4.14 88/08/24 16:00:08 bianchi Exp $
  38. X#    $Source: /tmp/mgrsrc/demo/icon/RCS/Makefile,v $
  39. X
  40. X# icon stuff
  41. X#
  42. X#    walk,mclock,cycle  courtesy  S. D. Hawley
  43. X#
  44. XINCL = ../../lib
  45. X
  46. X#    need pixrect if mgr is pixrect (or color) version
  47. X#    zoom and snap don't work in color, see NOCOLOR= below
  48. X
  49. X
  50. XLIB = $(INCL)/libmgr.a
  51. XMGR = ../../src
  52. XBITDIR=../../lib
  53. XBITLIB = $(BITDIR)/blitlib.a $(OTHERLIB)
  54. XCFLAGS= -I$(INCL) -I$(BITDIR)
  55. X
  56. XCFILES= browse.c cycle.c cut.c iconmail.c iconmsgs.c icontoc.c mclock.c snap.c \
  57. X    walk.c window_print.c zoom.c set_colormap.c overlay.c invert_colormap.c
  58. XHFILES = mail_icons.h msgs_icons.h
  59. XOTHER = Makefile README
  60. XSTART=.
  61. XCPIO=icon.cpio
  62. XINSROOT=/usr/mgr
  63. XINSDIR=$(INSROOT)/bin
  64. X
  65. XSMALL= browse cycle cut iconmail iconmsgs mclock walk window_print
  66. X
  67. X#remove NOCOLOR modules for color versions
  68. XNOCOLOR=zoom snap
  69. X#NOCOLOR=
  70. XALL = $(SMALL) $(NOCOLOR) set_colormap overlay invert_colormap
  71. X
  72. Xall:    $(ALL)
  73. X
  74. Xsmall:    $(SMALL)
  75. X
  76. Xfast:    $(CFILES)
  77. X        cc -c $(CFLAGS) $(CFILES)
  78. X        make all
  79. X
  80. Xconvert_icon:    convert_icon.o $(LIB)
  81. X        cc -o convert_icon convert_icon.o $(LIB)
  82. X
  83. Xtest2:        test2.o $(LIB)
  84. X        cc -o test2 test2.o $(LIB)
  85. X
  86. Xchess:        chess.o $(LIB)
  87. X        cc -o chess chess.o $(LIB)
  88. X
  89. Xcut:        cut.o $(LIB)
  90. X        cc -o cut cut.o $(LIB)
  91. X
  92. Xbrowse:        browse.o $(LIB)
  93. X        cc -o browse browse.o $(LIB)
  94. X
  95. Xwalk:        walk.o $(LIB)
  96. X        cc -o walk walk.o $(LIB)
  97. X
  98. Xiconmail.o:    mail_icons.h
  99. X
  100. Xiconmail:    iconmail.o $(LIB)
  101. X        cc -o iconmail iconmail.o $(LIB)
  102. X
  103. Xiconmsgs.o:    msgs_icons.h
  104. X
  105. Xiconmsgs:    iconmsgs.o $(LIB)
  106. X        cc -o iconmsgs iconmsgs.o $(LIB)
  107. X
  108. Xicontoc:    icontoc.o $(LIB) $(MGR)/bitmaphead.o $(MGR)/bitmapread.o
  109. X        cc -o icontoc icontoc.o $(LIB) \
  110. X            $(MGR)/bitmaphead.o $(MGR)/bitmapread.o $(BITLIB)
  111. X
  112. Xsnap:        snap.o $(LIB) $(MGR)/bitmaphead.o $(MGR)/bitmapread.o
  113. X        cc -o snap snap.o $(LIB) \
  114. X            $(MGR)/bitmaphead.o $(MGR)/bitmapread.o $(BITLIB)
  115. X
  116. Xoverlay:        overlay.o $(LIB)
  117. X        cc -o overlay overlay.o $(LIB) $(BITLIB)
  118. X
  119. Xzoom:        zoom.o $(LIB) $(MGR)/bitmaphead.o $(MGR)/bitmapread.o
  120. X        cc -o zoom zoom.o $(LIB) \
  121. X            $(MGR)/bitmaphead.o $(MGR)/bitmapread.o $(BITLIB)
  122. X
  123. Xmclock:        mclock.o $(LIB) 
  124. X        cc -o mclock mclock.o $(LIB)
  125. X
  126. Xcycle:        cycle.o  $(LIB)
  127. X        cc -o cycle cycle.o $(LIB)
  128. X
  129. Xwindow_print:    window_print.o  $(LIB)
  130. X        cc -o window_print window_print.o $(LIB)
  131. X
  132. Xinvert_colormap:    invert_colormap.o
  133. X        cc -o invert_colormap invert_colormap.o -lpixrect
  134. X
  135. Xset_colormap:    set_colormap.o
  136. X        cc -o set_colormap set_colormap.o -lpixrect
  137. X
  138. Xtj3:        tj3.o  $(LIB)
  139. X        cc -o tj3 tj3.o $(LIB)
  140. X
  141. Xtj2:        tj2.o  $(LIB)
  142. X        cc -o tj2 tj2.o $(LIB)
  143. X
  144. Xtj:        tj.o  $(LIB)
  145. X        cc -o tj tj.o $(LIB)
  146. X
  147. Xflip:        flip.o 
  148. X        cc -o flip flip.o
  149. X
  150. Xrotate:        rotate.o 
  151. X        cc -o rotate rotate.o
  152. X
  153. Xtjfilter:    tjfilter.o 
  154. X        cc -o tjfilter tjfilter.o
  155. X
  156. Xget_header:    get_header.o 
  157. X        cc -o get_header get_header.o
  158. X
  159. Xcpp_filter:    cpp_filter.o
  160. X        cc -o cpp_filter cpp_filter.o
  161. X
  162. X$(ALL):        $(INCL)/term.h
  163. X
  164. Xinstall:    all $(INSDIR)
  165. X        cd $(INSDIR);  rm -f $(ALL)
  166. X        cp $(ALL) $(INSDIR)
  167. X
  168. Xsmallinstall:    small $(INSDIR)
  169. X        cd $(INSDIR);  rm -f $(SMALL)
  170. X        cp $(SMALL) $(INSDIR)
  171. X
  172. X$(INSDIR):
  173. X        mkdir $@
  174. X
  175. Xclean:    
  176. X        rm -f *.o core
  177. X
  178. Xclobber:
  179. X        rm -f $(ALL)
  180. X
  181. Xlist:
  182. X    @for i in ${CFILES} ${HFILES} ${OTHER}; do \
  183. X        echo "${START}/$$i"; \
  184. X    done    
  185. X
  186. Xcpio:
  187. X    make -s list | cpio -ocv > ${CPIO}
  188. END_OF_FILE
  189. # end of 'demo/icon/Makefile'
  190. fi
  191. if test -f 'demo/icon/mclock.c' -a "${1}" != "-c" ; then 
  192.   echo shar: Will not clobber existing file \"'demo/icon/mclock.c'\"
  193. else
  194. echo shar: Extracting \"'demo/icon/mclock.c'\" \(3712 characters\)
  195. sed "s/^X//" >'demo/icon/mclock.c' <<'END_OF_FILE'
  196. X/*                        Copyright (c) 1987 Bellcore
  197. X *                            All Rights Reserved
  198. X *       Permission is granted to copy or use this program, EXCEPT that it
  199. X *       may not be sold for profit, the copyright notice must be reproduced
  200. X *       on copies, and credit should be given to Bellcore where it is due.
  201. X *       BELLCORE MAKES NO WARRANTY AND ACCEPTS NO LIABILITY FOR THIS PROGRAM.
  202. X */
  203. X/*    $Header: mclock.c,v 4.1 88/06/21 14:00:05 bianchi Exp $
  204. X    $Source: /tmp/mgrsrc/demo/icon/RCS/mclock.c,v $
  205. X*/
  206. Xstatic char    RCSid_[] = "$Source: /tmp/mgrsrc/demo/icon/RCS/mclock.c,v $$Revision: 4.1 $";
  207. X
  208. X/* by sdh */
  209. X
  210. X#include <sys/time.h>
  211. X#include <stdio.h>
  212. X#include <signal.h>
  213. X#include "term.h"
  214. X
  215. X#define SCREEN 0
  216. X#define MINS 1
  217. X#define MASKMINS 13
  218. X#define HRS 25
  219. X#define MASKHRS 37
  220. X#define FACE 49
  221. X#define SCRATCH 50
  222. X#define ICONPATH    "mouse"
  223. X
  224. Xstatic char *_quit = "\034";
  225. X
  226. Xint x, y, w, firstw, h, firsth, i, j, k;
  227. Xint hsize, vsize;
  228. X
  229. Xcleanup()
  230. X{
  231. X    m_clear();
  232. X    m_pop();
  233. X    exit(0);
  234. X}
  235. X
  236. Xclearit()
  237. X{
  238. X    m_clear();
  239. X    do_time();
  240. X}
  241. X
  242. Xshapeit()
  243. X{
  244. X    int    border;
  245. X
  246. X    get_size(&x, &y, &hsize, &vsize);
  247. X    get_param( (char *)0, (int *)0, (int *)0, &border );
  248. X    m_shapewindow(x, y, w + 2*border, h + 2*border);
  249. X}
  250. X
  251. X
  252. Xmain(argc,argv)
  253. Xchar **argv;
  254. X{
  255. X    register int s = 0;
  256. X    int speed = 1;
  257. X    char buf[101];
  258. X
  259. X    ckmgrterm( *argv );
  260. X
  261. X    m_setup(M_FLUSH);
  262. X    m_push(P_BITMAP | P_EVENT | P_FLAGS | P_POSITION);
  263. X    m_setmode(M_ABS);
  264. X
  265. X    if (argc>1 && strcmp(argv[1],"-s")==0)
  266. X        speed++;
  267. X
  268. X
  269. X    signal(SIGINT,cleanup);
  270. X    signal(SIGTERM,cleanup);
  271. X    signal(SIGQUIT,clearit);
  272. X
  273. X    m_setevent(RESHAPE,_quit);
  274. X    m_setevent(REDRAW,_quit);
  275. X    
  276. X    m_ttyset(); /* no echo */
  277. X    fprintf(stderr,"Please wait...");
  278. X    fflush(stderr);
  279. X    for (i = 0; i < 12; i++) {
  280. X    /* load all the hands and their masks */
  281. X        sprintf(buf, "%s/mhand%d",ICONPATH, i);
  282. X        m_bitfile(i+MINS, buf, &w, &h);
  283. X        panic(); /* if the dimensions are wrong, panic and exit */
  284. X        sprintf(buf, "%s/mmhand%d",ICONPATH, i);
  285. X        m_bitfile(i+MASKMINS, buf, &w, &h);
  286. X        panic();
  287. X        sprintf(buf, "%s/hhand%d",ICONPATH, i);
  288. X        m_bitfile(i+HRS, buf, &w, &h);
  289. X        panic();
  290. X        sprintf(buf, "%s/mhhand%d",ICONPATH, i);
  291. X        m_bitfile(i+MASKHRS, buf, &w, &h);
  292. X        panic();
  293. X    }
  294. X    sprintf(buf, "%s/mickface",ICONPATH); /* get the face */
  295. X    m_bitfile(FACE, buf, &w, &h);
  296. X    panic();
  297. X    m_ttyreset();/* reset echo */
  298. X    shapeit();
  299. X    clearit();
  300. X    while(1) {
  301. X        m_flush();
  302. X        do_time();
  303. X        sleep(15); /* update only every 15 seconds */
  304. X    }
  305. X}
  306. X
  307. Xdo_time()
  308. X{
  309. X    struct tm *tme, *localtime();
  310. X    long tmp, time();
  311. X    int hr, mn, mn1;
  312. X
  313. X    tmp = time(0);
  314. X    tme = localtime(&tmp); /* get the time */
  315. X
  316. X    mn = tme->tm_min;
  317. X    hr = (tme->tm_hour > 11 ? tme->tm_hour - 12 : tme->tm_hour);
  318. X    /* set hours to be 0-11 */
  319. X    mn1 = ( (mn/5) + (mn % 5 < 3 ? 0 : 1));
  320. X    /* adjust minutes so that 10:03 will read as 10:05 to help accuracy */
  321. X    if (mn > 33) hr++;
  322. X    /* move hour hand when minute hand is on 7 so that 7:45 will look ok */
  323. X    mn1 %= 12; /* fix minutes to be 0-11 */
  324. X    hr %= 12; /* fix hours to be 0-11 */
  325. X
  326. X    m_func(B_COPY);
  327. X    m_bitcopyto(0, 0, w, h, 0, 0, SCRATCH, FACE); /* copy face */
  328. X    m_func(B_AND);
  329. X    m_bitcopyto(0, 0, w, h, 0, 0, SCRATCH, MASKHRS + hr); /* mask of hour */
  330. X    m_func(B_OR);
  331. X    m_bitcopyto(0, 0, w, h, 0, 0, SCRATCH, HRS + hr); /* OR hour in */
  332. X    m_func(B_AND);
  333. X    m_bitcopyto(0, 0, w, h, 0, 0, SCRATCH, MASKMINS + mn1); /* mask minutes */
  334. X    m_func(B_OR);
  335. X    m_bitcopyto(0, 0, w, h, 0, 0, SCRATCH, MINS + mn1); /* OR in minute hand */
  336. X    m_func(B_COPY);
  337. X    m_bitcopyto(0, 0, w, h, 0, 0, SCREEN, SCRATCH); /* put on screen */
  338. X}
  339. X
  340. Xpanic()
  341. X{
  342. X    if( !firstw )
  343. X        firstw = w;
  344. X    if( !firsth )
  345. X        firsth = h;
  346. X    if( !w  ||  !h  ||  w != firstw  ||  h != firsth ) {
  347. X        m_ttyreset();
  348. X        fprintf(stderr, "%d %d\n", w, h );
  349. X        fprintf(stderr, "bitmap size mismatch: bitmaps may be bad.\n");
  350. X        exit(0);
  351. X    }
  352. X}
  353. END_OF_FILE
  354. # end of 'demo/icon/mclock.c'
  355. fi
  356. if test -f 'doc/usrman/croff/mktable.c' -a "${1}" != "-c" ; then 
  357.   echo shar: Will not clobber existing file \"'doc/usrman/croff/mktable.c'\"
  358. else
  359. echo shar: Extracting \"'doc/usrman/croff/mktable.c'\" \(3609 characters\)
  360. sed "s/^X//" >'doc/usrman/croff/mktable.c' <<'END_OF_FILE'
  361. X/*                        Copyright (c) 1988 Bellcore
  362. X *                            All Rights Reserved
  363. X *       Permission is granted to copy or use this program, EXCEPT that it
  364. X *       may not be sold for profit, the copyright notice must be reproduced
  365. X *       on copies, and credit should be given to Bellcore where it is due.
  366. X *       BELLCORE MAKES NO WARRANTY AND ACCEPTS NO LIABILITY FOR THIS PROGRAM.
  367. X */
  368. X/*    $Header: mktable.c,v 1.1 88/07/07 10:12:17 sau Exp $
  369. X    $Source: /tmp/mgrsrc/doc/usrman/croff/RCS/mktable.c,v $
  370. X*/
  371. Xstatic char    RCSid_[] = "$Source: /tmp/mgrsrc/doc/usrman/croff/RCS/mktable.c,v $$Revision: 1.1 $";
  372. X
  373. X/* make a compile time hash table  (SAU)
  374. X *
  375. X * usage: mktable <name> <size>
  376. X *
  377. X */
  378. X
  379. X#include <stdio.h>
  380. X#include "hash.h"
  381. X
  382. X#define SIZE        71
  383. X#define MIN_SIZE    5
  384. X
  385. Xchar key[80];
  386. Xchar value[80];
  387. X
  388. Xmain(argc,argv)
  389. Xint argc;
  390. Xchar **argv;
  391. X   {
  392. X   register int i,code, count = 0;
  393. X   char *malloc(), *sprintf();
  394. X   TABLE **table;            /* place to build hash table into */
  395. X   register TABLE *list, *next;
  396. X   char *name;                /* name of table */
  397. X   char *prog = *argv;
  398. X   int len=0, size;
  399. X   char tmp[80];
  400. X
  401. X   int r_flag = 0;            /* reverse sense of keyword-value */
  402. X   int n_flag = 0;            /* no values */
  403. X   
  404. X   for(;argc>1 && *argv[1]=='-';argv++,argc--) 
  405. X      switch(argv[1][1]) {
  406. X         case 'r': r_flag++; break;
  407. X         case 'n': case '1': n_flag++; *value='\0'; break;
  408. X         default : fprintf(stderr,"%s: flag %s ignored\n",prog,argv[1]);
  409. X         }
  410. X
  411. X   if (argc < 3) {
  412. X      fprintf(stderr,"usage: %s [-r -n] <name> <number of buckets>\n",prog);
  413. X      exit(1);
  414. X      }
  415. X
  416. X   name = argv[1];
  417. X
  418. X   if ((size = atoi(argv[2])) < MIN_SIZE) 
  419. X      size = SIZE;
  420. X   if ((table = (TABLE **) malloc(size * sizeof(TABLE))) == NULL) {
  421. X      perror("Can't alloc space for table");
  422. X      exit(1);
  423. X      }
  424. X
  425. X   bzero(table,size*sizeof(TABLE));
  426. X
  427. X   /* build the hash table */
  428. X
  429. X   while(1) {
  430. X      if (n_flag)
  431. X         code = scanf("%s\n",key);
  432. X      else if (r_flag)
  433. X         code = scanf("%s %s\n",value,key);
  434. X      else
  435. X         code = scanf("%s %s\n",key,value);
  436. X
  437. X      if (code == EOF)
  438. X         break;
  439. X      add_entry(table,size,key);
  440. X      put_entry(table,size,key,value);
  441. X      count++;
  442. X      }
  443. X
  444. X   /* print out data */
  445. X
  446. X   printf("/* hash table: %d items in %d buckets */\n\n",count,size);
  447. X   printf("#include <stdio.h>\n");
  448. X   printf("#include \"hash.h\"\n\n");
  449. X   printf("#define SIZE_%s    %d\n\n",name,size);
  450. X   printf("struct table_entry %s_data[] = {\n",name);
  451. X
  452. X   for(count=0,i=0;i<size;i++) {
  453. X      for(code=0,list=table[i];list != (TABLE *) 0; list = next,count++) {
  454. X         next = list->next;
  455. X         printf("   {\"%s\", \"%s\", %d, 0x%x, %s},",
  456. X               list->name, list->value, list->count, HASH_STATIC,
  457. X               next ? sprintf(tmp,"&%s_data[%d]",name,count+1) : "NULL");
  458. X         if (code++ == 0)
  459. X            printf("    /*  %d */\n",i);
  460. X         else
  461. X            printf("\n");
  462. X         }
  463. X      }
  464. X   printf("   };\n\n");
  465. X
  466. X   /* print out hash table */
  467. X
  468. X   printf("/* hash table: %d items */\n\n",size);
  469. X   printf("struct table_entry *%s[] = {\n  ",name);
  470. X
  471. X   for(len=2,code=count=i=0;i<size;i++) {
  472. X      for(list=table[i]; list != (TABLE *) 0; list = list->next) {
  473. X         count++;
  474. X         code++;
  475. X         }
  476. X      if (code) {
  477. X         sprintf(tmp," &%s_data[%d],",name,count-code);
  478. X         code = 0; 
  479. X         }
  480. X      else
  481. X         sprintf(tmp," NULL,");
  482. X
  483. X      len += strlen(tmp);
  484. X
  485. X      if (len > 78) {
  486. X         printf("\n  ");
  487. X         len = 2 + strlen(tmp);
  488. X         }
  489. X      
  490. X      printf("%s",tmp);
  491. X      }
  492. X   if (len)
  493. X      printf("\n  ");
  494. X   printf(" };\n\n");
  495. X   }
  496. END_OF_FILE
  497. # end of 'doc/usrman/croff/mktable.c'
  498. fi
  499. if test -f 'font-16/Ucmr10x16b' -a "${1}" != "-c" ; then 
  500.   echo shar: Will not clobber existing file \"'font-16/Ucmr10x16b'\"
  501. else
  502. echo shar: Extracting \"'font-16/Ucmr10x16b'\" \(3570 characters\)
  503. sed "s/^X//" >'font-16/Ucmr10x16b' <<'END_OF_FILE'
  504. Xbegin 644 cmr10x16b.fnt
  505. XM%@H0!8                 _S_AP'#_@                            
  506. XM        &                     ,                             
  507. XM                                                            
  508. XM                                       #_O\& ^!P?S_G\=P^'^_X
  509. XM<!P_X<!P  V  =P   /@<          #\   !P  ;'\<P<!P!@P         
  510. XM#!P' \#P!@_!X?P^!P        #X  </X'S\/\_P^/^/@?/^^!C/>/C^'P_ 
  511. XM_'\_[_O>_[_G\/A@#X&   P #P  '@ !X #P!P#CP                   
  512. XM      !\&#X  _YS!@=P<'\=QS/^'#_/^' <..' <#X-@ '<   &,'      
  513. XM     _    </\&S?/\/@< P&          P^'P-AF X/@_'X<P^    &  8!
  514. XMW#@'!W#\=AS',?AW!P#AV' 8Q['<=SN'89Q_',<QC',<QG# 8 &!@  8  < 
  515. XM  X  [  < < X< \            &           X!@'!W/^< 8'<'!C'<.#
  516. XM=AP?[_AP'#CC -@<!P?P    !C!P          /    '#_!LVS^#L# 8 P& 
  517. XM       8-@<'<=P.# ?QF',=P   #  # =QL!P=PS'<<!P&8=P< X?!P'<>Q
  518. XMW'<[AW&,?QS',8P^#X#@P# !@\  '  '   .  .P '    ' '           
  519. XM !@          . 8!P_C_A@&!W!P8QW#@W8^/\_X<!PXX           '\]X
  520. XM   #       #P   !P_S_O@_@[!@. .'X&      &'<'!W'<'@P' #!S'<' 
  521. XM<!@  8 8Q@<'<<QSG <#F'<' .'@<!W'\=QW.X=QP!P<P^'\/ ^ X, P 8?@
  522. XM !P_!\!\/@\/X'Q^#P'A_!P]S^!P_ _'X?C_/\_[G/^_Y_#@& <-P_XP!@?P
  523. XM^'\=P<!P?Q_O^' <..           !_-V    8       ^    <&8-CX'P/@
  524. XM #@#@\!@     #!W!P!P.#X/!\ P/AW!P' P/\# ,-\/AW' <Y\'PX!W!P#A
  525. XM\' =Q_'<=SN'8? <',/A_!P' <# & &-L   .X=@_&X=@X#<=P< X? <'^=P
  526. XMV'89P_,8.!W',YP^'<;@X!@'  /^_X8'\/A_'<' <'\_S_AP'#C@        
  527. XM   W;-@  #_@      /@   '!F#8? ,!P  X X_P8      P=P< 8'!N#8?@
  528. XM,!X=P   8   8'#W#X?AP'.?!\. ?P< X?!P'<;QW'X[A\#X'!S#X?P<!P' 
  529. XMP!@!@8    .'<<#N.<.!W'<' .'@'!_G<=QW.<.#@#@=QS.</ S X\ 8 \ #
  530. XM_C &!_#X8QW!@'!_'^_X<!PXX           -VW8   !@      #P   !P  
  531. XMV!X'P_@ . .#P_P '\  8'<' , 8;@''<' _#\   #   ,!P]P^',<!SGP?#
  532. XM_'<' .'P<!_&\=QP.X? /!P<P>'<' <!P, , 8&    /AW' [C_#@=QW!P#A
  533. XM\!P?YW'<=SG#@? X'</C_!P/@<#@& <  _X8'X=P^  =P8!P/C_/^' <..  
  534. XM         #=O>    P      !\       _X>!^;P #@#A^!@     &!W!P&!
  535. XMW/\!QW!P9P?    8/\& <-\/ASG,<YP' [AW!P#A^' ?QG'<<#N'X!P<','!
  536. XMW!X' X# # &!@   'X=QP.XX X'<=P< X? <'^=QW'<YPX#X.QW#X_P<!P' 
  537. XMX!@'  /^  \'<9QC'<, <!P?[_AP'#C@           W9C            ? 
  538. XM      &P_@_NX  8 P& 8!@  8# -@<#,=P.'<=P<&<9P   #  #  # &<<X
  539. XMS'<<!P&X=P<'X?AP'\9QW' _A^&,'!S!P=P^!P. P 8!@8   #O'<<#N. .!
  540. XMW'<' .'X'!SG<=QW.<.#'#L=P^/\'@,#@. 8!P #_@ &!W&<?QW#,' </\_X
  541. XM<!PXX           '\8P           'P   !P !L/X/[N  # 8  & \  / 
  542. XMP#X'!_&8#AV'X'!F'X' < 8 !@!P9AG'./AV',<!^'<'!^'<<QC&,=QP/X=Y
  543. XMW!P/@<&,9P<',, & 8&    [QV#L;AS#@-QW!P#A^!P<YW#8=AG#@XP['<'#
  544. XM_#<& [#@& <  _X !@/C_G\_Y_#X/A_O^' <..           !_#X       
  545. XM    !_    <  ;!\&<;P  8,    /  #P8 <'\?P\!\/ \!P/ \!P'      
  546. XM<#P_[_!P_#_/@/C_CX/#_O\][S#X^!_/N?@^!P'!C/^/A_#X P^!@_X '\? 
  547. XM>#\/A\!\_X^ X_X^/^_X<'P/Q\/X'@_@PYS_A@?P?!@^  /^            
  548. XM   _S_AP'#C@                                    &  #F       
  549. XM !P  8                     P                                
  550. XM   #P                     /^            '    .        !P <  
  551. XM          8        #_@              '^_X<!PXX               
  552. XM    !_                             8                        
  553. XM8                                                           
  554. XM             =P   ?@        < '            <         _X     
  555. XM         #_/^' </^                                          
  556. XM        ,                                                   
  557. XM                                              #X   'P       
  558. XM /@#P           '         /^               ?[_AP'#_@        
  559. XM                                                            
  560. XM                                                            
  561. XM                                                           #
  562. X!_@  
  563. Xend
  564. END_OF_FILE
  565. # end of 'font-16/Ucmr10x16b'
  566. fi
  567. if test -f 'font-16/Ucmr10x16bI' -a "${1}" != "-c" ; then 
  568.   echo shar: Will not clobber existing file \"'font-16/Ucmr10x16bI'\"
  569. else
  570. echo shar: Extracting \"'font-16/Ucmr10x16bI'\" \(3571 characters\)
  571. sed "s/^X//" >'font-16/Ucmr10x16bI' <<'END_OF_FILE'
  572. Xbegin 644 cmr10x16bI.fnt
  573. XM%@H0!8  _______________ , >/X\ ?___________________________\
  574. XM   _____Y_____________________S_____________________________
  575. XM____________________________________________________________
  576. XM_______________________________________\ 0#Y_!^/@, 8#B/!X! '
  577. XMC^/ 'C^/__)__B/___P?C__________\#   ./__DX#C/C^/^?/_________
  578. XM\^/X_#\/^? ^'@/!^/________\'__CP'X,#P# /!P!P?@P!!^<PAP<!X/ _
  579. XM X# $ 0A $ 8#P>?\'Y___/_\/__X?_^'_\/^/\</___________________
  580. XM______^#Y\'__ &,^?B/CX#B.,P!X\ P!X_CQQX_C\'R?_XC___YSX______
  581. XM_____ P  #CP#Y,@P#P?C_/Y__________/!X/R>9_'P? X'C/!____Y__G^
  582. XM(\?X^(\#B>,XS@>(^/\>)X_G.$XCB,1XGF. XSC.<XSC.8\_G_Y^?__G__C_
  583. XM__'__$__C_C_'C_#____________Y___________'^?X^(P!C_GXCX^<XCQ\
  584. XMB>/@$ >/X\<<_R?C^/@/____^<^/__________P\   X\ ^3),!\3\_G_/Y_
  585. XM_______GR?CXCB/Q\_@.9XSB/___\__\_B.3^/B/,XCC^/YGB/C_'@^/XCA.
  586. XM(XC$>(YS@.,XSG/!\'\?/\_^?#__X__X___Q__Q/_X____X_X___________
  587. XM_^?__________Q_G^/ < >?Y^(^/G.(\?(G!P# 'C^/''___________X#"'
  588. XM___\_______\/   ./ , 0? ?$^?Q_QX'Y______YXCX^(XCX?/X_\^,XCX_
  589. XMC^?__G_G.?CXCC.,8_C\9XCX_QX?C^(X#B.(Q'B./^/C/!X#P_!_'S_/_G@?
  590. XM_^/ ^#^#P?#P'X.!\/X> ^/",!^/ _ X'@< P# $8P! & \?Y_CR/ '/^?@/
  591. XM!X#B/C^/@. 0!X_CQQ___________^ R)____G_______!P  #CYGR<'X/P?
  592. XM_\?\?#^?_____\^(^/^/Q\'P^#_/P>(^/X_/P#\_SR#P>(X_C&#X/'^(^/\>
  593. XM#X_B. XCB,1XG@_CXSP> ^/X_C\_Y_YR3___Q'B? Y'B?'\CB/C_'@_CX!B/
  594. XM)XGF/ SGQ^(XS&/!XCD?'^?X__P! 'GX#P> XCX_CX# , >/X\<?________
  595. XM___(DR?__\ ?______P<   X^9\G@_S^/__'_' /G______/B/C_GX^1\G@?
  596. XMS^'B/___G___GX\(\'@>/XQ@^#Q_@/C_'@^/XCD.(X'$>#\'X^,\'@/C^/X_
  597. XM/^?^?G____QXCC\1QCQ^(XCX_QX?X^ 8CB.(QCQ\?\?B.,QCP_,_'#_G_#_\
  598. XM <_Y^ \'G.(^?X^ X! 'C^/''___________R)(G___^?______\/   ./__
  599. XM)^'X/ ?_Q_Q\/ /_X#__GXCX_S_GD?XXCX_ \#___\___S^/"/!XSC^,8/@\
  600. XM XCX_QX/C^ Y#B./Q'@_P^/C/AXCX_C^/S_S_GY____P>(X_$< \?B.(^/\>
  601. XM#^/@&(XCB,8\?@_'XCP< ^/P?C\?Y_C__ 'GX'B/!__B/G^/P< P!X_CQQ__
  602. XM_________\B0A____/______^#P  #___ 'A^!D/_\?\>!^?_____Y^(^/Y^
  603. XM(P#^.(^/F/@____GP#Y_CR#P>,8SC&/X_$>(^/\>!X_@.8XCC\1X'^/CXSX^
  604. XM(^'X_'\_\_Y^?___X'B./Q''_'XCB/C_'@_CX!B.(XC&/'\'Q.(\' /C^/X_
  605. XM'^?X__P!__#XCF.<XCS_C^/@$ >/X\<?___________(F<____________@\
  606. XM   ___Y/ ? 1'__G_/Y_G^?__G\_R?C\SB/QXCB/CYCF/___\__\__\_YCC'
  607. XM,XCC^/Y'B/CX'@>/X#F.(X_ >!YSX^,^/B/!^/Q_/_G^?G___\0XCC\1Q_Q^
  608. XM(XCX_QX'X^,8CB.(QCQ\X\3B/!P#X?S\?Q_G^/_\ ?_Y^(YC@.(\SX_CP# '
  609. XMC^/''___________X#G/___________X/   ./_^3P'P$1__\_G__Y_#__P_
  610. XM/\'X^ YG\>)X'X^9X'X_C_G_^?^/F>8XQP>)XSC^!XCX^!XCC.<YSB./P'B&
  611. XM(^/P?CYSF/CXSS_Y_GY____$.)\3D>,\?R.(^/\>!^/C&(\GB>8\?'/$XCX\
  612. XM \CY_$\?Y_C__ '_^?P< 8# & \'P> 0!X_CQQ___________^ \'_______
  613. XM____^ P  #C__D^#YCD/__GS____P__\/G_CX#@/#^#P_#^/P_#^/X______
  614. XMC\/ $ ^/ \ P?P< <'P\ 0#"$,\'!^ P1@?!^/X^<P!P> \'_/!^? '_X#@_
  615. XMA\#P>#^# '!_' '!P! 'CX/P.#P'X? ?/&, >?@/@^?!__P!____________
  616. XM___ , >/X\<?___________________________\   _____Y__\9_______
  617. XM_^/__G_____________________/________________________________
  618. XM___\/_____________________P!____________X____Q________^/_C__
  619. XM__________G________\ ?______________X! 'C^/''_______________
  620. XM____^ _______   /__________________G________________________
  621. XMG___________________________________________________________
  622. XM_____________B/___@?________C_X____________C_________ '_____
  623. XM_________\ P!X_CP!____________________________P  #__________
  624. XM________S___________________________________________________
  625. XM______________________________________________\'___X/_______
  626. XM_P?\/___________X_________P!_______________@$ >/X\ ?________
  627. XM___________________\   _____________________________________
  628. XM____________________________________________________________
  629. XM___________________________________________________________\
  630. X! ?__
  631. Xend
  632. END_OF_FILE
  633. # end of 'font-16/Ucmr10x16bI'
  634. fi
  635. if test -f 'font-16/Ucmr10x16bu' -a "${1}" != "-c" ; then 
  636.   echo shar: Will not clobber existing file \"'font-16/Ucmr10x16bu'\"
  637. else
  638. echo shar: Extracting \"'font-16/Ucmr10x16bu'\" \(3571 characters\)
  639. sed "s/^X//" >'font-16/Ucmr10x16bu' <<'END_OF_FILE'
  640. Xbegin 644 cmr10x16bu.fnt
  641. XM%@H0!8                 _S_AP'#_@                            
  642. XM        &                     ,                             
  643. XM                                                            
  644. XM                                       #_O\& ^!P?S_G\=P^'^_X
  645. XM<!P_X<!P  V  =P   /@<          #\   !P  ;'\<P<!P!@P         
  646. XM#!P' \#P!@_!X?P^!P        #X  </X'S\/\_P^/^/@?/^^!C/>/C^'P_ 
  647. XM_'\_[_O>_[_G\/A@#X&   P #P  '@ !X #P!P#CP                   
  648. XM      !\&#X  _YS!@=P<'\=QS/^'#_/^' <..' <#X-@ '<   &,'      
  649. XM     _    </\&S?/\/@< P&          P^'P-AF X/@_'X<P^    &  8!
  650. XMW#@'!W#\=AS',?AW!P#AV' 8Q['<=SN'89Q_',<QC',<QG# 8 &!@  8  < 
  651. XM  X  [  < < X< \            &           X!@'!W/^< 8'<'!C'<.#
  652. XM=AP?[_AP'#CC -@<!P?P    !C!P          /    '#_!LVS^#L# 8 P& 
  653. XM       8-@<'<=P.# ?QF',=P   #  # =QL!P=PS'<<!P&8=P< X?!P'<>Q
  654. XMW'<[AW&,?QS',8P^#X#@P# !@\  '  '   .  .P '    ' '           
  655. XM !@          . 8!P_C_A@&!W!P8QW#@W8^/\_X<!PXX           '\]X
  656. XM   #       #P   !P_S_O@_@[!@. .'X&      &'<'!W'<'@P' #!S'<' 
  657. XM<!@  8 8Q@<'<<QSG <#F'<' .'@<!W'\=QW.X=QP!P<P^'\/ ^ X, P 8?@
  658. XM !P_!\!\/@\/X'Q^#P'A_!P]S^!P_ _'X?C_/\_[G/^_Y_#@& <-P_XP!@?P
  659. XM^'\=P<!P?Q_O^' <..           !_-V    8       ^    <&8-CX'P/@
  660. XM #@#@\!@     #!W!P!P.#X/!\ P/AW!P' P/\# ,-\/AW' <Y\'PX!W!P#A
  661. XM\' =Q_'<=SN'8? <',/A_!P' <# & &-L   .X=@_&X=@X#<=P< X? <'^=P
  662. XMV'89P_,8.!W',YP^'<;@X!@'  /^_X8'\/A_'<' <'\_S_AP'#C@        
  663. XM   W;-@  #_@      /@   '!F#8? ,!P  X X_P8      P=P< 8'!N#8?@
  664. XM,!X=P   8   8'#W#X?AP'.?!\. ?P< X?!P'<;QW'X[A\#X'!S#X?P<!P' 
  665. XMP!@!@8    .'<<#N.<.!W'<' .'@'!_G<=QW.<.#@#@=QS.</ S X\ 8 \ #
  666. XM_C &!_#X8QW!@'!_'^_X<!PXX           -VW8   !@      #P   !P  
  667. XMV!X'P_@ . .#P_P '\  8'<' , 8;@''<' _#\   #   ,!P]P^',<!SGP?#
  668. XM_'<' .'P<!_&\=QP.X? /!P<P>'<' <!P, , 8&    /AW' [C_#@=QW!P#A
  669. XM\!P?YW'<=SG#@? X'</C_!P/@<#@& <  _X8'X=P^  =P8!P/C_/^' <..  
  670. XM         #=O>    P      !\       _X>!^;P #@#A^!@     &!W!P&!
  671. XMW/\!QW!P9P?    8/\& <-\/ASG,<YP' [AW!P#A^' ?QG'<<#N'X!P<','!
  672. XMW!X' X# # &!@   'X=QP.XX X'<=P< X? <'^=QW'<YPX#X.QW#X_P<!P' 
  673. XMX!@'  /^  \'<9QC'<, <!P?[_AP'#C@           W9C            ? 
  674. XM      &P_@_NX  8 P& 8!@  8# -@<#,=P.'<=P<&<9P   #  #  # &<<X
  675. XMS'<<!P&X=P<'X?AP'\9QW' _A^&,'!S!P=P^!P. P 8!@8   #O'<<#N. .!
  676. XMW'<' .'X'!SG<=QW.<.#'#L=P^/\'@,#@. 8!P #_@ &!W&<?QW#,' </\_X
  677. XM<!PXX           '\8P           'P   !P !L/X/[N  # 8  & \  / 
  678. XMP#X'!_&8#AV'X'!F'X' < 8 !@!P9AG'./AV',<!^'<'!^'<<QC&,=QP/X=Y
  679. XMW!P/@<&,9P<',, & 8&    [QV#L;AS#@-QW!P#A^!P<YW#8=AG#@XP['<'#
  680. XM_#<& [#@& <  _[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[
  681. XM_O^_[_O^ #_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[
  682. XM_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[
  683. XM_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[
  684. XM_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_@ _[_O^_[_O^_[_O^_[
  685. XM_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[
  686. XM_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[
  687. XM_O^_[_O^_[_O^_[_O^_[_@              '^_X<!PXX               
  688. XM    !_                             8                        
  689. XM8                                                           
  690. XM             =P   ?@        < '            <         _X     
  691. XM         #_/^' </^                                          
  692. XM        ,                                                   
  693. XM                                              #X   'P       
  694. XM /@#P           '         /^               ?[_AP'#_@        
  695. XM                                                            
  696. XM                                                            
  697. XM                                                           #
  698. X!_@  
  699. Xend
  700. END_OF_FILE
  701. # end of 'font-16/Ucmr10x16bu'
  702. fi
  703. if test -f 'font-32/Ucmr10x16b' -a "${1}" != "-c" ; then 
  704.   echo shar: Will not clobber existing file \"'font-32/Ucmr10x16b'\"
  705. else
  706. echo shar: Extracting \"'font-32/Ucmr10x16b'\" \(3570 characters\)
  707. sed "s/^X//" >'font-32/Ucmr10x16b' <<'END_OF_FILE'
  708. Xbegin 644 cmr10x16b.fnt
  709. XM& H0!8                 _S_AP'#_@                            
  710. XM        &                     ,                             
  711. XM                                                            
  712. XM                                       #_O\& ^!P?S_G\=P^'^_X
  713. XM<!P_X<!P  V  =P   /@<          #\   !P  ;'\<P<!P!@P         
  714. XM#!P' \#P!@_!X?P^!P        #X  </X'S\/\_P^/^/@?/^^!C/>/C^'P_ 
  715. XM_'\_[_O>_[_G\/A@#X&   P #P  '@ !X #P!P#CP                   
  716. XM      !\&#X  _YS!@=P<'\=QS/^'#_/^' <..' <#X-@ '<   &,'      
  717. XM     _    </\&S?/\/@< P&          P^'P-AF X/@_'X<P^    &  8!
  718. XMW#@'!W#\=AS',?AW!P#AV' 8Q['<=SN'89Q_',<QC',<QG# 8 &!@  8  < 
  719. XM  X  [  < < X< \            &           X!@'!W/^< 8'<'!C'<.#
  720. XM=AP?[_AP'#CC -@<!P?P    !C!P          /    '#_!LVS^#L# 8 P& 
  721. XM       8-@<'<=P.# ?QF',=P   #  # =QL!P=PS'<<!P&8=P< X?!P'<>Q
  722. XMW'<[AW&,?QS',8P^#X#@P# !@\  '  '   .  .P '    ' '           
  723. XM !@          . 8!P_C_A@&!W!P8QW#@W8^/\_X<!PXX           '\]X
  724. XM   #       #P   !P_S_O@_@[!@. .'X&      &'<'!W'<'@P' #!S'<' 
  725. XM<!@  8 8Q@<'<<QSG <#F'<' .'@<!W'\=QW.X=QP!P<P^'\/ ^ X, P 8?@
  726. XM !P_!\!\/@\/X'Q^#P'A_!P]S^!P_ _'X?C_/\_[G/^_Y_#@& <-P_XP!@?P
  727. XM^'\=P<!P?Q_O^' <..           !_-V    8       ^    <&8-CX'P/@
  728. XM #@#@\!@     #!W!P!P.#X/!\ P/AW!P' P/\# ,-\/AW' <Y\'PX!W!P#A
  729. XM\' =Q_'<=SN'8? <',/A_!P' <# & &-L   .X=@_&X=@X#<=P< X? <'^=P
  730. XMV'89P_,8.!W',YP^'<;@X!@'  /^_X8'\/A_'<' <'\_S_AP'#C@        
  731. XM   W;-@  #_@      /@   '!F#8? ,!P  X X_P8      P=P< 8'!N#8?@
  732. XM,!X=P   8   8'#W#X?AP'.?!\. ?P< X?!P'<;QW'X[A\#X'!S#X?P<!P' 
  733. XMP!@!@8    .'<<#N.<.!W'<' .'@'!_G<=QW.<.#@#@=QS.</ S X\ 8 \ #
  734. XM_C &!_#X8QW!@'!_'^_X<!PXX           -VW8   !@      #P   !P  
  735. XMV!X'P_@ . .#P_P '\  8'<' , 8;@''<' _#\   #   ,!P]P^',<!SGP?#
  736. XM_'<' .'P<!_&\=QP.X? /!P<P>'<' <!P, , 8&    /AW' [C_#@=QW!P#A
  737. XM\!P?YW'<=SG#@? X'</C_!P/@<#@& <  _X8'X=P^  =P8!P/C_/^' <..  
  738. XM         #=O>    P      !\       _X>!^;P #@#A^!@     &!W!P&!
  739. XMW/\!QW!P9P?    8/\& <-\/ASG,<YP' [AW!P#A^' ?QG'<<#N'X!P<','!
  740. XMW!X' X# # &!@   'X=QP.XX X'<=P< X? <'^=QW'<YPX#X.QW#X_P<!P' 
  741. XMX!@'  /^  \'<9QC'<, <!P?[_AP'#C@           W9C            ? 
  742. XM      &P_@_NX  8 P& 8!@  8# -@<#,=P.'<=P<&<9P   #  #  # &<<X
  743. XMS'<<!P&X=P<'X?AP'\9QW' _A^&,'!S!P=P^!P. P 8!@8   #O'<<#N. .!
  744. XMW'<' .'X'!SG<=QW.<.#'#L=P^/\'@,#@. 8!P #_@ &!W&<?QW#,' </\_X
  745. XM<!PXX           '\8P           'P   !P !L/X/[N  # 8  & \  / 
  746. XMP#X'!_&8#AV'X'!F'X' < 8 !@!P9AG'./AV',<!^'<'!^'<<QC&,=QP/X=Y
  747. XMW!P/@<&,9P<',, & 8&    [QV#L;AS#@-QW!P#A^!P<YW#8=AG#@XP['<'#
  748. XM_#<& [#@& <  _X !@/C_G\_Y_#X/A_O^' <..           !_#X       
  749. XM    !_    <  ;!\&<;P  8,    /  #P8 <'\?P\!\/ \!P/ \!P'      
  750. XM<#P_[_!P_#_/@/C_CX/#_O\][S#X^!_/N?@^!P'!C/^/A_#X P^!@_X '\? 
  751. XM>#\/A\!\_X^ X_X^/^_X<'P/Q\/X'@_@PYS_A@?P?!@^  /^            
  752. XM   _S_AP'#C@                                    &  #F       
  753. XM !P  8                     P                                
  754. XM   #P                     /^            '    .        !P <  
  755. XM          8        #_@              '^_X<!PXX               
  756. XM    !_                             8                        
  757. XM8                                                           
  758. XM             =P   ?@        < '            <         _X     
  759. XM         #_/^' </^                                          
  760. XM        ,                                                   
  761. XM                                              #X   'P       
  762. XM /@#P           '         /^               ?[_AP'#_@        
  763. XM                                                            
  764. XM                                                            
  765. XM                                                           #
  766. X!_@  
  767. Xend
  768. END_OF_FILE
  769. # end of 'font-32/Ucmr10x16b'
  770. fi
  771. if test -f 'font-32/Ucmr10x16bI' -a "${1}" != "-c" ; then 
  772.   echo shar: Will not clobber existing file \"'font-32/Ucmr10x16bI'\"
  773. else
  774. echo shar: Extracting \"'font-32/Ucmr10x16bI'\" \(3571 characters\)
  775. sed "s/^X//" >'font-32/Ucmr10x16bI' <<'END_OF_FILE'
  776. Xbegin 644 cmr10x16bI.fnt
  777. XM& H0!8  _______________ , >/X\ ?___________________________\
  778. XM   _____Y_____________________S_____________________________
  779. XM____________________________________________________________
  780. XM_______________________________________\ 0#Y_!^/@, 8#B/!X! '
  781. XMC^/ 'C^/__)__B/___P?C__________\#   ./__DX#C/C^/^?/_________
  782. XM\^/X_#\/^? ^'@/!^/________\'__CP'X,#P# /!P!P?@P!!^<PAP<!X/ _
  783. XM X# $ 0A $ 8#P>?\'Y___/_\/__X?_^'_\/^/\</___________________
  784. XM______^#Y\'__ &,^?B/CX#B.,P!X\ P!X_CQQX_C\'R?_XC___YSX______
  785. XM_____ P  #CP#Y,@P#P?C_/Y__________/!X/R>9_'P? X'C/!____Y__G^
  786. XM(\?X^(\#B>,XS@>(^/\>)X_G.$XCB,1XGF. XSC.<XSC.8\_G_Y^?__G__C_
  787. XM__'__$__C_C_'C_#____________Y___________'^?X^(P!C_GXCX^<XCQ\
  788. XMB>/@$ >/X\<<_R?C^/@/____^<^/__________P\   X\ ^3),!\3\_G_/Y_
  789. XM_______GR?CXCB/Q\_@.9XSB/___\__\_B.3^/B/,XCC^/YGB/C_'@^/XCA.
  790. XM(XC$>(YS@.,XSG/!\'\?/\_^?#__X__X___Q__Q/_X____X_X___________
  791. XM_^?__________Q_G^/ < >?Y^(^/G.(\?(G!P# 'C^/''___________X#"'
  792. XM___\_______\/   ./ , 0? ?$^?Q_QX'Y______YXCX^(XCX?/X_\^,XCX_
  793. XMC^?__G_G.?CXCC.,8_C\9XCX_QX?C^(X#B.(Q'B./^/C/!X#P_!_'S_/_G@?
  794. XM_^/ ^#^#P?#P'X.!\/X> ^/",!^/ _ X'@< P# $8P! & \?Y_CR/ '/^?@/
  795. XM!X#B/C^/@. 0!X_CQQ___________^ R)____G_______!P  #CYGR<'X/P?
  796. XM_\?\?#^?_____\^(^/^/Q\'P^#_/P>(^/X_/P#\_SR#P>(X_C&#X/'^(^/\>
  797. XM#X_B. XCB,1XG@_CXSP> ^/X_C\_Y_YR3___Q'B? Y'B?'\CB/C_'@_CX!B/
  798. XM)XGF/ SGQ^(XS&/!XCD?'^?X__P! 'GX#P> XCX_CX# , >/X\<?________
  799. XM___(DR?__\ ?______P<   X^9\G@_S^/__'_' /G______/B/C_GX^1\G@?
  800. XMS^'B/___G___GX\(\'@>/XQ@^#Q_@/C_'@^/XCD.(X'$>#\'X^,\'@/C^/X_
  801. XM/^?^?G____QXCC\1QCQ^(XCX_QX?X^ 8CB.(QCQ\?\?B.,QCP_,_'#_G_#_\
  802. XM <_Y^ \'G.(^?X^ X! 'C^/''___________R)(G___^?______\/   ./__
  803. XM)^'X/ ?_Q_Q\/ /_X#__GXCX_S_GD?XXCX_ \#___\___S^/"/!XSC^,8/@\
  804. XM XCX_QX/C^ Y#B./Q'@_P^/C/AXCX_C^/S_S_GY____P>(X_$< \?B.(^/\>
  805. XM#^/@&(XCB,8\?@_'XCP< ^/P?C\?Y_C__ 'GX'B/!__B/G^/P< P!X_CQQ__
  806. XM_________\B0A____/______^#P  #___ 'A^!D/_\?\>!^?_____Y^(^/Y^
  807. XM(P#^.(^/F/@____GP#Y_CR#P>,8SC&/X_$>(^/\>!X_@.8XCC\1X'^/CXSX^
  808. XM(^'X_'\_\_Y^?___X'B./Q''_'XCB/C_'@_CX!B.(XC&/'\'Q.(\' /C^/X_
  809. XM'^?X__P!__#XCF.<XCS_C^/@$ >/X\<?___________(F<____________@\
  810. XM   ___Y/ ? 1'__G_/Y_G^?__G\_R?C\SB/QXCB/CYCF/___\__\__\_YCC'
  811. XM,XCC^/Y'B/CX'@>/X#F.(X_ >!YSX^,^/B/!^/Q_/_G^?G___\0XCC\1Q_Q^
  812. XM(XCX_QX'X^,8CB.(QCQ\X\3B/!P#X?S\?Q_G^/_\ ?_Y^(YC@.(\SX_CP# '
  813. XMC^/''___________X#G/___________X/   ./_^3P'P$1__\_G__Y_#__P_
  814. XM/\'X^ YG\>)X'X^9X'X_C_G_^?^/F>8XQP>)XSC^!XCX^!XCC.<YSB./P'B&
  815. XM(^/P?CYSF/CXSS_Y_GY____$.)\3D>,\?R.(^/\>!^/C&(\GB>8\?'/$XCX\
  816. XM \CY_$\?Y_C__ '_^?P< 8# & \'P> 0!X_CQQ___________^ \'_______
  817. XM____^ P  #C__D^#YCD/__GS____P__\/G_CX#@/#^#P_#^/P_#^/X______
  818. XMC\/ $ ^/ \ P?P< <'P\ 0#"$,\'!^ P1@?!^/X^<P!P> \'_/!^? '_X#@_
  819. XMA\#P>#^# '!_' '!P! 'CX/P.#P'X? ?/&, >?@/@^?!__P!____________
  820. XM___ , >/X\<?___________________________\   _____Y__\9_______
  821. XM_^/__G_____________________/________________________________
  822. XM___\/_____________________P!____________X____Q________^/_C__
  823. XM__________G________\ ?______________X! 'C^/''_______________
  824. XM____^ _______   /__________________G________________________
  825. XMG___________________________________________________________
  826. XM_____________B/___@?________C_X____________C_________ '_____
  827. XM_________\ P!X_CP!____________________________P  #__________
  828. XM________S___________________________________________________
  829. XM______________________________________________\'___X/_______
  830. XM_P?\/___________X_________P!_______________@$ >/X\ ?________
  831. XM___________________\   _____________________________________
  832. XM____________________________________________________________
  833. XM___________________________________________________________\
  834. X! ?__
  835. Xend
  836. END_OF_FILE
  837. # end of 'font-32/Ucmr10x16bI'
  838. fi
  839. if test -f 'font-32/Ucmr10x16bu' -a "${1}" != "-c" ; then 
  840.   echo shar: Will not clobber existing file \"'font-32/Ucmr10x16bu'\"
  841. else
  842. echo shar: Extracting \"'font-32/Ucmr10x16bu'\" \(3571 characters\)
  843. sed "s/^X//" >'font-32/Ucmr10x16bu' <<'END_OF_FILE'
  844. Xbegin 644 cmr10x16bu.fnt
  845. XM& H0!8                 _S_AP'#_@                            
  846. XM        &                     ,                             
  847. XM                                                            
  848. XM                                       #_O\& ^!P?S_G\=P^'^_X
  849. XM<!P_X<!P  V  =P   /@<          #\   !P  ;'\<P<!P!@P         
  850. XM#!P' \#P!@_!X?P^!P        #X  </X'S\/\_P^/^/@?/^^!C/>/C^'P_ 
  851. XM_'\_[_O>_[_G\/A@#X&   P #P  '@ !X #P!P#CP                   
  852. XM      !\&#X  _YS!@=P<'\=QS/^'#_/^' <..' <#X-@ '<   &,'      
  853. XM     _    </\&S?/\/@< P&          P^'P-AF X/@_'X<P^    &  8!
  854. XMW#@'!W#\=AS',?AW!P#AV' 8Q['<=SN'89Q_',<QC',<QG# 8 &!@  8  < 
  855. XM  X  [  < < X< \            &           X!@'!W/^< 8'<'!C'<.#
  856. XM=AP?[_AP'#CC -@<!P?P    !C!P          /    '#_!LVS^#L# 8 P& 
  857. XM       8-@<'<=P.# ?QF',=P   #  # =QL!P=PS'<<!P&8=P< X?!P'<>Q
  858. XMW'<[AW&,?QS',8P^#X#@P# !@\  '  '   .  .P '    ' '           
  859. XM !@          . 8!P_C_A@&!W!P8QW#@W8^/\_X<!PXX           '\]X
  860. XM   #       #P   !P_S_O@_@[!@. .'X&      &'<'!W'<'@P' #!S'<' 
  861. XM<!@  8 8Q@<'<<QSG <#F'<' .'@<!W'\=QW.X=QP!P<P^'\/ ^ X, P 8?@
  862. XM !P_!\!\/@\/X'Q^#P'A_!P]S^!P_ _'X?C_/\_[G/^_Y_#@& <-P_XP!@?P
  863. XM^'\=P<!P?Q_O^' <..           !_-V    8       ^    <&8-CX'P/@
  864. XM #@#@\!@     #!W!P!P.#X/!\ P/AW!P' P/\# ,-\/AW' <Y\'PX!W!P#A
  865. XM\' =Q_'<=SN'8? <',/A_!P' <# & &-L   .X=@_&X=@X#<=P< X? <'^=P
  866. XMV'89P_,8.!W',YP^'<;@X!@'  /^_X8'\/A_'<' <'\_S_AP'#C@        
  867. XM   W;-@  #_@      /@   '!F#8? ,!P  X X_P8      P=P< 8'!N#8?@
  868. XM,!X=P   8   8'#W#X?AP'.?!\. ?P< X?!P'<;QW'X[A\#X'!S#X?P<!P' 
  869. XMP!@!@8    .'<<#N.<.!W'<' .'@'!_G<=QW.<.#@#@=QS.</ S X\ 8 \ #
  870. XM_C &!_#X8QW!@'!_'^_X<!PXX           -VW8   !@      #P   !P  
  871. XMV!X'P_@ . .#P_P '\  8'<' , 8;@''<' _#\   #   ,!P]P^',<!SGP?#
  872. XM_'<' .'P<!_&\=QP.X? /!P<P>'<' <!P, , 8&    /AW' [C_#@=QW!P#A
  873. XM\!P?YW'<=SG#@? X'</C_!P/@<#@& <  _X8'X=P^  =P8!P/C_/^' <..  
  874. XM         #=O>    P      !\       _X>!^;P #@#A^!@     &!W!P&!
  875. XMW/\!QW!P9P?    8/\& <-\/ASG,<YP' [AW!P#A^' ?QG'<<#N'X!P<','!
  876. XMW!X' X# # &!@   'X=QP.XX X'<=P< X? <'^=QW'<YPX#X.QW#X_P<!P' 
  877. XMX!@'  /^  \'<9QC'<, <!P?[_AP'#C@           W9C            ? 
  878. XM      &P_@_NX  8 P& 8!@  8# -@<#,=P.'<=P<&<9P   #  #  # &<<X
  879. XMS'<<!P&X=P<'X?AP'\9QW' _A^&,'!S!P=P^!P. P 8!@8   #O'<<#N. .!
  880. XMW'<' .'X'!SG<=QW.<.#'#L=P^/\'@,#@. 8!P #_@ &!W&<?QW#,' </\_X
  881. XM<!PXX           '\8P           'P   !P !L/X/[N  # 8  & \  / 
  882. XMP#X'!_&8#AV'X'!F'X' < 8 !@!P9AG'./AV',<!^'<'!^'<<QC&,=QP/X=Y
  883. XMW!P/@<&,9P<',, & 8&    [QV#L;AS#@-QW!P#A^!P<YW#8=AG#@XP['<'#
  884. XM_#<& [#@& <  _[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[
  885. XM_O^_[_O^ #_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[
  886. XM_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[
  887. XM_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[
  888. XM_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_@ _[_O^_[_O^_[_O^_[
  889. XM_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[
  890. XM_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[_O^_[
  891. XM_O^_[_O^_[_O^_[_O^_[_@              '^_X<!PXX               
  892. XM    !_                             8                        
  893. XM8                                                           
  894. XM             =P   ?@        < '            <         _X     
  895. XM         #_/^' </^                                          
  896. XM        ,                                                   
  897. XM                                              #X   'P       
  898. XM /@#P           '         /^               ?[_AP'#_@        
  899. XM                                                            
  900. XM                                                            
  901. XM                                                           #
  902. X!_@  
  903. Xend
  904. END_OF_FILE
  905. # end of 'font-32/Ucmr10x16bu'
  906. fi
  907. if test -f 'misc/rotate.c' -a "${1}" != "-c" ; then 
  908.   echo shar: Will not clobber existing file \"'misc/rotate.c'\"
  909. else
  910. echo shar: Extracting \"'misc/rotate.c'\" \(3729 characters\)
  911. sed "s/^X//" >'misc/rotate.c' <<'END_OF_FILE'
  912. X/*                        Copyright (c) 1988 Bellcore
  913. X *                            All Rights Reserved
  914. X *       Permission is granted to copy or use this program, EXCEPT that it
  915. X *       may not be sold for profit, the copyright notice must be reproduced
  916. X *       on copies, and credit should be given to Bellcore where it is due.
  917. X *       BELLCORE MAKES NO WARRANTY AND ACCEPTS NO LIABILITY FOR THIS PROGRAM.
  918. X */
  919. X/* rotate a bitmap 90 deg clockwise (mgr format) */
  920. X
  921. X/*    $Header: rotate.c,v 4.1 88/08/24 14:39:17 bianchi Exp $
  922. X    $Source: /tmp/mgrsrc/misc/RCS/rotate.c,v $
  923. X*/
  924. Xstatic char    RCSid_[] = "$Source: /tmp/mgrsrc/misc/RCS/rotate.c,v $$Revision: 4.1 $";
  925. X
  926. X#include <stdio.h>
  927. X#include "dump.h"
  928. X#include "bitmap.h"
  929. X
  930. X#define MAX    2400        /* max bitmap size */
  931. X
  932. X#define GET_OPT(i)    \
  933. X    strlen(argv[i])>2 ? argv[i]+2 : argv[++i]
  934. X
  935. Xunsigned char buff[MAX];    /* output row buffer */
  936. X
  937. Xmain(argc,argv)
  938. Xint argc;
  939. Xchar **argv;
  940. X   {
  941. X   char *malloc();
  942. X   struct b_header b_buff, *head = &b_buff;
  943. X   int w=0,h=0,d;
  944. X   int inbytes,outbytes,size;
  945. X   int reverse = 0;
  946. X   int x_flag=0;
  947. X
  948. X   register unsigned char *data;
  949. X   register unsigned char *src;
  950. X   register int bit,word;
  951. X   register int col,row;
  952. X   int ok;
  953. X   int verbose = 0;
  954. X   int i;
  955. X
  956. X   /* check arguments */
  957. X
  958. X   for(i=1;i<argc;i++) {
  959. X      if (*argv[i] == '-')
  960. X         switch (argv[i][1]) {
  961. X            case 'w':                /* specify width */
  962. X               w = atoi(GET_OPT(i));
  963. X               break;
  964. X            case 'h':                /* specify height */
  965. X               h = atoi(GET_OPT(i));
  966. X               break; 
  967. X            case 'x':                /* don't output header */
  968. X               x_flag++;
  969. X               break; 
  970. X            case 'r':                /* reverse bits */
  971. X               reverse++;
  972. X               break; 
  973. X            case 'v':                /* verbose */
  974. X               verbose++;
  975. X               break; 
  976. X            default:
  977. X               fprintf(stderr,"%s: invalid flag %c ignored\n",argv[0],argv[i][1]);
  978. X            }
  979. X      else
  980. X         fprintf(stderr,"%s: invalid argument %s ignored\n",argv[0],argv[i]);
  981. X      }
  982. X
  983. X
  984. X   if (w==0 && h==0) {
  985. X
  986. X      /* read in bitmap header */
  987. X
  988. X      if (!bitmaphead( stdin, &w, &h, &d, &inbytes )) {
  989. X         fprintf(stderr,"%s: invalid bitmap format \n",*argv);
  990. X         exit(1);
  991. X         }
  992. X      }
  993. X
  994. X   else if (w==0 || h==0) {
  995. X      fprintf(stderr,"%s:  Both -h and -w must be specified\n",*argv);
  996. X      exit(1);
  997. X      }
  998. X      
  999. X   if (w > MAX) {
  1000. X      fprintf(stderr,"%s:  bitmap too big\n",*argv);
  1001. X      exit(1);
  1002. X      }
  1003. X
  1004. X   size = inbytes * h;            /* total bytes in bitmap */
  1005. X   outbytes = ((h+7)&~7)/8;        /* bytes/row (output) */
  1006. X   
  1007. X   if ((data= (unsigned char *) malloc(size)) == NULL) {
  1008. X      fprintf(stderr,"%s: can't malloc space\n",*argv);
  1009. X      exit(2);
  1010. X      }
  1011. X      
  1012. X   for(ok=1,col=0;ok>0 && col<size;col += (ok=Read(data+col,size-col)))
  1013. X      if (verbose) write(2,">",1);
  1014. X
  1015. X   /* write new header */
  1016. X
  1017. X   if (!x_flag) {
  1018. X      B_PUTHDR8(head,h,w,d);
  1019. X      fwrite(head,sizeof b_buff,1,stdout);
  1020. X      }
  1021. X
  1022. X   /* rotate and output new bitmap */
  1023. X
  1024. X   data += size - inbytes;        /* start at end */
  1025. X   for (col = 0;col< w; col++) {
  1026. X      bit = 0x80 >> (col&0x7);
  1027. X      word = col/8;
  1028. X      if (reverse)
  1029. X         for(src = &buff[outbytes]; src >= buff; src-- )
  1030. X        *src = ~0;
  1031. X      else
  1032. X         bzero(buff,outbytes);
  1033. X      for(src=data+word,row = 0; row< h; row++,src -= inbytes) 
  1034. X         if (*src & bit)
  1035. X            buff[row>>3] ^= 0x80 >> (row&0x7);
  1036. X      fwrite(buff,outbytes,1,stdout);
  1037. X      if (verbose) write(2,">",1);
  1038. X      }
  1039. X   exit(0);
  1040. X   }
  1041. X
  1042. X/* do multiple passes for read */
  1043. X
  1044. XRead(buff,count)
  1045. Xregister char *buff;
  1046. Xint count;
  1047. X   {
  1048. X   register int sum=0,current=0;
  1049. X
  1050. X   while((current = fread(buff+sum,1,count-sum,stdin))>0)
  1051. X      sum += current;
  1052. X   return(sum);
  1053. X   }
  1054. END_OF_FILE
  1055. # end of 'misc/rotate.c'
  1056. fi
  1057. if test -f 'src/data.c' -a "${1}" != "-c" ; then 
  1058.   echo shar: Will not clobber existing file \"'src/data.c'\"
  1059. else
  1060. echo shar: Extracting \"'src/data.c'\" \(3751 characters\)
  1061. sed "s/^X//" >'src/data.c' <<'END_OF_FILE'
  1062. X/*                        Copyright (c) 1987 Bellcore
  1063. X *                            All Rights Reserved
  1064. X *       Permission is granted to copy or use this program, EXCEPT that it
  1065. X *       may not be sold for profit, the copyright notice must be reproduced
  1066. X *       on copies, and credit should be given to Bellcore where it is due.
  1067. X *       BELLCORE MAKES NO WARRANTY AND ACCEPTS NO LIABILITY FOR THIS PROGRAM.
  1068. X */
  1069. X/*    $Header: data.c,v 4.2 88/07/19 14:15:18 sau Exp $
  1070. X    $Source: /tmp/mgrsrc/src/RCS/data.c,v $
  1071. X*/
  1072. Xstatic char    RCSid_[] = "$Source: /tmp/mgrsrc/src/RCS/data.c,v $$Revision: 4.2 $";
  1073. X
  1074. X/* static data items for window manager */
  1075. X
  1076. X#include "bitmap.h"
  1077. X#include "defs.h"
  1078. X#include "font.h"
  1079. X
  1080. X/* bit maps */
  1081. X
  1082. X#include "icons.h"
  1083. X
  1084. X/* space to store screen covered by mouse */
  1085. X
  1086. Xstatic char c_save[ BIT_Size(16,16,DEPTH) ];
  1087. X
  1088. X
  1089. X/* structures for mouse icons */
  1090. X
  1091. Xbit_static(pattern,16,4,pat_data,1);
  1092. Xbit_static(mouse_arrow,16,32,c_arrow1,1);
  1093. Xbit_static(mouse_box,16,32,c_box,1);
  1094. Xbit_static(mouse_cut,16,32,c_cut,1);
  1095. Xbit_static(mouse_cup,16,32,c_cup,1);
  1096. Xbit_static(mouse_save,16,16,c_save,DEPTH);
  1097. Xbit_static(mouse_cross,16,16,c_cross,1);
  1098. Xbit_static(mouse_bull,8,8,c_bull,1);
  1099. Xbit_static(mouse_bull2,8,8,c_bull2,1);
  1100. X
  1101. X/* menus */
  1102. X
  1103. Xchar *active_menu[] = {        /* active-window menu */
  1104. X   "reshape",
  1105. X   "move",
  1106. X   "bury",
  1107. X#ifdef CUT
  1108. X   "cut",
  1109. X   "paste",
  1110. X#endif
  1111. X   "- - - -",
  1112. X   "destroy",
  1113. X   (char *) 0};
  1114. X
  1115. Xchar *main_menu[] = {        /* primary menu */
  1116. X   "new window",
  1117. X   "redraw",
  1118. X   "quit",
  1119. X   (char *) 0};
  1120. X
  1121. Xchar *full_menu[] = {        /* primary menu  - no more windows allowed */
  1122. X   "redraw",
  1123. X   "quit",
  1124. X   (char *) 0};
  1125. X
  1126. Xchar *quit_menu[] = {        /* to verify quit */
  1127. X   "cancel",
  1128. X   "suspend",
  1129. X   "- - - -",
  1130. X   "really quit",
  1131. X   (char *) 0};
  1132. X  
  1133. X
  1134. X/* menu functions - these have a 1-1 corrospondance with the menu items */
  1135. X
  1136. Xint new_window(), shape_window(), move_window(), destroy_window(), quit();
  1137. Xint redraw(), hide_win(), nothing();
  1138. X#ifdef CUT
  1139. Xint cut(), paste();
  1140. X#endif
  1141. X
  1142. Xfunction main_functions[] = {
  1143. X   new_window,
  1144. X   redraw,
  1145. X   quit,
  1146. X   (function) 0 };
  1147. X
  1148. Xfunction full_functions[] = {
  1149. X   redraw,
  1150. X   quit,
  1151. X   (function) 0 };
  1152. X
  1153. Xfunction active_functions[] = {
  1154. X   shape_window,
  1155. X   move_window,
  1156. X   hide_win,
  1157. X#ifdef CUT
  1158. X   cut,
  1159. X   paste,
  1160. X#endif
  1161. X   nothing,
  1162. X   destroy_window,
  1163. X   (function) 0 };
  1164. X
  1165. X/* default font info */
  1166. X
  1167. Xchar *font_dir = FONTDIR;
  1168. Xchar *fontlist[MAXFONT];
  1169. X
  1170. X/* default icon info */
  1171. Xchar *icon_dir = ICONDIR;
  1172. X
  1173. X/* raster of table for inverted screen */
  1174. X
  1175. Xint rev_ops[] = {
  1176. X   0xf,0x7,0xb,0x3,0xd,0x5,0x9,0x1,0xe,0x6,0xa,0x2,0xc,0x4,0x8,0x0
  1177. X   };
  1178. X
  1179. XBITMAP *m_rop;                /* current mouse bit map */
  1180. Xint next_window=0;            /* next available window count */
  1181. Xstruct font *font;            /* default font */
  1182. XBITMAP *screen;                /* default screen */
  1183. XWINDOW *active = (WINDOW *) 0;        /* window connected to keyboard */
  1184. XWINDOW *last_active = (WINDOW *) 0;    /* last window connected to keyboard */
  1185. Xint button_state = 0;            /* state of the mouse buttons */
  1186. Xint mouse, mousex, mousey;        /* mouse fd, x-coord, y-coord */
  1187. Xint debug = 0;                /* ==1 for debug prints */
  1188. Xint mouse_on = 0;            /* 1 iff mouse track is on */
  1189. Xchar *snarf = (char *) 0;        /* place to keep snarfed text */
  1190. Xchar *message = (char *) 0;        /* place to keep message */
  1191. Xchar *start_command;            /* command for shell at window start */
  1192. Xchar *init_command;            /* str to send window upon creation */
  1193. Xint id_message = 0;            /* id of message sender */
  1194. Xshort buckey_map = 0;            /* mapping from ptty to buckey key */
  1195. Xunsigned int init_flags = INIT_FLAGS;    /* initial flags for new windows */
  1196. Xint mask = 0;                /* process mask for select */
  1197. Xint poll = 0;                /* processes with non-processed but
  1198. X                     * already read data */
  1199. X#ifdef DEBUG
  1200. Xchar debug_level[] = "                                ";    /* debug flags */
  1201. X#endif
  1202. X
  1203. X/* aarg! */
  1204. X
  1205. Xnothing() {}
  1206. END_OF_FILE
  1207. # end of 'src/data.c'
  1208. fi
  1209. if test -f 'src/event.h' -a "${1}" != "-c" ; then 
  1210.   echo shar: Will not clobber existing file \"'src/event.h'\"
  1211. else
  1212. echo shar: Extracting \"'src/event.h'\" \(3647 characters\)
  1213. sed "s/^X//" >'src/event.h' <<'END_OF_FILE'
  1214. X/*                        Copyright (c) 1987 Bellcore
  1215. X *                            All Rights Reserved
  1216. X *       Permission is granted to copy or use this program, EXCEPT that it
  1217. X *       may not be sold for profit, the copyright notice must be reproduced
  1218. X *       on copies, and credit should be given to Bellcore where it is due.
  1219. X *       BELLCORE MAKES NO WARRANTY AND ACCEPTS NO LIABILITY FOR THIS PROGRAM.
  1220. X */
  1221. X/*    $Header: event.h,v 4.1 88/06/21 13:21:58 bianchi Exp $
  1222. X    $Source: /tmp/mgrsrc/src/RCS/event.h,v $
  1223. X*/
  1224. Xstatic char    h_event_[] = "$Source: /tmp/mgrsrc/src/RCS/event.h,v $$Revision: 4.1 $";
  1225. X
  1226. X/* event codings for mgr */
  1227. X
  1228. X#define EVENT_B1_DOWN        1        /* right button down */
  1229. X#define EVENT_B2_DOWN        2        /* middle button down */
  1230. X#define EVENT_BSYS_DOWN        4        /* left (system) button down */
  1231. X#define EVENT_B1_UP        -1        /* right button going up */
  1232. X#define EVENT_B2_UP        -2        /* middle button going up */
  1233. X#define EVENT_BSYS_UP        -4        /* left (system) button up */
  1234. X#define EVENT_SHAPE        5        /* window reshaped */
  1235. X#define EVENT_REDRAW        6        /* screen redraw */
  1236. X#define EVENT_ACTIVATED        7        /* window made active window */
  1237. X#define EVENT_DEACTIVATED    8        /* window no longer active */
  1238. X#define EVENT_COVERED        9        /* window is partly obscured */
  1239. X#define EVENT_UNCOVERED        10        /* window is un-obscured */
  1240. X#define EVENT_MOVE        11        /* window was moved */
  1241. X#define EVENT_DESTROY        12        /* client window destroyed */
  1242. X#define EVENT_ACCEPT        13        /* messages accepted */
  1243. X#define EVENT_NOTIFY        14        /* set window name */
  1244. X#define EVENT_TELLME        15        /* unused */
  1245. X#define EVENT_SNARFED        16        /* a snarf happened */
  1246. X#define EVENT_PASTE        17        /* a paste happened */
  1247. X
  1248. X#define MIN_EVENT        -4
  1249. X#define MAX_EVENT        17
  1250. X/* NOTE, MAXEVENTS in defines.h must be kept consistent with these values.
  1251. X*/
  1252. X
  1253. X/* Check if the given event number is legal, return TRUE if it is.
  1254. X*/
  1255. X#define CHK_EVENT(event)    (MIN_EVENT <= (event)  &&  (event) <= MAX_EVENT)
  1256. X
  1257. X/* event stack control flags */
  1258. X
  1259. X#define EVENT_STACK        18        /* stack events */
  1260. X#define EVENT_STFLAG        19        /* events stacked somewhere */
  1261. X
  1262. X/* button event control chars */
  1263. X
  1264. X#define E_ESC            '%'        /* escape char */
  1265. X#define E_POS            'p'        /* return mouse position */
  1266. X#define E_CPOS            'P'        /* mouse position (cols/rows)*/
  1267. X#define E_SWRECT        'r'        /* sweep out a rectangle */
  1268. X#define E_SWRECTA        'R'        /* " in screen coords */
  1269. X#define E_SWBOX      'b'      /* sweep out a box */
  1270. X#define E_SWBOXA     'B'      /* " in screen coords */
  1271. X#define E_SWLINE        'l'        /* sweep out a line */
  1272. X#define E_SWTEXT        't'        /* sweep out text */
  1273. X#define E_SWTEXTT        'T'        /* " text region only */
  1274. X#define E_NOTIFY        'n'        /* get applic. notification */
  1275. X#define E_WHO            'w'        /* get applic. id */
  1276. X#define E_WHOSIZE        'S'        /* get applic. size */
  1277. X#define E_FROM            'f'        /* who is message from */
  1278. X#define E_MESS            'm'        /* message sent */
  1279. X#define E_MSGSIZE        's'        /* size of message sent */
  1280. X#define E_SNARFSIZE        'c'        /* size of cut buffer */
  1281. X#define E_SNARFBUF        'C'        /* content of cut buffer */
  1282. X
  1283. X#define E_LIST_BUTTON        "%pPrRbBlTtnwS"    /* valid esc's for buttons */
  1284. X#define E_LIST_ACCEPT        "%pPfms"    /* valid esc's for notify */
  1285. X#define E_LIST_SNARF        "%cCf"        /* valid esc's for snarf */
  1286. X#define E_LIST_PASTE        "%c"        /* valid esc's for snarf */
  1287. X
  1288. X#define E_MAIN        0            /* in main window */
  1289. X#define E_STACK        1            /* on window stack */
  1290. X
  1291. X/* other event macros */
  1292. X
  1293. X/* convert event number to index into event array */
  1294. X#define GET_EVENT(event)    ((event)-(MIN_EVENT))
  1295. X
  1296. X#define EVENT_SET_MASK(win,event)    \
  1297. X                ((win->event_mask) |= (1L<<GET_EVENT(event)))
  1298. X#define EVENT_CLEAR_MASK(win,event)    \
  1299. X                ((win->event_mask) &= ~(1L<<GET_EVENT(event)))
  1300. X#define IS_EVENT(win,event)    \
  1301. X                ((win->event_mask) & (1L<<GET_EVENT(event)))
  1302. END_OF_FILE
  1303. # end of 'src/event.h'
  1304. fi
  1305. if test -f 'src/kbd.c' -a "${1}" != "-c" ; then 
  1306.   echo shar: Will not clobber existing file \"'src/kbd.c'\"
  1307. else
  1308. echo shar: Extracting \"'src/kbd.c'\" \(3690 characters\)
  1309. sed "s/^X//" >'src/kbd.c' <<'END_OF_FILE'
  1310. X/*                        Copyright (c) 1987 Bellcore
  1311. X *                            All Rights Reserved
  1312. X *       Permission is granted to copy or use this program, EXCEPT that it
  1313. X *       may not be sold for profit, the copyright notice must be reproduced
  1314. X *       on copies, and credit should be given to Bellcore where it is due.
  1315. X *       BELLCORE MAKES NO WARRANTY AND ACCEPTS NO LIABILITY FOR THIS PROGRAM.
  1316. X */
  1317. X/*    $Header: kbd.c,v 4.2 88/07/07 08:59:02 sau Exp $
  1318. X    $Source: /tmp/mgrsrc/src/RCS/kbd.c,v $
  1319. X*/
  1320. Xstatic char    RCSid_[] = "$Source: /tmp/mgrsrc/src/RCS/kbd.c,v $$Revision: 4.2 $";
  1321. X
  1322. X#include <stdio.h>
  1323. X#include <sys/signal.h>
  1324. X#include "bitmap.h"
  1325. X#include "defs.h"
  1326. X#ifdef sun
  1327. X#include <sys/time.h> 
  1328. X#ifdef KBD
  1329. X# include <sys/types.h>
  1330. X# include <sundev/kbio.h>
  1331. X# ifndef TIOCCONS                    /* definiton moved in rel. 4.0 */
  1332. X#   include "<sys/termios.h>"
  1333. X# endif
  1334. X#endif KBD
  1335. X#endif
  1336. X
  1337. Xstatic int    bell_fd;
  1338. X
  1339. X/* initialize bell, for Suns */
  1340. Xint
  1341. Xinitbell()
  1342. X   {
  1343. X#ifdef BELL
  1344. X   int i;
  1345. X   if ( !debug  &&  (i=open("/dev/bell",1))>=0 )
  1346. X      bell_fd = i;
  1347. X   else
  1348. X      bell_fd = -1;
  1349. X#endif
  1350. X   }
  1351. X
  1352. X
  1353. X
  1354. Xstatic int ring = 0;
  1355. X
  1356. X/* turn on the bell */
  1357. X
  1358. Xvoid
  1359. Xbell_on()
  1360. X   {
  1361. X#ifdef BELL
  1362. X   int    bell_off();
  1363. X
  1364. X   if( bell_fd >= 0 ) {
  1365. X      if (ring==0)
  1366. X         write( bell_fd, "\002", 1 );
  1367. X      signal( SIGALRM, bell_off );
  1368. X      set_timer(15);        /* set alarm for 100'th seconds */
  1369. X      ring++;
  1370. X      return;
  1371. X      }
  1372. X#endif
  1373. X/*    We are looking for some way to make a noise when ever possible.
  1374. X      This line breaks when the console is redirected to an mgr window and
  1375. X      mgr's stderr (fd 2) is the console.
  1376. X
  1377. X   write( 2, "\007", 1 );
  1378. X*/
  1379. X   }
  1380. X
  1381. X#ifdef BELL
  1382. X/* turn off the bell */
  1383. X
  1384. Xint
  1385. Xbell_off(n)
  1386. Xint n;            /* signal #, ignored */
  1387. X   {
  1388. X   write(bell_fd,"\003",1);    /* turns the bell off */
  1389. X   set_timer(0);        /* insure timer is off */
  1390. X   ring = 0;
  1391. X   }
  1392. X
  1393. X
  1394. X/* reset the keyboard */
  1395. X
  1396. Xint
  1397. Xkbd_reset()
  1398. X   {
  1399. X   if( bell_fd >= 0 )
  1400. X      write(bell_fd,"\001",1);    /* this resets the kbd and turns bell off */
  1401. X   set_timer(0);        /* insure timer is off */
  1402. X   ring = 0;
  1403. X   }
  1404. X
  1405. X
  1406. Xint
  1407. Xset_timer(time)
  1408. Xint time;        /* time in 100'th of seconds */
  1409. X   {
  1410. X   struct    itimerval new,old;
  1411. X
  1412. X   new.it_interval.tv_sec = 0L;
  1413. X   new.it_interval.tv_usec = 0L;
  1414. X   new.it_value.tv_sec = time/100;
  1415. X   new.it_value.tv_usec = (time%100) * 10000;
  1416. X
  1417. X   setitimer(ITIMER_REAL,&new,&old);
  1418. X   }
  1419. X
  1420. X#endif
  1421. X
  1422. X
  1423. Xstatic int kbd_fd = -1;
  1424. X
  1425. X/* initialize the keyboard, especially when it is a separate device */
  1426. X
  1427. Xinitkbd()
  1428. X{
  1429. X#ifdef KBD
  1430. X   int fd;
  1431. X
  1432. X   if ((fd = set_kbd(1)) > 0) {
  1433. X    kbd_fd = 0; 
  1434. X       close(kbd_fd);
  1435. X    dup(fd);
  1436. X    close(fd);
  1437. X    }
  1438. X   else if( fd == 0 )
  1439. X    return;
  1440. X   else  {
  1441. X    if( debug )
  1442. X       fprintf(stderr,"Can't find keyboard, using stdin\n");
  1443. X    kbd_fd = -1;
  1444. X    }
  1445. X#endif
  1446. X}
  1447. X
  1448. X/* set/reset direct mode
  1449. X   When setting direct mode, returns file descriptor of keyboard */
  1450. X
  1451. Xint
  1452. Xset_kbd(how)
  1453. Xint how;            /* 1=direct, 0=no direct */
  1454. X   {
  1455. X   int one = 1;
  1456. X   int zero = 0;
  1457. X   int cons;
  1458. X
  1459. X#ifdef KBD
  1460. X#ifndef  KBD_CMD_RESET
  1461. X#define  KBD_CMD_RESET    0x01    /* Should be in a header file, but .. */
  1462. X#endif
  1463. X   if (how == 0) {        /* make sure kbd is released */
  1464. X      if (kbd_fd == -1)
  1465. X     return(-1);
  1466. X      ioctl(kbd_fd, KIOCSDIRECT, &zero);    /* turn off direct mode */
  1467. X      ioctl(kbd_fd, KIOCCMD, KBD_CMD_RESET);    /* reset the keyboard */
  1468. X      close(kbd_fd);                /* close the keyboard */
  1469. X      cons = open("/dev/console", 0);    /* put console messages back */
  1470. X      ioctl(cons, TIOCCONS, &one);
  1471. X      close(cons);
  1472. X      return(0);
  1473. X      }
  1474. X   else {        /* open the kbd for input */
  1475. X      kbd_fd = open("/dev/kbd", 0);
  1476. X      ioctl(kbd_fd, KIOCSDIRECT, &one);        /* turn on direct mode */
  1477. X      ioctl(kbd_fd, KIOCCMD, KBD_CMD_RESET);    /* reset the keyboard */
  1478. X      }
  1479. X#endif
  1480. X   return(kbd_fd);
  1481. X   }
  1482. END_OF_FILE
  1483. # end of 'src/kbd.c'
  1484. fi
  1485. echo shar: End of archive 18 \(of 61\).
  1486. cp /dev/null ark18isdone
  1487. MISSING=""
  1488. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 \
  1489.     21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 \
  1490.     38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 \
  1491.     55 56 57 58 59 60 61 ; do
  1492.     if test ! -f ark${I}isdone ; then
  1493.     MISSING="${MISSING} ${I}"
  1494.     fi
  1495. done
  1496. if test "${MISSING}" = "" ; then
  1497.     echo You have unpacked all 61 archives.
  1498.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1499. else
  1500.     echo You still need to unpack the following archives:
  1501.     echo "        " ${MISSING}
  1502. fi
  1503. ##  End of shell archive.
  1504. exit 0
  1505.