home *** CD-ROM | disk | FTP | other *** search
/ ftp.mactech.com 2010 / ftp.mactech.com.tar / ftp.mactech.com / online / source / c / compilers / Tickle-4.0.sit.hqx / Tickle-4.0 / src / tickle.h < prev    next >
Text File  |  1993-11-18  |  17KB  |  656 lines

  1. /*
  2. ** This source code was written by Tim Endres
  3. ** Email: time@ice.com.
  4. ** USMail: 8840 Main Street, Whitmore Lake, MI  48189
  5. **
  6. ** Some portions of this application utilize sources
  7. ** that are copyrighted by ICE Engineering, Inc., and
  8. ** ICE Engineering retains all rights to those sources.
  9. **
  10. ** Neither ICE Engineering, Inc., nor Tim Endres, 
  11. ** warrants this source code for any reason, and neither
  12. ** party assumes any responsbility for the use of these
  13. ** sources, libraries, or applications. The user of these
  14. ** sources and binaries assumes all responsbilities for
  15. ** any resulting consequences.
  16. */
  17.  
  18.  
  19. #ifndef THINK_C_PRECOMPILED
  20.  
  21. #ifdef USEDUMP
  22.  
  23. #ifdef TCLAPPL
  24. #    pragma load ":obj:TickleHdrDump"
  25. #else
  26. #    pragma load ":obj:EngineHdrDump"
  27. #endif
  28.  
  29. #else /* ! USEDUMP */
  30.  
  31.  
  32. /*
  33. ** These are the Macintosh C include files that are
  34. ** utilized by the application source code.
  35. ** They define the data structures and procedures in
  36. ** the Macintosh ROM.
  37. */
  38.  
  39. #include <Types.h>
  40. #include <resources.h>
  41. #include <quickdraw.h>
  42. #include <fonts.h>
  43. #include <memory.h>
  44. #include <events.h>
  45. #include <menus.h>
  46. #include <files.h>
  47. #include <fcntl.h>
  48. #include <controls.h>
  49. #include <windows.h>
  50. #include <textedit.h>
  51. #include <dialogs.h>
  52. #include <desk.h>
  53. #include <scrap.h>
  54. #include <osutils.h>
  55. #include <toolutils.h>
  56. #include <GestaltEqu.h>
  57. #include <packages.h>
  58. #include <printing.h>
  59. #include <lists.h>
  60. #include "volumes.h"
  61. #include <notification.h>
  62. #include <EPPC.h>
  63. #include <PPCToolbox.h>
  64. #include <AppleEvents.h>
  65. #include <Aliases.h>
  66. #include <errors.h>
  67. #include <stdio.h>
  68. #include <string.h>
  69.  
  70. #include "defines.h"
  71. #include "tcl.h"
  72. #include "xproc.h"
  73.  
  74. #include "version.h"
  75.  
  76. /*
  77. ** The DEBUG compilation variable is used to control the
  78. ** debugging within the application. The setting
  79. ** of this variable will determine which debugging statements
  80. ** within the source code are compiled.
  81. **
  82. ** The following DEBUG settings are utilized:
  83. **        
  84. **        0  -  No debugging at all.
  85. **        1  -  Error debugging is turned on to catch unexpected conditions.
  86. **        5  -  Temporary development code is included. Used for testing.
  87. **        10 -  Extreme debugging. Superfluous information and checking.
  88. **
  89. **        The debug setting is established using:
  90. **
  91. **                #define DEBUG N
  92. **
  93. **        where N is the setting number.
  94. **
  95. ** For the release system, DEBUG should be 0. This gives the user
  96. ** only the error checking he expects. No surprises.
  97. **
  98. ** Normally, you will have DEBUG set to 1. This catches conditions
  99. ** you didn't expect (like not checking for a NULL from NewPtr())
  100. ** or situations you haven't coded completely yet.
  101. **
  102. ** For serious debugging, DEBUG should be 10. All permanent debugging
  103. ** code should be placed within DEBUG > 9, all temporary debugging
  104. ** within DEBUG > 4.
  105. **
  106. ** Thus, in your code...
  107. **
  108. ** #if DEBUG > 0
  109. **        { Error debugging code. }
  110. ** #endif
  111. **
  112. ** #if DEBUG > 4
  113. **        { Temporary development/testing code. }
  114. ** #endif
  115. **
  116. ** #if DEBUG > 9
  117. **        { Permanent debugging code. Superfluous information. }
  118. ** #endif
  119. **
  120. */
  121.  
  122.  
  123. /*
  124. ** Set the DEBUG compilation variable.
  125. */
  126. #define DEBUG        0
  127.  
  128. /*
  129. ** Set the EXPERIMENT compilation variable.
  130. ** If EXPERIMENT is defined and greater than 0,
  131. ** all experimentation code will be compiled.
  132. */
  133. #define EXPERIMENT    1
  134.  
  135. /*
  136. ** If DEBUGing is on, define the Debugger() procedure in case it is used.
  137. */
  138. #if DEBUG > 0
  139.  
  140. pascal void Debugger()
  141.     extern    0xA9FF;
  142.  
  143. pascal void DebugStr(aStr)
  144.     char    *aStr;
  145.     extern    0xABFF;
  146.  
  147. #endif
  148.  
  149. /*
  150. ** ErrorLog declarations...
  151. */
  152. #define DEFAULT_LOG_NAME    "DiskTool.log"
  153. #define LOG_ERROR        1
  154. #define LOG_WARNING        2
  155. #define LOG_NOTE        3
  156.  
  157. #ifndef TRUE
  158. #    define TRUE        ((Boolean)1)
  159. #endif
  160. #ifndef FALSE
  161. #    define FALSE        ((Boolean)0)
  162. #endif
  163.  
  164. #define YIELD_ON        1
  165. #define YIELD_OFF        0
  166.  
  167. #define SetCell(cell, row, column)    { (cell).h = column; (cell).v = row; }
  168. #define ROW(cell)                     (cell).v
  169. #define noProc 0
  170.  
  171.  
  172. #define    MFOSEvent                    app4Evt    /* event used by MultiFinder */
  173. #define    MFSuspendResumeMessage        1        /* high byte of suspend/resume event message */
  174. #define    MFResumeMask                1        /* bit of message field for resume vs. suspend */
  175. #define    MFMouseMovedMessage            0xFA    /* high byte of mouse-moved event message */
  176.  
  177. #define keyStdOutObject                'StdO'
  178.  
  179.  
  180. /*
  181. ** Several macro definitions for readability's sake.
  182. */
  183. #ifndef NULL
  184. #    define NULL            (char *)0
  185. #endif
  186.  
  187. #define true            1
  188. #define false            0
  189. #define inFront            ((WindowPtr) -1)    /* Used by GetNewWindow, GetNewDialog */
  190.  
  191. #define string_equal(str1, str2)        (strcmp(str1, str2) == 0)
  192. #define stringn_equal(str1, str2, n)    (strncmp(str1, str2, n) == 0)
  193. #define NUMBER(ch)                        (((ch) >= '0') && ((ch) <= '9'))
  194.  
  195. #define gHiliteMode                ( *( (char *) 0x0938 ) )        /* used for color highlighting */
  196. #define CQD_COLOR_INVERT()        { if (theEnviron.hasColorQD) ( (gHiliteMode) &= 0x7F ); }
  197.  
  198. /*
  199. ** Recource ID and TYPE of saved data resource.
  200. */
  201. #define RSRC_DATA_TYPE        (ResType)'Data'
  202. #define RSRC_DATA_ID        (short)2001
  203.  
  204. /*
  205. ** Resource ID's of application dialogs.
  206. */
  207. #define info_dialog                (short)2001        /* The ID of the "About..." Dialog.  */
  208. #define ask_dialog                (short)2005        /* The ID of the "AskYesNo" Dialog.  */
  209. #define get_line_dialog            (short)2007
  210. #define text_conversion_dialog    (short)2009
  211. #define get_folder_dialog        (short)2013
  212.  
  213.  
  214.  
  215. /*
  216. ** Resource ID's of application alerts.
  217. */
  218. #define file_open_alert        (short)1001        /* Alert - file open failure  */
  219. #define file_rename_alert    (short)1002        /* Alert - file rename failure */
  220. #define memory_error_alert    (short)1006        /* Alert - Memory could not be allocated */
  221. #define message_note_alert    (short)1010        /* Alert - Note message alert  */
  222. #define message_alert_alert    (short)1011        /* Alert - Alert message alert  */
  223.  
  224. //  #define WatchCursorOn()        { SetCursor(*GetCursor(watchCursor)); }
  225.  
  226.  
  227. /*
  228. ** Macros for the menu definitions.
  229. ** The following suffixes are utilized in the macro names:
  230. **        ___menu   - The menu ID or number.
  231. **        ___mname  - The name of the menu.
  232. **        ___mstr   - The string containing the menu items.
  233. **        ___item   - The corresponding number(position) of the menu items.
  234. **
  235. */
  236.  
  237. #define MAX_MENU                16
  238.  
  239. /*
  240. ** The "apple" menu with "About" and the Desk Accessories.
  241. */
  242. #define applemenu                 1
  243. #define apple_menu_hdl            mymenus[0]
  244. #define applemname                "\001\024"
  245. #define applemstr                "\pAbout tickle...;(-;"
  246. #define infoitem                1
  247.  
  248. /*
  249. ** The "File" menu.
  250. */
  251. #define filemenu                 256
  252. #define file_menu_hdl            mymenus[1]
  253. #define new_item                1
  254. #define open_item                2
  255. #define save_item                3
  256. #define save_as_item            4
  257. #define close_window_item        5
  258. #define page_setup_item            7
  259. #define print_window_item        8
  260. #define print_selection_item    9
  261. #define open_fb_item            11
  262. #define log_item                12
  263. #define log_level_item            13
  264. #define pause_op_item            15
  265. #define cancel_op_item            16
  266. #define run_script_item            18
  267. #define new_folder_item            19
  268. #define stop_icons_item            20
  269. #define quit_item                22
  270.  
  271.  
  272. /*
  273. ** The "Edit" menu.
  274. */
  275. #define editmenu                 257
  276. #define edit_menu_hdl            mymenus[2]
  277. #define undoCmd                    1
  278. #define cutCmd                    3
  279. #define copyCmd                    4
  280. #define pasteCmd                5
  281. #define clearCmd                6
  282. #define selectAllCmd            8
  283. #define shiftLeftCmd            10
  284. #define shiftRightCmd            11
  285. #define findCmd                    13
  286. #define repeatFindCmd            14
  287. #define replaceCmd                15
  288. #define repeatReplaceCmd        16
  289.  
  290. /*
  291. ** The "TCL" menu.
  292. */
  293. #define tcl_menu                269
  294. #define tcl_menu_hdl            mymenus[12]
  295.  
  296. /*
  297. ** The "MacTools" menu.
  298. */
  299. #define mtoolmenu                258
  300. #define mtool_menu_hdl            mymenus[3]
  301. #define f_macinfo_item            1
  302. #define f_binhex_item            3
  303. #define f_unbinhex_item            4
  304. #define mb_info_item            6
  305. #define f_macbinary_item        7
  306. #define f_unmacbinary_item        8
  307. #define f_copyhier_item            10
  308. #define f_hier_cmd_item            12
  309.  
  310.  
  311. /*
  312. ** The "TEXT Tools" menu.
  313. */
  314. #define ttoolmenu                259
  315. #define ttool_menu_hdl            mymenus[4]
  316. #define f_split_item            1
  317. #define f_join_item                2
  318. #define f_convert_item            3
  319. #define f_texttype_item            4
  320. #define f_unixtomac_item        6
  321. #define f_mactounix_item        7
  322. #define f_pctomac_item            9
  323. #define f_mactopc_item            10
  324.  
  325. /*
  326. ** The "UNIX Tools" menu.
  327. */
  328. #define utoolmenu                260
  329. #define utool_menu_hdl            mymenus[5]
  330. #define f_uuencode_item            1
  331. #define f_uudecode_item            2
  332. #define f_compress_item            4
  333. #define f_decompress_item        5
  334.  
  335. /*
  336. ** The "StuffIt Tools" menu.
  337. */
  338. #define stoolmenu                261
  339. #define stool_menu_hdl            mymenus[6]
  340. #define f_stuff_file_item        1
  341. #define f_stuff_mult_item        2
  342. #define f_unstuff_item            3
  343.  
  344. /*
  345. ** The "Tar" menu.
  346. */
  347. #define tarmenu                    296
  348. #define tar_menu_hdl            mymenus[7]
  349. #define tar_create_item            1
  350. #define tar_extract_item        2
  351. #define tar_list_item            3
  352. #define tar_about_item            5
  353. #define tar_prefs_item            6
  354.  
  355. /*
  356. ** The "Tar" submenu.
  357. */
  358. #define ptarmenu                96
  359. #define ptar_menu_hdl            mymenus[8]
  360. #define ptar_cnvrt_nl_item        1
  361. #define ptar_old_tar_item        2
  362. #define ptar_blk_size_item        3
  363. #define ptar_crtr_type_item        5
  364.  
  365.  
  366. /*
  367. ** The "ASD" menu.
  368. */
  369. #define asdmenu                    262
  370. #define asd_menu_hdl            mymenus[9]
  371. #define asd_info_item            1
  372. #define asd_to_mac_item            2
  373. #define asd_to_mb_item            3
  374. #define mac_to_as_item            5
  375. #define mac_to_ad_item            6
  376. #define mb_to_as_item            8
  377. #define mb_to_ad_item            9
  378.  
  379. /*
  380. ** The "Hierarchical Commands" submenu.
  381. */
  382. #define hcsubmenu                69
  383. #define hc_submenu_hdl            mymenus[10]
  384. #define hc_ftype_item            1
  385. #define hc_fcreator_item        2
  386. #define hc_folderview_item        3
  387. #define hc_file_info_item        5
  388. #define hc_folder_info_item        6
  389. #define hc_filefld_info_item    7
  390.  
  391. /*
  392. ** The "Hierarchical Commands" submenu.
  393. */
  394. #define xcsubmenu                70
  395. #define xc_submenu_hdl            mymenus[11]
  396. #define xc_first_item            1
  397.  
  398.  
  399. typedef struct {
  400.     short    case_sense;
  401.     short    direction;
  402.     short    wrap;
  403.     short    special;
  404.     char    search_str[256];
  405.     } SearchParm, *SearchParmPtr;
  406.  
  407. typedef struct {
  408.     short    case_sense;
  409.     short    direction;
  410.     short    wrap;
  411.     short    special;
  412.     short    replace_all;
  413.     short    search_rgn;
  414.     char    search_str[256];
  415.     char    replace_str[256];
  416.     } SearchReplaceParm, *SearchReplaceParmPtr;
  417.  
  418. typedef struct {
  419.     /* Common flags and info. */
  420.     short        rsrc_loaded;        /* True if loaded, false if defaulted.    */
  421.     } RsrcData, *RsrcDataPtr;
  422.  
  423. typedef struct {
  424.     short    conv_char;
  425.     short    char_conv_type;
  426.     short    conv_lines;
  427.     short    lines_conv_type;
  428.     } TextConvSpec;
  429.  
  430.  
  431. #define MAC_FILE                    0
  432. #define BINARY_FILE                    1
  433. #define BINHEX_FILE                    2
  434.  
  435. #define CNV_CHARS_DEL_NON_ASCII        1
  436. #define CNV_CHARS_STRIP_NON_ACSII    2
  437.  
  438. #define CNV_LINES_CR_TO_NL            1
  439. #define CNV_LINES_NL_TO_CR            2
  440. #define CNV_LINES_DEL_NLS            3
  441. #define CNV_LINES_DEL_CRS            4
  442.  
  443.  
  444. /*
  445. ** *********************************************************************
  446. ** *************************** WINODOW Stuff ***************************
  447. ** *********************************************************************
  448. */
  449. #undef wDraw
  450. #define wUpdate            1
  451. #define wContent        2
  452. #define wActivate        3
  453. #define wDraw            4
  454. #define wGrow            5
  455. #define wClose            6
  456. #define wKeyDown        7
  457. #define wCut            8
  458. #define wCopy            9
  459. #define wPaste            10
  460. #define wPasteFile        33
  461. #define wUndo            11
  462. #define wDelete            12
  463. #define wPrint            13
  464. #define wPrintSelection    35
  465. #define wIdle            14
  466. #define wZoomIn            15
  467. #define wZoomOut        16
  468. #define wSave            17
  469. #define wSaveAs            18
  470. #define wSelectAll        20
  471. #define wFind            21
  472. #define wRepeatFind        22
  473. #define wReplace        23
  474. #define wRepeatReplace    24
  475. #define wGrowZone        27
  476.  
  477. #define feedbackWKind    1990
  478. #define progressWKind    1991
  479.  
  480. #define WPeek    ((WindowPeek) myWindow)
  481.  
  482. typedef int        (*PFI)();
  483.  
  484. #define FB_MAX_LINES    128
  485. #define FB_LINE_LENGTH    128
  486.  
  487. typedef struct {
  488.     WindowRecord    super;
  489.     int        active;
  490.     int        line_height;
  491.     int        first_line;
  492.     int        total_lines;
  493.     char    *buffer[FB_MAX_LINES];
  494.     Style    textface[FB_MAX_LINES];
  495.     } FeedbackWindow, *FBWdwPtr;
  496. #define FBWPtr    ((FBWdwPtr) myWindow)
  497.  
  498. #define INPUT_SIZE    512
  499.  
  500. /*
  501. ** WARNING: Taken from compress.c!!!!!!!!!!
  502. **
  503. ** a code_int must be able to hold 2**BITS values of type int, and also -1
  504. */
  505. typedef long int    code_int;
  506.  
  507. typedef long int        count_int;
  508. typedef    unsigned char    char_type;
  509.  
  510. /* End WARNING */
  511.  
  512.  
  513. #ifdef ALLOCATE_GLOBALS
  514.  
  515. #define ALLOC_CLASS
  516. #define ALLOC_INIT(def)        = def
  517. #define ALLOC_ARRAY(asize)    [asize]
  518.  
  519. #else
  520.  
  521. #define ALLOC_CLASS            extern
  522. #define ALLOC_INIT(def)
  523. #define ALLOC_ARRAY(asize)    []
  524.  
  525. #endif
  526.  
  527. /*
  528. ** These are the declarations for the globals varaibles used
  529. ** by the application. They are mostly used for the
  530. ** Macintosh interface, and are generally avoided in favor
  531. ** of local variables and parameter passing. This is the 
  532. ** global declaration of these variables that cause their storage
  533. ** to be allocated. (see pages 28-30, "Scope; External Variables",
  534. ** in Kernigan and Richie, "The C Programming Language").
  535. ** One and only one compiled file should declare the ALLOCATE_GLOBALS
  536. ** macro. These declarations will only be used by Application.c which will
  537. ** define ALLOCATE_GLOBALS. This is so the globals are allocated
  538. ** only once. Note: many are initialized here, as well as in the code.
  539. ** Redundancy in a sign of a programmer's paranoia.
  540. */
  541. ALLOC_CLASS    FILE            *logfile            ALLOC_INIT(NULL);        /* The application exit flag.        */
  542.  
  543. ALLOC_CLASS    int                app_done            ALLOC_INIT(0);        /* The application exit flag.        */
  544. ALLOC_CLASS int                cancel_current_op    ALLOC_INIT(0);
  545. ALLOC_CLASS    int                verbose                ALLOC_INIT(true);    /* Flag for informative dialogs being displayed. */
  546. ALLOC_CLASS    int                quiet                ALLOC_INIT(false);    /* Flag for informative beeps or silence */
  547. ALLOC_CLASS    int                auto_feedback        ALLOC_INIT(true);    /* Flag to automatically popup Feedback Window */
  548. ALLOC_CLASS    int                checkFBWindow        ALLOC_INIT(true);    /* Avoids repeating Feedback Window error message */
  549. ALLOC_CLASS    int                set_log_type        ALLOC_INIT(false);    /* Avoids repeating log file type setting */
  550. ALLOC_CLASS    int                macplus_keybd        ALLOC_INIT(0);        /* Avoids repeating log file type setting */
  551. ALLOC_CLASS    short            app_refnum            ALLOC_INIT(-1);        /* The reference number for application resource fork. */
  552. ALLOC_CLASS    short            app_vrefnum            ALLOC_INIT(0);        /* The Vol/WD reference number for application folder. */
  553. ALLOC_CLASS Str32            app_filename        ALLOC_INIT("\pTickle"); /* Application's Pascal file name */
  554. ALLOC_CLASS    short            xtcl_refnum            ALLOC_INIT(-1);        /* The reference number for application resource fork. */
  555. ALLOC_CLASS    short            menu_modifiers        ALLOC_INIT(0);        /* Avoids repeating log file type setting */
  556. ALLOC_CLASS    short            stuffit_available    ALLOC_INIT(0);        /* Avoids repeating log file type setting */
  557. ALLOC_CLASS    WindowPtr        theFeedbackWindow    ALLOC_INIT(NULL);
  558. ALLOC_CLASS    short            feedback_showing    ALLOC_INIT(false);
  559. ALLOC_CLASS    short            pause_op            ALLOC_INIT(false);
  560. ALLOC_CLASS    short            yielding_on            ALLOC_INIT(false);
  561. ALLOC_CLASS short            cursor_ibeam        ALLOC_INIT(0);
  562. ALLOC_CLASS short            g_log_level            ALLOC_INIT(0);
  563. ALLOC_CLASS short            engine_verbosity    ALLOC_INIT(1);        /* 0 - Quiet, 1 - Sound, 2 - Alert */
  564. ALLOC_CLASS    Rect            scrnrect;
  565. ALLOC_CLASS    Rect            dragrect;
  566. ALLOC_CLASS    Rect            growrect;
  567. ALLOC_CLASS    MenuHandle         mymenus                ALLOC_ARRAY(MAX_MENU);
  568. ALLOC_CLASS    long            gLastDown            ALLOC_INIT(0);
  569. ALLOC_CLASS    EventRecord        gEvent, gLastEvent;
  570. ALLOC_CLASS    RsrcData        gRsrcData;
  571. ALLOC_CLASS    TEHandle        gHTE                ALLOC_INIT(NULL);
  572. ALLOC_CLASS    char            gStr                ALLOC_ARRAY(256);    /* Global string to satisfy temporary needs. */
  573. ALLOC_CLASS    char            temp_str            ALLOC_ARRAY(256);
  574. ALLOC_CLASS    char            input                ALLOC_ARRAY(INPUT_SIZE);
  575. ALLOC_CLASS    unsigned char    info_buffer            ALLOC_ARRAY(256);
  576. ALLOC_CLASS short            has_wait_next_event    ALLOC_INIT(0);
  577. ALLOC_CLASS short            in_back_ground        ALLOC_INIT(0);
  578.  
  579. ALLOC_CLASS short            g_log_wdref            ALLOC_INIT(0);
  580. ALLOC_CLASS char            g_log_filename        ALLOC_ARRAY(64) ALLOC_INIT("LOGFILE");
  581.  
  582. ALLOC_CLASS unsigned long    g_next_cron_time    ALLOC_INIT(0);
  583. ALLOC_CLASS unsigned long    g_cron_interval        ALLOC_INIT(0);
  584.  
  585. ALLOC_CLASS short            gHasAliases            ALLOC_INIT(0);
  586. ALLOC_CLASS    short            gHasBalloons        ALLOC_INIT(0);
  587. ALLOC_CLASS    short            gHasDirectory        ALLOC_INIT(0);
  588. ALLOC_CLASS    short            gHasAppleEvents        ALLOC_INIT(0);
  589. ALLOC_CLASS short            gHasStandardFile    ALLOC_INIT(0);
  590.  
  591. ALLOC_CLASS Tcl_Interp        *g_interp            ALLOC_INIT(0);
  592.  
  593. ALLOC_CLASS    count_int        *htab                ALLOC_INIT((count_int *)0);
  594. ALLOC_CLASS    unsigned short    *codetab            ALLOC_INIT((unsigned short *)0);
  595.  
  596. ALLOC_CLASS    THPrint            gPrintRecord        ALLOC_INIT(NULL);
  597. ALLOC_CLASS    TPrStatus        gPrintStatus;
  598.  
  599. ALLOC_CLASS long            def_text_file_creator ALLOC_INIT('MSWD');
  600. ALLOC_CLASS TextConvSpec    gTConv;
  601.  
  602. ALLOC_CLASS SysEnvRec        theEnviron;
  603.  
  604. ALLOC_CLASS XPROCParmBlk    g_cbpb;
  605.  
  606. ALLOC_CLASS Handle            tge_sicns ALLOC_INIT(NULL);
  607. ALLOC_CLASS Handle            notify_icons ALLOC_ARRAY(NUM_OF_NOTIFY_ICONS);
  608. ALLOC_CLASS int                nm_polite_queued ALLOC_ARRAY(NUM_OF_NOTIFY_ICONS);
  609. ALLOC_CLASS NMRec            *nm_polite_ptr ALLOC_ARRAY(NUM_OF_NOTIFY_ICONS);
  610.  
  611. ALLOC_CLASS char            kBuffer ALLOC_ARRAY(1024);
  612.  
  613. ALLOC_CLASS char            *XTCLFileName ALLOC_INIT("\pXTCL File");
  614.  
  615. ALLOC_CLASS SearchReplaceParm        search_replace_parms;
  616.  
  617. extern char            *ctime();
  618. extern char            *time_stamp();
  619. extern ListHandle    setup_dlg_list();
  620.  
  621. extern int            Cmd_DoMenuCmd();
  622. extern int            Cmd_DoCompress();
  623. extern int            Cmd_DoDeCompress();
  624. extern int            Cmd_DoAlertNote();
  625. extern int            Cmd_DoCD();
  626. extern int            Cmd_DoPWD();
  627. extern int            Cmd_GetDirectory();
  628. extern int            Cmd_CallExternalCMD();
  629. extern int            Cmd_DoGetenv();
  630. extern int            Cmd_DoPutenv();
  631. extern int            Cmd_AskYesNoCancel();
  632. extern int            Cmd_GetInputLine();
  633.  
  634. extern char            *get_environment();
  635. extern char            *csavestr();
  636. extern char            *malloc();
  637.  
  638. extern Handle        tcl_Houtput_gethdl();
  639. extern pascal Boolean UniversalFilter();
  640.  
  641. extern Tcl_Interp    *Tcl_CreateTickleInterp();
  642.  
  643. #ifdef MAKEDUMP
  644.  
  645. #ifdef TCLAPPL
  646. #    pragma dump ":obj:TickleHdrDump"
  647. #else
  648. #    pragma dump ":obj:EngineHdrDump"
  649. #endif
  650.  
  651. #endif
  652.  
  653. #endif /* ! USEDUMP */
  654.  
  655. #endif /* ! THINK_C_PRECOMPILED */
  656.