home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 3 / 3211 < prev    next >
Internet Message Format  |  1991-04-19  |  51KB

  1. From: eddyg@syma.sussex.ac.uk (Edward J. Groenendaal)
  2. Newsgroups: alt.sources
  3. Subject: X Desktop Manager(4)
  4. Message-ID: <4867@syma.sussex.ac.uk>
  5. Date: 17 Apr 91 20:49:41 GMT
  6.  
  7. ---- Cut Here and unpack ----
  8. #!/bin/sh
  9. # this is part 4 of a multipart archive
  10. # do not concatenate these parts, unpack them in order with /bin/sh
  11. # file code/parser.y continued
  12. #
  13. CurArch=4
  14. if test ! -r s2_seq_.tmp
  15. then echo "Please unpack part 1 first!"
  16.      exit 1; fi
  17. ( read Scheck
  18.   if test "$Scheck" != $CurArch
  19.   then echo "Please unpack part $Scheck next!"
  20.        exit 1;
  21.   else exit 0; fi
  22. ) < s2_seq_.tmp || exit 1
  23. echo "x - Continuing file code/parser.y"
  24. sed 's/^X//' << 'SHAR_EOF' >> code/parser.y
  25. X           
  26. X           current_selection->list[listindex] = 
  27. X             (AppProgram*) XtMalloc (sizeof(AppProgram));
  28. X         }
  29. X
  30. X                 NAME_T ASSIGN_T identifier SEMIC_T {setapp($3, $5);}
  31. X         ICON_T ASSIGN_T identifier SEMIC_T {setapp($8, $10);}
  32. X                 PROG_T ASSIGN_T identifier SEMIC_T {setapp($13, $15);}
  33. X                 OPTIONS_T ASSIGN_T option SEMIC_T  
  34. X                 {
  35. X           setapp($18, (String)$20);
  36. X
  37. X                  /* Increment listindex */
  38. X           if (++listindex == currentlistmax) {
  39. X             currentlistmax += APPPINC;
  40. X             current_selection->list = 
  41. X               (AppProgram**) XtMalloc (current_selection->list,
  42. X                        sizeof(AppProgram*) *
  43. X                        currentlistmax);
  44. X           }
  45. X         }
  46. X
  47. X                 C_BRACE_T
  48. X             ;
  49. Xoption       :   MSEL_T | OSEL_T | NSEL_T
  50. X             ;
  51. Xexpression   :   NAME_T EQUAL_T identifier { new_re($3); }
  52. X             |   TYPE_T EQUAL_T type       { new_type($3); }
  53. X             ;
  54. Xidentifier   :   STRING_T      {  $$=strip_quotes($1);
  55. X                   }
  56. X             ;
  57. Xtype         :   DIR_T | READ_T | WRITE_T | EXE_T | FILE_T
  58. X             ;
  59. Xvar          :   PATH_T | ICON_T | DEFICON_T
  60. X             ;
  61. X%%  
  62. X
  63. Xprivate void init_structs(void)
  64. X{
  65. X  Cardinal n;
  66. X
  67. X  prefs = newTypePref();
  68. X  icontable = NULL;
  69. X  varframe = (varStack*) XtMalloc (sizeof(varStack));
  70. X  varframe->defpath = stringtopath("/usr/lib/X11/bitmaps", &n);
  71. X  varframe->dirinpath = n;
  72. X  varframe->current = prefs;
  73. X  varframe->checkpath = False;
  74. X  varframe->iconpref = NULL;
  75. X  varframe->next = NULL;
  76. X
  77. X  listindex = 0;
  78. X  selectionindex = -1;
  79. X  appselections = (AppSelection**) XtMalloc (sizeof(AppSelection*) * MAXSELS);
  80. X}
  81. X
  82. Xprivate void free_structs(void)
  83. X{
  84. X  /* Free varstack (Should be only one level left) */
  85. X  XtFree(varframe);
  86. X
  87. X  selectionindex++;
  88. X}
  89. X
  90. Xpublic typePrefs *newTypePref(void)
  91. X{
  92. X  typePrefs *tp;
  93. X
  94. X  tp = (typePrefs*) XtMalloc (sizeof(typePrefs));
  95. X  tp->iconprefs = NULL;
  96. X  tp->dir = NULL;
  97. X  tp->file = NULL;
  98. X  tp->exe = NULL;
  99. X  tp->read = NULL;
  100. X  tp->write = NULL;
  101. X  
  102. X  return(tp);
  103. X}
  104. X  
  105. Xprivate void start_block(typePrefs *newpref, iconPrefs *iconpref)
  106. X{
  107. X  /* Push new stack frame */
  108. X  varStack *newframe;
  109. X  
  110. X  newframe = (varStack*) XtMalloc (sizeof(varStack));
  111. X  newframe->defpath = varframe->defpath;
  112. X  newframe->dirinpath = varframe->dirinpath;
  113. X  newframe->current = newpref;
  114. X  newframe->checkpath = varframe->checkpath;
  115. X  newframe->iconpref = iconpref;
  116. X  newframe->next = varframe;
  117. X  varframe = newframe;
  118. X}
  119. X
  120. Xprivate void end_block(void)
  121. X{
  122. X  /* If current frame has an empty typePref, free it. 
  123. X   * Pop last stack frame. 
  124. X   */
  125. X  iconPrefs *tmpIconPref;
  126. X  typePrefs *tmp = varframe->current;
  127. X  varStack *tmpframe = varframe->next;
  128. X
  129. X  if (tmp->iconprefs == NULL && tmp->dir == NULL &&
  130. X      tmp->file == NULL      && tmp->exe == NULL &&
  131. X      tmp->read == NULL      && tmp->write == NULL) {
  132. X    XtFree(tmp);
  133. X    tmp = NULL;
  134. X    tmpIconPref = varframe->iconpref;
  135. X    tmpIconPref->extra = NULL;
  136. X  }
  137. X  /* Should free contents first!! TODO */
  138. X  XtFree(varframe);
  139. X  varframe = tmpframe;
  140. X}
  141. X
  142. Xprivate void new_re(String re)
  143. X{
  144. X  iconPrefs *new, *tmp = varframe->current->iconprefs;
  145. X
  146. X  new = (iconPrefs*) XtMalloc (sizeof(iconPrefs));
  147. X  new->next = NULL;
  148. X  new->expbuf = (char*) XtMalloc (sizeof(char) * ESIZE);
  149. X  new->extra = (XtPointer) newTypePref();
  150. X  compile(re, new->expbuf, &(new->expbuf[ESIZE]), '\0');
  151. X  new->circf = circf;
  152. X  new->checkpath = varframe->checkpath;
  153. X  new->icon = NULL;
  154. X  varframe->current->iconprefs = inserticonpref(tmp, new);
  155. X  start_block((typePrefs*)new->extra, (iconPrefs*)new);
  156. X}
  157. X
  158. Xprivate void new_type(int n)
  159. X{
  160. X  /* Allocate a typePref on dir, write etc. if neadbe, otherwise ignore */
  161. X  typePrefs *typeprefs = varframe->current;
  162. X  typePrefs *newpref;
  163. X
  164. X  switch(n) {
  165. X  case DIR_T:
  166. X    if (typeprefs->dir == NULL) 
  167. X      typeprefs->dir = newTypePref();
  168. X    newpref = typeprefs->dir;
  169. X    break;
  170. X  case FILE_T:
  171. X    if (typeprefs->file == NULL) 
  172. X      typeprefs->file = newTypePref();
  173. X    newpref = typeprefs->file;
  174. X    break;
  175. X  case EXE_T:
  176. X    if (typeprefs->exe == NULL) 
  177. X      typeprefs->exe = newTypePref();
  178. X    newpref = typeprefs->exe;
  179. X    break;
  180. X  case READ_T:
  181. X    if (typeprefs->read == NULL) 
  182. X      typeprefs->read = newTypePref();
  183. X    newpref = typeprefs->read;
  184. X    break;
  185. X  case WRITE_T:
  186. X    if (typeprefs->write == NULL) 
  187. X      typeprefs->write = newTypePref();
  188. X    newpref = typeprefs->write;
  189. X    break;
  190. X  }
  191. X  start_block(newpref, NULL);
  192. X}
  193. X
  194. Xpublic Cardinal count_chr(String s, char c)
  195. X{
  196. X  Cardinal count=0;
  197. X
  198. X  while(*s != '\0') {
  199. X    if (*s == c) count++;
  200. X    s++;
  201. X  }
  202. X  return count;
  203. X}
  204. X
  205. Xprivate String *stringtopath(String s, Cardinal *n)
  206. X{
  207. X  /* Split a path into directories, put these into a linked list */
  208. X  String *result;
  209. X  String p, tmp;
  210. X#ifdef DEBUG_YACC
  211. X  String home;
  212. X#else
  213. X  extern String home;
  214. X#endif
  215. X
  216. X  *n = 0;
  217. X
  218. X#ifdef DEBUG_YACC
  219. X    if ((home = (String) getenv("HOME")) == NULL) {
  220. X    fprintf(stderr, "can\'t get environment variable HOME\n");
  221. X    home = XtNewString("/");
  222. X  } else 
  223. X    home = XtNewString(home);
  224. X#endif
  225. X
  226. X  result = (String*) XtMalloc ((count_chr(s, ':')+1) * sizeof(String));
  227. X  s = XtNewString(s);
  228. X
  229. X  /* extract the directories from path 's' */
  230. X
  231. X  p = strtok(s, ":");
  232. X  while ( p != NULL) {
  233. X    if (*p == '/')
  234. X      result[(*n)++] = p;
  235. X    else 
  236. X      if (*p == '~' && *(p+1) == '/') {
  237. X    tmp = (String) XtMalloc ((strlen(home) + strlen(p)) * sizeof(char));
  238. X    strcpy(tmp, home);
  239. X    strcat(tmp, p+1);
  240. X    result[(*n)++] = tmp;
  241. X      } else 
  242. X    fprintf(stderr, "Warning: Directory \'%s\' not fully qualified,"
  243. X        " ignoring.\n", p);
  244. X    p = strtok(NULL, ":");
  245. X  }
  246. X#ifdef DEBUG_YACC
  247. X  XtFree(home);
  248. X#endif
  249. X  return(result);
  250. X}
  251. X
  252. Xprivate iconPrefs *inserticonpref(iconPrefs *head, iconPrefs *item)
  253. X{
  254. X  /* Insert item into list starting with head, insert into the last 
  255. X   * position before the default.
  256. X   */
  257. X
  258. X  iconPrefs *sec = NULL, *tmp = head;
  259. X
  260. X  if (head == NULL) {
  261. X    /* first element */
  262. X    head=item;
  263. X    head->next=NULL;
  264. X  } else {
  265. X    while (tmp->next != NULL) {
  266. X      sec = tmp;
  267. X      tmp = tmp->next;
  268. X    }
  269. X    if (tmp->expbuf == NULL) {
  270. X      /* Already got a default */
  271. X      if (item->expbuf != NULL) {
  272. X    /* Item is not a new default */
  273. X    item->next = tmp;
  274. X    if (sec != NULL)
  275. X      sec->next = item;
  276. X    else 
  277. X      head = item;
  278. X      } else 
  279. X    XtFree(item);
  280. X    } else {
  281. X      /* No default */
  282. X      tmp->next = item;
  283. X      item->next = NULL;
  284. X    }
  285. X  }
  286. X  return(head);
  287. X}
  288. X
  289. Xprivate iconPrefs *getlast(iconPrefs *head)
  290. X{
  291. X  /* return the last non-default iconpref in the frame */
  292. X  iconPrefs *tmp = head;
  293. X  
  294. X  if (tmp != NULL)
  295. X    while (tmp->next != NULL || tmp->next->expbuf == NULL) 
  296. X      tmp = tmp->next;
  297. X
  298. X  return(tmp);
  299. X}
  300. X
  301. Xprivate String strip_quotes(String s)
  302. X{
  303. X  String new;
  304. X  
  305. X  *(s + (strlen(s)-1)) = '\0';
  306. X  s=s+1;
  307. X  new = XtNewString(s);
  308. X
  309. X  return(new);
  310. X}
  311. X
  312. Xprivate void set_path(String s)
  313. X{
  314. X  Cardinal n;
  315. X
  316. X  varframe->defpath = stringtopath(s, &n);
  317. X  varframe->dirinpath = n;
  318. X}
  319. X
  320. Xprivate void set_icon(String s, Boolean ignore)
  321. X{
  322. X  /* varframe->iconpref points to the iconpref into which this
  323. X   * icon should be inserted. If it is NULL, then create a new
  324. X   * one at varframe->current->iconprefs.
  325. X   */
  326. X
  327. X  typePrefs *frame = varframe->current;
  328. X  iconPrefs *iconpref = varframe->iconpref, 
  329. X            *head = frame->iconprefs,
  330. X            *new =  NULL;
  331. X
  332. X  if (iconpref == NULL) {
  333. X    new = (iconPrefs*) XtMalloc (sizeof(iconPrefs));
  334. X    new->expbuf = NULL;  /* default icon */
  335. X    new->extra = NULL;
  336. X    if (ignore==True) {
  337. X      new->icon = DUMMY;
  338. X    } else {
  339. X      new->icon = lookupicon(s);
  340. X    }
  341. X    new->next = NULL;
  342. X    frame->iconprefs = inserticonpref(head, new);
  343. X  } else 
  344. X    if (ignore==True)
  345. X      iconpref->icon = DUMMY;
  346. X    else
  347. X      iconpref->icon = lookupicon(s);
  348. X
  349. X}
  350. X
  351. Xprivate void set_deficon(String s)
  352. X{
  353. X  typePrefs *frame = varframe->current;
  354. X  iconPrefs *iconpref, *head = frame->iconprefs;
  355. X
  356. X  iconpref = (iconPrefs*) XtMalloc (sizeof(iconPrefs));
  357. X  iconpref->expbuf = NULL;  /* default icon */
  358. X  iconpref->extra = NULL;
  359. X  iconpref->icon = lookupicon(s);
  360. X  iconpref->next = NULL;
  361. X  frame->iconprefs = inserticonpref(head, iconpref);
  362. X
  363. X}
  364. X
  365. Xprivate Pixmap lookupicon(String icon)
  366. X{
  367. X  /* Return the pixmap associated with the name 'icon' if none 
  368. X   * found NULL is returned.
  369. X   */
  370. X  typePrefs *frame = varframe->current;
  371. X  String *path = varframe->defpath;
  372. X  Cardinal pathsize = varframe->dirinpath;
  373. X  Cardinal n;
  374. X  iconTree *item;
  375. X  Pixmap pixmap = NULL;
  376. X  String fullname = NULL;
  377. X  String tmp;
  378. X  FILE *result;
  379. X
  380. X  /* Append 'icon' to each filename in current path, and check to see 
  381. X   * whether that file exists.
  382. X   */
  383. X  
  384. X  n = 0;
  385. X  do {
  386. X    tmp = (String) XtMalloc ((strlen(icon) + strlen(path[n]) +1) * sizeof(char));
  387. X    tmp = strcpy(tmp, path[n]);
  388. X    tmp = strcat(tmp, "/");
  389. X    tmp = strcat(tmp, icon);
  390. X    if ((result = fopen(tmp, "r")) != NULL) {
  391. X      fullname = XtNewString(tmp);
  392. X      fclose(result);
  393. X    } 
  394. X    XtFree(tmp);
  395. X  } while (++n < pathsize && fullname == NULL);
  396. X
  397. X  if (fullname == NULL) 
  398. X    fprintf(stderr, "Warning: could not find icon %s\n", icon);
  399. X  else {
  400. X    item = (iconTree*) XtMalloc (sizeof(iconTree));
  401. X    item->fullname = fullname;
  402. X    item->icon = NULL;
  403. X    icontable = get_pixmap(item, icontable);
  404. X    pixmap = item->icon;
  405. X  }
  406. X  return(pixmap);
  407. X}
  408. X
  409. X
  410. Xprivate iconTree *get_pixmap(iconTree *item, iconTree *tree)
  411. X{
  412. X  /* If the item is found in the tree, then item's contents are filled 
  413. X   * with that items, otherwise the Pixmap is created and the item is 
  414. X   * inserted into the tree.
  415. X   */
  416. X
  417. X  int cmp, value;
  418. X  unsigned int width, height;
  419. X  int x_hot, y_hot;
  420. X
  421. X  if (tree == NULL) {
  422. X    /* At a leaf, insert item */
  423. X#ifndef DEBUG_YACC
  424. X    value = XReadBitmapFile(XtDisplay(topLevel), 
  425. X                RootWindowOfScreen(XtScreen(topLevel)),
  426. X                item->fullname,
  427. X                &width, &height,
  428. X                &item->icon,
  429. X                &x_hot, &y_hot);
  430. X    if (value == BitmapFileInvalid)
  431. X      fprintf(stderr, "Filename \'%s\' contains invalid bitmap data\n", 
  432. X          item->fullname);
  433. X    else if (value == BitmapOpenFailed)
  434. X      fprintf(stderr, "Filename \'%s\' could not be opened\n", 
  435. X          item->fullname);
  436. X    else if (value == BitmapNoMemory)
  437. X      fprintf(stderr, "Not enough memory to allocate pixmap\n");
  438. X#else
  439. X    item->icon = (Pixmap) DUMMY;
  440. X    printf("DEBUG: Loaded bitmap for %s\n", item->fullname);
  441. X#endif
  442. X    item->left = NULL;
  443. X    item->right = NULL;
  444. X    tree = item;
  445. X  } else {
  446. X    if ((cmp = strcmp(tree->fullname, item->fullname)) == 0) {
  447. X      /* Found it !!! */
  448. X      item->icon = tree->icon;
  449. X    } else 
  450. X      if (cmp < 0)
  451. X    tree->left = get_pixmap(item, tree->left);
  452. X      else 
  453. X    tree->right = get_pixmap(item, tree->right);
  454. X  }
  455. X  return(tree);
  456. X}
  457. X
  458. Xprivate void newselection(String selection)
  459. X{
  460. X  /* increment selectionindex, put selection string into next 
  461. X   * appselection, (if less than MAXSELS)
  462. X   */
  463. X  
  464. X  if (++selectionindex == MAXSELS) {
  465. X    fprintf(stderr, "Application Selection Overflow, only %d selections allowed",
  466. X        MAXSELS);
  467. X    exit(2);
  468. X  }
  469. X
  470. X#ifdef DEBUG_YACC
  471. X  printf("DEBUG: New selection %s\n", selection);
  472. X#endif
  473. X  
  474. X  listindex = 0;
  475. X  current_selection = appselections[selectionindex] =
  476. X    (AppSelection*) XtMalloc (sizeof(AppSelection));
  477. X  current_selection->name = XtNewString(selection);
  478. X  current_selection->number = listindex;
  479. X  current_selection->list = (AppProgram**) XtMalloc (sizeof(AppProgram*) * APPPSIZE);
  480. X  currentlistmax = APPPSIZE;
  481. X}
  482. X
  483. Xprivate void setapp(int type, String argument)
  484. X{
  485. X  /* Insert program data into current AppProgram, then extend
  486. X   * the AppProgram array.
  487. X   */
  488. X  AppProgram **proglist = current_selection->list;
  489. X  AppProgram *node = proglist[listindex];
  490. X  
  491. X  switch(type) {
  492. X  case NAME_T:
  493. X    node->string = XtNewString(argument);
  494. X#ifdef DEBUG_YACC
  495. X    printf("String: %s\n", argument);
  496. X#endif
  497. X    break;
  498. X  case ICON_T:
  499. X    node->icon = lookupicon(argument);
  500. X    break;
  501. X  case PROG_T:
  502. X    node->program = XtNewString(argument);
  503. X#ifdef DEBUG_YACC
  504. X    printf("Program: %s\n", argument);
  505. X#endif
  506. X    break;
  507. X  case OPTIONS_T:
  508. X    switch((int)argument) {
  509. X    case MSEL_T:
  510. X      node->options = M_SEL;
  511. X#ifdef DEBUG_YACC
  512. X      printf("MSEL\n");
  513. X#endif
  514. X      break;
  515. X    case OSEL_T:
  516. X      node->options = O_SEL;
  517. X#ifdef DEBUG_YACC
  518. X      printf("OSEL\n");
  519. X#endif      
  520. X      break;
  521. X    case NSEL_T:
  522. X      node->options = N_SEL;
  523. X#ifdef DEBUG_YACC
  524. X      printf("NSEL\n");
  525. X#endif
  526. X      break;
  527. X    default:
  528. X      fprintf(stderr, "Programmer Error: Bad argument to setapp.\n");
  529. X      break;
  530. X    }
  531. X    break;
  532. X  default:
  533. X    fprintf(stderr, "Programmer Error: Bad argument to setapp.\n");
  534. X    break;
  535. X  }
  536. X}
  537. X
  538. X#ifdef DEBUG_YACC
  539. Xmain()
  540. X{
  541. X  yyparse();
  542. X  return(0);
  543. X}
  544. X#endif
  545. X
  546. X
  547. X
  548. X
  549. SHAR_EOF
  550. echo "File code/parser.y is complete"
  551. chmod 0644 code/parser.y || echo "restore of code/parser.y fails"
  552. echo "x - extracting code/patchlevel.h (Text)"
  553. sed 's/^X//' << 'SHAR_EOF' > code/patchlevel.h &&
  554. X#define PATCHLEVEL 0
  555. SHAR_EOF
  556. chmod 0644 code/patchlevel.h || echo "restore of code/patchlevel.h fails"
  557. echo "x - extracting code/quit.c (Text)"
  558. sed 's/^X//' << 'SHAR_EOF' > code/quit.c &&
  559. X/***********************************************************************************
  560. X ** File          : quit.c                                                        **
  561. X ** Purpose       : Initialise and Realise quit dialogs                           **
  562. X ** Author        : Edward Groenendaal                                            **
  563. X ** Date          : April 1991                                                    **
  564. X ** Documentation : Xdtm Design Folder                                            **
  565. X ** Related Files :                                                               **
  566. X ***********************************************************************************/
  567. X
  568. X#include "xdtm.h"
  569. X#include <X11/Shell.h>
  570. X#include <X11/Xaw/Label.h>
  571. X#include <X11/Xaw/Command.h>
  572. X#include "Xedw/XedwForm.h"
  573. X
  574. Xextern void realize_dialog(Widget);
  575. X
  576. X/* Widgets */
  577. Xprivate Widget quitpopup;    /* For Quit Message */
  578. Xprivate Widget quitform;        /* The form */
  579. Xprivate Widget quitlabel;      /* Label at top of dialog */
  580. Xprivate Widget quitquit;           /* yes button */
  581. Xprivate Widget quitcancel;        /* no button */ 
  582. X
  583. Xpublic void init_quit(Widget top)
  584. X{
  585. X  extern void quitQueryResult(Widget, Boolean, caddr_t);
  586. X
  587. X  Arg arglist[5];
  588. X  Cardinal i;
  589. X
  590. X  private String QuitLabel          = "Really quit?";
  591. X  private String QuitButtonLabel    = "Quit";
  592. X  private String CancelButtonLabel  = "Cancel";
  593. X
  594. X  quitpopup    =   XtCreatePopupShell("quitpopup",
  595. X                      transientShellWidgetClass,
  596. X                      top,
  597. X                      NULL, 0);
  598. X
  599. X  quitform      =   XtCreateManagedWidget("quitform",
  600. X                      xedwFormWidgetClass,
  601. X                      quitpopup,
  602. X                      NULL, 0);
  603. X
  604. X  i = 0;
  605. X  XtSetArg(arglist[i], XtNlabel,         QuitLabel);  i++;
  606. X  XtSetArg(arglist[i], XtNborderWidth,           0);  i++;
  607. X  XtSetArg(arglist[i], XtNjustify, XtJustifyCenter);  i++;
  608. X  XtSetArg(arglist[i], XtNfullWidth,          True);  i++;
  609. X  quitlabel    =   XtCreateManagedWidget("quitlabel",
  610. X                      labelWidgetClass,
  611. X                      quitform,
  612. X                      arglist, i);
  613. X
  614. X  i = 0;
  615. X  XtSetArg(arglist[i], XtNlabel, CancelButtonLabel);  i++;
  616. X  XtSetArg(arglist[i], XtNfromVert,      quitlabel);  i++;
  617. X  XtSetArg(arglist[i], XtNjustify, XtJustifyCenter);  i++;
  618. X  quitcancel  =   XtCreateManagedWidget("quitcancel",
  619. X                    commandWidgetClass,
  620. X                    quitform,
  621. X                    arglist, i);
  622. X
  623. X  i = 1;
  624. X  XtSetArg(arglist[i], XtNlabel,   QuitButtonLabel);  i++;
  625. X  XtSetArg(arglist[i], XtNfromVert,     quitlabel);  i++;
  626. X  XtSetArg(arglist[i], XtNwidthLinked, quitcancel);  i++;
  627. X  XtSetArg(arglist[i], XtNfromHoriz,   quitcancel);  i++;
  628. X  quitquit    =   XtCreateManagedWidget("quitquit",
  629. X                    commandWidgetClass,
  630. X                    quitform,
  631. X                    arglist, i);
  632. X
  633. X  XtAddCallback(quitcancel, XtNcallback, quitQueryResult, False);
  634. X  XtAddCallback(quitquit,   XtNcallback, quitQueryResult, True);
  635. X}
  636. X
  637. X
  638. Xpublic void quit_dialog(void)
  639. X{
  640. X  realize_dialog(quitpopup);
  641. X}
  642. X
  643. Xpublic void destroy_quit_dialog(void)
  644. X{
  645. X  XtPopdown(quitpopup);
  646. X}
  647. SHAR_EOF
  648. chmod 0644 code/quit.c || echo "restore of code/quit.c fails"
  649. echo "x - extracting code/scroll_hack.c (Text)"
  650. sed 's/^X//' << 'SHAR_EOF' > code/scroll_hack.c &&
  651. X/*****************************************************************************
  652. X ** File          : scroll_hack.c                                           **
  653. X ** Purpose       : Reset the scrollbar in a viewport widget to the top     **
  654. X ** Author        : Edward Groenendaal                                      **
  655. X ** Date          : 25th Feb 1990                                           **
  656. X ** Documentation : Xdtm Design Folder                                      **
  657. X ** Related Files :                                                         **
  658. X *****************************************************************************/
  659. X
  660. X#include "xdtm.h"
  661. X#include <X11/IntrinsicP.h>
  662. X#include <X11/StringDefs.h>
  663. X#include <X11/Xaw/XawInit.h>
  664. X#include <X11/Xaw/Viewport.h>
  665. X#include <X11/Xaw/ViewportP.h>
  666. X#include <X11/Xaw/Scrollbar.h>
  667. X#include <X11/Xaw/ScrollbarP.h>
  668. X
  669. X
  670. Xpublic void setscroll(Widget w, float pos)
  671. X{
  672. X  ViewportWidget  vw = (ViewportWidget) w;
  673. X  ScrollbarWidget sw = (ScrollbarWidget) vw->viewport.vert_bar;
  674. X  Arg arglist[1];
  675. X
  676. X
  677. X  XtSetArg(arglist[0], XtNtopOfThumb, pos);
  678. X  XtSetValues(sw, arglist, 1);
  679. X  XtCallCallbacks(sw, XtNthumbProc, sw->scrollbar.top);
  680. X  XtCallCallbacks(sw, XtNjumpProc, &sw->scrollbar.top);
  681. X
  682. X}
  683. SHAR_EOF
  684. chmod 0644 code/scroll_hack.c || echo "restore of code/scroll_hack.c fails"
  685. echo "x - extracting code/strstr.c (Text)"
  686. sed 's/^X//' << 'SHAR_EOF' > code/strstr.c &&
  687. X/*****************************************************************************
  688. X ** File          : strstr.c                                                **
  689. X ** Purpose       : Return pointer to first occurence of second string in   **
  690. X **                 first string, else NULL                                 **
  691. X ** Author        : Edward Groenendaal                                      **
  692. X ** Date          : 11th April 1991                                         **
  693. X ** Documentation : Xdtm Design Folder                                      **
  694. X ** Related Files : appman.c                                                **
  695. X *****************************************************************************/
  696. X
  697. X#ifdef SYSV
  698. X
  699. X#include <stdio.h>  /* For NULL */
  700. X
  701. Xchar *strstr(char *cs, char *ct)
  702. X{
  703. X  char *csi, *cti, *result;
  704. X  
  705. X  result = NULL;
  706. X  cti = ct;
  707. X  csi = cs;
  708. X  
  709. X  /* search for first letter, on finding it set result to that point */
  710. X
  711. X  while (*csi != '\0' && *cti != '\0') {
  712. X    if (result == NULL) {
  713. X      /* searching for start of substring */
  714. X      if (*csi == *cti) {
  715. X    result = csi;
  716. X    cti++;
  717. X      }
  718. X    } else 
  719. X      /* trying to match rest */
  720. X      if (*csi == *cti) 
  721. X    cti++;
  722. X      else {
  723. X    cti = ct;
  724. X    csi = result;
  725. X    result = NULL;
  726. X      }
  727. X    csi++;
  728. X  }
  729. X
  730. X  if (*cti == '\0')
  731. X    return(result);
  732. X  else 
  733. X    return((char*) NULL);
  734. X}
  735. X
  736. X#endif
  737. SHAR_EOF
  738. chmod 0644 code/strstr.c || echo "restore of code/strstr.c fails"
  739. echo "x - extracting code/xdtm.h (Text)"
  740. sed 's/^X//' << 'SHAR_EOF' > code/xdtm.h &&
  741. X/*****************************************************************************
  742. X ** File          : xdtm.h                                                  **
  743. X ** Purpose       :                                                         **
  744. X ** Author        : Edward Groenendaal                                      **
  745. X ** Date          : 18th Feb 1991                                           **
  746. X ** Documentation : Xdtm Design Folder                                      **
  747. X ** Related Files : menus.c                                                 **
  748. X *****************************************************************************/
  749. X
  750. X#ifndef _xdtm_h
  751. X#define _xdtm_h
  752. X
  753. X#define RELEASE       1
  754. X#define SYSTEM_HELP   "/usr/lib/X11/xdtm/help"
  755. X#define SYSTEM_XDTMRC "/usr/lib/X11/xdtm/xdtmrc"
  756. X#define MAXSELS 10
  757. X#define MAXARGS 20
  758. X#define DUMMY ~NULL
  759. X
  760. X#include "patchlevel.h"
  761. X
  762. X/* UNIX include files */
  763. X#include <stdio.h>
  764. X#include <errno.h>
  765. X#include <string.h>
  766. X
  767. X/* Standard X11 include files */
  768. X#include <X11/Intrinsic.h>
  769. X#include <X11/StringDefs.h>
  770. X
  771. X#define private         static
  772. X#define public          /* global */
  773. X
  774. Xextern Arg chain_position[];
  775. Xextern Cardinal chain_size;
  776. X
  777. Xtypedef enum {NormalMode, CopyMode, MoveMode} Mode;
  778. X
  779. Xtypedef struct {
  780. X  int view_width;
  781. X  int view_height;
  782. X  XFontStruct *view_font;
  783. X  String mode;
  784. X  XFontStruct *dm_font;
  785. X} AppData, *AppDataPtr;
  786. X
  787. X/* Application Resources */
  788. X
  789. X#define XtNviewWidth "viewWidth"
  790. X#define XtNviewHeight "viewHeight"
  791. X#define XtNviewFont "viewFont"
  792. X#define XtNmode "mode"
  793. X#define XtNdmFont "dmFont"
  794. X
  795. X#define XtCViewWidth "ViewWidth"
  796. X#define XtCViewHeight "ViewHeight"
  797. X#define XtCMode "Mode"
  798. X
  799. X#endif /* _xdtm_h */
  800. SHAR_EOF
  801. chmod 0644 code/xdtm.h || echo "restore of code/xdtm.h fails"
  802. echo "x - extracting code/README (Text)"
  803. sed 's/^X//' << 'SHAR_EOF' > code/README &&
  804. XX Desktop Manager README
  805. X========================
  806. X
  807. XThis is release 1 of the X desktop manager. It was written for my final
  808. Xyear project, and as usual in such things left to the last minute 
  809. Xwhich explains why there are a couple of areas in which the program 
  810. Xcould have been better, namely support for colour displays, full 
  811. Xhelp facilities.
  812. X
  813. XWhat is the X Desktop Manager?
  814. X------------------------------
  815. X
  816. XX Desktop Manager (xdtm) is a graphical shell for UNIX and the X Window
  817. XSystem. It supports the following features:
  818. X
  819. X1)  Graphical representation of files and directories as 
  820. X    i)   icons.
  821. X    ii)  filenames.
  822. X    iii) long listing (ls -l style).
  823. X2)  Allow files to be selected by matching a regular expression to their
  824. X    file names.
  825. X
  826. X3)  Allow a program to be mapped over the selected files.
  827. X
  828. X4)  Allow the user (via a setup file) to define the icons to be given 
  829. X    filenames matching a particular regular expression.
  830. X
  831. X5)  Allow files or directories to be deleted, moved, and copied to
  832. X    other directories.
  833. X
  834. X6)  Allow predifined programs to be executed (with optional parameters
  835. X    of the selected files) when it's associated icon is double clicked.
  836. X
  837. X7)  A comprehensive set of predefined icons. 
  838. X
  839. X8) Probably loads more things..
  840. X
  841. XSee the file help for more details.
  842. X
  843. XWhat's it for?
  844. X--------------
  845. X
  846. XXdtm is designed to simplify and thus speed of the process of file management,
  847. Xtext editing, and program development.
  848. X
  849. XFor example.
  850. X
  851. XIn the example xdtm setup file (xdtmrc) is my setup which includes the following
  852. Xaids in the 'programming' selection, 
  853. X
  854. XMake All    - recompile program in current directory (via Makefile)
  855. XMake Clean  
  856. XMake Tags
  857. XEmacs       - Start the Emacs editor with any selected files as argument.
  858. X
  859. XI would click on the file I wish to edit (Or double click if I only wish
  860. Xto view it) then double click on the Emacs icon, which would start emacs
  861. Xwith that file preloaded, I could then edit that file, and double click 
  862. Xon Make All to recompile the program, at which point the binary will show
  863. Xup in the directory, and it may be executed by double clicking on it.
  864. X
  865. XThe best way to find out how it works is to play with the program and to
  866. Xlook at the setup file. I hope to produce proper full documentation in 
  867. Xthe next week, (ending 26th April 1991) if you wish to receive a copy
  868. Xof this (in Macintosh Word 4 Format only I'm afraid!) email me a message 
  869. Xsome time after that, but before July, 'cos that's when I leave!!
  870. X
  871. X(I will probably do a manual page as well)
  872. X
  873. XWhat does it work on?
  874. X---------------------
  875. X
  876. XThe program is designed to work on monochrome systems BUT does also work 
  877. Xon colour systems except that the highlighting is slightly buggered.
  878. X
  879. XIt uses <regexp.h> for doing regular expression matching, this file
  880. Xis only included on SYSV machines and hybreds.
  881. XIt may be possible on a network to use this file copied from a SYSV
  882. Xmachine but is probably very naughty!
  883. X
  884. XIt is written in ANSI C and should be compiled using the Gnu C compiler
  885. X
  886. XIt has been tested and works on the following systems:
  887. X
  888. XMachine           OS             Display       X Version
  889. X
  890. XMacintosh IIcx    A/UX 2.01      Monochrome    MacX and X11R4
  891. XSun 3/60    SunOS 4.1.1    Colour        X11R4 (highlighting broken)
  892. XSun 3/50    SunOs 4.1.1    Monochrome    X11R4
  893. XHP9000/370    HP-UX 7.0    Monochrome    X11R4
  894. XHP9000/370     HP-UX 7.0    Colour        X11R4 (highlighting broken)
  895. X
  896. XIf you manage to get it working on any other system (before July) please
  897. Xemail me.
  898. X
  899. XHow to compile it
  900. X-----------------
  901. X
  902. X1) unshar archives
  903. X2) cd code
  904. X3) edit Imakefile and xdtm.h for your site
  905. X4) xmkmf
  906. X5) make
  907. X6) copy 'xdtmrc' to your system xdtm directory
  908. X7) copy 'help'   to your system xdtm directory 
  909. X
  910. XBugs
  911. X----
  912. X
  913. Xplease mail any bug reports - patches - wishes to me 
  914. Xpreferably BEFORE 26th of April (deadline).
  915. X
  916. XEdward Groenendaal.
  917. X
  918. XUniversity of Sussex,
  919. XBrighton,
  920. XEngland.
  921. X
  922. XEmail: eddyg@cogs.sussex.ac.uk
  923. SHAR_EOF
  924. chmod 0644 code/README || echo "restore of code/README fails"
  925. echo "x - extracting code/Imakefile (Text)"
  926. sed 's/^X//' << 'SHAR_EOF' > code/Imakefile &&
  927. X              CC = gcc
  928. X            SRCS = main.c menus.c appman.c dirman.c \
  929. X                   fileman.c parse.c info.c \
  930. X           Xedw/XedwList.c Xedw/XedwForm.c lexical.l parser.y \
  931. X           dialogs.c scroll_hack.c strstr.c buttons.c \
  932. X           display.c listoption.c map.c newfile.c \
  933. X           quit.c 
  934. X            OBJS = main.o menus.o appman.o dirman.o \
  935. X                   fileman.o parse.o parser.o lexical.o \
  936. X            dialogs.o scroll_hack.o strstr.o buttons.o \
  937. X           display.o listoption.o map.o newfile.o \
  938. X           quit.o info.o
  939. X          LDLIBS = $(XAWLIB) $(XMULIB) $(XTOOLLIB) $(XLIB) -ll -ly
  940. XEXTRA_LOAD_FLAGS = -LXedw  -L/usr/local/X11R4/lib
  941. X        DEFINES = -I/usr/local/lib/gcc-include
  942. X          CFLAGS = StandardDefines -I/usr/local/X11R4/include -I/usr/local/lib/gcc-include
  943. X          YFLAGS = -d 
  944. X
  945. X#define PassCDebugFlags 'CFLAGS=$(CFLAGS)' 
  946. X
  947. XAllTarget(xdtm)
  948. X
  949. XNormalProgramTarget(lexical, lexical.c,,-ll,-DDEBUG_LEX $(CFLAGS))
  950. X
  951. XNormalProgramTarget(parser, lexical.c parser.c,,-ll -ly,-DDEBUG_YACC $(CFLAGS))
  952. X
  953. XNormalProgramTarget(xdtm, $(OBJS), Xedw, -lXedw,)
  954. X
  955. XNamedMakeSubdirs(Xedw, Xedw)
  956. X
  957. XDependTarget()
  958. X
  959. Xetags:
  960. X    etags -t *.h $(SRCS)  
  961. X
  962. Xclean::
  963. X    $(RM) lexical.c parser.c parser.h
  964. X    @(cd Xedw; echo "Making clean in ./Xedw"; \
  965. X    $(MAKE) clean;)
  966. X
  967. Xparser.h parser.c: parser.y         
  968. X    $(YACC) $(YFLAGS) parser.y      
  969. X    $(MV) y.tab.c parser.c          
  970. X    $(MV) y.tab.h parser.h      
  971. X
  972. Xlexical.o: parser.h
  973. X
  974. SHAR_EOF
  975. chmod 0644 code/Imakefile || echo "restore of code/Imakefile fails"
  976. echo "x - extracting code/Makefile (Text)"
  977. sed 's/^X//' << 'SHAR_EOF' > code/Makefile &&
  978. X# Makefile generated by imake - do not edit!
  979. X# $XConsortium: imake.c,v 1.51 89/12/12 12:37:30 jim Exp $
  980. X#
  981. X# The cpp used on this machine replaces all newlines and multiple tabs and
  982. X# spaces in a macro expansion with a single space.  Imake tries to compensate
  983. X# for this, but is not always successful.
  984. X#
  985. X
  986. X###########################################################################
  987. X# Makefile generated from "Imake.tmpl" and <Imakefile>
  988. X# $XConsortium: Imake.tmpl,v 1.77 89/12/18 17:01:37 jim Exp $
  989. X#
  990. X# Platform-specific parameters may be set in the appropriate .cf
  991. X# configuration files.  Site-wide parameters may be set in the file
  992. X# site.def.  Full rebuilds are recommended if any parameters are changed.
  993. X#
  994. X# If your C preprocessor doesn't define any unique symbols, you'll need
  995. X# to set BOOTSTRAPCFLAGS when rebuilding imake (usually when doing
  996. X# "make Makefile", "make Makefiles", or "make World").
  997. X#
  998. X# If you absolutely can't get imake to work, you'll need to set the
  999. X# variables at the top of each Makefile as well as the dependencies at the
  1000. X# bottom (makedepend will do this automatically).
  1001. X#
  1002. X
  1003. X###########################################################################
  1004. X# platform-specific configuration parameters - edit sun.cf to change
  1005. X
  1006. X# platform:  $XConsortium: sun.cf,v 1.38 89/12/23 16:10:10 jim Exp $
  1007. X# operating system:  SunOS 4.1
  1008. X
  1009. X###########################################################################
  1010. X# site-specific configuration parameters - edit site.def to change
  1011. X
  1012. X# site:  $XConsortium: site.def,v 1.21 89/12/06 11:46:50 jim Exp $
  1013. X
  1014. X            SHELL = /bin/sh
  1015. X
  1016. X              TOP = .
  1017. X      CURRENT_DIR = .
  1018. X
  1019. X               AR = ar cq
  1020. X  BOOTSTRAPCFLAGS =
  1021. X               CC = cc
  1022. X
  1023. X         COMPRESS = compress
  1024. X              CPP = /lib/cpp $(STD_CPP_DEFINES)
  1025. X    PREPROCESSCMD = cc -E $(STD_CPP_DEFINES)
  1026. X          INSTALL = install
  1027. X               LD = ld
  1028. X             LINT = lint
  1029. X      LINTLIBFLAG = -C
  1030. X         LINTOPTS = -axz
  1031. X               LN = ln -s
  1032. X             MAKE = make
  1033. X               MV = mv
  1034. X               CP = cp
  1035. X           RANLIB = ranlib
  1036. X  RANLIBINSTFLAGS =
  1037. X               RM = rm -f
  1038. X     STD_INCLUDES =
  1039. X  STD_CPP_DEFINES =
  1040. X      STD_DEFINES =
  1041. X EXTRA_LOAD_FLAGS =
  1042. X  EXTRA_LIBRARIES =
  1043. X             TAGS = ctags
  1044. X
  1045. X    SHAREDCODEDEF = -DSHAREDCODE
  1046. X         SHLIBDEF = -DSUNSHLIB
  1047. X
  1048. X    PROTO_DEFINES =
  1049. X
  1050. X     INSTPGMFLAGS =
  1051. X
  1052. X     INSTBINFLAGS = -m 0755
  1053. X     INSTUIDFLAGS = -m 4755
  1054. X     INSTLIBFLAGS = -m 0664
  1055. X     INSTINCFLAGS = -m 0444
  1056. X     INSTMANFLAGS = -m 0444
  1057. X     INSTDATFLAGS = -m 0444
  1058. X    INSTKMEMFLAGS = -m 4755
  1059. X
  1060. X          DESTDIR = /usr/local/X11R4
  1061. X
  1062. X     TOP_INCLUDES = -I$(INCROOT)
  1063. X
  1064. X      CDEBUGFLAGS = -O
  1065. X        CCOPTIONS = -fswitch
  1066. X      COMPATFLAGS =
  1067. X
  1068. X      ALLINCLUDES = $(STD_INCLUDES) $(TOP_INCLUDES) $(INCLUDES) $(EXTRA_INCLUDES)
  1069. X       ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(PROTO_DEFINES) $(DEFINES) $(COMPATFLAGS)
  1070. X           CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(ALLDEFINES)
  1071. X        LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES)
  1072. X           LDLIBS = $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
  1073. X        LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS)
  1074. X   LDCOMBINEFLAGS = -X -r
  1075. X
  1076. X        MACROFILE = sun.cf
  1077. X           RM_CMD = $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut
  1078. X
  1079. X    IMAKE_DEFINES =
  1080. X
  1081. X         IRULESRC = $(CONFIGDIR)
  1082. X        IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES)
  1083. X
  1084. X     ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/Imake.rules \
  1085. X            $(IRULESRC)/Project.tmpl $(IRULESRC)/site.def \
  1086. X            $(IRULESRC)/$(MACROFILE) $(EXTRA_ICONFIGFILES)
  1087. X
  1088. X###########################################################################
  1089. X# X Window System Build Parameters
  1090. X# $XConsortium: Project.tmpl,v 1.63 89/12/18 16:46:44 jim Exp $
  1091. X
  1092. X###########################################################################
  1093. X# X Window System make variables; this need to be coordinated with rules
  1094. X# $XConsortium: Project.tmpl,v 1.63 89/12/18 16:46:44 jim Exp $
  1095. X
  1096. X          PATHSEP = /
  1097. X        USRLIBDIR = $(DESTDIR)/lib
  1098. X           BINDIR = $(DESTDIR)/bin/X11
  1099. X          INCROOT = $(DESTDIR)/include
  1100. X     BUILDINCROOT = $(TOP)
  1101. X      BUILDINCDIR = $(BUILDINCROOT)/X11
  1102. X      BUILDINCTOP = ..
  1103. X           INCDIR = $(INCROOT)/X11
  1104. X           ADMDIR = $(DESTDIR)/adm
  1105. X           LIBDIR = $(USRLIBDIR)/X11
  1106. X        CONFIGDIR = $(LIBDIR)/config
  1107. X       LINTLIBDIR = $(USRLIBDIR)/lint
  1108. X
  1109. X          FONTDIR = $(LIBDIR)/fonts
  1110. X         XINITDIR = $(LIBDIR)/xinit
  1111. X           XDMDIR = $(LIBDIR)/xdm
  1112. X           AWMDIR = $(LIBDIR)/awm
  1113. X           TWMDIR = $(LIBDIR)/twm
  1114. X           GWMDIR = $(LIBDIR)/gwm
  1115. X          MANPATH = $(DESTDIR)/man
  1116. X    MANSOURCEPATH = $(MANPATH)/man
  1117. X           MANDIR = $(MANSOURCEPATH)1
  1118. X        LIBMANDIR = $(MANSOURCEPATH)3
  1119. X      XAPPLOADDIR = $(LIBDIR)/app-defaults
  1120. X
  1121. X        SOXLIBREV = 4.2
  1122. X          SOXTREV = 4.0
  1123. X         SOXAWREV = 4.0
  1124. X        SOOLDXREV = 4.0
  1125. X         SOXMUREV = 4.0
  1126. X        SOXEXTREV = 4.0
  1127. X
  1128. X       FONTCFLAGS = -t
  1129. X
  1130. X     INSTAPPFLAGS = $(INSTDATFLAGS)
  1131. X
  1132. X            IMAKE = imake
  1133. X           DEPEND = makedepend
  1134. X              RGB = rgb
  1135. X            FONTC = bdftosnf
  1136. X        MKFONTDIR = mkfontdir
  1137. X        MKDIRHIER = /bin/sh $(BINDIR)/mkdirhier.sh
  1138. X
  1139. X        CONFIGSRC = $(TOP)/config
  1140. X        CLIENTSRC = $(TOP)/clients
  1141. X          DEMOSRC = $(TOP)/demos
  1142. X           LIBSRC = $(TOP)/lib
  1143. X          FONTSRC = $(TOP)/fonts
  1144. X       INCLUDESRC = $(TOP)/X11
  1145. X        SERVERSRC = $(TOP)/server
  1146. X          UTILSRC = $(TOP)/util
  1147. X        SCRIPTSRC = $(UTILSRC)/scripts
  1148. X       EXAMPLESRC = $(TOP)/examples
  1149. X       CONTRIBSRC = $(TOP)/../contrib
  1150. X           DOCSRC = $(TOP)/doc
  1151. X           RGBSRC = $(TOP)/rgb
  1152. X        DEPENDSRC = $(UTILSRC)/makedepend
  1153. X         IMAKESRC = $(CONFIGSRC)
  1154. X         XAUTHSRC = $(LIBSRC)/Xau
  1155. X          XLIBSRC = $(LIBSRC)/X
  1156. X           XMUSRC = $(LIBSRC)/Xmu
  1157. X       TOOLKITSRC = $(LIBSRC)/Xt
  1158. X       AWIDGETSRC = $(LIBSRC)/Xaw
  1159. X       OLDXLIBSRC = $(LIBSRC)/oldX
  1160. X      XDMCPLIBSRC = $(LIBSRC)/Xdmcp
  1161. X      BDFTOSNFSRC = $(FONTSRC)/bdftosnf
  1162. X     MKFONTDIRSRC = $(FONTSRC)/mkfontdir
  1163. X     EXTENSIONSRC = $(TOP)/extensions
  1164. X
  1165. X  DEPEXTENSIONLIB = $(USRLIBDIR)/libXext.a
  1166. X     EXTENSIONLIB =  -lXext
  1167. X
  1168. X          DEPXLIB = $(DEPEXTENSIONLIB)
  1169. X             XLIB = $(EXTENSIONLIB) -lX11
  1170. X
  1171. X      DEPXAUTHLIB = $(USRLIBDIR)/libXau.a
  1172. X         XAUTHLIB =  -lXau
  1173. X
  1174. X        DEPXMULIB =
  1175. X           XMULIB = -lXmu
  1176. X
  1177. X       DEPOLDXLIB =
  1178. X          OLDXLIB = -loldX
  1179. X
  1180. X      DEPXTOOLLIB =
  1181. X         XTOOLLIB = -lXt
  1182. X
  1183. X        DEPXAWLIB =
  1184. X           XAWLIB = -lXaw
  1185. X
  1186. X LINTEXTENSIONLIB = $(USRLIBDIR)/llib-lXext.ln
  1187. X         LINTXLIB = $(USRLIBDIR)/llib-lX11.ln
  1188. X          LINTXMU = $(USRLIBDIR)/llib-lXmu.ln
  1189. X        LINTXTOOL = $(USRLIBDIR)/llib-lXt.ln
  1190. X          LINTXAW = $(USRLIBDIR)/llib-lXaw.ln
  1191. X
  1192. X        XWLIBSRC = $(CONTRIBSRC)/toolkits/Xw
  1193. X        DEPXWLIB = $(USRLIBDIR)/libXw.a
  1194. X        XWLIB =  -lXw
  1195. X
  1196. X          DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)
  1197. X
  1198. X         DEPLIBS1 = $(DEPLIBS)
  1199. X         DEPLIBS2 = $(DEPLIBS)
  1200. X         DEPLIBS3 = $(DEPLIBS)
  1201. X
  1202. X###########################################################################
  1203. X# Imake rules for building libraries, programs, scripts, and data files
  1204. X# rules:  $XConsortium: Imake.rules,v 1.67 89/12/18 17:14:15 jim Exp $
  1205. X
  1206. X###########################################################################
  1207. X# start of Imakefile
  1208. X
  1209. X              CC = gcc
  1210. X            SRCS = main.c menus.c appman.c dirman.c \
  1211. X                   fileman.c parse.c info.c \
  1212. X           Xedw/XedwList.c Xedw/XedwForm.c lexical.l parser.y \
  1213. X           dialogs.c scroll_hack.c strstr.c buttons.c \
  1214. X           display.c listoption.c map.c newfile.c \
  1215. X           quit.c
  1216. X            OBJS = main.o menus.o appman.o dirman.o \
  1217. X                   fileman.o parse.o parser.o lexical.o \
  1218. X            dialogs.o scroll_hack.o strstr.o buttons.o \
  1219. X           display.o listoption.o map.o newfile.o \
  1220. X           quit.o info.o
  1221. X          LDLIBS = $(XAWLIB) $(XMULIB) $(XTOOLLIB) $(XLIB) -ll -ly
  1222. XEXTRA_LOAD_FLAGS = -LXedw  -L/usr/local/X11R4/lib
  1223. X        DEFINES = -I/usr/local/lib/gcc-include
  1224. X          CFLAGS =  -g  -I/usr/local/X11R4/include -I/usr/local/lib/gcc-include
  1225. X          YFLAGS = -d
  1226. X
  1227. Xall:: xdtm
  1228. X
  1229. Xlexical:  lexical.c
  1230. X    $(RM) $@
  1231. X    $(CC) -o $@  lexical.c $(LDOPTIONS) -ll $(LDLIBS) -DDEBUG_LEX $(CFLAGS) $(EXTRA_LOAD_FLAGS)
  1232. X
  1233. Xclean::
  1234. X    $(RM) lexical
  1235. X
  1236. Xparser:  lexical.c parser.c
  1237. X    $(RM) $@
  1238. X    $(CC) -o $@  lexical.c parser.c $(LDOPTIONS) -ll -ly $(LDLIBS) -DDEBUG_YACC $(CFLAGS) $(EXTRA_LOAD_FLAGS)
  1239. X
  1240. Xclean::
  1241. X    $(RM) parser
  1242. X
  1243. Xxdtm:  $(OBJS)  Xedw
  1244. X    $(RM) $@
  1245. X    $(CC) -o $@  $(OBJS) $(LDOPTIONS)  -lXedw $(LDLIBS)  $(EXTRA_LOAD_FLAGS)
  1246. X
  1247. Xclean::
  1248. X    $(RM) xdtm
  1249. X
  1250. XXedw::
  1251. X    @case '${MFLAGS}' in *[ik]*) set +e;; esac; \
  1252. X    for i in  Xedw ;\
  1253. X    do \
  1254. X    (cd $$i ; echo "making" Xedw "in $(CURRENT_DIR)/$$i..."; \
  1255. X    $(MAKE) $(MFLAGS) 'CFLAGS=$(CFLAGS)' all); \
  1256. X    done
  1257. X
  1258. Xdepend::
  1259. X    $(DEPEND) -s "# DO NOT DELETE" -- $(ALLDEFINES) -- $(SRCS)
  1260. X
  1261. Xetags:
  1262. X    etags -t *.h $(SRCS)
  1263. X
  1264. Xclean::
  1265. X    $(RM) lexical.c parser.c parser.h
  1266. X    @(cd Xedw; echo "Making clean in ./Xedw"; \
  1267. X    $(MAKE) clean;)
  1268. X
  1269. Xparser.h parser.c: parser.y
  1270. X    $(YACC) $(YFLAGS) parser.y
  1271. X    $(MV) y.tab.c parser.c
  1272. X    $(MV) y.tab.h parser.h
  1273. X
  1274. Xlexical.o: parser.h
  1275. X
  1276. X###########################################################################
  1277. X# common rules for all Makefiles - do not edit
  1278. X
  1279. Xemptyrule::
  1280. X
  1281. Xclean::
  1282. X    $(RM_CMD) \#*
  1283. X
  1284. XMakefile::
  1285. X    -@if [ -f Makefile ]; then \
  1286. X    echo "    $(RM) Makefile.bak; $(MV) Makefile Makefile.bak"; \
  1287. X    $(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \
  1288. X    else exit 0; fi
  1289. X    $(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)
  1290. X
  1291. Xtags::
  1292. X    $(TAGS) -w *.[ch]
  1293. X    $(TAGS) -xw *.[ch] > TAGS
  1294. X
  1295. X###########################################################################
  1296. X# empty rules for directories that do not have SUBDIRS - do not edit
  1297. X
  1298. Xinstall::
  1299. X    @echo "install in $(CURRENT_DIR) done"
  1300. X
  1301. Xinstall.man::
  1302. X    @echo "install.man in $(CURRENT_DIR) done"
  1303. X
  1304. XMakefiles::
  1305. X
  1306. Xincludes::
  1307. X
  1308. X###########################################################################
  1309. X# dependencies generated by makedepend
  1310. X
  1311. SHAR_EOF
  1312. chmod 0644 code/Makefile || echo "restore of code/Makefile fails"
  1313. echo "x - extracting code/help (Text)"
  1314. sed 's/^X//' << 'SHAR_EOF' > code/help &&
  1315. XThis is the X Desktop Manager Help file.
  1316. X
  1317. X<None as yet, email eddyg@cogs.sussex.ac.uk for the finished version
  1318. X of this file after the 26th April 1991>
  1319. X
  1320. SHAR_EOF
  1321. chmod 0644 code/help || echo "restore of code/help fails"
  1322. echo "x - extracting code/Xdtm (Text)"
  1323. sed 's/^X//' << 'SHAR_EOF' > code/Xdtm &&
  1324. X! menus
  1325. X*font: helvB14
  1326. X*pathManager*cursor: left_ptr
  1327. X*menuBar*cursor: left_ptr
  1328. X*buttonForm*cursor: left_ptr
  1329. X*listoptionsettings.font: courB12
  1330. XXdtm.mode: icons
  1331. XXdtm.viewHeight: 30
  1332. SHAR_EOF
  1333. chmod 0644 code/Xdtm || echo "restore of code/Xdtm fails"
  1334. echo "x - extracting icons/eddy/ccode.icon (Text)"
  1335. sed 's/^X//' << 'SHAR_EOF' > icons/eddy/ccode.icon &&
  1336. X#define ccode_width 32
  1337. X#define ccode_height 32
  1338. Xstatic char ccode_bits[] = {
  1339. X   0xf0, 0xff, 0x7f, 0x00, 0x10, 0x00, 0xc0, 0x00, 0x10, 0xe0, 0x41, 0x01,
  1340. X   0x10, 0xf8, 0x43, 0x02, 0x10, 0x3c, 0x47, 0x04, 0x10, 0x1c, 0xc6, 0x0f,
  1341. X   0x10, 0x1e, 0x00, 0x08, 0x10, 0x0e, 0x00, 0x08, 0x10, 0x0e, 0x00, 0x08,
  1342. X   0x10, 0x0e, 0x00, 0x08, 0x10, 0x0e, 0x00, 0x08, 0x10, 0x1e, 0x00, 0x08,
  1343. X   0x10, 0x1c, 0x06, 0x08, 0x10, 0x3c, 0x07, 0x08, 0x10, 0xf8, 0x03, 0x08,
  1344. X   0xd0, 0xe0, 0x01, 0x08, 0x10, 0x00, 0x00, 0x08, 0x90, 0x05, 0x00, 0x08,
  1345. X   0x10, 0x00, 0x00, 0x08, 0x90, 0xdf, 0x0a, 0x08, 0x10, 0x00, 0x00, 0x08,
  1346. X   0x10, 0xb7, 0x03, 0x08, 0x10, 0x00, 0x00, 0x08, 0x90, 0xbd, 0xb7, 0x08,
  1347. X   0x10, 0x00, 0x00, 0x08, 0x10, 0x6c, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08,
  1348. X   0x90, 0xdd, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08, 0xd0, 0x00, 0x00, 0x08,
  1349. X   0x10, 0x00, 0x00, 0x08, 0xf0, 0xff, 0xff, 0x0f};
  1350. SHAR_EOF
  1351. chmod 0644 icons/eddy/ccode.icon || echo "restore of icons/eddy/ccode.icon fails"
  1352. echo "x - extracting icons/eddy/core.icon (Text)"
  1353. sed 's/^X//' << 'SHAR_EOF' > icons/eddy/core.icon &&
  1354. X#define core_width 32
  1355. X#define core_height 32
  1356. Xstatic char core_bits[] = {
  1357. X   0xf0, 0xff, 0x7f, 0x00, 0x10, 0x00, 0xc0, 0x00, 0x10, 0x00, 0x40, 0x01,
  1358. X   0x10, 0x00, 0x40, 0x02, 0x10, 0x10, 0x40, 0x04, 0x10, 0x30, 0xc2, 0x0f,
  1359. X   0x10, 0x50, 0x03, 0x08, 0x10, 0xb7, 0x02, 0x08, 0x10, 0x9a, 0x02, 0x08,
  1360. X   0x10, 0x44, 0x7a, 0x08, 0x10, 0x68, 0x46, 0x08, 0x10, 0x50, 0x21, 0x08,
  1361. X   0x10, 0x08, 0x16, 0x08, 0x10, 0xb4, 0x09, 0x08, 0x10, 0x2c, 0x04, 0x08,
  1362. X   0x10, 0x90, 0x08, 0x08, 0x10, 0x50, 0x09, 0x08, 0x10, 0x28, 0x16, 0x08,
  1363. X   0x10, 0x18, 0x38, 0x08, 0x10, 0x08, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08,
  1364. X   0x10, 0x00, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08, 0x10, 0x53, 0x5d, 0x09,
  1365. X   0x90, 0x54, 0x49, 0x09, 0x10, 0x71, 0x49, 0x09, 0x10, 0x52, 0x49, 0x09,
  1366. X   0x90, 0x54, 0x09, 0x08, 0x10, 0x53, 0x49, 0x09, 0x10, 0x00, 0x00, 0x08,
  1367. X   0x10, 0x00, 0x00, 0x08, 0xf0, 0xff, 0xff, 0x0f};
  1368. SHAR_EOF
  1369. chmod 0644 icons/eddy/core.icon || echo "restore of icons/eddy/core.icon fails"
  1370. echo "x - extracting icons/eddy/dotdot.icon (Text)"
  1371. sed 's/^X//' << 'SHAR_EOF' > icons/eddy/dotdot.icon &&
  1372. X#define dotdot_width 32
  1373. X#define dotdot_height 32
  1374. Xstatic char dotdot_bits[] = {
  1375. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1376. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1377. X   0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x02, 0x08,
  1378. X   0xfe, 0xff, 0xff, 0x7f, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40,
  1379. X   0x02, 0x80, 0x00, 0x40, 0x02, 0xc0, 0x01, 0x40, 0x02, 0xe0, 0x03, 0x40,
  1380. X   0x02, 0xf0, 0x07, 0x40, 0x02, 0xf8, 0x0f, 0x40, 0x02, 0xfc, 0x1f, 0x40,
  1381. X   0x02, 0xc0, 0x01, 0x40, 0x02, 0xc0, 0x01, 0x40, 0x02, 0xc0, 0x01, 0x40,
  1382. X   0x02, 0xc0, 0x01, 0x40, 0x02, 0xc0, 0x01, 0x40, 0x02, 0xc0, 0x01, 0x40,
  1383. X   0x02, 0xc0, 0x01, 0x40, 0x02, 0xc0, 0x01, 0x40, 0x02, 0xc0, 0x01, 0x40,
  1384. X   0x02, 0xc0, 0x01, 0x40, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40,
  1385. X   0xfe, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00};
  1386. SHAR_EOF
  1387. chmod 0644 icons/eddy/dotdot.icon || echo "restore of icons/eddy/dotdot.icon fails"
  1388. echo "x - extracting icons/eddy/elisp.icon (Text)"
  1389. sed 's/^X//' << 'SHAR_EOF' > icons/eddy/elisp.icon &&
  1390. X#define elisp_width 32
  1391. X#define elisp_height 32
  1392. Xstatic char elisp_bits[] = {
  1393. X   0xf0, 0xff, 0x7f, 0x00, 0x10, 0x00, 0xc0, 0x00, 0x50, 0x64, 0x46, 0x01,
  1394. X   0x50, 0x94, 0x4a, 0x02, 0x50, 0x24, 0x4a, 0x04, 0x50, 0x44, 0xc6, 0x0f,
  1395. X   0x50, 0x94, 0x02, 0x08, 0xd0, 0x65, 0x02, 0x08, 0x10, 0x00, 0x00, 0x08,
  1396. X   0x10, 0x00, 0x00, 0x08, 0xd0, 0x17, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08,
  1397. X   0xd0, 0x0f, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08, 0x10, 0xbb, 0x00, 0x08,
  1398. X   0x10, 0x00, 0x00, 0x08, 0x10, 0xb6, 0x01, 0x08, 0x10, 0x00, 0x00, 0x08,
  1399. X   0x10, 0x37, 0x03, 0x08, 0x10, 0x00, 0x00, 0x08, 0x10, 0xde, 0x02, 0x08,
  1400. X   0x10, 0x00, 0x00, 0x08, 0x10, 0xdc, 0x04, 0x08, 0x10, 0x00, 0x00, 0x08,
  1401. X   0x10, 0xef, 0x06, 0x08, 0x10, 0x00, 0x00, 0x08, 0x90, 0x07, 0x00, 0x08,
  1402. X   0x10, 0x00, 0x00, 0x08, 0xd0, 0x7b, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08,
  1403. X   0x10, 0x00, 0x00, 0x08, 0xf0, 0xff, 0xff, 0x0f};
  1404. SHAR_EOF
  1405. chmod 0644 icons/eddy/elisp.icon || echo "restore of icons/eddy/elisp.icon fails"
  1406. echo "x - extracting icons/eddy/elispc.icon (Text)"
  1407. sed 's/^X//' << 'SHAR_EOF' > icons/eddy/elispc.icon &&
  1408. X#define elisp_width 32
  1409. X#define elisp_height 32
  1410. Xstatic char elisp_bits[] = {
  1411. X   0xf0, 0xff, 0x7f, 0x00, 0x10, 0x00, 0xc0, 0x00, 0x50, 0x64, 0x46, 0x01,
  1412. X   0x50, 0x94, 0x4a, 0x02, 0x50, 0x24, 0x4a, 0x04, 0x50, 0x44, 0xc6, 0x0f,
  1413. X   0x50, 0x94, 0x02, 0x08, 0xd0, 0x65, 0x02, 0x08, 0x10, 0x00, 0x00, 0x08,
  1414. X   0x10, 0x00, 0x00, 0x08, 0xd0, 0x17, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08,
  1415. X   0xd0, 0x0f, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08, 0x10, 0xbb, 0x00, 0x08,
  1416. X   0x10, 0x00, 0x00, 0x08, 0x10, 0xb6, 0x01, 0x08, 0x10, 0x00, 0x00, 0x08,
  1417. X   0x10, 0x37, 0x03, 0x08, 0x10, 0x00, 0x00, 0x08, 0x10, 0xde, 0x02, 0x08,
  1418. X   0x10, 0x00, 0x00, 0x08, 0x10, 0xdc, 0x04, 0x08, 0x10, 0x00, 0x00, 0x08,
  1419. X   0x10, 0xef, 0x06, 0x08, 0x10, 0x00, 0x00, 0x08, 0x90, 0x07, 0x00, 0x08,
  1420. X   0x10, 0x00, 0x00, 0x08, 0xd0, 0x7b, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08,
  1421. X   0x10, 0x00, 0x00, 0x08, 0xf0, 0xff, 0xff, 0x0f};
  1422. SHAR_EOF
  1423. chmod 0644 icons/eddy/elispc.icon || echo "restore of icons/eddy/elispc.icon fails"
  1424. echo "x - extracting icons/eddy/file.icon (Text)"
  1425. sed 's/^X//' << 'SHAR_EOF' > icons/eddy/file.icon &&
  1426. X#define file_width 32
  1427. X#define file_height 32
  1428. Xstatic char file_bits[] = {
  1429. X   0xf0, 0xff, 0x7f, 0x00, 0x10, 0x00, 0xc0, 0x00, 0x10, 0x00, 0x40, 0x01,
  1430. X   0x10, 0x00, 0x40, 0x02, 0x10, 0x00, 0x40, 0x04, 0x10, 0x00, 0xc0, 0x0f,
  1431. X   0x10, 0x00, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08,
  1432. X   0x10, 0x00, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08,
  1433. X   0x10, 0x00, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08,
  1434. X   0x10, 0x00, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08,
  1435. X   0x10, 0x00, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08,
  1436. X   0x10, 0x00, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08,
  1437. X   0x10, 0x00, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08,
  1438. X   0x10, 0x00, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08,
  1439. X   0x10, 0x00, 0x00, 0x08, 0xf0, 0xff, 0xff, 0x0f};
  1440. SHAR_EOF
  1441. chmod 0644 icons/eddy/file.icon || echo "restore of icons/eddy/file.icon fails"
  1442. echo "x - extracting icons/eddy/folder.icon (Text)"
  1443. sed 's/^X//' << 'SHAR_EOF' > icons/eddy/folder.icon &&
  1444. X#define folder_width 32
  1445. X#define folder_height 32
  1446. Xstatic char folder_bits[] = {
  1447. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1448. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1449. X   0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x02, 0x08,
  1450. X   0xfe, 0xff, 0xff, 0x7f, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40,
  1451. X   0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40,
  1452. X   0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40,
  1453. X   0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40,
  1454. X   0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40,
  1455. X   0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40,
  1456. X   0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40,
  1457. X   0xfe, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00};
  1458. SHAR_EOF
  1459. chmod 0644 icons/eddy/folder.icon || echo "restore of icons/eddy/folder.icon fails"
  1460. echo "x - extracting icons/eddy/hcode.icon (Text)"
  1461. sed 's/^X//' << 'SHAR_EOF' > icons/eddy/hcode.icon &&
  1462. X#define hcode_width 32
  1463. X#define hcode_height 32
  1464. Xstatic char hcode_bits[] = {
  1465. X   0xf0, 0xff, 0x7f, 0x00, 0x10, 0x00, 0xc0, 0x00, 0x10, 0x0f, 0x40, 0x01,
  1466. X   0x10, 0x0e, 0x40, 0x02, 0x10, 0x0e, 0x40, 0x04, 0x10, 0x0e, 0xc0, 0x0f,
  1467. X   0x10, 0xee, 0x01, 0x08, 0x10, 0xfe, 0x07, 0x08, 0x10, 0x1e, 0x07, 0x08,
  1468. X   0x10, 0x0e, 0x0e, 0x08, 0x10, 0x0e, 0x0e, 0x08, 0x10, 0x0e, 0x0e, 0x08,
  1469. X   0x10, 0x0e, 0x0e, 0x08, 0x10, 0x0e, 0x0e, 0x08, 0x10, 0x1f, 0x1f, 0x08,
  1470. X   0x10, 0x00, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08, 0xd0, 0x00, 0x00, 0x08,
  1471. X   0x10, 0x00, 0x00, 0x08, 0x90, 0xdf, 0x0a, 0x08, 0x10, 0x00, 0x00, 0x08,
  1472. X   0x10, 0xb7, 0x03, 0x08, 0x10, 0x00, 0x00, 0x08, 0x90, 0xbd, 0xb7, 0x08,
  1473. X   0x10, 0x00, 0x00, 0x08, 0x10, 0x6c, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08,
  1474. X   0x90, 0xdd, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08, 0xd0, 0x00, 0x00, 0x08,
  1475. X   0x10, 0x00, 0x00, 0x08, 0xf0, 0xff, 0xff, 0x0f};
  1476. SHAR_EOF
  1477. chmod 0644 icons/eddy/hcode.icon || echo "restore of icons/eddy/hcode.icon fails"
  1478. echo "x - extracting icons/eddy/icon.icon (Text)"
  1479. sed 's/^X//' << 'SHAR_EOF' > icons/eddy/icon.icon &&
  1480. X#define icon_width 32
  1481. X#define icon_height 32
  1482. Xstatic char icon_bits[] = {
  1483. X   0xf0, 0xff, 0x7f, 0x00, 0x10, 0x00, 0xc0, 0x00, 0x10, 0x00, 0x40, 0x01,
  1484. X   0x10, 0x00, 0x40, 0x02, 0x10, 0x00, 0x40, 0x04, 0x10, 0x00, 0xc0, 0x0f,
  1485. X   0x10, 0xfe, 0x0f, 0x08, 0x10, 0x02, 0x18, 0x08, 0x10, 0xc2, 0x29, 0x08,
  1486. X   0x10, 0x82, 0x78, 0x08, 0x10, 0x82, 0x40, 0x08, 0x10, 0xc2, 0x41, 0x08,
  1487. X   0x10, 0x02, 0x40, 0x08, 0x10, 0xc2, 0x41, 0x08, 0x10, 0x42, 0x40, 0x08,
  1488. X   0x10, 0x42, 0x40, 0x08, 0x10, 0xc2, 0x41, 0x08, 0x10, 0x02, 0x40, 0x08,
  1489. X   0x10, 0xc2, 0x41, 0x08, 0x10, 0x42, 0x41, 0x08, 0x10, 0x42, 0x41, 0x08,
  1490. X   0x10, 0xc2, 0x41, 0x08, 0x10, 0x02, 0x40, 0x08, 0x10, 0x42, 0x41, 0x08,
  1491. X   0x10, 0xc2, 0x41, 0x08, 0x10, 0xc2, 0x41, 0x08, 0x10, 0x42, 0x41, 0x08,
  1492. X   0x10, 0x02, 0x40, 0x08, 0x10, 0xfe, 0x7f, 0x08, 0x10, 0x00, 0x00, 0x08,
  1493. X   0x10, 0x00, 0x00, 0x08, 0xf0, 0xff, 0xff, 0x0f};
  1494. SHAR_EOF
  1495. chmod 0644 icons/eddy/icon.icon || echo "restore of icons/eddy/icon.icon fails"
  1496. echo "x - extracting icons/eddy/lcode.icon (Text)"
  1497. sed 's/^X//' << 'SHAR_EOF' > icons/eddy/lcode.icon &&
  1498. X#define lcode_width 32
  1499. X#define lcode_height 32
  1500. Xstatic char lcode_bits[] = {
  1501. X   0xf0, 0xff, 0x7f, 0x00, 0x10, 0x00, 0xc0, 0x00, 0x10, 0xf0, 0x40, 0x01,
  1502. X   0x10, 0xe0, 0x40, 0x02, 0x10, 0xe0, 0x40, 0x04, 0x10, 0xe0, 0xc0, 0x0f,
  1503. X   0x10, 0xe0, 0x00, 0x08, 0x10, 0xe0, 0x00, 0x08, 0x10, 0xe0, 0x00, 0x08,
  1504. X   0x10, 0xe0, 0x00, 0x08, 0x10, 0xe0, 0x00, 0x08, 0x10, 0xe0, 0x00, 0x08,
  1505. X   0x10, 0xe0, 0x00, 0x08, 0x10, 0xe0, 0x00, 0x08, 0x10, 0xf0, 0x01, 0x08,
  1506. X   0xd0, 0x00, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08, 0x90, 0x05, 0x00, 0x08,
  1507. X   0x10, 0x00, 0x00, 0x08, 0x90, 0xdf, 0x0a, 0x08, 0x10, 0x00, 0x00, 0x08,
  1508. X   0x10, 0xb7, 0x03, 0x08, 0x10, 0x00, 0x00, 0x08, 0x90, 0xbd, 0xb7, 0x08,
  1509. X   0x10, 0x00, 0x00, 0x08, 0x10, 0x6c, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08,
  1510. X   0x90, 0xdd, 0x00, 0x08, 0x10, 0x00, 0x00, 0x08, 0xd0, 0x00, 0x00, 0x08,
  1511. X   0x10, 0x00, 0x00, 0x08, 0xf0, 0xff, 0xff, 0x0f};
  1512. SHAR_EOF
  1513. chmod 0644 icons/eddy/lcode.icon || echo "restore of icons/eddy/lcode.icon fails"
  1514. echo "x - extracting icons/eddy/lib.icon (Text)"
  1515. sed 's/^X//' << 'SHAR_EOF' > icons/eddy/lib.icon &&
  1516. X#define lib_width 32
  1517. X#define lib_height 32
  1518. Xstatic char lib_bits[] = {
  1519. X   0xfe, 0xff, 0xff, 0x7f, 0x02, 0x00, 0x00, 0x40, 0x22, 0xb3, 0xaa, 0x46,
  1520. X   0x52, 0x95, 0xab, 0x46, 0x72, 0x93, 0xaa, 0x42, 0x52, 0xb5, 0x4a, 0x46,
  1521. X   0x02, 0x00, 0x00, 0x40, 0xf2, 0x7d, 0xdf, 0x47, 0x12, 0x45, 0x51, 0x44,
  1522. X   0x12, 0x45, 0x51, 0x44, 0x12, 0x45, 0x51, 0x44, 0x12, 0x45, 0x51, 0x44,
  1523. X   0x12, 0x45, 0x51, 0x44, 0xf2, 0x7d, 0xdf, 0x47, 0x02, 0x00, 0x00, 0x40,
  1524. X   0xf2, 0x7d, 0xdf, 0x47, 0x12, 0x45, 0x51, 0x44, 0x12, 0x45, 0x51, 0x44,
  1525. X   0x12, 0x45, 0x51, 0x44, 0x12, 0x45, 0x51, 0x44, 0x12, 0x45, 0x51, 0x44,
  1526. X   0xf2, 0x7d, 0xdf, 0x47, 0x02, 0x00, 0x00, 0x40, 0xf2, 0x7d, 0xdf, 0x47,
  1527. SHAR_EOF
  1528. echo "End of part 4"
  1529. echo "File icons/eddy/lib.icon is continued in part 5"
  1530. echo "5" > s2_seq_.tmp
  1531. exit 0
  1532.