home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / x / volume21 / xaniroc / part01 < prev    next >
Encoding:
Text File  |  1994-01-05  |  31.1 KB  |  827 lines

  1. Newsgroups: comp.sources.x
  2. From: zaenker@informatik.tu-muenchen.de (Christian Zaenker)
  3. Subject: v21i085:  xaniroc - change the root window cursor into a rotating X, Part01/01
  4. Message-ID: <1994Jan5.192440.168@sparky.sterling.com>
  5. X-Md4-Signature: d69ffca48f39db04fe161f80e36af96d
  6. Sender: chris@sparky.sterling.com (Chris Olson)
  7. Organization: Sterling Software
  8. Date: Wed, 5 Jan 1994 19:24:40 GMT
  9. Approved: chris@sterling.com
  10.  
  11. Submitted-by: zaenker@informatik.tu-muenchen.de (Christian Zaenker)
  12. Posting-number: Volume 21, Issue 85
  13. Archive-name: xaniroc/part01
  14. Environment: X11
  15.  
  16. XAniRoC for X11 - V1.02
  17. developed 1993 by Christian Zaenker (zaenker@informatik.tu-muenchen.de)
  18.  
  19. - xaniroc will change the root window cursor of an X11 screen into a rotating X
  20.  
  21. - to use xaniroc your system should be able to create cursors with a size of at
  22.   least 16x16
  23.  
  24. #!/bin/sh
  25. # This is a shell archive (produced by shar 3.49)
  26. # To extract the files from this archive, save it to a file, remove
  27. # everything above the "!/bin/sh" line above, and type "sh file_name".
  28. #
  29. # made 11/23/1993 16:39 UTC by zaenker@unknown
  30. # Source directory /usr/share/hphalle10/stud/zaenker/src/AnimCursor/V1.01/Dist/post
  31. #
  32. # existing files will NOT be overwritten unless -c is specified
  33. #
  34. # This shar contains:
  35. # length  mode       name
  36. # ------ ---------- ------------------------------------------
  37. #  14252 -rw-r--r-- xaniroc//xaniroc.c
  38. #    707 -rw-r--r-- xaniroc//README
  39. #    393 -rw-r--r-- xaniroc//Imakefile
  40. #      1 -rw-r--r-- xaniroc//patchlevel.h
  41. #   1239 -rw-r--r-- xaniroc//manpage.1
  42. #   9762 -rw-r--r-- xaniroc//bitmaps.h
  43. #
  44. # ============= xaniroc//xaniroc.c ==============
  45. if test ! -d 'xaniroc'; then
  46.     echo 'x - creating directory xaniroc'
  47.     mkdir 'xaniroc'
  48. fi
  49. if test -f 'xaniroc//xaniroc.c' -a X"$1" != X"-c"; then
  50.     echo 'x - skipping xaniroc//xaniroc.c (File already exists)'
  51. else
  52. echo 'x - extracting xaniroc//xaniroc.c (Text)'
  53. sed 's/^X//' << 'SHAR_EOF' > 'xaniroc//xaniroc.c' &&
  54. /***************************************************************************************************
  55. X *    XAniRoC for X11 - V1.02
  56. X *    developed 1993 by Christian Zaenker (zaenker@informatik.tu-muenchen.de)
  57. X *
  58. X *      many thanx to:
  59. X *
  60. X *      David L. Crow, IBM Advanced Workstations and Systems, AIX Systems Graphics Development
  61. X *              for the routines to detect EnterNotify and LeaveNotify events on the root window
  62. X *
  63. X *      Stan Kalinowski, Tektronix, Inc., Network Displays Division
  64. X *              for the signal handler routines and the base for the manpage
  65. X *
  66. X *    - xaniroc will change the root window cursor of an X11 screen into a rotating X
  67. X *    - to use xaniroc your system should be able to create cursors with a size of at least 16x16
  68. X *    - how to create: see README file
  69. X *    - for options type 'xaniroc -h'
  70. X *
  71. X ***************************************************************************************************
  72. X */
  73. X
  74. #include <stdio.h>                /* get standard I/O functions */
  75. #include <X11/Xlib.h>                /* get the X library definitions */
  76. #include <X11/Xutil.h>                /* get the X11 utility definitions */
  77. #include <sys/signal.h>                         /* get signal definitions */
  78. #include <sys/time.h>                           /* get time definitions */
  79. #include <string.h>                             /* get string functions */
  80. #include "bitmaps.h"                            /* get the bitmaps for the cursor */
  81. X
  82. #ifdef  SIGNALRETURNSINT
  83. #define SIGVAL int
  84. #else
  85. #define SIGVAL void
  86. #endif
  87. X
  88. #define NO      0
  89. #define YES     1
  90. X
  91. X
  92. int        frame_freq,
  93. X        i,
  94. X        speed,
  95. X        animating,
  96. X        transparent;
  97. X
  98. char        display_name[50],
  99. X        fg_color_name[50],
  100. X        bg_color_name[50];
  101. X
  102. Display        *display;            /* X server connection */
  103. Pixmap        cursor_source[24],        /* pixmaps (bitmaps) for the cursor */
  104. X        cursor_mask[24];
  105. XXColor        cursor_fg_color,        /* cursor colors */
  106. X        cursor_bg_color;
  107. Cursor        cursor[24];            /* cursors */
  108. XXEvent        event;                /* events */
  109. GC        gc_xor,                /* GC's */
  110. X                gc_clear;
  111. X
  112. X
  113. /***************************************************************************************************
  114. X *    function prototypes
  115. X ***************************************************************************************************
  116. X */
  117. X
  118. void main(int argc, char *argv[]);
  119. void usage(void);
  120. void frame_wait(void);
  121. int  pointer_in_rootwindow(void);
  122. #ifdef  SVR4
  123. SIGVAL cleanup_and_exit(int sig);
  124. #else
  125. SIGVAL cleanup_and_exit(int sig, int code, struct sigcontext *scp, char *addr);
  126. #endif    /* SVR4 */
  127. X
  128. /***************************************************************************************************
  129. X *    the main function of XAniroc
  130. X ***************************************************************************************************
  131. X */
  132. X
  133. void main(int argc, char *argv[])
  134. {
  135. X
  136. /***************************************************************************************************
  137. X *    set default values
  138. X ***************************************************************************************************
  139. X */
  140. X    strcpy(fg_color_name, "Black");
  141. X    strcpy(bg_color_name, "White");
  142. X    strcpy(display_name, "");
  143. X    speed = 25;
  144. X    animating = NO;
  145. X    transparent = NO;
  146. X
  147. /***************************************************************************************************
  148. X *    handle the command line arguments
  149. X ***************************************************************************************************
  150. X */
  151. X    if(argc > 1)
  152. X    {
  153. X                for(i = 2; i <= argc; i++)
  154. X                {
  155. X                if(strcmp(argv[i - 1], "-h") == 0)      /* usage ? */
  156. X                {
  157. X                    usage();
  158. X                    exit(0);
  159. X                        }
  160. X
  161. X                if(strcmp(argv[i - 1], "-speed") == 0)    /* speed ? */
  162. X                {
  163. X                    if((argv[i] == NULL) || ((speed = atoi(argv[i])) <= 0))
  164. X                    {                /* no or too small speed value ? */
  165. X                        usage();
  166. X                        exit(0);
  167. X                    }
  168. X                    i++;                            /* jump over value */
  169. X                }
  170. X
  171. X                if(strcmp(argv[i - 1], "-fc") == 0)    /* set foreground ? */
  172. X                {
  173. X                    if(argv[i] == NULL)        /* no colorname ? */
  174. X                    {
  175. X                        usage();
  176. X                        exit(0);
  177. X                    }
  178. X
  179. X                                strcpy(fg_color_name, argv[i]);    /* set colorname */
  180. X                                i++;                            /* jump over value */
  181. X                }
  182. X
  183. X                if(strcmp(argv[i - 1], "-bc") == 0)    /* set background (border) ? */
  184. X                {
  185. X                    if(argv[i] == NULL)        /* no colorname ? */
  186. X                    {
  187. X                        usage();
  188. X                        exit(0);
  189. X                    }
  190. X
  191. X                                strcpy(bg_color_name, argv[i]);    /* set colorname */
  192. X                                i++;                            /* jump over value */
  193. X                }
  194. X
  195. X                if(strcmp(argv[i - 1], "-display") == 0)/* set display ? */
  196. X                {
  197. X                    if(argv[i] == NULL)        /* no displayname ? */
  198. X                    {
  199. X                        usage();
  200. X                        exit(0);
  201. X                    }
  202. X
  203. X                                strcpy(display_name, argv[i]);    /* set displayname */
  204. X                                i++;                            /* jump over value */
  205. X                }
  206. X
  207. X                if(strcmp(argv[i - 1], "-t") == 0)      /* transparent ? */
  208. X                {
  209. X                transparent = YES;
  210. X                        }
  211. X
  212. X            }
  213. X    }
  214. X
  215. /***************************************************************************************************
  216. X *    open the chosen X display
  217. X ***************************************************************************************************
  218. X */
  219. X    if (!(display = XOpenDisplay(display_name)))
  220. X    {
  221. X        fprintf (stderr, "%s: Can't open display %s\n", argv[0],
  222. X            XDisplayName(display_name));
  223. X        exit (1);
  224. X    }
  225. X
  226. /***************************************************************************************************
  227. X *    set the x input (choose enter/leave and motion notify)
  228. X ***************************************************************************************************
  229. X */
  230. X    XSelectInput(display, XDefaultRootWindow(display), LeaveWindowMask | EnterWindowMask);
  231. X
  232. /***************************************************************************************************
  233. X *    create colors for the cursor
  234. X ***************************************************************************************************
  235. X */
  236. X    if(XAllocNamedColor(display, DefaultColormap(display, DefaultScreen(display)),
  237. X        fg_color_name, &cursor_fg_color, &cursor_fg_color) == 0)
  238. X    {
  239. X        fprintf(stderr, "%s: Could not allocate color '%s' for cursor foreground.\n",
  240. X            argv[0], fg_color_name);
  241. X        exit(0);
  242. X    }
  243. X
  244. X    if(XAllocNamedColor(display, DefaultColormap(display, DefaultScreen(display)),
  245. X        bg_color_name, &cursor_bg_color, &cursor_bg_color) == 0)
  246. X    {
  247. X        fprintf(stderr, "%s: Could not allocate color '%s' for cursor border.\n",
  248. X            argv[0], bg_color_name);
  249. X        exit(0);
  250. X    }
  251. X
  252. /***************************************************************************************************
  253. X *    create the pixmaps for the cursor
  254. X ***************************************************************************************************
  255. X */
  256. X    for(i = 0; i < 24; i++)
  257. X    {
  258. X        cursor_source[i] = XCreateBitmapFromData(display, XDefaultRootWindow(display),
  259. X            (char *)(x_source_bits + (i * 32)), 16, 16);
  260. X        cursor_mask[i] = XCreateBitmapFromData(display, XDefaultRootWindow(display),
  261. X            (char *)(x_mask_bits + (i * 32)), 16, 16);
  262. X    }
  263. X
  264. X    if(transparent)
  265. X    {
  266. X                gc_xor = XCreateGC(display,cursor_source[0] , 0, 0);    /* create a GC to xor */
  267. X                XSetFunction(display, gc_xor, GXxor);                   /* source and mask */
  268. X                XSetForeground(display, gc_xor, WhitePixel(display, DefaultScreen(display)));
  269. X                XSetBackground(display, gc_xor, BlackPixel(display, DefaultScreen(display)));
  270. X
  271. X                gc_clear = XCreateGC(display, cursor_source[0] , 0, 0); /* create a GC to clear */
  272. X                XSetFunction(display, gc_clear, GXclear);               /* the source */
  273. X
  274. X        for(i = 0; i < 24; i++)
  275. X        {
  276. X                        /* xor source and mask */
  277. X            XCopyPlane(display, cursor_source[i], cursor_mask[i] , gc_xor,
  278. X                0, 0, 16, 16, 0, 0, 1);
  279. X                        /* clear the source */
  280. X            XFillRectangle(display, cursor_source[i], gc_clear, 0, 0, 16, 16);
  281. X        }
  282. X
  283. X        XFreeGC(display, gc_xor);                /* free the GC's */
  284. X        XFreeGC(display, gc_clear);
  285. X    }
  286. X
  287. /***************************************************************************************************
  288. X *    create the cursors for the root-window
  289. X ***************************************************************************************************
  290. X */
  291. X
  292. X    if(transparent)
  293. X    {
  294. X        for(i = 0; i < 24; i++)
  295. X        {
  296. X            cursor[i] = XCreatePixmapCursor(display, cursor_source[i], cursor_mask[i],
  297. X                &cursor_fg_color, &cursor_bg_color, 7, 7);
  298. X        }
  299. X    }
  300. X
  301. X    else
  302. X    {
  303. X        for(i = 0; i < 24; i++)
  304. X        {
  305. X            cursor[i] = XCreatePixmapCursor(display, cursor_source[i], cursor_mask[i],
  306. X                &cursor_fg_color, &cursor_bg_color, 7, 7);
  307. X        }
  308. X    }
  309. X
  310. /***************************************************************************************************
  311. X *    free the pixmaps used to create the cursors
  312. X ***************************************************************************************************
  313. X */
  314. X    for(i = 0; i < 24; i++)
  315. X    {
  316. X        XFreePixmap(display, cursor_source[i]);
  317. X        XFreePixmap(display, cursor_mask[i]);
  318. X    }
  319. X
  320. /***************************************************************************************************
  321. X *    set the signals
  322. X ***************************************************************************************************
  323. X */
  324. X        (void) signal(SIGINT,  (SIGVAL(*)())cleanup_and_exit);  /* interrupt */
  325. X        (void) signal(SIGQUIT, (SIGVAL(*)())cleanup_and_exit);  /* quit */
  326. X        (void) signal(SIGTERM, (SIGVAL(*)())cleanup_and_exit);  /* kill */
  327. X
  328. X    signal(SIGALRM, SIG_IGN);                               /* alarm */
  329. X
  330. /***************************************************************************************************
  331. X *    make the animation
  332. X ***************************************************************************************************
  333. X */
  334. X    if(speed == 1)                        /* set frame frequency */
  335. X        frame_freq = 999990;
  336. X    else
  337. X        frame_freq = 1000000/speed;
  338. X
  339. X    if(pointer_in_rootwindow()) animating = YES;        /* set initial value */
  340. X    i = 0;                            /* initial frame number */
  341. X
  342. X    while(YES)
  343. X    {
  344. X                if(XPending(display) || !animating)
  345. X                {
  346. X                        XNextEvent(display, &event);
  347. X                        switch (event.type)
  348. X                        {
  349. X                                case LeaveNotify:
  350. X                                        animating = NO;
  351. X                                        XUndefineCursor(display, XDefaultRootWindow(display));
  352. X                                        break;
  353. X                                case EnterNotify:
  354. X                                        animating = YES;
  355. X                                        break;
  356. X                        }
  357. X                }
  358. X
  359. X                else
  360. X                {
  361. X            XDefineCursor(display, XDefaultRootWindow(display), cursor[i]);
  362. X            frame_wait();
  363. X            i++;
  364. X            if(i >= 24) i = 0;
  365. X        }
  366. X    }
  367. } /*end of main */
  368. X
  369. /***************************************************************************************************
  370. X *    function frame_wait()
  371. X                waits the time until the next frame
  372. X ***************************************************************************************************
  373. X */
  374. X
  375. void frame_wait(void)
  376. {
  377. struct itimerval timer;
  378. struct timeval   timeout;
  379. X
  380. X    timer.it_interval.tv_sec = 0;
  381. X    timer.it_interval.tv_usec = frame_freq;
  382. X    timer.it_value.tv_sec = 0;
  383. X    timer.it_value.tv_usec = frame_freq;
  384. X    setitimer(ITIMER_REAL, &timer, NULL);
  385. X    XSync(display, False);
  386. X    getitimer(ITIMER_REAL, &timer);
  387. X    timeout = timer.it_value;
  388. X    select(0, NULL, NULL, NULL, &timeout);
  389. }
  390. X
  391. /***************************************************************************************************
  392. X *    function usage()
  393. X                prints out the usage of xarc
  394. X ***************************************************************************************************
  395. X */
  396. X
  397. void usage(void)
  398. {
  399. X    printf("\nxaniroc - animated x on the root window of an X11 display\n");
  400. X    printf("---------------------------------------------------------\n");
  401. X    printf("questions and help from zaenker@informatik.tu-muenchen.de\n");
  402. X        printf("\nVersion: 1.02\n");
  403. X    printf("Usage: xaniroc [options]\n");
  404. X    printf("Options:\n");
  405. X    printf("        -h                      print this helptext\n");
  406. X    printf("        -speed <value>            set rotation speed to value\n");
  407. X    printf("                                (default is 25)\n");
  408. X    printf("        -fc <colorname>        set the cursor foreground color\n");
  409. X    printf("                                (default is Black)\n");
  410. X    printf("        -bc <colorname>        set the cursor border color\n");
  411. X    printf("                                (default is White)\n");
  412. X    printf("        -t            set the cursor foreground to transparent\n");
  413. X    printf("        -display <display>    set the display\n");
  414. X    printf("                                (default is $DISPLAY)\n\n");
  415. }
  416. X
  417. /***************************************************************************************************
  418. X *      function pointer_in_rootwindow()
  419. X *                              checks to see if the pointer is in the root window
  420. X *    returns
  421. X *         1 if pointer is in root window
  422. X *        0 if pointer is not in root window
  423. X ***************************************************************************************************
  424. X */
  425. int pointer_in_rootwindow(void)
  426. {
  427. X    Window        root, child;
  428. X    int        rx, ry, wx, wy;
  429. X    unsigned int     kb;
  430. X    XQueryPointer(display, XDefaultRootWindow(display), &root, &child,
  431. X            &rx, &ry, &wx, &wy, &kb);
  432. X    if (child == 0)            /* check if pointer is in the root window */
  433. X            return YES;        /* or in a child window */
  434. X    else
  435. X        return NO;
  436. }
  437. X
  438. /***************************************************************************************************
  439. X *    function cleanup_and_exit()
  440. X *                        signal handler that cleans up the cursor
  441. X ***************************************************************************************************
  442. X */
  443. #ifdef  SVR4
  444. SIGVAL cleanup_and_exit(int sig)
  445. #else
  446. SIGVAL cleanup_and_exit(int sig, int code,struct sigcontext *scp, char *addr)
  447. #endif    /* SVR4 */
  448. {
  449. X        XUndefineCursor(display, XDefaultRootWindow(display));
  450. X        XCloseDisplay(display);
  451. X        exit(0);
  452. }
  453. X
  454. X
  455. X
  456. X
  457. X
  458. SHAR_EOF
  459. chmod 0644 xaniroc//xaniroc.c ||
  460. echo 'restore of xaniroc//xaniroc.c failed'
  461. Wc_c="`wc -c < 'xaniroc//xaniroc.c'`"
  462. test 14252 -eq "$Wc_c" ||
  463.     echo 'xaniroc//xaniroc.c: original size 14252, current size' "$Wc_c"
  464. fi
  465. # ============= xaniroc//README ==============
  466. if test -f 'xaniroc//README' -a X"$1" != X"-c"; then
  467.     echo 'x - skipping xaniroc//README (File already exists)'
  468. else
  469. echo 'x - extracting xaniroc//README (Text)'
  470. sed 's/^X//' << 'SHAR_EOF' > 'xaniroc//README' &&
  471. XXAniRoC for X11 - V1.02
  472. developed 1993 by Christian Zaenker (zaenker@informatik.tu-muenchen.de)
  473. X
  474. - xaniroc will change the root window cursor of an X11 screen into a rotating X
  475. X
  476. - to use xaniroc your system should be able to create cursors with a size of at
  477. X  least 16x16
  478. X
  479. - how to create:
  480. X                > change the Imakefile so that CC is defined as an
  481. X                  ANSI C compiler (for example 'cc -Aa' or 'gcc')
  482. X                > type 'xmkmf' to create a makefile
  483. X                > type 'make' to create xaniroc
  484. X
  485. - for options type 'xaniroc -h'
  486. X
  487. - for further details read the manpage (if you have not installed the manpage
  488. X  to your system use 'nroff -man manpage.1 | more' to read the manpage)
  489. SHAR_EOF
  490. chmod 0644 xaniroc//README ||
  491. echo 'restore of xaniroc//README failed'
  492. Wc_c="`wc -c < 'xaniroc//README'`"
  493. test 707 -eq "$Wc_c" ||
  494.     echo 'xaniroc//README: original size 707, current size' "$Wc_c"
  495. fi
  496. # ============= xaniroc//Imakefile ==============
  497. if test -f 'xaniroc//Imakefile' -a X"$1" != X"-c"; then
  498.     echo 'x - skipping xaniroc//Imakefile (File already exists)'
  499. else
  500. echo 'x - extracting xaniroc//Imakefile (Text)'
  501. sed 's/^X//' << 'SHAR_EOF' > 'xaniroc//Imakefile' &&
  502. /*
  503. X * Imakefile for xaniroc
  504. X */
  505. X
  506. SRCS = xaniroc.c
  507. OBJS = xaniroc.o
  508. X
  509. LOCAL_LIBRARIES = XawClientLibs
  510. SYS_LIBRARIES = -lm
  511. DEPLIBS = XawClientDepLibs
  512. X
  513. #ifdef HPArchitecture
  514. DEFINES = -D_HPUX_SOURCE -DSOME_DEFINES
  515. CC = cc -Aa
  516. #endif
  517. X
  518. #CC=gcc -ansi   /* change this line so that CC is defined as an */
  519. X                /* ANSI C compiler */
  520. #DEFINES = -DSOME_DEFINES
  521. X
  522. ComplexProgramTarget(xaniroc)
  523. X
  524. SHAR_EOF
  525. chmod 0644 xaniroc//Imakefile ||
  526. echo 'restore of xaniroc//Imakefile failed'
  527. Wc_c="`wc -c < 'xaniroc//Imakefile'`"
  528. test 393 -eq "$Wc_c" ||
  529.     echo 'xaniroc//Imakefile: original size 393, current size' "$Wc_c"
  530. fi
  531. # ============= xaniroc//patchlevel.h ==============
  532. if test -f 'xaniroc//patchlevel.h' -a X"$1" != X"-c"; then
  533.     echo 'x - skipping xaniroc//patchlevel.h (File already exists)'
  534. else
  535. echo 'x - extracting xaniroc//patchlevel.h (Text)'
  536. sed 's/^X//' << 'SHAR_EOF' > 'xaniroc//patchlevel.h' &&
  537. X
  538. SHAR_EOF
  539. chmod 0644 xaniroc//patchlevel.h ||
  540. echo 'restore of xaniroc//patchlevel.h failed'
  541. Wc_c="`wc -c < 'xaniroc//patchlevel.h'`"
  542. test 1 -eq "$Wc_c" ||
  543.     echo 'xaniroc//patchlevel.h: original size 1, current size' "$Wc_c"
  544. fi
  545. # ============= xaniroc//manpage.1 ==============
  546. if test -f 'xaniroc//manpage.1' -a X"$1" != X"-c"; then
  547.     echo 'x - skipping xaniroc//manpage.1 (File already exists)'
  548. else
  549. echo 'x - extracting xaniroc//manpage.1 (Text)'
  550. sed 's/^X//' << 'SHAR_EOF' > 'xaniroc//manpage.1' &&
  551. .TH xaniroc n "Thu Nov 18, 1993" "Christian Zaenker"
  552. .SH NAME
  553. xaniroc - X animated root cursor - makes root cursor spin
  554. .SH SYNOPSIS
  555. .B "xaniroc"
  556. [-h]
  557. [-speed n]
  558. [-fc colorname]
  559. [-bc colorname]
  560. [-t]
  561. [-display display]
  562. .SH DESCRIPTION
  563. .I Xaniroc
  564. will change the root window cursor of an X11 screen into a
  565. rotating X. To use xaniroc your system should be able to create
  566. cursors with a size of at least 16x16.
  567. .sp
  568. The flags the \fIxaniroc\fR program understands are;
  569. .TP 1.0i
  570. .B "-h"
  571. print help text.
  572. .TP
  573. .B "-speed n"
  574. set rotation speed (n must be greater than zero; default n is 25).
  575. .TP
  576. .B "-fc colorname"
  577. set the cursor foreground color (default is black)
  578. .TP
  579. .B "-bc colorname"
  580. set the cursor border color (default is white)
  581. .TP
  582. .B "-t"
  583. set the cursor foreground to transparent
  584. .TP
  585. .B "-display display"
  586. set the display
  587. .SH AUTHOR
  588. Christian Zaenker (zaenker@informatik.tu-muenchen.de)
  589. .SH ACKNOWLEDGEMENTS 
  590. Many thanx to:
  591. X
  592. - David L. Crow (from IBM) for the routines to detect EnterNotify and LeaveNotify events on the root window
  593. X
  594. - Stan Kalinowski (from Tektronix) for the signal handler routines and the base for the manpage
  595. X
  596. - Ian Darwin for the idea to make the display option
  597. .SH BUG REPORTS TO
  598. zaenker@informatik.tu-muenchen.de
  599. X
  600. X
  601. SHAR_EOF
  602. chmod 0644 xaniroc//manpage.1 ||
  603. echo 'restore of xaniroc//manpage.1 failed'
  604. Wc_c="`wc -c < 'xaniroc//manpage.1'`"
  605. test 1239 -eq "$Wc_c" ||
  606.     echo 'xaniroc//manpage.1: original size 1239, current size' "$Wc_c"
  607. fi
  608. # ============= xaniroc//bitmaps.h ==============
  609. if test -f 'xaniroc//bitmaps.h' -a X"$1" != X"-c"; then
  610.     echo 'x - skipping xaniroc//bitmaps.h (File already exists)'
  611. else
  612. echo 'x - extracting xaniroc//bitmaps.h (Text)'
  613. sed 's/^X//' << 'SHAR_EOF' > 'xaniroc//bitmaps.h' &&
  614. static char x_source_bits[] =
  615. {
  616. X   0x00, 0x00, 0x0e, 0x70, 0x1e, 0x78, 0x3e, 0x7c, 0x7c, 0x3e, 0xf8, 0x1f,
  617. X   0xf0, 0x0f, 0xe0, 0x07, 0xe0, 0x07, 0xf0, 0x0f, 0xf8, 0x1f, 0x7c, 0x3e,
  618. X   0x3e, 0x7c, 0x1e, 0x78, 0x0e, 0x70, 0x00, 0x00,
  619. X
  620. X   0x00, 0x00, 0x0e, 0x00, 0x1e, 0x38, 0x3e, 0x3c, 0x7c, 0x3e, 0xf8, 0x1f,
  621. X   0xf0, 0x0f, 0xe0, 0x07, 0xe0, 0x07, 0xf0, 0x0f, 0xf8, 0x1f, 0x7c, 0x3e,
  622. X   0x3c, 0x7c, 0x1c, 0x78, 0x00, 0x70, 0x00, 0x00,
  623. X
  624. X   0x00, 0x00, 0x0e, 0x00, 0x1e, 0x00, 0x3e, 0x1c, 0x7c, 0x1e, 0xf8, 0x1f,
  625. X   0xf0, 0x0f, 0xe0, 0x07, 0xe0, 0x07, 0xf0, 0x0f, 0xf8, 0x1f, 0x78, 0x3e,
  626. X   0x38, 0x7c, 0x00, 0x78, 0x00, 0x70, 0x00, 0x00,
  627. X
  628. X   0x00, 0x00, 0x0e, 0x00, 0x1e, 0x00, 0x3e, 0x00, 0x7c, 0x00, 0xf8, 0x07,
  629. X   0xf0, 0x07, 0xe0, 0x07, 0xe0, 0x07, 0xe0, 0x0f, 0xe0, 0x1f, 0x00, 0x3e,
  630. X   0x00, 0x7c, 0x00, 0x78, 0x00, 0x70, 0x00, 0x00,
  631. X
  632. X   0x00, 0x00, 0x0e, 0x00, 0x1e, 0x00, 0x3e, 0x00, 0x7c, 0x00, 0xf8, 0x00,
  633. X   0xf0, 0x01, 0xe0, 0x03, 0xc0, 0x07, 0x80, 0x0f, 0x00, 0x1f, 0x00, 0x3e,
  634. X   0x00, 0x7c, 0x00, 0x78, 0x00, 0x70, 0x00, 0x00,
  635. X
  636. X   0x00, 0x00, 0x0e, 0x00, 0x1e, 0x00, 0x3e, 0x00, 0x7c, 0x00, 0xf8, 0x00,
  637. X   0x70, 0x00, 0xe0, 0x00, 0xc0, 0x05, 0x80, 0x0f, 0x00, 0x1f, 0x00, 0x3e,
  638. X   0x00, 0x7c, 0x00, 0x78, 0x00, 0x70, 0x00, 0x00,
  639. X
  640. X   0x00, 0x00, 0x0e, 0x00, 0x1e, 0x00, 0x3e, 0x00, 0x7c, 0x00, 0xf8, 0x00,
  641. X   0x70, 0x01, 0x20, 0x02, 0x40, 0x04, 0x80, 0x0e, 0x00, 0x1f, 0x00, 0x3e,
  642. X   0x00, 0x7c, 0x00, 0x78, 0x00, 0x70, 0x00, 0x00,
  643. X
  644. X   0x00, 0x00, 0x0e, 0x00, 0x1e, 0x00, 0x3e, 0x00, 0x7c, 0x00, 0xf8, 0x00,
  645. X   0xf0, 0x01, 0xa0, 0x03, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x1f, 0x00, 0x3e,
  646. X   0x00, 0x7c, 0x00, 0x78, 0x00, 0x70, 0x00, 0x00,
  647. X
  648. X   0x00, 0x00, 0x0e, 0x00, 0x1e, 0x00, 0x3e, 0x00, 0x7c, 0x00, 0xf8, 0x00,
  649. X   0xf0, 0x01, 0xe0, 0x03, 0xc0, 0x07, 0x80, 0x0f, 0x00, 0x1f, 0x00, 0x3e,
  650. X   0x00, 0x7c, 0x00, 0x78, 0x00, 0x70, 0x00, 0x00,
  651. X
  652. X   0x00, 0x00, 0x0e, 0x00, 0x1e, 0x00, 0x3e, 0x00, 0x7c, 0x00, 0xf8, 0x07,
  653. X   0xf0, 0x07, 0xe0, 0x07, 0xe0, 0x07, 0xe0, 0x0f, 0xe0, 0x1f, 0x00, 0x3e,
  654. X   0x00, 0x7c, 0x00, 0x78, 0x00, 0x70, 0x00, 0x00,
  655. X
  656. X   0x00, 0x00, 0x0e, 0x00, 0x1e, 0x00, 0x3e, 0x1c, 0x7c, 0x1e, 0xf8, 0x1f,
  657. X   0xf0, 0x0f, 0xe0, 0x07, 0xe0, 0x07, 0xf0, 0x0f, 0xf8, 0x1f, 0x78, 0x3e,
  658. X   0x38, 0x7c, 0x00, 0x78, 0x00, 0x70, 0x00, 0x00,
  659. X
  660. X   0x00, 0x00, 0x0e, 0x00, 0x1e, 0x38, 0x3e, 0x3c, 0x7c, 0x3e, 0xf8, 0x1f,
  661. X   0xf0, 0x0f, 0xe0, 0x07, 0xe0, 0x07, 0xf0, 0x0f, 0xf8, 0x1f, 0x7c, 0x3e,
  662. X   0x3c, 0x7c, 0x1c, 0x78, 0x00, 0x70, 0x00, 0x00,
  663. X
  664. X   0x00, 0x00, 0x0e, 0x70, 0x1e, 0x78, 0x3e, 0x7c, 0x7c, 0x3e, 0xf8, 0x1f,
  665. X   0xf0, 0x0f, 0xe0, 0x07, 0xe0, 0x07, 0xf0, 0x0f, 0xf8, 0x1f, 0x7c, 0x3e,
  666. X   0x3e, 0x7c, 0x1e, 0x78, 0x0e, 0x70, 0x00, 0x00,
  667. X
  668. X   0x00, 0x00, 0x00, 0x70, 0x1c, 0x78, 0x3c, 0x7c, 0x7c, 0x3e, 0xf8, 0x1f,
  669. X   0xf0, 0x0f, 0xe0, 0x07, 0xe0, 0x07, 0xf0, 0x0f, 0xf8, 0x1f, 0x7c, 0x3e,
  670. X   0x3e, 0x3c, 0x1e, 0x38, 0x0e, 0x00, 0x00, 0x00,
  671. X
  672. X   0x00, 0x00, 0x00, 0x70, 0x00, 0x78, 0x38, 0x7c, 0x78, 0x3e, 0xf8, 0x1f,
  673. X   0xf0, 0x0f, 0xe0, 0x07, 0xe0, 0x07, 0xf0, 0x0f, 0xf8, 0x1f, 0x7c, 0x1e,
  674. X   0x3e, 0x1c, 0x1e, 0x00, 0x0e, 0x00, 0x00, 0x00,
  675. X
  676. X   0x00, 0x00, 0x00, 0x70, 0x00, 0x78, 0x00, 0x7c, 0x00, 0x3e, 0xe0, 0x1f,
  677. X   0xe0, 0x0f, 0xe0, 0x07, 0xe0, 0x07, 0xf0, 0x07, 0xf8, 0x07, 0x7c, 0x00,
  678. X   0x3e, 0x00, 0x1e, 0x00, 0x0e, 0x00, 0x00, 0x00,
  679. X
  680. X   0x00, 0x00, 0x00, 0x70, 0x00, 0x78, 0x00, 0x7c, 0x00, 0x3e, 0x00, 0x1f,
  681. X   0x80, 0x0f, 0xc0, 0x07, 0xe0, 0x03, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x00,
  682. X   0x3e, 0x00, 0x1e, 0x00, 0x0e, 0x00, 0x00, 0x00,
  683. X
  684. X   0x00, 0x00, 0x00, 0x70, 0x00, 0x78, 0x00, 0x7c, 0x00, 0x3e, 0x00, 0x1f,
  685. X   0x00, 0x0e, 0x00, 0x07, 0xa0, 0x03, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x00,
  686. X   0x3e, 0x00, 0x1e, 0x00, 0x0e, 0x00, 0x00, 0x00,
  687. X
  688. X   0x00, 0x00, 0x00, 0x70, 0x00, 0x78, 0x00, 0x7c, 0x00, 0x3e, 0x00, 0x1f,
  689. X   0x80, 0x0e, 0x40, 0x04, 0x20, 0x02, 0x70, 0x01, 0xf8, 0x00, 0x7c, 0x00,
  690. X   0x3e, 0x00, 0x1e, 0x00, 0x0e, 0x00, 0x00, 0x00,
  691. X
  692. X   0x00, 0x00, 0x00, 0x70, 0x00, 0x78, 0x00, 0x7c, 0x00, 0x3e, 0x00, 0x1f,
  693. X   0x80, 0x0f, 0xc0, 0x05, 0xe0, 0x00, 0x70, 0x00, 0xf8, 0x00, 0x7c, 0x00,
  694. X   0x3e, 0x00, 0x1e, 0x00, 0x0e, 0x00, 0x00, 0x00,
  695. X
  696. X   0x00, 0x00, 0x00, 0x70, 0x00, 0x78, 0x00, 0x7c, 0x00, 0x3e, 0x00, 0x1f,
  697. X   0x80, 0x0f, 0xc0, 0x07, 0xe0, 0x03, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x00,
  698. X   0x3e, 0x00, 0x1e, 0x00, 0x0e, 0x00, 0x00, 0x00,
  699. X
  700. X   0x00, 0x00, 0x00, 0x70, 0x00, 0x78, 0x00, 0x7c, 0x00, 0x3e, 0xe0, 0x1f,
  701. X   0xe0, 0x0f, 0xe0, 0x07, 0xe0, 0x07, 0xf0, 0x07, 0xf8, 0x07, 0x7c, 0x00,
  702. X   0x3e, 0x00, 0x1e, 0x00, 0x0e, 0x00, 0x00, 0x00,
  703. X
  704. X   0x00, 0x00, 0x00, 0x70, 0x00, 0x78, 0x38, 0x7c, 0x78, 0x3e, 0xf8, 0x1f,
  705. X   0xf0, 0x0f, 0xe0, 0x07, 0xe0, 0x07, 0xf0, 0x0f, 0xf8, 0x1f, 0x7c, 0x1e,
  706. X   0x3e, 0x1c, 0x1e, 0x00, 0x0e, 0x00, 0x00, 0x00,
  707. X
  708. X   0x00, 0x00, 0x00, 0x70, 0x1c, 0x78, 0x3c, 0x7c, 0x7c, 0x3e, 0xf8, 0x1f,
  709. X   0xf0, 0x0f, 0xe0, 0x07, 0xe0, 0x07, 0xf0, 0x0f, 0xf8, 0x1f, 0x7c, 0x3e,
  710. X   0x3e, 0x3c, 0x1e, 0x38, 0x0e, 0x00, 0x00, 0x00
  711. };
  712. X
  713. static char x_mask_bits[] =
  714. {
  715. X   0x0f, 0xf0, 0x1f, 0xf8, 0x3f, 0xfc, 0x7f, 0xfe, 0xfe, 0x7f, 0xfc, 0x3f,
  716. X   0xf8, 0x1f, 0xf0, 0x0f, 0xf0, 0x0f, 0xf8, 0x1f, 0xfc, 0x3f, 0xfe, 0x7f,
  717. X   0x7f, 0xfe, 0x3f, 0xfc, 0x1f, 0xf8, 0x0f, 0xf0,
  718. X
  719. X   0x0f, 0x00, 0x1f, 0x78, 0x3f, 0x7c, 0x7f, 0x7e, 0xfe, 0x7f, 0xfc, 0x3f,
  720. X   0xf8, 0x1f, 0xf0, 0x0f, 0xf0, 0x0f, 0xf8, 0x1f, 0xfc, 0x3f, 0xfe, 0x7f,
  721. X   0x7e, 0xfe, 0x3e, 0xfc, 0x1e, 0xf8, 0x00, 0xf0,
  722. X
  723. X   0x0f, 0x00, 0x1f, 0x00, 0x3f, 0x3c, 0x7f, 0x3e, 0xfe, 0x3f, 0xfc, 0x3f,
  724. X   0xf8, 0x1f, 0xf0, 0x0f, 0xf0, 0x0f, 0xf8, 0x1f, 0xfc, 0x3f, 0xfc, 0x7f,
  725. X   0x7c, 0xfe, 0x3c, 0xfc, 0x00, 0xf8, 0x00, 0xf0,
  726. X
  727. X   0x0f, 0x00, 0x1f, 0x00, 0x3f, 0x00, 0x7f, 0x00, 0xfe, 0x0f, 0xfc, 0x0f,
  728. X   0xf8, 0x0f, 0xf0, 0x0f, 0xf0, 0x0f, 0xf0, 0x1f, 0xf0, 0x3f, 0xf0, 0x7f,
  729. X   0x00, 0xfe, 0x00, 0xfc, 0x00, 0xf8, 0x00, 0xf0,
  730. X
  731. X   0x0f, 0x00, 0x1f, 0x00, 0x3f, 0x00, 0x7f, 0x00, 0xfe, 0x00, 0xfc, 0x01,
  732. X   0xf8, 0x03, 0xf0, 0x07, 0xe0, 0x0f, 0xc0, 0x1f, 0x80, 0x3f, 0x00, 0x7f,
  733. X   0x00, 0xfe, 0x00, 0xfc, 0x00, 0xf8, 0x00, 0xf0,
  734. X
  735. X   0x0f, 0x00, 0x1f, 0x00, 0x3f, 0x00, 0x7f, 0x00, 0xfe, 0x00, 0xfc, 0x01,
  736. X   0xf8, 0x03, 0xf0, 0x07, 0xe0, 0x0f, 0xc0, 0x1f, 0x80, 0x3f, 0x00, 0x7f,
  737. X   0x00, 0xfe, 0x00, 0xfc, 0x00, 0xf8, 0x00, 0xf0,
  738. X
  739. X   0x0f, 0x00, 0x1f, 0x00, 0x3f, 0x00, 0x7f, 0x00, 0xfe, 0x00, 0xfc, 0x01,
  740. X   0xf8, 0x03, 0xf0, 0x07, 0xe0, 0x0f, 0xc0, 0x1f, 0x80, 0x3f, 0x00, 0x7f,
  741. X   0x00, 0xfe, 0x00, 0xfc, 0x00, 0xf8, 0x00, 0xf0,
  742. X
  743. X   0x0f, 0x00, 0x1f, 0x00, 0x3f, 0x00, 0x7f, 0x00, 0xfe, 0x00, 0xfc, 0x01,
  744. X   0xf8, 0x03, 0xf0, 0x07, 0xe0, 0x0f, 0xc0, 0x1f, 0x80, 0x3f, 0x00, 0x7f,
  745. X   0x00, 0xfe, 0x00, 0xfc, 0x00, 0xf8, 0x00, 0xf0,
  746. X
  747. X   0x0f, 0x00, 0x1f, 0x00, 0x3f, 0x00, 0x7f, 0x00, 0xfe, 0x00, 0xfc, 0x01,
  748. X   0xf8, 0x03, 0xf0, 0x07, 0xe0, 0x0f, 0xc0, 0x1f, 0x80, 0x3f, 0x00, 0x7f,
  749. X   0x00, 0xfe, 0x00, 0xfc, 0x00, 0xf8, 0x00, 0xf0,
  750. X
  751. X   0x0f, 0x00, 0x1f, 0x00, 0x3f, 0x00, 0x7f, 0x00, 0xfe, 0x0f, 0xfc, 0x0f,
  752. X   0xf8, 0x0f, 0xf0, 0x0f, 0xf0, 0x0f, 0xf0, 0x1f, 0xf0, 0x3f, 0xf0, 0x7f,
  753. X   0x00, 0xfe, 0x00, 0xfc, 0x00, 0xf8, 0x00, 0xf0,
  754. X
  755. X   0x0f, 0x00, 0x1f, 0x00, 0x3f, 0x3c, 0x7f, 0x3e, 0xfe, 0x3f, 0xfc, 0x3f,
  756. X   0xf8, 0x1f, 0xf0, 0x0f, 0xf0, 0x0f, 0xf8, 0x1f, 0xfc, 0x3f, 0xfc, 0x7f,
  757. X   0x7c, 0xfe, 0x3c, 0xfc, 0x00, 0xf8, 0x00, 0xf0,
  758. X
  759. X   0x0f, 0x00, 0x1f, 0x78, 0x3f, 0x7c, 0x7f, 0x7e, 0xfe, 0x7f, 0xfc, 0x3f,
  760. X   0xf8, 0x1f, 0xf0, 0x0f, 0xf0, 0x0f, 0xf8, 0x1f, 0xfc, 0x3f, 0xfe, 0x7f,
  761. X   0x7e, 0xfe, 0x3e, 0xfc, 0x1e, 0xf8, 0x00, 0xf0,
  762. X
  763. X   0x0f, 0xf0, 0x1f, 0xf8, 0x3f, 0xfc, 0x7f, 0xfe, 0xfe, 0x7f, 0xfc, 0x3f,
  764. X   0xf8, 0x1f, 0xf0, 0x0f, 0xf0, 0x0f, 0xf8, 0x1f, 0xfc, 0x3f, 0xfe, 0x7f,
  765. X   0x7f, 0xfe, 0x3f, 0xfc, 0x1f, 0xf8, 0x0f, 0xf0,
  766. X
  767. X   0x00, 0xf0, 0x1e, 0xf8, 0x3e, 0xfc, 0x7e, 0xfe, 0xfe, 0x7f, 0xfc, 0x3f,
  768. X   0xf8, 0x1f, 0xf0, 0x0f, 0xf0, 0x0f, 0xf8, 0x1f, 0xfc, 0x3f, 0xfe, 0x7f,
  769. X   0x7f, 0x7e, 0x3f, 0x7c, 0x1f, 0x78, 0x0f, 0x00,
  770. X
  771. X   0x00, 0xf0, 0x00, 0xf8, 0x3c, 0xfc, 0x7c, 0xfe, 0xfc, 0x7f, 0xfc, 0x3f,
  772. X   0xf8, 0x1f, 0xf0, 0x0f, 0xf0, 0x0f, 0xf8, 0x1f, 0xfc, 0x3f, 0xfe, 0x3f,
  773. X   0x7f, 0x3e, 0x3f, 0x3c, 0x1f, 0x00, 0x0f, 0x00,
  774. X
  775. X   0x00, 0xf0, 0x00, 0xf8, 0x00, 0xfc, 0x00, 0xfe, 0xf0, 0x7f, 0xf0, 0x3f,
  776. X   0xf0, 0x1f, 0xf0, 0x0f, 0xf0, 0x0f, 0xf8, 0x0f, 0xfc, 0x0f, 0xfe, 0x0f,
  777. X   0x7f, 0x00, 0x3f, 0x00, 0x1f, 0x00, 0x0f, 0x00,
  778. X
  779. X   0x00, 0xf0, 0x00, 0xf8, 0x00, 0xfc, 0x00, 0xfe, 0x00, 0x7f, 0x80, 0x3f,
  780. X   0xc0, 0x1f, 0xe0, 0x0f, 0xf0, 0x07, 0xf8, 0x03, 0xfc, 0x01, 0xfe, 0x00,
  781. X   0x7f, 0x00, 0x3f, 0x00, 0x1f, 0x00, 0x0f, 0x00,
  782. X
  783. X   0x00, 0xf0, 0x00, 0xf8, 0x00, 0xfc, 0x00, 0xfe, 0x00, 0x7f, 0x80, 0x3f,
  784. X   0xc0, 0x1f, 0xe0, 0x0f, 0xf0, 0x07, 0xf8, 0x03, 0xfc, 0x01, 0xfe, 0x00,
  785. X   0x7f, 0x00, 0x3f, 0x00, 0x1f, 0x00, 0x0f, 0x00,
  786. X
  787. X   0x00, 0xf0, 0x00, 0xf8, 0x00, 0xfc, 0x00, 0xfe, 0x00, 0x7f, 0x80, 0x3f,
  788. X   0xc0, 0x1f, 0xe0, 0x0f, 0xf0, 0x07, 0xf8, 0x03, 0xfc, 0x01, 0xfe, 0x00,
  789. X   0x7f, 0x00, 0x3f, 0x00, 0x1f, 0x00, 0x0f, 0x00,
  790. X
  791. X   0x00, 0xf0, 0x00, 0xf8, 0x00, 0xfc, 0x00, 0xfe, 0x00, 0x7f, 0x80, 0x3f,
  792. X   0xc0, 0x1f, 0xe0, 0x0f, 0xf0, 0x07, 0xf8, 0x03, 0xfc, 0x01, 0xfe, 0x00,
  793. X   0x7f, 0x00, 0x3f, 0x00, 0x1f, 0x00, 0x0f, 0x00,
  794. X
  795. X   0x00, 0xf0, 0x00, 0xf8, 0x00, 0xfc, 0x00, 0xfe, 0x00, 0x7f, 0x80, 0x3f,
  796. X   0xc0, 0x1f, 0xe0, 0x0f, 0xf0, 0x07, 0xf8, 0x03, 0xfc, 0x01, 0xfe, 0x00,
  797. X   0x7f, 0x00, 0x3f, 0x00, 0x1f, 0x00, 0x0f, 0x00,
  798. X
  799. X   0x00, 0xf0, 0x00, 0xf8, 0x00, 0xfc, 0x00, 0xfe, 0xf0, 0x7f, 0xf0, 0x3f,
  800. X   0xf0, 0x1f, 0xf0, 0x0f, 0xf0, 0x0f, 0xf8, 0x0f, 0xfc, 0x0f, 0xfe, 0x0f,
  801. X   0x7f, 0x00, 0x3f, 0x00, 0x1f, 0x00, 0x0f, 0x00,
  802. X
  803. X   0x00, 0xf0, 0x00, 0xf8, 0x3c, 0xfc, 0x7c, 0xfe, 0xfc, 0x7f, 0xfc, 0x3f,
  804. X   0xf8, 0x1f, 0xf0, 0x0f, 0xf0, 0x0f, 0xf8, 0x1f, 0xfc, 0x3f, 0xfe, 0x3f,
  805. X   0x7f, 0x3e, 0x3f, 0x3c, 0x1f, 0x00, 0x0f, 0x00,
  806. X
  807. X   0x00, 0xf0, 0x1e, 0xf8, 0x3e, 0xfc, 0x7e, 0xfe, 0xfe, 0x7f, 0xfc, 0x3f,
  808. X   0xf8, 0x1f, 0xf0, 0x0f, 0xf0, 0x0f, 0xf8, 0x1f, 0xfc, 0x3f, 0xfe, 0x7f,
  809. X   0x7f, 0x7e, 0x3f, 0x7c, 0x1f, 0x78, 0x0f, 0x00
  810. };
  811. X
  812. SHAR_EOF
  813. chmod 0644 xaniroc//bitmaps.h ||
  814. echo 'restore of xaniroc//bitmaps.h failed'
  815. Wc_c="`wc -c < 'xaniroc//bitmaps.h'`"
  816. test 9762 -eq "$Wc_c" ||
  817.     echo 'xaniroc//bitmaps.h: original size 9762, current size' "$Wc_c"
  818. fi
  819. exit 0
  820.  
  821. exit 0 # Just in case...
  822. -- 
  823.   // chris@Sterling.COM           | Send comp.sources.x submissions to:
  824. \X/  Amiga: The only way to fly!  |    sources-x@sterling.com
  825.        "It's intuitively obvious to the most casual observer..."
  826.  GCS d++(--) -p+ c++ !l u++ e+ m+(-) s++/++ n h--- f+ g+++ w+ t++ r+ y+
  827.