home *** CD-ROM | disk | FTP | other *** search
- Subject: v17i025: MGR, Bellcore window manager, Part24/61
- Newsgroups: comp.sources.unix
- Approved: rsalz@uunet.UU.NET
-
- Submitted-by: Stephen A. Uhler <sau@bellcore.com>
- Posting-number: Volume 17, Issue 25
- Archive-name: mgr/part24
-
-
-
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 24 (of 61)."
- # Contents: demo/icon/cut.c demo/icon/window_print.c demo/misc/close.c
- # doc/usrman/croff/croff.l doc/usrman/croff/hash.c src/blit/hash.c
- # src/default_font.h
- # Wrapped by rsalz@papaya.bbn.com on Thu Nov 17 21:05:28 1988
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'demo/icon/cut.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'demo/icon/cut.c'\"
- else
- echo shar: Extracting \"'demo/icon/cut.c'\" \(6170 characters\)
- sed "s/^X//" >'demo/icon/cut.c' <<'END_OF_FILE'
- X/* Copyright (c) 1988 Bellcore
- X * All Rights Reserved
- X * Permission is granted to copy or use this program, EXCEPT that it
- X * may not be sold for profit, the copyright notice must be reproduced
- X * on copies, and credit should be given to Bellcore where it is due.
- X * BELLCORE MAKES NO WARRANTY AND ACCEPTS NO LIABILITY FOR THIS PROGRAM.
- X */
- X/* $Header: cut.c,v 1.1 88/07/08 11:11:39 sau Exp $
- X $Source: /tmp/mgrsrc/demo/icon/RCS/cut.c,v $
- X*/
- Xstatic char RCSid_[] = "$Source: /tmp/mgrsrc/demo/icon/RCS/cut.c,v $$Revision: 1.1 $";
- X
- X/* save current cut buffer in a file */
- X
- X#include <signal.h>
- X#include "term.h"
- X
- X#define TERM "mgr" /* name of valid terminal id */
- X
- X#define RESTORE 0 /* restore previous icon */
- X#define CLOSED 1
- X#define OPEN 2
- X#define WINK 3
- X
- X#define ICON_CLOSED "file_shut"
- X#define ICON_OPEN "file_open"
- X#define ICON_WINK "file_shutb"
- X#define CMDNAME "hm -s" /* default command */
- X#define SLOP 3 /* space around the window */
- X
- X#define MENU_COUNT (sizeof(menu)/sizeof(struct menu_entry))
- X#define max(x,y) ((x)>(y)?(x):(y))
- X#define min(x,y) ((x)<(y)?(x):(y))
- X#define dprintf if(debug)fprintf
- X
- Xint border;
- XFILE *debug;
- X
- Xmain(argc,argv)
- X int argc;
- X char **argv;
- X {
- X register int i;
- X char *getenv();
- X char *term = getenv ("TERM");
- X char *name = argv[0];
- X char *cmd; /* command to pipe data to */
- X char line[80]; /* event input buffer */
- X
- X int x,y,wide,high; /* main window size */
- X int w,h; /* icon size */
- X int max_w, max_h; /* max icon size */
- X int ix, iy; /* icon position */
- X int fw,fh,font; /* font for vi window */
- X int got=0;
- X int shape = 1; /* window reshape? */
- X FILE *test; /* temporary file */
- X
- X int clean();
- X
- X if (getenv("DEBUG"))
- X debug = stderr;
- X else
- X debug = NULL;
- X
- X /* make sure environment is ok */
- X
- X if (term!=NULL && strcmp(term,TERM)!=0) {
- X fprintf(stderr,"%s only runs on %s terminals\n",name,TERM);
- X exit(1);
- X }
- X
- X /* get args */
- X
- X if (argc>1 && strcmp(argv[1],"-s")==0) { /* don't redhape window */
- X argc--, argv++;
- X shape=0;
- X }
- X
- X if (argc>1)
- X cmd = argv[1];
- X else if ((cmd=getenv("CUT")) == NULL)
- X cmd = CMDNAME;
- X
- X /* make sure we can run the command */
- X
- X if ((test = popen(cmd,"w")) == NULL || pclose(test)!=0) {
- X fprintf(stderr,"%s: Can't start (%s)\n",name,cmd);
- X exit(1);
- X }
- X
- X /* set up window environment */
- X
- X m_setup(0);
- X m_ttyset();
- X
- X signal(SIGHUP,clean);
- X signal(SIGTERM,clean);
- X signal(SIGINT,clean);
- X
- X m_push(P_FONT|P_POSITION|P_EVENT|P_FLAGS);
- X get_size(&x,&y,&wide,&high);
- X get_param(0,0,0,&border);
- X m_setmode(M_NOWRAP);
- X m_func(B_COPY);
- X
- X /* get icons */
- X
- X if (!down_load(ICON_CLOSED,CLOSED,&w,&h)) {
- X fprintf(stderr,"%s: Can't find %s\n",name,ICON_CLOSED);
- X clean(1);
- X }
- X max_h = h; max_w = w;
- X
- X if (!down_load(ICON_OPEN,OPEN,&w,&h)) {
- X fprintf(stderr,"%s: Can't find %s\n",name,ICON_OPEN);
- X clean(1);
- X }
- X max_h = max(max_h,h);
- X max_w = max(max_w,w);
- X
- X if (!down_load(ICON_WINK,WINK,&w,&h)) {
- X fprintf(stderr,"%s: Can't find %s\n",name,ICON_WINK);
- X clean(1);
- X }
- X
- X max_h = max(max_h,h);
- X max_w = max(max_w,w);
- X
- X /* get icon position */
- X
- X m_font(1); /* a small font */
- X if (shape) {
- X m_push(P_FLAGS|P_EVENT);
- X m_setmode(M_ABS);
- X m_setevent(BUTTON_1,"Z %p\r");
- X fprintf(stderr,"Click button 1 to indicate icon position\n");
- X while (*m_gets(line) != 'Z')
- X ;
- X sscanf(line,"Z %d %d",&w,&h);
- X ix = w + x + border;
- X iy = h + y + border;
- X m_pop();
- X
- X /* iconify window */
- X
- X m_shapewindow(ix,iy,SLOP+2*border+max_w, SLOP+2*border+max_h);
- X dprintf(debug,"Shaping window to %d x %d\n",border+max_w, border+max_h);
- X }
- X
- X /* setup events */
- X
- X m_setevent(ACTIVATE,"A\r");
- X m_setevent(DEACTIVATE,"D\r");
- X m_setevent(REDRAW,"R\r");
- X m_setevent(RESHAPE,"S\r");
- X m_setevent(SNARFED,"C %c\r");
- X m_clearmode(M_ACTIVATE);
- X
- X /* display icon */
- X
- X setup(CLOSED);
- X
- X /* wait for an event */
- X
- X while(!feof(m_termin)) {
- X m_flush();
- X m_gets(line);
- X switch(*line) {
- X case 'A': /* window is activated */
- X if (got) {
- X setup(OPEN);
- X m_flush();
- X m_put();
- X m_sendme("\r\005 done\r");
- X m_flush();
- X append_file(cmd,got);
- X got = 0;
- X }
- X sleep(1);
- X m_clearmode(M_ACTIVATE);
- X break;
- X case 'D': /* window is deactivated */
- X setup(CLOSED);
- X break;
- X case 'S': /* window is reshaped */
- X if (shape) {
- X get_size(&ix,&iy,0,0);
- X m_shapewindow(ix,iy,SLOP+2*border+max_w, SLOP+2*border+max_h);
- X }
- X setup(RESTORE);
- X break;
- X case 'R': /* screen is redrawn */
- X setup(RESTORE);
- X break;
- X case 'C': /* Someone cut something */
- X got = atoi(line+2); /* # of bytes */
- X setup(WINK);
- X m_flush();
- X sleep(1);
- X setup(CLOSED);
- X }
- X }
- X }
- X
- X/* Clean up and exit */
- X
- Xclean()
- X {
- X m_popall();
- X m_ttyreset();
- X exit(1);
- X }
- X
- X/* setup an icon */
- X
- Xsetup(where)
- Xint where; /* bitmap # */
- X {
- X static int was=0;
- X
- X if (where==0) /* restore previous icon */
- X where = was;
- X
- X m_clear();
- X m_bitcopyto(0,0,999,999,0,0,0,where);
- X dprintf(debug,"displaying icon [%d] \n",where);
- X m_flush();
- X was = where;
- X }
- X
- X/* download icon */
- X
- Xint
- Xdown_load(name,where,w,h)
- Xchar *name; /* name of icon */
- Xint where; /* scratchpad bitmap # */
- Xint *w, *h; /* icon size */
- X {
- X char buff[20];
- X int n;
- X
- X m_bitfromfile(where,name);
- X m_flush();
- X m_gets(buff);
- X n = sscanf(buff,"%d %d",w,h);
- X dprintf(debug,"Getting icon [%s] into %d (%d x %d)\n",
- X name,where,*w,*h);
- X if (n < 2)
- X return(0);
- X else
- X return(1);
- X }
- X
- Xint
- Xappend_file(cmd,bytes)
- Xchar *cmd; /* command to pipe file to */
- Xint bytes;
- X {
- X FILE *file;
- X long now = time(0);
- X char *ctime();
- X register int c,count = 0;
- X int gotn = 0;
- X
- X dprintf(stderr,"appending %d bytes\n",bytes);
- X file = popen(cmd,"w");
- X fprintf(file,"\n> %d bytes at: %s ",bytes,ctime(&now));
- X
- X while((c=getc(m_termin)) != '\005') {
- X if (c=='\n' && gotn++ ==0) {
- X count++;
- X putc(c,file);
- X putc(' ',file);
- X putc(' ',file);
- X }
- X else if (c!= '\n') {
- X putc(c,file);
- X gotn = 0;
- X }
- X }
- X fflush(file);
- X pclose(file);
- X return(count);
- X }
- END_OF_FILE
- # end of 'demo/icon/cut.c'
- fi
- if test -f 'demo/icon/window_print.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'demo/icon/window_print.c'\"
- else
- echo shar: Extracting \"'demo/icon/window_print.c'\" \(6454 characters\)
- sed "s/^X//" >'demo/icon/window_print.c' <<'END_OF_FILE'
- X/* Copyright (c) 1987 Bellcore
- X * All Rights Reserved
- X * Permission is granted to copy or use this program, EXCEPT that it
- X * may not be sold for profit, the copyright notice must be reproduced
- X * on copies, and credit should be given to Bellcore where it is due.
- X * BELLCORE MAKES NO WARRANTY AND ACCEPTS NO LIABILITY FOR THIS PROGRAM.
- X */
- X/* $Header: window_print.c,v 4.1 88/06/21 14:00:15 bianchi Exp $
- X $Source: /tmp/mgrsrc/demo/icon/RCS/window_print.c,v $
- X*/
- Xstatic char RCSid_[] = "$Source: /tmp/mgrsrc/demo/icon/RCS/window_print.c,v $$Revision: 4.1 $";
- X
- X/* print any window on the hp think jet (use lpr filter) */
- X
- X#include <stdio.h>
- X#include <signal.h>
- X#include <sys/file.h>
- X#include "term.h"
- X#include "dump.h"
- X
- X#define TEMP "/tmp/pr." /* temp file name */
- X#define MESSAGE "\rwindow dump" /* window message */
- X#define WORKING "\rworking..................." /* print in progress */
- X#define JOB "window" /* default page header */
- X#define OPTION 'v' /* lpr filter option */
- X
- X#define MSG_OK "ok" /* message ack - success */
- X#define MSG_BAD "x" /* message nac - failure */
- X#define MSG_FILE "F" /* service type - no data */
- X#define NAME "print bitmap" /* name of service */
- X
- X#define dprintf if(debug) fprintf
- X
- X#define GET_OPT(i) \
- X strlen(argv[i])>2 ? argv[i]+2 : argv[++i]
- X#define Min(x) ((x)<5 ? 5 : (x))
- X
- Xchar command[100]; /* lpr command to run */
- Xchar line[100]; /* event input buffer */
- Xchar temp[20]; /* temp file name */
- Xchar my_host[20]; /* my host */
- Xchar mgr_host[20]; /* mgr host */
- Xchar title[40]; /* window title */
- X
- Xint remote; /* remote from mgr host */
- Xint debug;
- X
- Xmain(argc,argv)
- Xint argc;
- Xchar **argv;
- X {
- X register int i, c;
- X int x,y; /* bitmap size */
- X int id,sub; /* window to dump */
- X int clean();
- X char *sprintf();
- X
- X char *printer = NULL; /* printer name */
- X char *job = JOB; /* job name */
- X char *filter = NULL; /* pre-filter */
- X char *message = NULL; /* message line */
- X char option = OPTION; /* lpr filter */
- X char *noprint = NULL; /* just same file */
- X
- X ckmgrterm( *argv );
- X gethostname(my_host,sizeof(my_host));
- X debug = getenv("DEBUG");
- X
- X /* check arguments */
- X
- X for(i=1;i<argc;i++) {
- X if (*argv[i] == '-')
- X switch (argv[i][1]) {
- X case 'f': /* specify filter */
- X filter = GET_OPT(i);
- X break;
- X case 'p': /* printer name */
- X case 'P': /* printer name */
- X printer = GET_OPT(i);
- X break;
- X case 'm': /* message line */
- X message = GET_OPT(i);
- X break;
- X case 'j': /* job name */
- X case 'J': /* job name */
- X job = GET_OPT(i);
- X break;
- X case 'o': /* option flag */
- X option = *(GET_OPT(i));
- X break;
- X case 'x': /* dont print name */
- X noprint = GET_OPT(i);
- X break;
- X default:
- X fprintf(stderr,"%s: invalid flag %c ignored\n",argv[0],argv[i][1]);
- X }
- X else
- X fprintf(stderr,"%s: invalid argument %s ignored\n",argv[0],argv[i]);
- X }
- X
- X /* setup mgr */
- X
- X m_setup(M_FLUSH);
- X m_push(P_FLAGS|P_EVENT);
- X m_ttyset();
- X
- X get_param(mgr_host,0,0,0);
- X remote = strcmp(mgr_host,my_host);
- X dprintf(stderr,"my host (%s), mgr host (%s)\n",my_host,mgr_host);
- X
- X if (message)
- X sprintf(title,"\r%s",message);
- X else if (printer && remote)
- X sprintf(title,"%s at %s on %s",MESSAGE,my_host,printer);
- X else if (remote)
- X sprintf(title,"%s at %s",MESSAGE,my_host);
- X else if (printer)
- X sprintf(title,"%s on %s",MESSAGE,printer);
- X else
- X strcpy(title,MESSAGE);
- X
- X get_size(&x,&y,0,0);
- X if (!debug)
- X m_sizeall(x,y,Min(strlen(title)-1),1);
- X m_setmode(M_NOWRAP);
- X m_clear();
- X m_printstr(title);
- X m_clearmode(M_ACTIVATE);
- X
- X m_setevent(ACTIVATED,"A\r"); /* window made active */
- X m_setevent(DEACTIVATED,"D\r"); /* window made in-avtive */
- X m_setevent(BUTTON_1,"B %w\r"); /* button 1 hit */
- X m_setevent(REDRAW,"R\r");
- X m_setevent(RESHAPE,"S\r");
- X
- X signal(SIGHUP,clean);
- X signal(SIGINT,clean);
- X signal(SIGTERM,clean);
- X
- X /* build command */
- X
- X sprintf(temp,"%s%s%d",TEMP,my_host,getpid());
- X dprintf(stderr,"temp file name: (%s)\n",temp);
- X
- X if (noprint) {
- X if (remote)
- X sprintf(command,"rcp %s:%s %s",mgr_host,temp,noprint);
- X else
- X sprintf(command,"cp %s %s",temp,noprint);
- X }
- X else {
- X if (remote)
- X sprintf(command,"rsh %s cat %s | ",mgr_host,temp);
- X else
- X sprintf(command,"< %s ",temp);
- X if (filter)
- X sprintf(command+strlen(command),"%s | ",filter);
- X strcat(command,"lpr ");
- X if (printer)
- X sprintf(command+strlen(command),"-P%s ",printer);
- X sprintf(command+strlen(command),"-J%s -%c",job,option);
- X }
- X dprintf(stderr,"command: (%s)\n",command);
- X
- X while (m_gets(line) != NULL) {
- X dprintf(stderr,"main loop got: %s",line);
- X switch(c = *line) {
- X case 'S': /* window reshaped */
- X get_size(&x,&y,0,0);
- X if (!debug)
- X m_sizeall(x,y,strlen(title)-1,1);
- X m_clear();
- X m_printstr(title);
- X break;
- X case 'R': /* window redrawn */
- X m_printstr(title);
- X break;
- X case 'A': /* window activated */
- X m_setmode(M_WOB);
- X break;
- X case 'D': /* window deactivated */
- X m_clearmode(M_WOB);
- X break;
- X case 'B': /* button hit */
- X id = 0;
- X sscanf(line+2,"%d.%d",&id,&sub);
- X dprintf(stderr," got: %d, %d\n",id,sub);
- X if (id) {
- X m_othersave(id,sub,temp);
- X m_clearmode(M_WOB);
- X m_printstr(WORKING);
- X sleep(1);
- X system(command,temp);
- X if (remote)
- X system(sprintf(command,"rsh %s rm %s\n",mgr_host,temp));
- X else
- X unlink(temp);
- X }
- X m_printstr(title);
- X m_clearmode(M_ACTIVATE);
- X break;
- X }
- X }
- X }
- X
- Xclean(n)
- Xint n;
- X {
- X m_ttyreset();
- X if (remote)
- X system(sprintf(command,"rsh %s rm %s\n",mgr_host,temp));
- X else
- X unlink(temp);
- X m_pop();
- X m_clear();
- X exit(n);
- X }
- END_OF_FILE
- # end of 'demo/icon/window_print.c'
- fi
- if test -f 'demo/misc/close.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'demo/misc/close.c'\"
- else
- echo shar: Extracting \"'demo/misc/close.c'\" \(6539 characters\)
- sed "s/^X//" >'demo/misc/close.c' <<'END_OF_FILE'
- X/* Copyright (c) 1987 Bellcore
- X * All Rights Reserved
- X * Permission is granted to copy or use this program, EXCEPT that it
- X * may not be sold for profit, the copyright notice must be reproduced
- X * on copies, and credit should be given to Bellcore where it is due.
- X * BELLCORE MAKES NO WARRANTY AND ACCEPTS NO LIABILITY FOR THIS PROGRAM.
- X */
- X/* $Header: close.c,v 4.6 88/08/08 09:43:38 sau Exp $
- X $Source: /tmp/mgrsrc/demo/misc/RCS/close.c,v $
- X*/
- Xstatic char RCSid_[] = "$Source: /tmp/mgrsrc/demo/misc/RCS/close.c,v $$Revision: 4.6 $";
- X
- X/* close a window - keep icon uncovered */
- X
- X#include <signal.h>
- X#include "term.h"
- X
- X
- Xstatic int debug = 0; /* for debugging */
- X
- Xstatic int wide, high, xmax, ymax, border; /* global mgr state info */
- X
- X#define Max(x,y) ((x)>(y)?(x):(y))
- X#define Min(x,y) ((x)<(y)?(x):(y))
- X#define dprintf if (debug) fprintf
- X
- X#define XSLOP 6 /* extra horizontal space around window */
- X#define YSLOP 2 /* extra vertical space around window */
- X#define WAIT 20 /* seconds until next look for an opening */
- X#define RAND 11 /* max time to wait before moving */
- X
- X#define Active "A\r"
- X#define Covered "C\r"
- X#define Redraw "R\r"
- X
- X
- Xmain(argc,argv)
- Xint argc;
- Xchar **argv;
- X {
- X char host[16]; /* host name */
- X char line[MAXLINE]; /* input buffer for events */
- X char text[MAXLINE]; /* text for icon */
- X char moving[MAXLINE]; /* text for icon while moving */
- X int font;
- X int clean();
- X int sigalrm();
- X char *getenv();
- X
- X ckmgrterm( *argv );
- X
- X /* turn on debugging */
- X
- X if (getenv("DEBUG"))
- X debug++;
- X
- X /* get icon text */
- X
- X srand(getpid());
- X if (debug)
- X setbuf(stderr,NULL);
- X m_setup(M_FLUSH);
- X m_push(P_ALL & (~P_MOUSE));
- X
- X signal(SIGINT,clean);
- X signal(SIGTERM,clean);
- X signal(SIGALRM,sigalrm);
- X
- X m_ttyset();
- X
- X if (argc>3)
- X usage(*argv);
- X
- X if (argc>1 && *argv[1] ) {
- X /* There is a message and it is not zero length */
- X text[0] = '\f';
- X /* If the string in argv[1] contains a %d, then the window set ID will
- X be included in the message.
- X */
- X sprintf(&text[1], argv[1], m_setid());
- X sprintf(moving, "\fMoving %s", &text[1]);
- X }
- X else {
- X /* No message or it is zero length. */
- X gethostname(host,sizeof(host));
- X sprintf(text, "\f%s(%d)", host, m_setid());
- X sprintf(moving, "\fMoving(%d)", m_setid());
- X }
- X
- X if (!debug)
- X m_setmode(M_NOINPUT);
- X if (argc==3 && (font=atoi(argv[2])) > 0)
- X m_font(font);
- X
- X setupwindow(text);
- X
- X /* set events */
- X
- X m_setevent(ACTIVATED,Active);
- X m_setevent(COVERED,Covered);
- X m_setevent(REDRAW,Redraw);
- X
- X /* bury it and wait */
- X
- X if (!goto_spot(wide,high)) {
- X /* Window was too big; use font zero and try again */
- X m_font( 0 );
- X setupwindow( text );
- X }
- X goto_spot(wide,high);
- X /* no place to go; we'll stay where we are until something opens up */
- X
- X while(1) {
- X m_clearmode(M_ACTIVATE);
- X if (!debug)
- X m_setmode(M_NOINPUT);
- X m_gets(line);
- X alarm(0);
- X m_push(P_EVENT);
- X m_setevent(COVERED,Covered);
- X dprintf(stderr,"Read [%s]\n",line);
- X
- X if (*line == *Active) /* activate window */
- X clean();
- X
- X else if (*line == *Covered) {
- X m_printstr(moving);
- X get_size(0,0,&wide,&high);
- X wide += 2*border+XSLOP;
- X high += 2*border+YSLOP;
- X dprintf(stderr,"going to ?,? %d %d\n",wide,high);
- X sleep(((unsigned)rand()) % RAND);
- X if (goto_spot(wide,high)) {
- X m_clearevent(COVERED);
- X m_clearmode(M_ACTIVATE);
- X }
- X else { /* no place to go */
- X alarm(WAIT);
- X }
- X }
- X m_printstr(text);
- X m_pop();
- X }
- X }
- X
- X/* restore window state and exit */
- X
- Xstatic
- Xclean()
- X {
- X m_ttyreset();
- X m_popall(0);
- X exit(1);
- X }
- X
- X/* find an unused spot for a window */
- X
- Xstatic
- Xint
- Xgoto_spot(wide, high)
- Xint wide,high; /* minimum spot size */
- X {
- X struct window_data coords[1000]; /* present window coords. go here */
- X register int c,
- X count,
- X intersection,
- X setid = m_setid(),
- X x,
- X y, nexty;
- X
- X while( (count = get_all(coords)) == 0 )
- X ;
- X dprintf(stderr,"found %d windows\n", count);
- X
- X /* Find the best spot. We want to avoid too exhaustive a search.
- X We march through the screen, trying to fit the moving window into
- X spaces. Any time we collide with a window, we skip to the right edge
- X of that window and note if it's top edge is the lowest one we've seen
- X which is still above where we are. This allows us to skip over the
- X larger areas of occupied screen quickly.
- X */
- X for( y = ymax-high; y >= 0; y = nexty - 1 ) {
- X nexty = y;
- X for( x = xmax-wide; x >= 0; x -= 1 ) {
- X intersection = 0;
- X for( c = 0; c < count; c++ ) {
- X if( coords[c].setid == setid )
- X continue;
- X if( in_win( coords+c, x, y, x + wide, y + high ) ) {
- X intersection = 1;
- X nexty = Max( y, Max( nexty, coords[c].y - high ) );
- X x = coords[c].x - wide;
- X break;
- X }
- X }
- X if( !intersection ) {
- X dprintf(stderr,"going to %d, %d\n", x, y);
- X m_push(P_EVENT);
- X m_movewindow( x + XSLOP/2, y + YSLOP/2 );
- X m_pop();
- X return( 1 );
- X }
- X }
- X }
- X dprintf(stderr,"no openings\n");
- X return( 0 );
- X }
- X
- X
- X/* check for window-rectangle intersection */
- X
- Xstatic
- Xint
- Xin_win(list,x0,y0,x1,y1)
- Xregister struct window_data *list; /* window coordinates */
- Xregister int x0,y0,x1,y1; /* rectangle coordinates */
- X {
- X return(
- X (
- X list->x + list->w < x0 || x1 < list->x ||
- X list->y + list->h < y0 || y1 < list->y
- X ) ? 0 : 1);
- X }
- X
- X
- X/* send an alarm signal */
- X
- Xstatic
- Xsigalrm()
- X {
- X m_sendme(Covered);
- X }
- X
- X
- Xstatic
- Xint
- Xm_setid()
- X{
- X static int setid = -1;
- X struct window_data window;
- X
- X if( setid == -1 ) {
- X while( get_eachclientwin( &window ) )
- X ;
- X setid = window.setid;
- X }
- X return setid;
- X}
- X
- X
- Xstatic
- Xusage( pgm )
- Xchar *pgm;
- X{
- X fprintf( stderr, "Usage: %s [ message [ fontnumber ] ]\n", pgm );
- X fputs( "\
- XIf the message is zero-length, the default message is printed.\n\
- XIf fontnumber is non-numberic or not available, zero is assumed.\n\
- X", stderr );
- X exit( 255 );
- X}
- X
- X
- Xstatic
- Xsetupwindow( text )
- Xchar *text;
- X{
- X /* change window size */
- X
- X m_size(Max(strlen(text)-1, 5), 1);
- X m_setmode(M_NOWRAP);
- X m_printstr(text);
- X
- X /* how big is it */
- X
- X get_size(0, 0, &wide, &high);
- X get_param(0, &xmax, &ymax, &border);
- X wide += 2*border+XSLOP;
- X high += 2*border+YSLOP;
- X}
- END_OF_FILE
- # end of 'demo/misc/close.c'
- fi
- if test -f 'doc/usrman/croff/croff.l' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/usrman/croff/croff.l'\"
- else
- echo shar: Extracting \"'doc/usrman/croff/croff.l'\" \(6025 characters\)
- sed "s/^X//" >'doc/usrman/croff/croff.l' <<'END_OF_FILE'
- X%{
- X/*
- X Copyright (c) 1988 Bellcore
- X All Rights Reserved
- X Permission is granted to copy or use this program, EXCEPT that it
- X may not be sold for profit, the copyright notice must be reproduced
- X on copies, and credit should be given to Bellcore where it is due.
- X BELLCORE MAKES NO WARRANTY AND ACCEPTS NO LIABILITY FOR THIS PROGRAM.
- X
- X $Header: croff.l,v 1.2 88/07/07 10:17:25 sau Exp $
- X $Source: /tmp/mgrsrc/doc/usrman/croff/RCS/croff.l,v $
- X*/
- Xstatic char RCSid_[] = "$Source: /tmp/mgrsrc/doc/usrman/croff/RCS/croff.l,v $$Revision: 1.2 $";
- X
- X/* is this lex abuse? */
- X
- X
- X#include "hash.h"
- X
- X#define dprintf if(debug)fprintf
- X
- Xextern struct table_entry keywords_data[];
- Xextern struct table_entry *keywords[];
- X
- Xchar *ks,*ke; /* keyword delimeters */
- Xchar *cs,*ce; /* comment delimeters */
- Xchar *is,*ie; /* identifier delimeters */
- Xchar *fs,*fe; /* function delimeters */
- Xchar *ps,*pe; /* pre-proc delimeters */
- X
- Xint force = 0; /* force xlation without .SS */
- Xint no_troff = 0; /* dont xlate \ etc */
- Xint no_lig = 0; /* on't emit troff ligatures (brain damaged imagen) */
- Xint debug = 0; /* do debugging */
- X
- X%}
- X
- X%START start comment quote
- XW [ ]*
- XK [a-zA-Z_][a-zA-Z0-9_]*
- X
- X%%
- X
- X
- X^".SS".*$ { /* start source processing */
- X static char t1[25],t2[25],t3[25],t4[25];
- X int n;
- X BEGIN start;
- X if (!force) {
- X ECHO;
- X n = sscanf(yytext,".SS %s %s %s %s",t1,t2,t3,t4);
- X switch(n) {
- X case 4: case 5: case 6: case 7: case 8: case 9:
- X ce = t4;
- X case 3:
- X ke = t3;
- X case 2:
- X cs = t2;
- X case 1:
- X ks = t1;
- X }
- X }
- X }
- X<start,comment,quote>^".SE" { /* end source processing */
- X if (!force)
- X BEGIN 0;
- X ECHO;
- X }
- X<start>"/*" { /* start a comment */
- X BEGIN comment;
- X printf("%s",cs);
- X ECHO;
- X dprintf(stderr,"[CS]");
- X }
- X<comment>"*/" { /* end a comment */
- X ECHO;
- X printf("%s",ce);
- X BEGIN start;
- X dprintf(stderr,"[CE]");
- X }
- X<start,comment,quote>"\-|" { /* handle troff escapes */
- X if (no_troff)
- X ECHO;
- X else switch(*yytext) {
- X case '-': printf("\\-"); break;
- X case '\\': printf("\\e"); break;
- X case '|': printf("\\(or"); break;
- X }
- X dprintf(stderr,"%s",yytext);
- X }
- X<start>\" { /* start quote */
- X BEGIN quote;
- X ECHO;
- X dprintf(stderr,"[\"");
- X }
- X<quote>\\\" { /* \" in a string */
- X printf("\\e\"");
- X }
- X<quote>\" { /* end quoted string */
- X BEGIN start;
- X ECHO;
- X dprintf(stderr,"\"]");
- X }
- X<start,comment,quote>[fF][il] |
- X<start,comment,quote>ff { /* defeat troff ligatures */
- X if (no_lig)
- X printf("%c\\&%c",yytext[0],yytext[1]);
- X else
- X ECHO;
- X dprintf(stderr,"[%s]\n",yytext);
- X }
- X<start>^#{W}define |
- X<start>^#{W}undef |
- X<start>^#{W}line |
- X<start>^#{W}include |
- X<start>^#{W}ifdef |
- X<start>^#{W}ifndef |
- X<start>^#{W}if |
- X<start>^#{W}endif |
- X<start>^#{W}else { /* pre-processor tokens */
- X printf("%s%s%s",ps,yytext,pe);
- X dprintf(stderr,"%s%s%s","[PS]",yytext,"[PE]");
- X }
- X<start>{K}/{W}\( { /* look for key words - might be functions */
- X if (is_entry(keywords,HSIZE,yytext))
- X printf("%s%s%s",ks,yytext,ke);
- X else
- X printf("%s%s%s",fs,yytext,fe);
- X }
- X<start>{K} { /* look for key words - might be identifiers */
- X if (is_entry(keywords,HSIZE,yytext))
- X printf("%s%s%s",ks,yytext,ke);
- X else
- X printf("%s%s%s",is,yytext,ie);
- X }
- X%%
- X
- X#define GET_OPT(i) \
- X strlen(argv[i])>2 ? argv[i]+2 : argv[++i]
- X
- Xmain(argc,argv)
- Xint argc;
- Xchar **argv;
- X {
- X register int i;
- X register char c = '\0';
- X
- X /* set default values */
- X
- X ks = "\\fB"; /* keywords in bold */
- X ke = "\\fP";
- X cs = "\\fI"; /* comments in bold */
- X ce = "\\fP";
- X is = "";
- X ie = "";
- X fs = "";
- X fe = "";
- X ps = "\\fB"; /* cpp decl's in bold */
- X pe = "";
- X
- X debug = getenv("DEBUG");
- X
- X /* get arguments */
- X
- X for(i=1;i<argc;i++) {
- X if (*argv[i] == '-')
- X switch (c = argv[i][1]) {
- X case 'a': /* add keyword to list */
- X add_entry(keywords,HSIZE,GET_OPT(i));
- X break;
- X case 'd': /* delete keyword from list */
- X dlt_entry(keywords,HSIZE,GET_OPT(i));
- X break;
- X case 'F': /* force processing without .SS */
- X unput('\n');unput('S'); unput('S'); unput('.');
- X force++;
- X break;
- X case 'l': /* don't pass any ligatures to troff */
- X no_lig++;
- X break;
- X case 't': /* don't futz with \, | or - \n */
- X no_troff++;
- X break;
- X case 'p': /* set pre-processor escape prefix */
- X ps = GET_OPT(i);
- X break;
- X case 'i': /* set identifier escape prefix */
- X is = GET_OPT(i);
- X break;
- X case 'f': /* set function escape prefix */
- X fs = GET_OPT(i);
- X break;
- X case 'k': /* set keyword escape prefix */
- X ps = ks = GET_OPT(i);
- X break;
- X case 'c': /* set comment escape prefix */
- X cs = GET_OPT(i);
- X break;
- X case 'e': /* set all ending escape prefixen */
- X ie = pe = fe = ke = ce = GET_OPT(i);
- X break;
- X default:
- X fprintf(stderr,"%s: flag %s ignored\n",*argv,argv[i]);
- X break;
- X }
- X else switch(c) { /* optional turn-off codes */
- X case 'p':
- X pe = argv[i];
- X break;
- X case 'i':
- X ie = argv[i];
- X break;
- X case 'f':
- X fe = argv[i];
- X break;
- X case 'k':
- X pe = ke = argv[i];
- X break;
- X case 'c':
- X ce = argv[i];
- X break;
- X default:
- X fprintf(stderr,"%s: arg [%s] ignored\n",*argv,argv[i]);
- X break;
- X }
- X }
- X yylex();
- X }
- X
- Xyywrap()
- X {
- X return(1);
- X }
- END_OF_FILE
- # end of 'doc/usrman/croff/croff.l'
- fi
- if test -f 'doc/usrman/croff/hash.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/usrman/croff/hash.c'\"
- else
- echo shar: Extracting \"'doc/usrman/croff/hash.c'\" \(6039 characters\)
- sed "s/^X//" >'doc/usrman/croff/hash.c' <<'END_OF_FILE'
- X/* Copyright (c) 1988 Bellcore
- X * All Rights Reserved
- X * Permission is granted to copy or use this program, EXCEPT that it
- X * may not be sold for profit, the copyright notice must be reproduced
- X * on copies, and credit should be given to Bellcore where it is due.
- X * BELLCORE MAKES NO WARRANTY AND ACCEPTS NO LIABILITY FOR THIS PROGRAM.
- X */
- X/* $Header: hash.c,v 1.1 88/07/07 10:12:06 sau Exp $
- X $Source: /tmp/mgrsrc/doc/usrman/croff/RCS/hash.c,v $
- X*/
- Xstatic char RCSid_[] = "$Source: /tmp/mgrsrc/doc/usrman/croff/RCS/hash.c,v $$Revision: 1.1 $";
- X
- X/************************************************************************
- X *
- X * Simple Forms Package Version 1.0 10/83
- X */
- X
- X/* table lookup routines */
- X
- X#include "hash.h"
- X#include <stdio.h>
- X
- X/*******************************************************************************
- X * Generate a hash table index from an arbitrary length string
- X * This is probably not a good algorithm
- X */
- X
- Xint
- XHash(key,max)
- Xchar *key; /* key to hash on */
- Xint max; /* max should be a prime number */
- X {
- X register int i = 0;
- X register long sum;
- X for(sum = 0; *key != '\0';i++, sum += (*key++)<<(i&7));
- X return((int) (sum % max));
- X }
- X
- X/*******************************************************************************
- X * Generate a hash table index from an arbitrary length string
- X * This is probably not a good algorithm
- X */
- X
- Xint
- Xhash(key,max)
- Xregister char *key; /* key to hash on */
- Xint max; /* max should be a prime number */
- X {
- X register int sum;
- X
- X for (sum = *key; *key; sum += (*key) * (*(++key)));
- X return( (sum += *(key-2)) % max);
- X }
- X
- X/*******************************************************************************
- X * add an entry to the hash table, return count
- X */
- X
- Xint
- Xadd_entry(table,size,name)
- Xstruct table_entry *table[]; /* name of hash table */
- Xint size; /* number of table entries */
- Xchar *name; /* name to be put in table */
- X {
- X int HASH(), index;
- X char *alloc(), *save_line();
- X register TABLE *list;
- X
- X index=HASH(name,size);
- X for(list=table[index]; list != (TABLE *) 0; list = list -> next)
- X if (Same(list->name,name)) {
- X list -> count += 1;
- X return(list -> count);
- X }
- X list = (TABLE *) alloc(sizeof (TABLE));
- X list -> name = save_line(name);
- X list -> next = table[index];
- X list -> value = (char *) 0;
- X list -> count = 1;
- X table[index] = list;
- X return(1);
- X }
- X
- X/*******************************************************************************
- X * remove an entry to the hash table, return count
- X */
- X
- Xint
- Xdlt_entry(table,size,name)
- Xstruct table_entry *table[]; /* pntr to hash table */
- Xint size; /* size of hash table */
- Xchar *name; /* name to be put in table */
- X {
- X int HASH(), index;
- X void free();
- X register struct table_entry *list, *temp= (struct table_entry *) 0;
- X index=HASH(name,size);
- X for(list=table[index]; list != (TABLE *) 0; temp=list,list = list->next)
- X if (Same(list->name,name)) {
- X if (list -> count > 0)
- X list -> count -= 1;
- X if (list -> count == 0 && !(list->flags&HASH_STATIC)) {
- X free(list -> name);
- X if (list -> value)
- X free(list -> value);
- X if (list == table[index]) {
- X table[index] = list->next;
- X free(list);
- X }
- X else {
- X temp->next = list->next;
- X free(list);
- X }
- X return(0);
- X }
- X else return(list -> count);
- X }
- X return(-1);
- X }
- X
- X/*******************************************************************************
- X * get an entry to the hash table, return value
- X */
- X
- Xchar *
- Xget_entry(table,size,name)
- Xstruct table_entry *table[];
- Xint size;
- Xchar *name; /* name to be put in table */
- X {
- X int HASH(), index;
- X register struct table_entry *list;
- X
- X index=HASH(name,size);
- X for(list=table[index]; list != (TABLE *) 0; list = list -> next)
- X if (Same(list->name,name)) {
- X return(list->count > 0 ? list -> value : (char *) 0);
- X }
- X return((char *) 0);
- X }
- X
- X/*******************************************************************************
- X * see if item is in table
- X */
- X
- Xint
- Xis_entry(table,size,name)
- Xstruct table_entry *table[];
- Xint size;
- Xchar *name; /* name to be put in table */
- X {
- X int HASH(), index;
- X register struct table_entry *list;
- X
- X index=HASH(name,size);
- X for(list=table[index]; list != (TABLE *) 0; list = list -> next)
- X if (Same(list->name,name)) {
- X return(list->count);
- X }
- X return(0);
- X }
- X
- X/*******************************************************************************
- X * put an entry to the hash table, return 1 if ok
- X */
- X
- Xint
- Xput_entry(table,size,name,value)
- Xstruct table_entry *table[]; /* name of hash table */
- Xint size; /* number of table entries */
- Xchar *name; /* name to be put in table */
- Xchar *value; /* value to be put into table */
- X {
- X int HASH(), index;
- X register struct table_entry *list;
- X char *save_line();
- X void free();
- X
- X index=HASH(name,size);
- X for(list=table[index]; list != (TABLE *) 0; list = list -> next)
- X if (Same(list->name,name) && !(list->flags&HASH_STATIC)) {
- X if (list -> value != (char *) 0) free(list -> value);
- X if (value != (char *) 0) list -> value = save_line(value);
- X else list->value == (char *) 0;
- X return(1);
- X }
- X return(0);
- X }
- X
- X/*******************************************************************************
- X *
- X * allocate space for, and save a string; return its address
- X */
- X
- Xchar *
- Xsave_line(string)
- Xchar *string;
- X {
- X char *where,*alloc(),*strcpy();
- X
- X if (string == (char *) 0) string = "";
- X where=alloc(strlen(string)+1);
- X strcpy(where,string);
- X return(where);
- X }
- X
- X/*******************************************************************************
- X *
- X * allocate some space
- X */
- X
- Xchar *
- Xalloc(bytes)
- Xint bytes;
- X {
- X char *malloc(),*where;
- X void exit();
- X
- X if ((where=malloc((unsigned)bytes)) == NULL) {
- X fprintf(stderr,"no room for %d bytes\n",bytes);
- X exit(1);
- X }
- X return(where);
- X }
- END_OF_FILE
- # end of 'doc/usrman/croff/hash.c'
- fi
- if test -f 'src/blit/hash.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/blit/hash.c'\"
- else
- echo shar: Extracting \"'src/blit/hash.c'\" \(6027 characters\)
- sed "s/^X//" >'src/blit/hash.c' <<'END_OF_FILE'
- X/* Copyright (c) 1988 Bellcore
- X * All Rights Reserved
- X * Permission is granted to copy or use this program, EXCEPT that it
- X * may not be sold for profit, the copyright notice must be reproduced
- X * on copies, and credit should be given to Bellcore where it is due.
- X * BELLCORE MAKES NO WARRANTY AND ACCEPTS NO LIABILITY FOR THIS PROGRAM.
- X */
- X/* $Header: hash.c,v 4.1 88/06/21 13:19:05 bianchi Exp $
- X $Source: /tmp/mgrsrc/src/blit/RCS/hash.c,v $
- X*/
- Xstatic char RCSid_[] = "$Source: /tmp/mgrsrc/src/blit/RCS/hash.c,v $$Revision: 4.1 $";
- X
- X/************************************************************************
- X *
- X * Simple Forms Package Version 1.0 10/83
- X */
- X
- X/* table lookup routines */
- X
- X#include "hash.h"
- X#include <stdio.h>
- X
- X/*******************************************************************************
- X * Generate a hash table index from an arbitrary length string
- X * This is probably not a good algorithm
- X */
- X
- Xint
- XHash(key,max)
- Xchar *key; /* key to hash on */
- Xint max; /* max should be a prime number */
- X {
- X register int i = 0;
- X register long sum;
- X for(sum = 0; *key != '\0';i++, sum += (*key++)<<(i&7));
- X return((int) (sum % max));
- X }
- X
- X/*******************************************************************************
- X * Generate a hash table index from an arbitrary length string
- X * This is probably not a good algorithm
- X */
- X
- Xint
- Xhash(key,max)
- Xregister char *key; /* key to hash on */
- Xint max; /* max should be a prime number */
- X {
- X register int sum;
- X
- X for (sum = *key; *key; sum += (*key) * (*(++key)));
- X return( (sum += *(key-2)) % max);
- X }
- X
- X/*******************************************************************************
- X * add an entry to the hash table, return count
- X */
- X
- Xint
- Xadd_entry(table,size,name)
- Xstruct table_entry *table[]; /* name of hash table */
- Xint size; /* number of table entries */
- Xchar *name; /* name to be put in table */
- X {
- X int HASH(), index;
- X char *alloc(), *save_line();
- X register TABLE *list;
- X
- X index=HASH(name,size);
- X for(list=table[index]; list != (TABLE *) 0; list = list -> next)
- X if (Same(list->name,name)) {
- X list -> count += 1;
- X return(list -> count);
- X }
- X list = (TABLE *) alloc(sizeof (TABLE));
- X list -> name = save_line(name);
- X list -> next = table[index];
- X list -> value = (char *) 0;
- X list -> count = 1;
- X table[index] = list;
- X return(1);
- X }
- X
- X/*******************************************************************************
- X * remove an entry to the hash table, return count
- X */
- X
- Xint
- Xdlt_entry(table,size,name)
- Xstruct table_entry *table[]; /* pntr to hash table */
- Xint size; /* size of hash table */
- Xchar *name; /* name to be put in table */
- X {
- X int HASH(), index;
- X void free();
- X register struct table_entry *list, *temp= (struct table_entry *) 0;
- X index=HASH(name,size);
- X for(list=table[index]; list != (TABLE *) 0; temp=list,list = list->next)
- X if (Same(list->name,name)) {
- X if (list -> count > 0)
- X list -> count -= 1;
- X if (list -> count == 0 && !(list->flags&HASH_STATIC)) {
- X free(list -> name);
- X if (list -> value)
- X free(list -> value);
- X if (list == table[index]) {
- X table[index] = list->next;
- X free(list);
- X }
- X else {
- X temp->next = list->next;
- X free(list);
- X }
- X return(0);
- X }
- X else return(list -> count);
- X }
- X return(-1);
- X }
- X
- X/*******************************************************************************
- X * get an entry to the hash table, return value
- X */
- X
- Xchar *
- Xget_entry(table,size,name)
- Xstruct table_entry *table[];
- Xint size;
- Xchar *name; /* name to be put in table */
- X {
- X int HASH(), index;
- X register struct table_entry *list;
- X
- X index=HASH(name,size);
- X for(list=table[index]; list != (TABLE *) 0; list = list -> next)
- X if (Same(list->name,name)) {
- X return(list->count > 0 ? list -> value : (char *) 0);
- X }
- X return((char *) 0);
- X }
- X
- X/*******************************************************************************
- X * see if item is in table
- X */
- X
- Xint
- Xis_entry(table,size,name)
- Xstruct table_entry *table[];
- Xint size;
- Xchar *name; /* name to be put in table */
- X {
- X int HASH(), index;
- X register struct table_entry *list;
- X
- X index=HASH(name,size);
- X for(list=table[index]; list != (TABLE *) 0; list = list -> next)
- X if (Same(list->name,name)) {
- X return(list->count);
- X }
- X return(0);
- X }
- X
- X/*******************************************************************************
- X * put an entry to the hash table, return 1 if ok
- X */
- X
- Xint
- Xput_entry(table,size,name,value)
- Xstruct table_entry *table[]; /* name of hash table */
- Xint size; /* number of table entries */
- Xchar *name; /* name to be put in table */
- Xchar *value; /* value to be put into table */
- X {
- X int HASH(), index;
- X register struct table_entry *list;
- X char *save_line();
- X void free();
- X
- X index=HASH(name,size);
- X for(list=table[index]; list != (TABLE *) 0; list = list -> next)
- X if (Same(list->name,name) && !(list->flags&HASH_STATIC)) {
- X if (list -> value != (char *) 0) free(list -> value);
- X if (value != (char *) 0) list -> value = save_line(value);
- X else list->value == (char *) 0;
- X return(1);
- X }
- X return(0);
- X }
- X
- X/*******************************************************************************
- X *
- X * allocate space for, and save a string; return its address
- X */
- X
- Xchar *
- Xsave_line(string)
- Xchar *string;
- X {
- X char *where,*alloc(),*strcpy();
- X
- X if (string == (char *) 0) string = "";
- X where=alloc(strlen(string)+1);
- X strcpy(where,string);
- X return(where);
- X }
- X
- X/*******************************************************************************
- X *
- X * allocate some space
- X */
- X
- Xchar *
- Xalloc(bytes)
- Xint bytes;
- X {
- X char *malloc(),*where;
- X void exit();
- X
- X if ((where=malloc((unsigned)bytes)) == NULL) {
- X fprintf(stderr,"no room for %d bytes\n",bytes);
- X exit(1);
- X }
- X return(where);
- X }
- END_OF_FILE
- # end of 'src/blit/hash.c'
- fi
- if test -f 'src/default_font.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/default_font.h'\"
- else
- echo shar: Extracting \"'src/default_font.h'\" \(6467 characters\)
- sed "s/^X//" >'src/default_font.h' <<'END_OF_FILE'
- X/* static font file */
- X
- Xstruct font_header default_font_head = {
- X (char) 22, (char) 8, (char) 16,
- X (char) 5, (char) 95, (char) 32
- X };
- X
- Xshort default_font_image[] = {
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x003c, 0x003c, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000e, 0x0070, 0x0000,
- X 0x0008, 0x240a, 0x3864, 0x3008, 0x0810, 0x0800, 0x0000, 0x0002,
- X 0x3c08, 0x3c3c, 0x0c3e, 0x3c7e, 0x3c3c, 0x0000, 0x0400, 0x203c,
- X 0x1810, 0x781c, 0x787e, 0x7e1c, 0x423e, 0x1e42, 0x40c6, 0x423c,
- X 0x7c3c, 0x7c3c, 0x7e42, 0x8282, 0x4282, 0x7e20, 0x2004, 0x0000,
- X 0x2000, 0x4000, 0x0200, 0x0c00, 0x4008, 0x0440, 0x3800, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0808, 0x0000,
- X 0x0008, 0x240a, 0x54a4, 0x4808, 0x1008, 0x2a00, 0x0000, 0x0002,
- X 0x4218, 0x4242, 0x0c20, 0x4202, 0x4242, 0x0000, 0x0800, 0x1042,
- X 0x2410, 0x4422, 0x4440, 0x4022, 0x4208, 0x0244, 0x40c6, 0x6242,
- X 0x4242, 0x4242, 0x0842, 0x8292, 0x4282, 0x0220, 0x2004, 0x0000,
- X 0x1000, 0x4000, 0x0200, 0x1200, 0x4008, 0x0440, 0x0800, 0x0000,
- X 0x0000, 0x0000, 0x1000, 0x0000, 0x0000, 0x0010, 0x0808, 0x0000,
- X 0x0008, 0x2414, 0x54a8, 0x4808, 0x1008, 0x1c08, 0x0000, 0x0004,
- X 0x4228, 0x4242, 0x1420, 0x4002, 0x4242, 0x0000, 0x1000, 0x0842,
- X 0x4228, 0x4442, 0x4240, 0x4042, 0x4208, 0x0248, 0x40aa, 0x6242,
- X 0x4242, 0x4242, 0x0842, 0x4492, 0x2444, 0x0420, 0x1004, 0x1000,
- X 0x0800, 0x4000, 0x0200, 0x1000, 0x4000, 0x0040, 0x0800, 0x0000,
- X 0x0000, 0x0000, 0x1000, 0x0000, 0x0000, 0x0010, 0x0808, 0x0000,
- X 0x0008, 0x243e, 0x50c8, 0x3008, 0x2004, 0x2a08, 0x0000, 0x0004,
- X 0x4608, 0x0202, 0x147c, 0x7c04, 0x4242, 0x0808, 0x2000, 0x0402,
- X 0x4e28, 0x4440, 0x4240, 0x4040, 0x4208, 0x0250, 0x40aa, 0x5242,
- X 0x4242, 0x4220, 0x0842, 0x4492, 0x2444, 0x0820, 0x1004, 0x2800,
- X 0x0438, 0x5c3c, 0x3a3c, 0x7c3a, 0x5c38, 0x1c44, 0x08ee, 0x5c3c,
- X 0x5c3a, 0x2c3c, 0x7c42, 0x4282, 0x4442, 0x7c10, 0x0808, 0x3200,
- X 0x0008, 0x0014, 0x3808, 0x2000, 0x2004, 0x0808, 0x007e, 0x0008,
- X 0x4a08, 0x041c, 0x2442, 0x4204, 0x3c42, 0x0808, 0x407e, 0x0204,
- X 0x5244, 0x7c40, 0x427c, 0x7c40, 0x7e08, 0x0270, 0x40aa, 0x5242,
- X 0x4242, 0x7c18, 0x0842, 0x4454, 0x1828, 0x0820, 0x0804, 0x4400,
- X 0x0044, 0x6242, 0x4642, 0x1046, 0x6208, 0x0448, 0x0892, 0x6242,
- X 0x6246, 0x3242, 0x1042, 0x4282, 0x4442, 0x0410, 0x0808, 0x5a00,
- X 0x0008, 0x0028, 0x1410, 0x5200, 0x2004, 0x007e, 0x0000, 0x0008,
- X 0x5208, 0x0802, 0x2402, 0x4208, 0x4242, 0x0000, 0x4000, 0x0208,
- X 0x5244, 0x4240, 0x4240, 0x404e, 0x4208, 0x0248, 0x4092, 0x4a42,
- X 0x7c42, 0x4804, 0x0842, 0x287c, 0x1828, 0x1020, 0x0804, 0x8200,
- X 0x0004, 0x4240, 0x4242, 0x1042, 0x4208, 0x0450, 0x0892, 0x4242,
- X 0x4242, 0x2040, 0x1042, 0x2492, 0x2822, 0x0860, 0x0806, 0x4c00,
- X 0x0008, 0x007c, 0x1413, 0x9400, 0x2004, 0x0008, 0x0000, 0x0010,
- X 0x6208, 0x1002, 0x4402, 0x4208, 0x423e, 0x0000, 0x207e, 0x0408,
- X 0x4c44, 0x4240, 0x4240, 0x4042, 0x4208, 0x0244, 0x4092, 0x4a42,
- X 0x4042, 0x4402, 0x0842, 0x2854, 0x2410, 0x2020, 0x0404, 0x0000,
- X 0x003c, 0x4240, 0x427e, 0x1042, 0x4208, 0x0470, 0x0892, 0x4242,
- X 0x4242, 0x203c, 0x1042, 0x2492, 0x1024, 0x1010, 0x0808, 0x0000,
- X 0x0000, 0x0028, 0x5415, 0x8800, 0x2004, 0x0008, 0x0000, 0x0010,
- X 0x4208, 0x2042, 0x7e42, 0x4210, 0x4202, 0x0000, 0x1000, 0x0800,
- X 0x40fe, 0x4242, 0x4240, 0x4042, 0x4208, 0x4244, 0x4092, 0x4642,
- X 0x4042, 0x4442, 0x0842, 0x2844, 0x2410, 0x2020, 0x0404, 0x0000,
- X 0x0044, 0x4240, 0x4240, 0x1042, 0x4208, 0x0448, 0x0892, 0x4242,
- X 0x4242, 0x2002, 0x1042, 0x2492, 0x2814, 0x2010, 0x0808, 0x0000,
- X 0x0008, 0x0050, 0x5425, 0x8800, 0x1008, 0x0008, 0x1800, 0x0820,
- X 0x4208, 0x4042, 0x0442, 0x4210, 0x4242, 0x0818, 0x0800, 0x1008,
- X 0x2282, 0x4222, 0x4440, 0x4026, 0x4208, 0x4242, 0x4082, 0x4642,
- X 0x4042, 0x4242, 0x0842, 0x1044, 0x4210, 0x4020, 0x0204, 0x0000,
- X 0x0044, 0x6242, 0x4642, 0x1046, 0x4208, 0x0444, 0x0892, 0x4242,
- X 0x6246, 0x2042, 0x1246, 0x1892, 0x4418, 0x4010, 0x0808, 0x0000,
- X 0x0008, 0x0050, 0x3826, 0x7600, 0x1008, 0x0000, 0x0800, 0x0820,
- X 0x3c3e, 0x7e3c, 0x043c, 0x3c10, 0x3c3c, 0x0808, 0x0400, 0x2008,
- X 0x1c82, 0x7c1c, 0x787e, 0x401a, 0x423e, 0x3c42, 0x7e82, 0x423c,
- X 0x403c, 0x423c, 0x083c, 0x1044, 0x4210, 0x7e20, 0x0204, 0x0000,
- X 0x003a, 0x5c3c, 0x3a3c, 0x103a, 0x4208, 0x0442, 0x0892, 0x423c,
- X 0x5c3a, 0x203c, 0x0c3a, 0x186c, 0x4408, 0x7e10, 0x0808, 0x0000,
- X 0x0000, 0x0000, 0x1000, 0x0000, 0x0810, 0x0000, 0x0800, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0000, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- X 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0004, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0002, 0x0000, 0x0400, 0x0000, 0x0000,
- X 0x4002, 0x0000, 0x0000, 0x0000, 0x0008, 0x0010, 0x0808, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0420, 0x0000, 0x1000, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0000, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- X 0x000e, 0x0000, 0x0000, 0x0000, 0x0000, 0x003c, 0x003c, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0042, 0x0000, 0x4400, 0x0000, 0x0000,
- X 0x4002, 0x0000, 0x0000, 0x0000, 0x0050, 0x000e, 0x0870, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x003c, 0x0000, 0x3800, 0x0000, 0x0000,
- X 0x4002, 0x0000, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00fe,
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- X 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- X
- X };
- X
- Xbit_static(default_font,760,16,default_font_image,1);
- END_OF_FILE
- # end of 'src/default_font.h'
- fi
- echo shar: End of archive 24 \(of 61\).
- cp /dev/null ark24isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 \
- 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 \
- 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 \
- 55 56 57 58 59 60 61 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 61 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-