home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 6 / AACD06.ISO / AACD / Programming / DOpus4-GPL / Program / strings.c < prev    next >
C/C++ Source or Header  |  2000-01-27  |  20KB  |  1,202 lines

  1. /*
  2.  
  3. Directory Opus 4
  4. Original GPL release version 4.12
  5. Copyright 1993-2000 Jonathan Potter
  6.  
  7. This program is free software; you can redistribute it and/or
  8. modify it under the terms of the GNU General Public License
  9. as published by the Free Software Foundation; either version 2
  10. of the License, or (at your option) any later version.
  11.  
  12. This program is distributed in the hope that it will be useful,
  13. but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15. GNU General Public License for more details.
  16.  
  17. You should have received a copy of the GNU General Public License
  18. along with this program; if not, write to the Free Software
  19. Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  20.  
  21. All users of Directory Opus 4 (including versions distributed
  22. under the GPL) are entitled to upgrade to the latest version of
  23. Directory Opus version 5 at a reduced price. Please see
  24. http://www.gpsoft.com.au for more information.
  25.  
  26. The release of Directory Opus 4 under the GPL in NO WAY affects
  27. the existing commercial status of Directory Opus 5.
  28.  
  29. */
  30.  
  31. #include "dopus.h"
  32.  
  33. #define STRING_VERSION 1
  34.  
  35. char **globstring;
  36.  
  37. struct DefaultString
  38.     default_strings[]={
  39.         {STR_DIRS_FILES_BYTES_COUNT,
  40.         "Dirs : %03ld/%03ld  Files : %03ld/%03ld  Bytes : %07ld/%07ld"},
  41.  
  42.         {STR_DOPUS_ALREADY_RUNNING,
  43.         "Directory Opus is already resident in memory.\nDo you want to run another copy?"},
  44.  
  45.         {STR_UNABLE_TO_OPEN_WINDOW,
  46.         "Unable to open screen/window!"},
  47.  
  48.         {STR_WELCOME_TO_DOPUS,
  49.         "Welcome to Directory Opus!"},
  50.  
  51.         {STR_WELCOME_BACK_TO_DOPUS,
  52.         "Welcome back to Directory Opus!"},
  53.  
  54.         {STR_INTERROGATING_FILE,
  55.         "Interrogating file..."},
  56.  
  57.         {STR_READING_DIRECTORY,
  58.         "Reading directory..."},
  59.  
  60.         {STR_ENTER_ARGUMENTS_FOR,
  61.         "Enter arguments for \"%s\""},
  62.  
  63.         {STR_ENTER_DIRECTORY_NAME,
  64.         "Enter directory name"},
  65.  
  66.         {STR_FILE_ALREADY_EXISTS,
  67.         "File or directory already exists!"},
  68.  
  69.         {STR_DIRECTORY_CREATED,
  70.         "Directory created."},
  71.  
  72.         {STR_PRINTING_DIRECTORY,
  73.         "Printing directory.."},
  74.  
  75.         {STR_DIRECTORY,
  76.         "Directory "},
  77.  
  78.         {STR_DEVICE_LIST,
  79.         "Device list\n\n"},
  80.  
  81.         {STR_NO_CHIP_FOR_ICON,
  82.         "Not enough chip memory to display icon"},
  83.  
  84.         {STR_FILE_NOT_ILBM,
  85.         "File is not ILBM"},
  86.  
  87.         {STR_ERROR_IN_IFF,
  88.         "Error in IFF structure"},
  89.  
  90.         {STR_NO_CHIP_FOR_PICTURE,
  91.         "Not enough chip memory to display picture"},
  92.  
  93.         {STR_CANT_ALLOCATE_AUDIO,
  94.         "Can't allocate audio channels"},
  95.  
  96.         {STR_NOT_ST_MOD,
  97.         "File is not a supported music module"},
  98.  
  99.         {STR_FILE_EXISTS_REPLACE,
  100.         "File \"%s\" already exists! Replace?"},
  101.  
  102.         {STR_SELECT_UNPROTECT,
  103.         "\nSelect Unprotect to set the deletion bit."},
  104.  
  105.         {STR_ENTER_TIME,
  106.         "Enter time in the form HH:MM:SS"},
  107.  
  108.         {STR_AREXX_NOT_RUNNING,
  109.         "ARexx server not found!"},
  110.  
  111.         {STR_ENTER_AREXX_COMMAND,
  112.         "Enter ARexx command"},
  113.  
  114.         {STR_ENTER_NEW_CD,
  115.         "Enter new current directory"},
  116.  
  117.         {STR_SCANNING_DEVICE_LIST,
  118.         "Scanning device list..."},
  119.  
  120.         {STR_FOUND_A_MATCH,
  121.         "Found the file \"%s\" in the directory\n\"%s\"\nShall I go there?"},
  122.  
  123.         {STR_BUFFERS_CLEARED,
  124.         "Buffers not currently displayed have been cleared."},
  125.  
  126.         {STR_UNREADABLE_DISK,
  127.         "Unreadable disk"},
  128.  
  129.         {STR_NOT_A_DOS_DISK,
  130.         "Not a DOS disk"},
  131.  
  132.         {STR_KICKSTART_DISK,
  133.         "Kickstart disk"},
  134.  
  135.         {STR_VALIDATING,
  136.         "Validating"},
  137.  
  138.         {STR_WRITE_PROTECTED,
  139.         "Write protected"},
  140.  
  141.         {STR_READ_WRITE,
  142.         "Read/Write"},
  143.  
  144.         {STR_DEVICE_NOT_MOUNTED,
  145.         "Device or volume not mounted"},
  146.  
  147.         {STR_NO_DISK_IN_DRIVE,
  148.         "No disk in drive"},
  149.  
  150.         {STR_DOS_ERROR_CODE,
  151.         "DOS error code %ld"},
  152.  
  153.         {STR_ENTER_NEW_DISK_NAME,
  154.         "Enter new disk name"},
  155.  
  156.         {STR_ENTER_ASSIGN_NAME,
  157.         "Enter directory to re-assign device"},
  158.  
  159.         {STR_CANT_CANCEL_ASSIGN,
  160.         "Can't cancel assign."},
  161.  
  162.         {STR_ENTER_DEVICE_NAME,
  163.         "Enter device name for this directory"},
  164.  
  165.         {STR_ASSIGN_FAILED,
  166.         "Assign failed"},
  167.  
  168.         {STR_NO_DESTINATION_SELECTED,
  169.         "No destination directory selected!"},
  170.  
  171.         {STR_CANT_COPY_DIR_TO_ITSELF,
  172.         "You can't copy a directory into itself!"},
  173.  
  174.         {STR_SHOWING_FONT,
  175.         "Showing selected font..."},
  176.  
  177.         {STR_RUNNING_FILE,
  178.         "Running selected file..."},
  179.  
  180.         {STR_PLAYING_FILE,
  181.         "Playing selected file..."},
  182.  
  183.         {STR_SHOWING_FILE,
  184.         "Showing selected file..."},
  185.  
  186.         {STR_PLAYING_ST_MOD,
  187.         "Playing music module..."},
  188.  
  189.         {STR_READING_SELECTED_FILE,
  190.         "Reading selected file..."},
  191.  
  192.         {STR_FOUND_A_MATCH_READ,
  193.         "Found a match in the file\n\"%s\"\nShall I read the file?"},
  194.  
  195.         {STR_CONFIG_CHANGED_QUIT,
  196.         "You have modified the configuration.\nDo you really want to quit?"},
  197.  
  198.         {STR_SAVING_CONFIG,
  199.         "Saving configuration.."},
  200.  
  201.         {STR_READING_CONFIG,
  202.         "Reading configuration.."},
  203.  
  204.         {STR_CONFIG_CHANGED_LASTSAVED,
  205.         "You have modified the configuration.\nReally load the last-saved settings?"},
  206.  
  207.         {STR_CONFIG_CHANGED_DEFAULTS,
  208.         "You have modified the configuration.\nSave before restoring defaults?"},
  209.  
  210.         {STR_HELP_NOT_AVAILABLE,
  211.         "Help not available for that function!"},
  212.  
  213.         {STR_SCANNING_TREE,
  214.         "Scanning directory tree..."},
  215.  
  216.         {STR_ENTER_A_STRING,
  217.         "Enter a string"},
  218.  
  219.         {STR_PLEASE_CHOOSE,
  220.         "Please choose"},
  221.  
  222.         {STR_COMMENTING,
  223.         "commenting"},
  224.  
  225.         {STR_PROTECTING,
  226.         "protecting"},
  227.  
  228.         {STR_DATESTAMPING,
  229.         "datestamping"},
  230.  
  231.         {STR_DELETING,
  232.         "deleting"},
  233.  
  234.         {STR_COPYING,
  235.         "copying"},
  236.  
  237.         {STR_CREATING,
  238.         "creating"},
  239.  
  240.         {STR_CANT_OVERCOPY_FILES,
  241.         "You can't copy these files over themselves!"},
  242.  
  243.         {STR_INTERROGATING_FILES,
  244.         "Interrogating files..."},
  245.  
  246.         {STR_NOT_IDENTIFIED,
  247.         "%s could not be identified."},
  248.  
  249.         {STR_LOADING_CONFIG,
  250.         "Loading configuration program..."},
  251.  
  252.         {STR_WAITING_FOR_PORT,
  253.         "Waiting for configuration port..."},
  254.  
  255.         {STR_CONFIG_NOT_FOUND,
  256.         "Configuration program not found/could not be loaded."},
  257.  
  258.         {STR_ALIEN_WINDOWS,
  259.         "There are alien windows open on the Directory Opus screen.\nSelect Cancel and then close them yourself, or select Close\nand Directory Opus will close them for you (DANGER!)"},
  260.  
  261.         {STR_REALLY_DELETE,
  262.         "Do you really wish to delete selected entries?"},
  263.  
  264.         {STR_WISH_TO_DELETE,
  265.         "Do you really wish to delete \"%s\"?"},
  266.  
  267.         {STR_NOT_EMPTY,
  268.         "\"%s\" is not empty! Delete?"},
  269.  
  270.         {STR_ENTER_NEW_NAME,
  271.         "Enter new name"},
  272.  
  273.         {STR_RENAMING,
  274.         "renaming"},
  275.  
  276.         {STR_ENTER_NEW_NAME_MOVE,
  277.         "Enter new name for moved file"},
  278.  
  279.         {STR_MOVING,
  280.         "moving"},
  281.  
  282.         {STR_ENTER_NEW_NAME_CLONE,
  283.         "Enter name for cloned entry"},
  284.  
  285.         {STR_CLONING,
  286.         "cloning"},
  287.  
  288.         {STR_SIZE_IS_NOT_KNOWN,
  289.         "Size is not known for the selected directory.\nPerform a byte count on this directory?"},
  290.  
  291.         {STR_FILE_MAY_NOT_FIT,
  292.         "Selected file will probably not fit in destination.\nContinue with the copy?"},
  293.  
  294.         {STR_SIZES_NOT_KNOWN,
  295.         "Sizes are not known for some selected directories.\nPerform a byte count on these directories?"},
  296.  
  297.         {STR_ENTRIES_MAY_NOT_FIT,
  298.         "Selected entries will probably not fit in destination.\nContinue with the copy?"},
  299.  
  300.         {STR_ENTER_NEW_NAME_COPY,
  301.         "Enter new name for copied file"},
  302.  
  303.         {STR_ENTER_HUNT_PATTERN,
  304.         "Enter file pattern to hunt"},
  305.  
  306.         {STR_COULD_NOT_FIND_FILE,
  307.         "Sorry! File could not be found!"},
  308.  
  309.         {STR_FOUND_MATCHING_FILES,
  310.         "Found %ld matching files."},
  311.  
  312.         {STR_ADDING_ICON,
  313.         "adding an icon to"},
  314.  
  315.         {STR_recremoved1,
  316.         ""},
  317.  
  318.         {STR_ENTER_COMMENT,
  319.         "Enter comment"},
  320.  
  321.         {STR_recremoved2,
  322.         ""},
  323.     
  324.         {STR_ENTER_PASSWORD,
  325.         "Enter password"},
  326.  
  327.         {STR_recremoved3,
  328.         ""},
  329.  
  330.         {STR_ENTER_DATE_AND_TIME,
  331.         "Enter date and time (blank for current)"},
  332.  
  333.         {STR_ENTER_SEARCH_STRING,
  334.         "Enter search string"},
  335.  
  336.         {STR_recremoved4,
  337.         ""},
  338.  
  339.         {STR_STRING_NOT_FOUND,
  340.         "Sorry! String could not be found!"},
  341.  
  342.         {STR_MATCHED_FILES,
  343.         "Matched in %ld files."},
  344.  
  345.         {STR_NO_SOURCE_SELECTED,
  346.         "No source directory selected!"},
  347.  
  348.         {STR_TEMPORARY_OUTPUT_FILE,
  349.         "Temporary output file"},
  350.  
  351.         {STR_ENTER_ARGUMENTS,
  352.         "Enter arguments"},
  353.  
  354.         {STR_SELECT_FUNCTION,
  355.         "Select function you need help with, or Help again to cancel."},
  356.  
  357.         {STR_NOT_ENOUGH_MEMORY,
  358.         "Not enough memory"},
  359.  
  360.         {STR_PROCESS_TABLE_FULL,
  361.         "Process table full"},
  362.  
  363.         {STR_BAD_TEMPLATE,
  364.         "Bad template"},
  365.  
  366.         {STR_BAD_NUMBER,
  367.         "Bad number"},
  368.  
  369.         {STR_REQUIRED_ARG_MISSING,
  370.         "Required argument missing"},
  371.  
  372.         {STR_ARGUMENT_MISSING,
  373.         "Argument after \"=\" missing"},
  374.  
  375.         {STR_TOO_MANY_ARGUMENTS,
  376.         "Too many arguments"},
  377.  
  378.         {STR_UNMATCHED_QUOTES,
  379.         "Unmatched quotes"},
  380.  
  381.         {STR_ARG_LINE_TOO_LONG,
  382.         "Argument line invalid or too long"},
  383.  
  384.         {STR_FILE_NOT_EXECUTABLE,
  385.         "File is not executable"},
  386.  
  387.         {STR_INVALID_LIBRARY,
  388.         "Invalid resident library"},
  389.  
  390.         {STR_OBJECT_IN_USE,
  391.         "Object is in use"},
  392.  
  393.         {STR_OBJECT_EXISTS,
  394.         "Object already exists"},
  395.  
  396.         {STR_DIR_NOT_FOUND,
  397.         "Directory not found"},
  398.  
  399.         {STR_OBJECT_NOT_FOUND,
  400.         "Object not found"},
  401.  
  402.         {STR_INVALID_WINDOW,
  403.         "Invalid window description"},
  404.  
  405.         {STR_UNKNOWN_PACKET,
  406.         "Packet request type unknown"},
  407.  
  408.         {STR_OBJECT_NAME_INVALID,
  409.         "Object name invalid"},
  410.  
  411.         {STR_INVALID_LOCK,
  412.         "Invalid object lock"},
  413.  
  414.         {STR_OBJECT_BAD_TYPE,
  415.         "Object not of required type"},
  416.  
  417.         {STR_DISK_NOT_VALIDATED,
  418.         "Disk not validated"},
  419.  
  420.         {STR_DISK_WRITE_PROTECTED,
  421.         "Disk is write-protected"},
  422.  
  423.         {STR_RENAME_DEVICES_ATTEMPTED,
  424.         "Rename across devices attempted"},
  425.  
  426.         {STR_DIRECTORY_NOT_EMPTY,
  427.         "Directory not empty"},
  428.  
  429.         {STR_TOO_MANY_LEVELS,
  430.         "Too many levels"},
  431.  
  432.         {STR_SEEK_ERROR,
  433.         "Seek error"},
  434.  
  435.         {STR_COMMENT_TOO_LONG,
  436.         "Comment is too long"},
  437.  
  438.         {STR_DISK_FULL,
  439.         "Disk is full"},
  440.  
  441.         {STR_OBJECT_DELETE_PROTECTED,
  442.         "Object is protected from deletion"},
  443.  
  444.         {STR_OBJECT_WRITE_PROTECTED,
  445.         "File is write protected"},
  446.  
  447.         {STR_OBJECT_READ_PROTECTED,
  448.         "File is read protected"},
  449.  
  450.         {STR_NOT_VALID_DOS_DISK,
  451.         "Not a valid DOS disk"},
  452.  
  453.         {STR_NO_MORE_ENTRIES,
  454.         "No more entries in directory"},
  455.  
  456.         {STR_OBJECT_IS_SOFT_LINK,
  457.         "Object is soft link"},
  458.  
  459.         {STR_CONFIG_CHANGED_LOAD,
  460.         "You have modified the configuration.\nReally load a new configuration file?"},
  461.  
  462.         {STR_ABORTED,
  463.         "Aborted..."},
  464.  
  465.         {STR_ENTER_DOS_ERROR_CODE,
  466.         "Enter DOS error code"},
  467.  
  468.         {STR_NO_HELP_FOR_ERROR,
  469.         "Help not available for that error code!"},
  470.  
  471.         {STR_ERROR_OCCURED,
  472.         "An error occured %s \"%s\"\n%s"},
  473.  
  474.         {STR_RENAME,
  475.         "Rename"},
  476.  
  477.         {STR_AS,
  478.         "As"},
  479.  
  480.         {STR_ENTER_SELECT_PATTERN,
  481.         "Enter select pattern"},
  482.  
  483.         {STR_FILE_ENCRYPTED,
  484.         "\nFile is encrypted!\n\n"},
  485.  
  486.         {STR_READING_FILE,
  487.         "Reading file.."},
  488.  
  489.         {STR_NO_MEMORY_TO_DECRUNCH,
  490.         "Not enough memory to load/decrunch complete file!"},
  491.  
  492.         {STR_BAD_PASSWORD,
  493.         "Incorrect password given!"},
  494.  
  495.         {STR_COUNTING_LINES,
  496.         "Counting lines.."},
  497.  
  498.         {STR_JUMP_TO_LINE,
  499.         "Jump to which line?"},
  500.  
  501.         {STR_JUMP_TO_PERCENTAGE,
  502.         "Jump to what percentage?"},
  503.  
  504.         {STR_CANT_OPEN_PRINTER,
  505.         "Can't open printer!"},
  506.  
  507.         {STR_ERROR_PRINTING_FILE,
  508.         "Error printing file! IoErr = %ld\n"},
  509.  
  510.         {STR_READY_PRINTER,
  511.         "Ready printer, and choose OKAY to continue"},
  512.  
  513.         {STR_CANT_FIND_ICON,
  514.         "Unable to find or load an icon for that file."},
  515.  
  516.         {STR_ENCRYPTING,
  517.         "encrypting"},
  518.  
  519.         {STR_NEW_DISK_INSERTED,
  520.         "A new disk has been inserted in drive DF%ld:\nDo you want to read this disk?"},
  521.  
  522.         {STR_NOT_VALID_REQUESTER,
  523.         "File is not a valid custom requester."},
  524.  
  525.         {STR_ENTER_DATE_1,
  526.         "Enter date in the form DD-MMM-YY"},
  527.  
  528.         {STR_ENTER_DATE_2,
  529.         "Enter date in the form YY-MM-DD"},
  530.  
  531.         {STR_ENTER_DATE_3,
  532.         "Enter date in the form MM-DD-YY"},
  533.  
  534.         {STR_ENTER_DATE_4,
  535.         "Enter date in the form DD-MM-YY"},
  536.  
  537.         {STR_CONTINUE_WITH_SEARCH,
  538.         "Do you wish to continue with the search?"},
  539.  
  540.         {STR_REALLY_QUIT,
  541.         "Do you really want to quit Directory Opus?"},
  542.  
  543.         {STR_REALLY_PROCEED,
  544.         "Do you really wish to proceed with this operation?"},
  545.  
  546.         {STR_SCREEN_MODE_UNAVAILABLE,
  547.         "Screen mode not available."},
  548.  
  549.         {STR_ERROR_INITIALISING_PRINTER,
  550.         "Error initialising printer.\nCheck cable and connections."},
  551.  
  552.         {STR_REALLY_ABORT_PRINT,
  553.         "Really abort the print?"},
  554.  
  555.         {STR_SELECT_SOURCE_DIR,
  556.         "Select the source directory"},
  557.  
  558.         {STR_SELECT_DESTINATION_DIR,
  559.         "Select the destination directory"},
  560.  
  561.         {STR_SELECT_A_FILE,
  562.         "Select a file"},
  563.  
  564.         {STR_SELECT_A_DIRECTORY,
  565.         "Select a directory"},
  566.  
  567.         {STR_LEFT_WINDOW,
  568.         "Left window"},
  569.  
  570.         {STR_RIGHT_WINDOW,
  571.         "Right window"},
  572.  
  573.         {STR_DEVICE_LIST_TITLE,
  574.         "<Device list>"},
  575.  
  576.         {STR_DIR_NOT_AVAILABLE_TITLE,
  577.         "<Directory not available>"},
  578.  
  579.         {STR_BUFFER_LIST_TITLE,
  580.         "<Buffer list>"},
  581.  
  582.         {STR_UNPROTECT,
  583.         "Unprotect"},
  584.  
  585.         {STR_RUN,
  586.         "Run"},
  587.  
  588.         {STR_TRY_AGAIN,
  589.         "Try Again"},
  590.  
  591.         {STR_RETRY,
  592.         "Retry"},
  593.  
  594.         {STR_ABORT,
  595.         "Abort"},
  596.  
  597.         {STR_REPLACE,
  598.         "Replace"},
  599.  
  600.         {STR_SKIP,
  601.         "Skip"},
  602.  
  603.         {STR_ALL,
  604.         "All"},
  605.  
  606.         {STR_REMOVE,
  607.         "Remove"},
  608.  
  609.         {STR_QUIT,
  610.         "Quit"},
  611.  
  612.         {STR_SAVE_QUIT,
  613.         "Save & quit"},
  614.  
  615.         {STR_LOAD,
  616.         "Load"},
  617.  
  618.         {STR_SAVE,
  619.         "Save"},
  620.  
  621.         {STR_DEFAULTS,
  622.         "Defaults"},
  623.  
  624.         {STR_CLOSE,
  625.         "Close"},
  626.  
  627.         {STR_DELETE,
  628.         "Delete"},
  629.  
  630.         {STR_LEAVE,
  631.         "Leave"},
  632.  
  633.         {STR_YES,
  634.         "Yes"},
  635.  
  636.         {STR_NO,
  637.         "No"},
  638.  
  639.         {STR_ICONIFY,
  640.         "Iconify"},
  641.  
  642.         {STR_CONTINUE,
  643.         "Continue"},
  644.  
  645.         {STR_OKAY,
  646.         "Okay"},
  647.  
  648.         {STR_CANCEL,
  649.         "Cancel"},
  650.  
  651.         {STR_OKAY_TITLE,
  652.         "OK"},
  653.  
  654.         {STR_DESCRIPTION,
  655.         "Description"},
  656.  
  657.         {STR_PRINT_CONTROL,
  658.         "Print control"},
  659.  
  660.         {STR_FILE,
  661.         "File"},
  662.  
  663.         {STR_IMAGE_SIZE,
  664.         "Image size"},
  665.  
  666.         {STR_PAGE_SIZE,
  667.         "Page size"},
  668.  
  669.         {STR_SCREEN_SIZE,
  670.         "Screen size"},
  671.  
  672.         {STR_DEPTH,
  673.         "Depth"},
  674.  
  675.         {STR_COLOURS,
  676.         "Colors"},
  677.  
  678.         {STR_SCREEN_MODES,
  679.         "Screen modes"},
  680.  
  681.         {STR_ASPECT,
  682.         "_Aspect:"},
  683.  
  684.         {STR_IMAGE,
  685.         "_Image:"},
  686.  
  687.         {STR_SHADE,
  688.         "_Shade:"},
  689.  
  690.         {STR_PLACEMENT,
  691.         "_Placement:"},
  692.  
  693.         {STR_FORMFEED,
  694.         "_Form feed"},
  695.  
  696.         {STR_PRINTTITLE,
  697.         "Print _Title"},
  698.  
  699.         {STR_PRINT,
  700.         "Print"},
  701.  
  702.         {STR_ABORT_PRINT,
  703.         "Abort print"},
  704.  
  705.         {STR_PORTRAIT,
  706.         "Portrait"},
  707.  
  708.         {STR_LANDSCAPE,
  709.         "Landscape"},
  710.  
  711.         {STR_POSITIVE,
  712.         "Positive"},
  713.  
  714.         {STR_NEGATIVE,
  715.         "Negative"},
  716.  
  717.         {STR_BLACK_WHITE,
  718.         "Black&White"},
  719.  
  720.         {STR_GRAY_SCALE,
  721.         "Gray scale"},
  722.  
  723.         {STR_COLOUR,
  724.         "Color"},
  725.  
  726.         {STR_CENTER,
  727.         "Center"},
  728.  
  729.         {STR_FULL_LEFT,
  730.         "Full left"},
  731.  
  732.         {STR_FONT,
  733.         "Font"},
  734.  
  735.         {STR_FONT_SIZE,
  736.         "Font size"},
  737.  
  738.         {STR_NUM_CHARS,
  739.         "Characters"},
  740.  
  741.         {STR_FONT_STYLE,
  742.         "Font style"},
  743.  
  744.         {STR_FONT_FLAGS,
  745.         "Font flags"},
  746.  
  747.         {STR_ICON,
  748.         "Icon"},
  749.  
  750.         {STR_ICON_TYPE,
  751.         "Icon type"},
  752.  
  753.         {STR_ICON_ALTERNATE,
  754.         "Alt. image"},
  755.  
  756.         {STR_ICON_DEFAULTTOOL,
  757.         "Default tool"},
  758.  
  759.         {STR_NUM_FRAMES,
  760.         "Frame"},
  761.  
  762.         {STR_PLAYING_ANIM,
  763.         "Playing selected animation..."},
  764.  
  765.         {STR_OLD_NEW_FILE_REPLACE,
  766.         "File \"%s\" already exists! Replace?\n\n\
  767. New  -  Size : %7ld  Date : %19s\n\
  768. Old  -  Size : %7ld  Date : %19s"},
  769.  
  770.         {STR_REMAINING,
  771.         "%ld of %ld items"},
  772.  
  773.         {STR_CUSTOM_LIST,
  774.         "Custom list"},
  775.  
  776.         {STR_ENTRIES_IN_TREE,
  777.         "%ld entries in tree"},
  778.  
  779.         {STR_DIRS_IN_BUFFERS,
  780.         "%ld directories in buffers"},
  781.  
  782.         {STR_USER_ENTRIES,
  783.         "%ld user-defined entries"},
  784.  
  785.         {STR_COMPLETED,
  786.         "Completed"},
  787.  
  788.         {STR_UNICONIFY,
  789.         "Uniconify"},
  790.  
  791.         {STR_CUSTPORT_NOT_FOUND,
  792.         "User-specified custom handler port\n\"%s\"\ncould not be found!"},
  793.  
  794.         {STR_CHECKFIT_STRING,
  795.         "Bytes needed : %11ld   Bytes free : %11ld   Fit : %s%%"},
  796.  
  797.         {STR_DIR_TREE,
  798.         "<Directory tree>"},
  799.  
  800.         {STR_BUILDING_TREE,
  801.         "Generating tree structure..."},
  802.  
  803.         {STR_UNPROTECT_ALL,
  804.         "Unprotect all"},
  805.  
  806.         {STR_READING_CHANGED_DIRECTORY,
  807.         "Buffered directory changed - re-reading"},
  808.  
  809.         {STR_CREATING_DIRECTORY,
  810.         "creating directory"},
  811.  
  812.         {STR_STARTING_DISK_MODULE,
  813.         "Starting disk module..."},
  814.  
  815.         {STR_UNABLE_TO_LOAD_MODULE,
  816.         "Unable to load external module"},
  817.  
  818.         {STR_SELECT_ALL_ENTRIES,
  819.         "All entries"},
  820.  
  821.         {STR_SELECT_ONLY_FILES,
  822.         "Only files"},
  823.  
  824.         {STR_SELECT_ONLY_DIRS,
  825.         "Only dirs"},
  826.  
  827.         {STR_SELECT_NAME,
  828.         "Name"},
  829.  
  830.         {STR_SELECT_DATE,
  831.         "Date"},
  832.  
  833.         {STR_SELECT_BITS,
  834.         "Bits"},
  835.  
  836.         {STR_STARTING_PRINT_MODULE,
  837.         "Starting print module..."},
  838.  
  839.         {STR_ABOUT_FAILED,
  840.         "Unable to display about screen!"},
  841.  
  842.         {STR_SEARCH_NO_CASE,
  843.         "Treat upper and lower case as the same"},
  844.  
  845.         {STR_SEARCH_WILD,
  846.         "Recognise ? as a wildcard character"},
  847.  
  848.         {STR_SEARCH_ONLYWORD,
  849.         "Only match on whole, unbroken words"},
  850.  
  851.         {STR_ENTER_FILTER,
  852.         "Enter file filter"},
  853.  
  854.         {STR_SELECT_PROTECTION_BITS,
  855.         "Select new protection bits"},
  856.  
  857.         {STR_DIRECTORY_OPUS_REQUEST,
  858.         "Directory Opus Request"},
  859.  
  860.         {STR_CLOCK_CHIP,
  861.         "CHIP:"},
  862.  
  863.         {STR_CLOCK_FAST,
  864.         "FAST:"},
  865.  
  866.         {STR_CLOCK_TOTAL,
  867.         "TOTAL:"},
  868.  
  869.         {STR_CLOCK_MEM,
  870.         "MEM:"},
  871.  
  872.         {STR_CLOCK_MEMORY,
  873.         "MEMORY:"},
  874.  
  875.         {STR_MONTH_JANUARY,
  876.         "January"},
  877.  
  878.         {STR_MONTH_FEBRUARY,
  879.         "February"},
  880.  
  881.         {STR_MONTH_MARCH,
  882.         "March"},
  883.  
  884.         {STR_MONTH_APRIL,
  885.         "April"},
  886.  
  887.         {STR_MONTH_MAY_LONG,
  888.         "May"},
  889.  
  890.         {STR_MONTH_JUNE,
  891.         "June"},
  892.  
  893.         {STR_MONTH_JULY,
  894.         "July"},
  895.  
  896.         {STR_MONTH_AUGUST,
  897.         "August"},
  898.  
  899.         {STR_MONTH_SEPTEMBER,
  900.         "September"},
  901.  
  902.         {STR_MONTH_OCTOBER,
  903.         "October"},
  904.  
  905.         {STR_MONTH_NOVEMBER,
  906.         "November"},
  907.  
  908.         {STR_MONTH_DECEMBER,
  909.         "December"},
  910.  
  911.         {STR_MONTH_JAN,
  912.         "Jan"},
  913.  
  914.         {STR_MONTH_FEB,
  915.         "Feb"},
  916.  
  917.         {STR_MONTH_MAR,
  918.         "Mar"},
  919.  
  920.         {STR_MONTH_APR,
  921.         "Apr"},
  922.  
  923.         {STR_MONTH_MAY,
  924.         "May"},
  925.  
  926.         {STR_MONTH_JUN,
  927.         "Jun"},
  928.  
  929.         {STR_MONTH_JUL,
  930.         "Jul"},
  931.  
  932.         {STR_MONTH_AUG,
  933.         "Aug"},
  934.  
  935.         {STR_MONTH_SEP,
  936.         "Sep"},
  937.  
  938.         {STR_MONTH_OCT,
  939.         "Oct"},
  940.  
  941.         {STR_MONTH_NOV,
  942.         "Nov"},
  943.  
  944.         {STR_MONTH_DEC,
  945.         "Dec"},
  946.  
  947.         {STR_DAY_MONDAY,
  948.         "Monday"},
  949.  
  950.         {STR_DAY_TUESDAY,
  951.         "Tuesday"},
  952.  
  953.         {STR_DAY_WEDNESDAY,
  954.         "Wednesday"},
  955.  
  956.         {STR_DAY_THURSDAY,
  957.         "Thursday"},
  958.  
  959.         {STR_DAY_FRIDAY,
  960.         "Friday"},
  961.  
  962.         {STR_DAY_SATURDAY,
  963.         "Saturday"},
  964.  
  965.         {STR_DAY_SUNDAY,
  966.         "Sunday"},
  967.  
  968.         {STR_DAY_MON,
  969.         "Mon"},
  970.  
  971.         {STR_DAY_TUE,
  972.         "Tue"},
  973.  
  974.         {STR_DAY_WED,
  975.         "Wed"},
  976.  
  977.         {STR_DAY_THU,
  978.         "Thu"},
  979.  
  980.         {STR_DAY_FRI,
  981.         "Fri"},
  982.  
  983.         {STR_DAY_SAT,
  984.         "Sat"},
  985.  
  986.         {STR_DAY_SUN,
  987.         "Sun"},
  988.  
  989.         {STR_DAY_YESTERDAY,
  990.         "Yesterday"},
  991.  
  992.         {STR_DAY_TODAY,
  993.         "Today"},
  994.  
  995.         {STR_DAY_TOMORROW,
  996.         "Tomorrow"},
  997.  
  998.         {STR_DAY_FUTURE,
  999.         "Future"},
  1000.  
  1001.         {STR_KEY,
  1002.         "Key : "},
  1003.  
  1004.         {STR_TINY_BUTTONS,
  1005.         "BRSA?EFCIQ"},
  1006.  
  1007.         {STR_VIEW_BUTTONS,
  1008.         "UDTBSPQ"},
  1009.  
  1010.         {STR_DISKINFO_DEVICE,
  1011.         "Device"},
  1012.  
  1013.         {STR_DISKINFO_NAME,
  1014.         "Name"},
  1015.  
  1016.         {STR_DISKINFO_SIZE,
  1017.         "Size"},
  1018.  
  1019.         {STR_DISKINFO_USED,
  1020.         "Used"},
  1021.  
  1022.         {STR_DISKINFO_FREE,
  1023.         "Free"},
  1024.  
  1025.         {STR_DISKINFO_PERCENT,
  1026.         "Percent"},
  1027.  
  1028.         {STR_DISKINFO_DENSITY,
  1029.         "Density"},
  1030.  
  1031.         {STR_DISKINFO_ERRORS,
  1032.         "Errors"},
  1033.  
  1034.         {STR_DISKINFO_STATUS,
  1035.         "Status"},
  1036.  
  1037.         {STR_DISKINFO_DATE,
  1038.         "Date"},
  1039.  
  1040.         {STR_DISKINFO_FILESYSTEM,
  1041.         "F.System"},
  1042.  
  1043.         {STR_DISKINFO_BYTES,
  1044.         "bytes"},
  1045.  
  1046.         {STR_DISKINFO_BLOCKS,
  1047.         "blocks"},
  1048.  
  1049.         {STR_DISKINFO_FULL,
  1050.         "full"},
  1051.  
  1052.         {STR_DISKINFO_SFREE,
  1053.         "free"},
  1054.  
  1055.         {STR_DISKINFO_BYTESPERBLOCK,
  1056.         "bytes/block"},
  1057.  
  1058.         {STR_TEXT_VIEWER_TITLE,
  1059.         "Directory Opus Text Viewer"},
  1060.  
  1061.         {STR_PROTECT_ALL_BITS,
  1062.         "All bits"},
  1063.  
  1064.         {STR_PROTECT_NONE,
  1065.         "None"},
  1066.  
  1067.         {STR_PROTECT_TOGGLE,
  1068.         "Toggle"},
  1069.  
  1070.         {STR_PROTECT_REVERT,
  1071.         "Revert"},
  1072.  
  1073.         {STR_PROTECT_OLD,
  1074.         "Old :"},
  1075.  
  1076.         {STR_PROTECT_NEW,
  1077.         "New :"},
  1078.  
  1079.         {STR_PROTECT_MASK,
  1080.         "Mask:"},
  1081.  
  1082.         {STR_PROTECT_HIDDEN,
  1083.         "_Hidden"},
  1084.  
  1085.         {STR_PROTECT_SCRIPT,
  1086.         "_Script"},
  1087.  
  1088.         {STR_PROTECT_PURE,
  1089.         "_Pure"},
  1090.  
  1091.         {STR_PROTECT_ARCHIVE,
  1092.         "_Archive"},
  1093.  
  1094.         {STR_PROTECT_READ,
  1095.         "_Read"},
  1096.  
  1097.         {STR_PROTECT_WRITE,
  1098.         "_Write"},
  1099.  
  1100.         {STR_PROTECT_EXECUTE,
  1101.         "_Execute"},
  1102.  
  1103.         {STR_PROTECT_DELETE,
  1104.         "_Delete"},
  1105.  
  1106.         {STR_FILE_REQUEST,
  1107.         "File request"},
  1108.  
  1109.         {STR_OF,
  1110.         "of"},
  1111.  
  1112.         {STR_FRAME,
  1113.         "Frame"},
  1114.  
  1115.         {STR_DISK_OP_TITLE,
  1116.         "Directory Opus Disk Operations"},
  1117.  
  1118.         {STR_BUTTON_STRIP,
  1119.         "Directory Opus Button Strip"},
  1120.  
  1121.         {STR_NO_FIT,
  1122.         " N"},
  1123.  
  1124.         {STR_YES_FIT,
  1125.         " Y"},
  1126.  
  1127.         {STR_FTYPE_DEFAULT,
  1128.         "Default"},
  1129.  
  1130.         {STR_FTYPE_UNKNOWN,
  1131.         "Unknown file type"},
  1132.  
  1133.         {STR_PROTBIT_HSPA,
  1134.         "HSPA----"},
  1135.  
  1136.         {STR_PROTBIT_RWED,
  1137.         "----RWED"},
  1138.  
  1139.         {STR_PROTBIT_ALLBITS,
  1140.         "hsparwed"},
  1141.  
  1142.         {STR_MULTI_DRAG,
  1143.         "Multi-drag - %ld files selected"},
  1144.  
  1145.         {STR_PRESS_MOUSE_BUTTON,
  1146.         "Press left mouse button to continue..."},
  1147.  
  1148.         {STR_NETWORK_NO_OWNER,
  1149.         "No owner"},
  1150.  
  1151.         {STR_NETWORK_NO_GROUP,
  1152.         "No group"},
  1153.  
  1154.         {STR_ERROR_ERROR_HELP,
  1155.         "Error help"},
  1156.  
  1157.         {STR_SKIP_ALL,
  1158.         "Skip all"},
  1159.  
  1160.         {STR_PARENT_MULTI,
  1161.         "Parents and Multi-Assigns..."},
  1162.  
  1163.         {STR_ANIM_TYPE,
  1164.         "Anim type"},
  1165.  
  1166.         {STR_STRING_COUNT,NULL}};
  1167.  
  1168. char str_okaystring[30];
  1169. char str_cancelstring[30];
  1170.  
  1171. #ifndef STRINGS_ONLY
  1172. void readstrings(file)
  1173. char *file;
  1174. {
  1175.     int a;
  1176.  
  1177.     stringdata.default_table=default_strings;
  1178.     stringdata.string_count=STR_STRING_COUNT;
  1179.     stringdata.min_version=STRING_VERSION;
  1180.  
  1181.     if (!(ReadStringFile(&stringdata,file))) quit();
  1182.     globstring=stringdata.string_table;
  1183.  
  1184.     for (a=0;a<12;a++) {
  1185.         date_months[a]=globstring[STR_MONTH_JANUARY+a];
  1186.         date_shortmonths[a]=globstring[STR_MONTH_JAN+a];
  1187.     }
  1188.     date_weekdays[0]=globstring[STR_DAY_SUNDAY];
  1189.     date_shortweekdays[0]=globstring[STR_DAY_SUN];
  1190.     for (a=1;a<7;a++) {
  1191.         date_weekdays[a]=globstring[(STR_DAY_MONDAY-1)+a];
  1192.         date_shortweekdays[a]=globstring[(STR_DAY_MON-1)+a];
  1193.     }
  1194.     for (a=0;a<4;a++) date_special[a]=globstring[STR_DAY_YESTERDAY+a];
  1195.     strcpy(str_okaystring,globstring[STR_OKAY]);
  1196.     strcpy(str_cancelstring,globstring[STR_CANCEL]);
  1197. }
  1198. #else
  1199. char string_type[]="Directory Opus Strings";
  1200. char *string_save="DO_%s.STR";
  1201. #endif
  1202.