home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 2: PC / frozenfish_august_1995.bin / bbs / d01xx / d0128.lha / MRBackup / PathRequest.c < prev    next >
C/C++ Source or Header  |  1988-01-02  |  18KB  |  460 lines

  1. /* MRBackup Pathname Specifications "Requester"
  2.  * Filename:        PathRequest.c
  3.  * History:            (most recent change first)
  4.  *
  5.  * 09/20/87 -MRR- V1.3: The pathname gadgets were formerly attached to
  6.  *                a requester.  I have removed the requester stuff, since
  7.  *                it did nothing to enhance the functionality of the
  8.  *                pathname specification window.
  9.  */
  10. /**********************************************************************
  11.  *                    Gadget Structure Definitions
  12.  * 
  13.  * Some of the following structures were defined using the Gadget Editor
  14.  * created by the Programmer's Network.
  15.  * The credits for the Gadget Editor are:
  16.  * 
  17.  *     John Draper    - Initial design, coordination, and integration.
  18.  *     Ray Larson     - Images and Intuitext. 
  19.  *     Brent Southard - Saving and restoring gadgets in binary form.
  20.  *     Dave Milligan  - Gadget Editor Main menu.
  21.  * 
  22.  * 
  23.  **********************************************************************/
  24.  
  25. /*  The header files needed for gadget definitions  */ 
  26. #include <exec/memory.h>
  27. #include <intuition/intuition.h> 
  28. #include <intuition/intuitionbase.h> 
  29. #include <libraries/dosextens.h> 
  30. #include <graphics/gfxbase.h> 
  31. #include <graphics/gfx.h> 
  32. #include <graphics/display.h> 
  33. #include <graphics/text.h> 
  34. #include <functions.h>
  35. #include <ctype.h> 
  36.  
  37. #include "gadget.h"
  38.  
  39. #define PATHGADTYPE STRGADGET
  40.  
  41. /**********************************************************************
  42.  *  Text attribute structures used in rendering IntuiTexts
  43.  **********************************************************************/
  44.  
  45. /* A note to the fastidious: These things are duplicated in the menu
  46.  * package.  Some ambitious soul should consolidate them into a single
  47.  * definition.
  48.  */
  49.  
  50. char def_font[] ="topaz.font";
  51.  
  52. struct TextAttr TxtAt_Plain = { (UBYTE *)def_font, 8,
  53.         FS_NORMAL, FPF_ROMFONT};
  54.  
  55. struct TextAttr TxtAt_BIU = {(UBYTE *)def_font, 8, 
  56.         FSF_BOLD | FSF_ITALIC | FSF_UNDERLINED, FPF_ROMFONT};
  57.  
  58. struct TextAttr TxtAt_BU = {(UBYTE *)def_font, 8, 
  59.         FSF_BOLD | FSF_UNDERLINED, FPF_ROMFONT};
  60.  
  61. struct TextAttr TxtAt_BI = {(UBYTE *)def_font, 8, 
  62.        FSF_BOLD | FSF_ITALIC, FPF_ROMFONT};
  63.  
  64. struct TextAttr TxtAt_B ={(UBYTE *)def_font, 8, 
  65.        FSF_BOLD, FPF_ROMFONT};
  66.  
  67. struct TextAttr TxtAt_IU ={(UBYTE *)def_font, 8,
  68.        FSF_ITALIC | FSF_UNDERLINED, FPF_ROMFONT};
  69.  
  70. struct TextAttr TxtAt_I ={(UBYTE *)def_font, 8, 
  71.        FSF_ITALIC, FPF_ROMFONT};
  72.  
  73. struct TextAttr TxtAt_U ={(UBYTE *)def_font, 8, 
  74.        FSF_UNDERLINED, FPF_ROMFONT};
  75.  
  76. /* STOP gadget definition */
  77.  
  78. /***************************************************************/
  79. /*  The following data structure contains the image data */
  80. /***************************************************************/
  81. USHORT StopGadImg_dat[]=  {
  82.   0x0000,
  83.   0x0000,  0x0000,  0x0000,  0x0000,  0x0020,  0x0000,  0x0000,  0x0000,
  84.   0x0000,  0x0000,  0x0020,  0x0000,  0x00ff,  0xffff,  0xffe0,  0x0000,
  85.   0x0006,  0x0000,  0x03ff,  0xffff,  0xfff8,  0x0000,  0x0006,  0x0000,
  86.   0x07ff,  0xffff,  0xfffc,  0x0000,  0x0027,  0x0000,  0x1fff,  0xffff,
  87.   0xffff,  0x0000,  0x0021,  0x0000,  0x3fff,  0xffff,  0xffff,  0x8000,
  88.   0x0000,  0x0000,  0xffff,  0xffff,  0xffff,  0xe000,  0x0026,  0x0001,
  89.   0xffff,  0xffff,  0xffff,  0xf000,  0x0000,  0x0007,  0xffff,  0xffff,
  90.   0xffff,  0xfc00,  0x0020,  0x000f,  0xffff,  0xffff,  0xffff,  0xfe00,
  91.   0x0038,  0x000f,  0xffff,  0xffff,  0xffff,  0xfe00,  0x0010,  0x000f,
  92.   0xffff,  0xffff,  0xffff,  0xfe00,  0x0000,  0x000f,  0xffff,  0xffff,
  93.   0xffff,  0xfe00,  0x0000,  0x000f,  0xffff,  0xffff,  0xffff,  0xfe00,
  94.   0x0000,  0x000f,  0xffff,  0xffff,  0xffff,  0xfe00,  0x0000,  0x000f,
  95.   0xffff,  0xffff,  0xffff,  0xfe00,  0x0000,  0x000f,  0xffff,  0xffff,
  96.   0xffff,  0xfe00,  0x0000,  0x000f,  0xffff,  0xffff,  0xffff,  0xfe00,
  97.   0x0036,  0x000f,  0xffff,  0xffff,  0xffff,  0xfe00,  0x0020,  0x000f,
  98.   0xffff,  0xffff,  0xffff,  0xfe00,  0x0006,  0x000f,  0xffff,  0xffff,
  99.   0xffff,  0xfe00,  0x003c,  0x000f,  0xffff,  0xffff,  0xffff,  0xfe00,
  100.   0x0006,  0x0007,  0xffff,  0xffff,  0xffff,  0xfc00,  0x0031,  0x0001,
  101.   0xffff,  0xffff,  0xffff,  0xf000,  0x0000,  0x0000,  0xffff,  0xffff,
  102.   0xffff,  0xe000,  0x0000,  0x0000,  0x3fff,  0xffff,  0xffff,  0x8000,
  103.   0x000f,  0x0000,  0x1fff,  0xffff,  0xffff,  0x0000,  0x0000,  0x0000,
  104.   0x07ff,  0xffff,  0xfffc,  0x0000,  0x0000,  0x0000,  0x03ff,  0xffff,
  105.   0xfff8,  0x0000,  0x0000,  0x0000,  0x00ff,  0xffff,  0xffe0,  0x0000,
  106.   0x0000,  0x0000,  0x0000,  0x0000,  0x0000,  0x0000,  0x0000,  0x0000,
  107.   0x0000,  0x0000,  0x0000,  0x0000,  0x0000,  0x0000,  0x0000,  0x0000,
  108.   0x0000,  0x0000,  0x0020,  0x0000,  0x0000,  0x0000,  0x0000,  0x0000,
  109.   0x0006,  0x0000,  0x0000,  0x0000,  0x0000,  0x0000,  0x0000,  0x0000,
  110.   0x0000,  0x0000,  0x0000,  0x0000,  0x0007,  0x0000,  0x0000,  0x0000,
  111.   0x0000,  0x0000,  0x0000,  0x0000,  0x0000,  0x0000,  0x0000,  0x0000,
  112.   0x0006,  0x0000,  0x0000,  0x0000,  0x0000,  0x0000,  0x0000,  0x0000,
  113.   0x0000,  0x0000,  0x0000,  0x0000,  0x0001,  0x0000,  0x00ff,  0xffff,
  114.   0xffe0,  0x0000,  0x0000,  0x0000,  0x03ff,  0xffff,  0xfff8,  0x0000,
  115.   0x0000,  0x0000,  0x07ff,  0xffff,  0xfffc,  0x0000,  0x0000,  0x0000,
  116.   0x1fff,  0xffff,  0xffff,  0x0000,  0x0020,  0x0000,  0x3fff,  0xffff,
  117.   0xffff,  0x8000,  0x0000,  0x0000,  0xffff,  0xffff,  0xffff,  0xe000,
  118.   0x003f,  0x0001,  0xffff,  0xffff,  0xffff,  0xf000,  0x0006,  0x0007,
  119.   0xffff,  0xffff,  0xffff,  0xfc00,  0x0001,  0x0007,  0xffff,  0xffff,
  120.   0xffff,  0xfc00,  0x0026,  0x0007,  0xffff,  0xffff,  0xffff,  0xfc00,
  121.   0x0000,  0x0007,  0xffff,  0xffff,  0xffff,  0xfc00,  0x0001,  0x0007,
  122.   0xffff,  0xffff,  0xffff,  0xfc00,  0x0006,  0x0007,  0xffff,  0xffff,
  123.   0xffff,  0xfc00,  0x0006,  0x0007,  0xffff,  0xffff,  0xffff,  0xfc00,
  124.   0x0003,  0x0007,  0xffff,  0xffff,  0xffff,  0xfc00,  0x0001,  0x0007,
  125.   0xffff,  0xffff,  0xffff,  0xfc00,  0x0000,  0x0007,  0xffff,  0xffff,
  126.   0xffff,  0xfc00,  0x0024,  0x0007,  0xffff,  0xffff,  0xffff,  0xfc00,
  127.   0x0000,  0x0007,  0xffff,  0xffff,  0xffff,  0xfc00,  0x0006,  0x0007,
  128.   0xffff,  0xffff,  0xffff,  0xfc00,  0x0000,  0x0001,  0xffff,  0xffff,
  129.   0xffff,  0xf000,  0x0001,  0x0000,  0xffff,  0xffff,  0xffff,  0xe000,
  130.   0x0000,  0x0000,  0x3fff,  0xffff,  0xffff,  0x8000,  0x0001,  0x0000,
  131.   0x1fff,  0xffff,  0xffff,  0x0000,  0x0000,  0x0000,  0x07ff,  0xffff,
  132.   0xfffc,  0x0000,  0x0000,  0x0000,  0x03ff,  0xffff,  0xfff8,  0x0000,
  133.   0x0000,  0x0000,  0x00ff,  0xffff,  0xffe0,  0x0000,  0x0000,  0x0000,
  134.   0x0000,  0x0000,  0x0000,  0x0000,  0x003f,  0x0000,  0x0000,  0x0000,
  135.   0x0000,  0x0000,  0x0000,  0x0000,  0x0000,  0x0000,  0x0000,  0x0000,
  136.   0x0000,  0x0000,  0x0000,  0x0000,  0x0000,  0x0000,  0x0000,  0x0000,
  137.   0x0000,  0x0000,  0x0000,  0x0000,  0x0007,  0x0000,  0x0000,  0x0000,
  138.   0x0000,  0x0000,  0x0000,  0x0000,  0x0000,  0x0000,  0x0000,  0x0000,
  139.   0x0006,  0x0000,  0x0000,  0x0000,  0x0000,  0x0000,  0x0000,  0x0002
  140.      };
  141.  
  142. /***************************************************************/
  143. /*  The following data structure defines the image  */
  144. /***************************************************************/
  145.  
  146. struct Image StopGadImg =  {
  147.        0, 0,                         /* Left, Top */
  148.        90, 38,                         /* Width, Height */
  149.        2,                             /* Depth */ 
  150.        (USHORT *)&StopGadImg_dat,     /* ImageData */
  151.        0xff,                          /* PlanePick */
  152.        0x00,                          /* PlaneOnOff */
  153.        NULL                         /* Next Image */
  154.       }; 
  155.  
  156. /**********************************************************************
  157.  *  IntuiTexts for the StopGad gadget.
  158.  **********************************************************************/
  159.  
  160. struct IntuiText StopGad_Text_0 = {
  161.    0, 3,                     /* FrontPen, BackPen */
  162.    JAM2,                       /* DrawMode */
  163.    26, 13,                     /* LeftEdge, TopEdge */
  164.    &TxtAt_B,                 /* ITextFont Pointer - bold */ 
  165.    /* The IText */
  166.    (UBYTE *)"STOP",
  167.    NULL
  168.  };
  169.  
  170.  
  171.  
  172. /**********************************************************************
  173.  *  Gadget Structure definition for the StopGad gadget.
  174.  **********************************************************************/
  175.  
  176. struct Gadget StopGad = {
  177.   NULL,                     /* NextGadget pointer */
  178.   76, 30,                    /* LeftEdge, TopEdge  */
  179.   90, 38,                    /* Width, Height      */
  180.   GADGIMAGE,                /* Gadget Flags       */
  181.   RELVERIFY,                /* Activation Flags   */
  182.   BOOLGADGET,                /* GadgetType         */
  183.   (APTR)&StopGadImg,        /* GadgetRender       */
  184.   NULL,                        /* SelectRender       */
  185.   &StopGad_Text_0,          /* GadgetText         */
  186.   0x0,                        /* MutualExclude      */
  187.   NULL,                       /* SpecialInfo        */
  188.   STOPGAD,                    /* GadgetID           */
  189.   0x0                         /* UserData Pointer   */
  190. };
  191.  
  192. #define REQUESTWIDTH    260    
  193. #define REQUESTHEIGHT    70
  194.  
  195. /* New window structure */
  196.  
  197. static struct NewWindow pathreqnw = {
  198.     640 - REQUESTWIDTH - 8,            /* LeftEdge */
  199.     12,                                /* TopEdge */
  200.     REQUESTWIDTH + 4,                /* Width */
  201.     REQUESTHEIGHT + 10,                /* Height */
  202.     0,                                /* DetailPen */
  203.     1,                                /* BlockPen */
  204.     GADGETDOWN | GADGETUP ,         /* IDCMP Flags */
  205.  
  206.     WINDOWDEPTH | WINDOWDRAG | ACTIVATE ,/* Flags */
  207.     NULL,                            /* First gadget */
  208.     NULL,                            /* Checkmark */
  209.     (UBYTE *)"Pathname Specifications",    /* Window title */
  210.     NULL,                            /* No custom streen */
  211.     NULL,                            /* Not a super bitmap window */
  212.     REQUESTWIDTH+4,                    /* MinWidth */
  213.     REQUESTHEIGHT + 10,                /* MinHeight */
  214.     640,                            /* MaxWidth */
  215.     200,                            /* MaxHeight */
  216.     WBENCHSCREEN
  217. };
  218.  
  219. /**********************************************************************
  220.  *  IntuiTexts for the excludepat gadget.
  221.  **********************************************************************/
  222.  
  223. struct IntuiText excludepath_Text_0 = {
  224.    3, 0,                         /* FrontPen, BackPen */
  225.    JAM2,                           /* DrawMode */
  226.    -112, 0,                     /* LeftEdge, TopEdge */
  227.    &TxtAt_Plain,                 /* ITextFont Pointer */ 
  228.    (UBYTE *)"Exclude Path:",    /* The IText */
  229.    NULL
  230.  };
  231.  
  232.  
  233.  
  234. /**********************************************************************
  235.  *  String information for the excludepat string gadget.
  236.  **********************************************************************/
  237.  
  238. static UBYTE excludepath_sbuf_1[81];
  239. static UBYTE excludepath_ubuf_1[81];
  240.  
  241. struct StringInfo excludepath_txstr_1 = {
  242.   excludepath_sbuf_1,             /* Buffer */
  243.   excludepath_ubuf_1,             /* UndoBuffer  */
  244.   0, 80, 0,                      /* BufferPos, MaxChars, DispPos */
  245.   0, 0,                          /* UndoPos, NumChars */
  246.   0, 0, 0,                      /* DispCount, CLeft, CTop */
  247.   0x0, 0,                       /* LayerPtr, LongInt */
  248.   0x0                            /* AltKeyMap */
  249. };
  250.  
  251.  
  252. /**********************************************************************
  253.  *  Gadget Structure definition for the excludepat gadget.
  254.  **********************************************************************/
  255.  
  256. struct Gadget excludepathgad = {
  257.   NULL,                         /* NextGadget pointer */
  258.   144, 60,                        /* LeftEdge, TopEdge  */
  259.   100, 9,                        /* Width, Height      */
  260.   GADGHCOMP,                    /* Gadget Flags       */
  261.   GADGIMMEDIATE | RELVERIFY,    /* Activation Flags */
  262.   PATHGADTYPE,                    /* GadgetType */
  263.   NULL,                            /* GadgetRender */
  264.   NULL,                            /* SelectRender */
  265.   &excludepath_Text_0,          /* GadgetText */
  266.   0x0,                            /* MutualExclude */
  267.   (APTR)&excludepath_txstr_1,   /* SpecialInfo */
  268.   XCLDPATHGAD,                    /* GadgetID */
  269.   NULL                            /* UserData Pointer */
  270. };
  271.  
  272. /**********************************************************************
  273.  *  IntuiTexts for the listpath gadget.
  274.  **********************************************************************/
  275.  
  276. struct IntuiText listpath_Text_0 = {
  277.    3, 0,                         /* FrontPen, BackPen */
  278.    JAM2,                           /* DrawMode */
  279.    -112, 0,                     /* LeftEdge, TopEdge */
  280.    &TxtAt_Plain,                 /* ITextFont Pointer */ 
  281.    (UBYTE *)"Listing Path:",    /* The IText */
  282.    NULL
  283.  };
  284.  
  285. /**********************************************************************
  286.  *  String information for the listpath string gadget.
  287.  **********************************************************************/
  288.  
  289. UBYTE listpath_sbuf_1[81] = "PRT:";
  290. UBYTE listpath_ubuf_1[81];
  291.  
  292. struct StringInfo listpath_txstr_1 = {
  293.   listpath_sbuf_1, listpath_ubuf_1, /* Buffer, UndoBuffer  */
  294.   0, 80, 0,                  /* BufferPos, MaxChars, DispPos */
  295.   0, 4,                      /* UndoPos, NumChars */
  296.   0, 0, 0,                  /* DispCount, CLeft, CTop */
  297.   0x0, 0,                   /* LayerPtr, LongInt */
  298.   0x0                        /* AltKeyMap */
  299. };
  300.  
  301. /**********************************************************************
  302.  *  Gadget Structure definition for the listpath gadget.
  303.  **********************************************************************/
  304.  
  305. struct Gadget listpathgad = {
  306.   NULL,                             /* NextGadget pointer */
  307.   144, 48,                            /* LeftEdge, TopEdge  */
  308.   100, 9,                            /* Width, Height      */
  309.   GADGHCOMP,                        /* Gadget Flags       */
  310.   GADGIMMEDIATE | RELVERIFY ,         /* Activation Flags   */
  311.   PATHGADTYPE,                        /* GadgetType         */
  312.   NULL,                                /* GadgetRender       */
  313.   NULL,                                /* SelectRender       */
  314.   &listpath_Text_0,                  /* GadgetText         */
  315.   0x0,                                /* MutualExclude      */
  316.   (APTR)&listpath_txstr_1,           /* SpecialInfo        */
  317.   LISTPATHGAD,                        /* GadgetID           */
  318.   NULL                                /* UserData Pointer   */
  319. };
  320.  
  321.  
  322. /**********************************************************************
  323.  *  IntuiTexts for the backpath gadget.
  324.  **********************************************************************/
  325.  
  326. struct IntuiText backpath_Text_0 = {
  327.    3, 0,                         /* FrontPen, BackPen */
  328.    JAM2,                           /* DrawMode */
  329.    -104, 0,                     /* LeftEdge, TopEdge */
  330.    &TxtAt_Plain,                 /* ITextFont Pointer */ 
  331.    (UBYTE *)"Backup Path:",        /* The IText */
  332.    NULL
  333.  };
  334.  
  335.  
  336.  
  337. /**********************************************************************
  338.  *  String information for the backpath string gadget.
  339.  **********************************************************************/
  340.  
  341. UBYTE backpath_sbuf_1[81] = "DF0:";
  342. UBYTE backpath_ubuf_1[81];
  343.  
  344. struct StringInfo backpath_txstr_1 = {
  345.   backpath_sbuf_1,             /* Buffer */
  346.   backpath_ubuf_1,             /* UndoBuffer  */
  347.   0, 80, 0,                  /* BufferPos, MaxChars, DispPos */
  348.   0, 4,                      /* UndoPos, NumChars */
  349.   0, 0, 0,                  /* DispCount, CLeft, CTop */
  350.   0x0, 0,                   /* LayerPtr, LongInt */
  351.   0x0                        /* AltKeyMap */
  352. };
  353.  
  354.  
  355. /**********************************************************************
  356.  *  Gadget Structure definition for the backpath gadget.
  357.  **********************************************************************/
  358.  
  359. struct Gadget backpathgad = {
  360.   NULL,                            /* NextGadget pointer */
  361.   144, 36,                        /* LeftEdge, TopEdge  */
  362.   100, 9,                        /* Width, Height      */
  363.   GADGHCOMP,                    /* Flags */
  364.   GADGIMMEDIATE | RELVERIFY ,    /* Activation */
  365.   PATHGADTYPE,                    /* GadgetType */
  366.   NULL,                            /* GadgetRender */
  367.   NULL,                            /* SelectRender */
  368.    &backpath_Text_0,              /* GadgetText */
  369.   0x0,                            /* MutualExclude */
  370.   (APTR)&backpath_txstr_1,       /* SpecialInfo */
  371.   BACKPATHGAD,                    /* GadgetID         */
  372.   NULL                            /* UserData Pointer */
  373. };
  374.  
  375. /**********************************************************************
  376.  *  IntuiTexts for the homepath gadget.
  377.  **********************************************************************/
  378.  
  379. struct IntuiText homepath_Text_0 = {
  380.    3, 0,                         /* FrontPen, BackPen */
  381.    JAM2,                           /* DrawMode */
  382.    -88, 0,                         /* LeftEdge, TopEdge */
  383.    &TxtAt_Plain,                 /* ITextFont Pointer */ 
  384.    (UBYTE *)"Home Path:",        /* The IText */
  385.    NULL
  386.  };
  387.  
  388.  
  389.  
  390. /**********************************************************************
  391.  *  String information for the homepath string gadget.
  392.  **********************************************************************/
  393.  
  394. UBYTE homepath_sbuf_1[81] = "DH0:";
  395. UBYTE homepath_ubuf_1[81];
  396.  
  397. struct StringInfo homepath_txstr_1 = {
  398.   homepath_sbuf_1,                 /* Buffer */
  399.   homepath_ubuf_1,                 /* UndoBuffer  */
  400.   0, 80, 0,                      /* BufferPos, MaxChars, DispPos */
  401.   0, 4,                          /* UndoPos, NumChars */
  402.   0, 0, 0,                      /* DispCount, CLeft, CTop */
  403.   0x0, 0,                       /* LayerPtr, LongInt */
  404.   0x0                            /* AltKeyMap */
  405. };
  406.  
  407.  
  408. /**********************************************************************
  409.  *  Gadget Structure definition for the homepath gadget.
  410.  **********************************************************************/
  411.  
  412. struct Gadget homepathgad = {
  413.   NULL,                         /* NextGadget pointer */
  414.   144, 24,                        /* LeftEdge, TopEdge  */
  415.   100, 9,                        /* Width, Height      */
  416.   GADGHCOMP,                    /* Gadget Flags       */
  417.   GADGIMMEDIATE | RELVERIFY,    /* Activation Flags   */
  418.   PATHGADTYPE,                    /* GadgetType         */
  419.   NULL,                            /* GadgetRender       */
  420.   NULL,                            /* SelectRender       */
  421.   &homepath_Text_0,              /* GadgetText         */
  422.   0x0,                            /* MutualExclude      */
  423.   (APTR)&homepath_txstr_1,       /* SpecialInfo        */
  424.   HOMEPATHGAD,                    /* GadgetID           */
  425.   NULL                            /* UserData Pointer   */
  426. };
  427.  
  428. struct Requester *pathrequest;
  429. struct Window *pathwindow;
  430.  
  431. /* Initialize the pathname requester. */
  432. int
  433. InitPathRequest()
  434. {
  435.     int status = 0;
  436.  
  437.     if (pathwindow = OpenWindow(&pathreqnw)) {
  438.         /* I used AddGList here - got a crash.  Problems with fullword
  439.          * alignment, maybe?
  440.          */
  441.  
  442.         AddGadget(pathwindow, homepathgad, -1L);
  443.         AddGadget(pathwindow, backpathgad, -1L);
  444.         AddGadget(pathwindow, listpathgad, -1L);
  445.         AddGadget(pathwindow, excludepathgad, -1L);
  446.     }
  447.     else {
  448.         status = IoErr();
  449.         TypeAndSpeak("I couldn't open the pathname window!\n");
  450.     }
  451.     return status;
  452. }
  453.  
  454. /* Shut down the pathname requester mechanisms. */
  455.  
  456. CancelPathRequest()
  457. {
  458.     if (pathwindow) CloseWindow(pathwindow);
  459. }
  460.