4 Original GPL release version 4.12
5 Copyright 1993-2000 Jonathan Potter
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.
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.
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.
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.
26 The release of Directory Opus 4 under the GPL in NO WAY affects
27 the existing commercial status of Directory Opus 5.
31 /* Data for DOpus functions, including the actual internal command list and
36 /* List of Internal commands */
38 struct CommandList commandlist
[]={
39 {"About",FUNC_ABOUT
,0},
40 {"AddCustEntry",FUNC_ADDCUSTENTRY
,RCL_NOBUTTON
},
41 {"AddCustHandler",FUNC_ADDCUSTHANDLER
,RCL_NOBUTTON
},
42 {"AddFile",FUNC_ADDFILE
,RCL_NOBUTTON
},
43 {"AddIcon",FUNC_ADDICON
,0},
44 {"Alarm",FUNC_ALARM
,0},
45 {"All",FUNC_ALL
,RCL_NOBUTTON
},
46 {"AnsiRead",FUNC_ANSIREAD
,0},
47 {"ARexx",FUNC_AREXX
,0},
48 {"Assign",FUNC_ASSIGN
,RCL_NOBUTTON
},
49 {"Auto",FUNC_AUTO
,RCL_SYNONYM
},
50 {"Auto2",FUNC_AUTO2
,RCL_SYNONYM
},
52 {"BufferList",FUNC_BUFFERLIST
,RCL_NOBUTTON
},
53 {"Busy",FUNC_BUSY
,RCL_NOBUTTON
},
54 {"ButtonIconify",FUNC_ICONIFYBUTTONS
,RCL_NOBUTTON
},
55 {"Byte",FUNC_BYTE
,RCL_NOBUTTON
|RCL_SYNONYM
},
56 {"CD",FUNC_SETCURDIR
,0},
57 {"CheckAbort",FUNC_CHECKABORT
,0},
58 {"CheckFit",FUNC_CHECKFIT
,RCL_NOBUTTON
},
59 {"ClearBuffers",FUNC_CLEARBUFFERS
,RCL_NOBUTTON
},
60 {"ClearSizes",FUNC_UNBYTE
,RCL_NOBUTTON
},
61 {"ClearWin",FUNC_CLEARWINDOW
,RCL_NOBUTTON
},
62 {"Clone",FUNC_CLONE
,RCL_NEEDDEST
},
63 {"Comment",FUNC_COMMENT
,0},
64 {"Configure",FUNC_CONFIGURE
,0},
65 {"ContST",FUNC_CONTST
,0},
66 {"Copy",FUNC_COPY
,RCL_NEEDDEST
},
67 {"CopyAs",FUNC_COPYAS
,RCL_NEEDDEST
},
68 {"CopyWindow",FUNC_COPYWINDOW
,RCL_NOBUTTON
},
69 {"DateStamp",FUNC_DATESTAMP
,0},
70 {"Defaults",FUNC_DEFAULTCONFIG
,RCL_NOBUTTON
},
71 {"Delete",FUNC_DELETE
,0},
72 {"DirTree",FUNC_DIRTREE
,RCL_NOBUTTON
},
73 {"Diskcopy",FUNC_DISKCOPY
,0},
74 {"DiskcopyBG",FUNC_BGDISKCOPY
,0},
75 {"DiskInfo",FUNC_DISKINFO
,RCL_NOFILE
|RCL_NOBUTTON
},
76 {"DisplayDir",FUNC_DISPLAYDIR
,RCL_NOBUTTON
},
77 {"DopusToBack",FUNC_DOPUSTOBACK
,RCL_NOBUTTON
},
78 {"DopusToFront",FUNC_DOPUSTOFRONT
,RCL_NOBUTTON
},
79 {"Encrypt",FUNC_ENCRYPT
,RCL_NEEDDEST
},
80 {"EndFunction",FUNC_ENDFUNCTION
,RCL_SYNONYM
},
81 {"ErrorHelp",FUNC_ERRORHELP
,0},
82 {"Execute",FUNC_RUN
,0},
83 {"FileInfo",FUNC_FILEINFO
,RCL_NOBUTTON
},
84 {"FinishSection",FUNC_ENDFUNCTION
,0},
85 {"Format",FUNC_FORMAT
,0},
86 {"FormatBG",FUNC_BGFORMAT
,0},
87 {"GetAll",FUNC_GETALL
,RCL_NOBUTTON
},
88 {"GetDevices",FUNC_DEVICELIST
,RCL_NOBUTTON
},
89 {"GetDirs",FUNC_GETDIRS
,RCL_NOBUTTON
},
90 {"GetEntry",FUNC_GETENTRY
,RCL_NOBUTTON
},
91 {"GetFiletype",FUNC_GETFILETYPE
,RCL_NOBUTTON
},
92 {"GetFiles",FUNC_GETFILES
,RCL_NOBUTTON
},
93 {"GetNextSelected",FUNC_GETNEXTSELECTED
,RCL_NOBUTTON
},
94 {"GetSelectedAll",FUNC_GETSELECTEDALL
,RCL_NOBUTTON
},
95 {"GetSelectedDirs",FUNC_GETSELECTEDDIRS
,RCL_NOBUTTON
},
96 {"GetSelectedFiles",FUNC_GETSELECTEDFILES
,RCL_NOBUTTON
},
97 {"GetSizes",FUNC_BYTE
,RCL_NOBUTTON
},
98 {"GetString",FUNC_GETSTRING
,0},
100 {"HexRead",FUNC_HEXREAD
,0},
101 {"Hunt",FUNC_HUNT
,RCL_NOFILE
},
102 {"Iconify",FUNC_ICONIFY
,RCL_NOBUTTON
},
103 {"IconInfo",FUNC_ICONINFO
,0},
104 {"Install",FUNC_INSTALL
,0},
105 {"InstallBG",FUNC_BGINSTALL
,0},
106 {"LastSaved",FUNC_LASTSAVEDCONFIG
,RCL_NOBUTTON
},
107 {"LoadConfig",FUNC_LOADCONFIG
,RCL_NOBUTTON
},
108 {"LoadStrings",FUNC_LOADSTRINGFILE
,RCL_NOBUTTON
},
109 {"LoopPlay",FUNC_LOOPPLAY
,0},
110 {"LPlay",FUNC_LOOPPLAY
,RCL_SYNONYM
},
111 {"MakeDir",FUNC_MAKEDIR
,0},
112 {"MakeLink",FUNC_MAKELINK
,RCL_NEEDDEST
},
113 {"Modify",FUNC_MODIFY
,0},
114 {"Move",FUNC_MOVE
,RCL_NEEDDEST
},
115 {"MoveAs",FUNC_MOVEAS
,RCL_NEEDDEST
},
116 {"NewCLI",FUNC_NEWCLI
,0},
117 {"NewShell",FUNC_NEWCLI
,0},
118 {"NextDrives",FUNC_NEXTDRIVES
,RCL_NOBUTTON
},
119 {"NNCopy",FUNC_COPYAS
,RCL_NEEDDEST
|RCL_SYNONYM
},
120 {"NNMove",FUNC_MOVEAS
,RCL_NEEDDEST
|RCL_SYNONYM
},
121 {"Notify",FUNC_NOTIFY
,0},
122 {"None",FUNC_NONE
,RCL_NOBUTTON
},
123 {"OtherWindow",FUNC_OTHERWINDOW
,RCL_NOBUTTON
},
124 {"Parent",FUNC_PARENT
,RCL_NOBUTTON
},
125 {"ParentList",FUNC_PARENTLIST
,RCL_NOBUTTON
},
126 {"PatternMatch",FUNC_PATTERNMATCH
,0},
127 {"Play",FUNC_PLAY
,0},
128 {"PlayST",FUNC_PLAYST
,0},
129 {"Print",FUNC_PRINT
,0},
130 {"PrintDir",FUNC_PRINTDIR
,RCL_NOBUTTON
},
131 {"Protect",FUNC_PROTECT
,0},
132 {"Query",FUNC_QUERY
,0},
133 {"Quit",FUNC_QUIT
,0},
134 {"Read",FUNC_READ
,0},
135 {"Redraw",FUNC_REDRAW
,RCL_NOBUTTON
},
136 {"Relabel",FUNC_RELABEL
,RCL_NOFILE
},
137 {"Remember",FUNC_REMEMBER
,0},
138 {"RemoveEntry",FUNC_REMOVEENTRY
,RCL_NOBUTTON
},
139 {"RemoveFile",FUNC_REMOVEFILE
,RCL_NOBUTTON
},
140 {"Rename",FUNC_RENAME
,0},
141 {"Request",FUNC_REQUEST
,0},
142 {"Rescan",FUNC_RESCAN
,RCL_NOBUTTON
},
143 {"Reselect",FUNC_RESELECT
,RCL_NOBUTTON
},
144 {"Restore",FUNC_RESTORE
,0},
145 {"Root",FUNC_ROOT
,RCL_NOBUTTON
},
147 {"SaveConfig",FUNC_SAVECONFIG
,0},
148 {"ScanDir",FUNC_SCANDIR
,RCL_NOBUTTON
},
149 {"ScrollH",FUNC_SCROLLH
,RCL_NOBUTTON
},
150 {"ScrollToShow",FUNC_SCROLLTOSHOW
,RCL_NOBUTTON
},
151 {"ScrollV",FUNC_SCROLLV
,RCL_NOBUTTON
},
152 {"Search",FUNC_SEARCH
,0},
153 {"Select",FUNC_SELECT
,RCL_NOBUTTON
},
154 {"SelectEntry",FUNC_SELECTENTRY
,RCL_NOBUTTON
},
155 {"SelectFile",FUNC_SELECTFILE
,RCL_NOBUTTON
},
156 {"SetVar",FUNC_SETVAR
,0},
157 {"SetWinTitle",FUNC_SETWINTITLE
,0},
158 {"Show",FUNC_SHOW
,0},
159 {"SmartRead",FUNC_SMARTREAD
,0},
160 {"Status",FUNC_STATUS
,0},
161 {"StopST",FUNC_STOPST
,0},
162 {"SwapWindow",FUNC_SWAPWINDOW
,RCL_NOBUTTON
},
163 {"Toggle",FUNC_TOGGLE
,RCL_NOBUTTON
},
164 {"TopText",FUNC_TOPTEXT
,0},
165 {"UnByte",FUNC_UNBYTE
,RCL_NOBUTTON
|RCL_SYNONYM
},
166 {"UnIconify",FUNC_UNICONIFY
,0},
167 {"User1",FUNC_AUTO
,0},
168 {"User2",FUNC_AUTO2
,0},
169 {"User3",FUNC_AUTO3
,0},
170 {"User4",FUNC_AUTO4
,0},
171 {"Verify",FUNC_VERIFY
,0},
172 {"Version",FUNC_VERSION
,0},
175 /* ARexx and Function data */
177 ULONG rexx_signalbit
; /* Signal bit for ARexx port */
178 WORD rexx_argcount
; /* ARexx argument count */
179 char *rexx_args
[16]; /* ARexx arguments */
180 LONG rexx_arg_value
[16]; /* Argument values */
181 UBYTE rexx_global_flag
=0; /* Signifies an ARexx command */
182 char *rexx_pathbuffer
[2]; /* Path buffer of an ARexx argument */
183 LONG rexx_result_code
; /* Return code for ARexx functions */
184 LONG rexx_return_value
; /* RC for ARexx functions */
186 ULONG func_global_function
=0; /* Global function number */
187 char func_single_file
[FILEBUF_SIZE
]={0}; /* Single file to operate on */
188 char func_external_file
[256]={0}; /* External file to operate on */
189 struct Directory
*func_single_entry
=NULL
; /* Single entry to operate on */
190 UBYTE func_entry_deleted
=0; /* Indicates entry was deleted */
192 struct DirWindowPars func_reselection
; /* Reselection data */
194 /* Parameters recognised by the Modify command */
196 char *modifynames
[]={
197 "CopyFlags", /* copyflags */
198 "DeleteFlags", /* deleteflags */
199 "ErrorFlags", /* errorflags */
200 "ListFormat", /* displaypos */
201 "GeneralFlags", /* generalflags */
202 "IconFlags", /* iconflags */
203 "ReplaceFlags", /* existflags */
204 "SortFlags", /* sortflags */
205 "UpdateFlags", /* dynamicflags */
206 "OutputCmd", /* outputcmd */
207 "OutputWindow", /* output */
208 "ScrDepth", /* scrdepth */
209 "ScreenFlags", /* screenflags */
210 "ScreenMode", /* screenmode */
213 "DirFlags", /* dirflags */
214 "Helpfile", /* helpfile */
215 "DefaultTool", /* defaulttool */
216 "ShowDelay", /* showdelay */
217 "ViewPlayFlags", /* viewbits */
218 "FadeDelay", /* fadetime */
219 "ShowPatBits", /* hiddenbit */
220 "ShowPattern", /* showpat */
221 "HidePattern", /* hidepat */
222 "IconifyFlags", /* icontype */
223 "ScrClockFlags", /* scrclktype */
224 "ShowFreeFlags", /* showfree */
225 "Font", /* fontsizes/fontbufs */
226 "BankNumber", /* current gadget bank */
227 "DateFormat", /* dateformat */
228 "ButtonRows", /* gadgetrows */
229 "DisplayLength", /* displaylength */
230 "WindowSize", /* windowdelta */
231 "SortMethod", /* sortmethod */
232 "SeparateMethod", /* separatemethod */
233 "Filter", /* file filter */
234 "WindowXY", /* wbwinx, wbwiny */
235 "WindowWH", /* scr_winw, scr_winh */
236 "PubScreen", /* pubscreen_name */
237 "WindowXYWH", /* wbwinx, wbwiny, scr_winw, scr_winh */
238 "ScreenName", /* Screen we are open on */
239 "PortName", /* Rexx port name */
242 /* Data for Remember/Restore function */
244 struct RememberData
*remember_data
; /* Storage for remembered data */
246 /* Date for Search function */
248 int search_flags
=SEARCH_NOCASE
; /* Search flags */
249 char *search_found_position
; /* Position of match */
250 int search_found_size
; /* Bytes searched */
251 int search_found_lines
; /* Lines searched */
252 int search_last_line_pos
; /* Last line position searched */
254 /* Data for Show Info routine */
256 struct TextFont
*show_global_font
=NULL
; /* Font info */
257 struct DiskObject
*show_global_icon
=NULL
; /* Icon info */
258 char *show_global_icon_name
; /* Icon name */