home *** CD-ROM | disk | FTP | other *** search
/ New Horizons Shareware Collection / HORIZONS1.BIN / MAXFMPM.INF (.txt) < prev    next >
OS/2 Help File  |  1994-12-27  |  87KB  |  2,693 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. OverView ΓòÉΓòÉΓòÉ
  3.  
  4.                             MaxFile/PM - Version 1.25
  5.  
  6.  
  7.                   A FILES.BBS Manager for Presentation Manager
  8.                     Copyright (C) 1993,1994 by Craig Morrison
  9.                               All Rights Reserved.
  10.  
  11.   Portions of the header files used in compilation are:
  12.  
  13.    Copyright (C) 1992 by Scott Dudley
  14.    Copyright (C) 1993 by Aki Antman
  15.    Copyright (C) 1994 by Marco Maccaferri
  16.  
  17.   MSGAPI portions of the Announce Files option are:
  18.  
  19.    Copyright 1991,94 by Scott J. Dudley.  All rights reserved.
  20.    "Squish" and "Maximus" are trademarks of Lanius Corporation.
  21.  
  22.   From the Development Team of:
  23.  
  24.    Craig Morrison - MaxFile/PM Development
  25.     1:201/60@fidonet.org
  26.  
  27.    Ronald Van Iwaarden - MaxFile/2 Development
  28.     1:104/338@fidonet.org
  29.  
  30.  
  31. ΓòÉΓòÉΓòÉ 1.1. Special Thanks ΓòÉΓòÉΓòÉ
  32.  
  33.  Mark Kimes
  34.  
  35.  For putting up with my never ending questions and general bull-headedness
  36.  when it comes to programming under OS/2. (Very handy guy to talk to when it
  37.  comes to programming in general!)
  38.  
  39.  Elliott Goodman
  40.  
  41.  Beta Tester
  42.  ANNOUNCE.CMD Author
  43.  
  44.  Philip Perlman
  45.  
  46.  Beta Tester
  47.  
  48.  Ronald Van Iwaarden
  49.  
  50.  Cohort in crime and Beta Tester
  51.  
  52.  
  53. ΓòÉΓòÉΓòÉ 1.2. OS/2 Version Information ΓòÉΓòÉΓòÉ
  54.  
  55. MaxFile/PM should operate normally under all versions of OS/2 from 2.xx and 
  56. higher. 
  57.  
  58.  
  59. ΓòÉΓòÉΓòÉ 1.3. Foreword ΓòÉΓòÉΓòÉ
  60.  
  61. MaxFile/PM is a FILES.BBS manager that runs under Presentation Manager. While 
  62. it was written with the Maximus-CBCS in mind, any BBS software package that 
  63. uses the standard FILES.BBS format is supported. 
  64.  
  65. A short list of the features are: 
  66.  
  67.     1. Drag and Drop between file areas 
  68.  
  69.     2. FILE_ID.DIZ import 
  70.  
  71.     3. Rearchiving files 
  72.  
  73.     4. Sorting by: 
  74.  
  75.       Name 
  76.       Date 
  77.       Size 
  78.       Description 
  79.  
  80.     5. In-place editing of file descriptions 
  81.  
  82.     6. Renaming files 
  83.  
  84.     7. Full REXX Macro Integration 
  85.  
  86.  
  87. ΓòÉΓòÉΓòÉ 1.4. Support ΓòÉΓòÉΓòÉ
  88.  
  89. If you need to contact me about the program I can be reached in a number of 
  90. places. NetMail will get you the fastest response, but I read the OS2PRODSUP, 
  91. OS2BBS and MUFFIN conferences everyday and intend on answering any questions 
  92. posted there. There is also a local conference on my BBS called MFILEPMSUP that 
  93. you are more than welcome to poll for. Contact either myself, Elliott Goodman 
  94. at 1:102/1319 or Pete Norloff at 1:109/347 for more information about getting 
  95. hooked up. 
  96.  
  97. Due to the large cost in crashing netmail all over the world I will only be 
  98. sending replies out crash to registered users who report a problem. Sorry 
  99. folks, but most of my income is generated by these projects. If they don't get 
  100. registered I can't provide free support. I will respond to everyone who sends 
  101. netmail, but it will be routed netmail in most cases. 
  102.  
  103. While I will answer questions from those of you who have not registered the 
  104. program, you will get a much quicker response from me if you have. 
  105.  
  106. I *will* support MaxFile/PM, all you need to do is ask. 
  107.  
  108.  
  109. ΓòÉΓòÉΓòÉ 2. Registration ΓòÉΓòÉΓòÉ
  110.  
  111. I'm going to keep this short, sweet and to the point. It is $25 to register the 
  112. program. You may use this version of MaxFile/PM for 45 days from the day you 
  113. first run it. After the 45 day evaluation period it will no longer operate. 
  114.  
  115. MaxFile/PM is not freeware, it is shareware, you are expected to register the 
  116. program if you continue using it. 
  117.  
  118. Please print out and read the REGISTER.FRM file that is included in the archive 
  119. for more information on registering the program. 
  120.  
  121. Registration provides me with the incentive to keep working on the program, 
  122. it's all up to you folks that use the program. I treat registered users VERY 
  123. well. 
  124.  
  125. 'Nuff said... 
  126.  
  127.  
  128. ΓòÉΓòÉΓòÉ 3. License Information ΓòÉΓòÉΓòÉ
  129.  
  130.             MaxFile/PM LICENSE FOR USE AND DISTRIBUTION
  131.  
  132.    MaxFile/PM is not public domain software, nor is it free
  133.    software.
  134.  
  135.    MaxFile/PM is copyright (C) 1993,94 by Craig A. Morrison.
  136.    All Rights Reserved.
  137.  
  138.    Non-registered users are granted a limited license to use
  139.    MaxFile/PM on a trial basis, for a period not to exceed 45 days,
  140.    for the purpose of determining whether MaxFile/PM is suitable for
  141.    their needs.  Use of MaxFile/PM, except for this limited purpose,
  142.    requires registration.  Use of non-registered copies of
  143.    MaxFile/PM by any person, business, corporation, governmental
  144.    agency or other entity institution is strictly forbidden.
  145.  
  146.    Registration grants a user the right to use MaxFile/PM only on
  147.    a single computer; a registered user may use the program on a
  148.    different computer, but may not use the program on more than one
  149.    computer at the same time.
  150.  
  151.    No one may modify MaxFile/PM in any way, including but not
  152.    limited to decompiling, disassembling or otherwise reverse
  153.    engineering the program.
  154.  
  155.    All users are granted a limited license to copy MaxFile/PM
  156.    only for the trial use of others subject to the above
  157.    limitations, and also the following:
  158.  
  159.       MaxFile/PM must be copied in unmodified form, complete
  160.       with all contents of the original distribution archive.
  161.       Bulletin board system operators (Sysops) are granted
  162.       permission to convert the distribution archive to another
  163.       format so long as the complete contents of the original
  164.       archive are transferred in whole.
  165.  
  166.       No fee, charge or other compensation may be accepted or
  167.       requested by any licensee.
  168.  
  169.       MaxFile/PM may not be distributed in conjunction with any
  170.       other product without the prior written consent of the
  171.       author.
  172.  
  173.    Operators of electronic bulletin board systems may post
  174.    MaxFile/PM for downloading by their users only as long as the
  175.    above conditions are met.
  176.  
  177.    Distributors of public domain or user supported software may
  178.    distribute copies of MaxFile/PM subject to the above
  179.    conditions.
  180.  
  181.  
  182. ΓòÉΓòÉΓòÉ 4. Before You Start - READ THIS! ΓòÉΓòÉΓòÉ
  183.  
  184. The default installation of OS/2 defines Mouse Button 1 as the left button and 
  185. Mouse Button 2 as the right button. Please keep this in mind as you read 
  186. through this document if you have redefined your mouse buttons. 
  187.  
  188. A word to the wise here.. 
  189.  
  190. BACKUP *BEFORE* USING MAXFILE/PM ! 
  191.  
  192. Here comes the standard disclaimer...I don't promise that MaxFile/PM will do 
  193. anything for you except take up space on your hard drive. While I am fairly 
  194. certain I have got all the nasties out of it, there is a chance that I may have 
  195. missed something. So please be safe and backup prior to using the program. 
  196. Suffice it to say, you have been warned.. 
  197.  
  198. See also: OS/2 Version Information 
  199.  
  200.  
  201. ΓòÉΓòÉΓòÉ 5. Configuring MaxFile/PM ΓòÉΓòÉΓòÉ
  202.  
  203. To configure MaxFile/PM for use, simply start MaxFile/PM by typing MAXFMPM and 
  204. pressing ENTER at an OS/2 Command Prompt. The MaxFile/PM Settings notebook will 
  205. be presented for you, so that you can enter the vital information about your 
  206. system and BBS setup. 
  207.  
  208. The Settings Notebook is where you configure MaxFile/PM so that it fits your 
  209. particular system. There are a lot of options here, some required, some not, 
  210. all depending on whether you want to be able to use that particular feature or 
  211. not. There are 4 major categories of information here; Main, Archivers, Viewers 
  212. and Other. Some of the categories have more than one page devoted to them. A 
  213. detailed discussion of the categories follows. 
  214.  
  215.  
  216. ΓòÉΓòÉΓòÉ 5.1. Settings/Main - Basic information ΓòÉΓòÉΓòÉ
  217.  
  218. The Main section of the notebook consists of three pages that contain the 
  219. information that tells MaxFile/PM the basics about your BBS configuration and 
  220. how to handle certain options. 
  221.  
  222.  
  223. ΓòÉΓòÉΓòÉ 5.1.1. Main - Page 1 ΓòÉΓòÉΓòÉ
  224.  
  225. This sections covers Main Page 1 of the settings notebook. It contains the 
  226. basics of your BBS configuration. 
  227.  
  228.  
  229. ΓòÉΓòÉΓòÉ 5.1.1.1. Registration Key ΓòÉΓòÉΓòÉ
  230.  
  231. Your registration key, if you have one. If not leave it blank. 
  232.  
  233. Enter the registration key exactly the same as it is given to you. 
  234.  
  235.  
  236. ΓòÉΓòÉΓòÉ 5.1.1.2. Registration Name ΓòÉΓòÉΓòÉ
  237.  
  238. Your name, this works in conjunction with the Registration Key field. 
  239. MaxFile/PM hashes your name against your Key to see if you really are a 
  240. registered user. 
  241.  
  242. The Registration XXXX fields when filled out properly, stop the usage timer. 
  243.  
  244.  
  245. ΓòÉΓòÉΓòÉ 5.1.1.3. BBS Package ΓòÉΓòÉΓòÉ
  246.  
  247. Four choices here: 
  248.  
  249.    Maximus 
  250.    Lora 
  251.    SuperBBS 
  252.    Generic 
  253.  
  254. Simply select one from the drop down list box. Or type in one of the names in 
  255. the list above. 
  256.  
  257.  
  258. ΓòÉΓòÉΓòÉ 5.1.1.4. BBS Directory ΓòÉΓòÉΓòÉ
  259.  
  260. This is the directory that your BBS software resides in. Enter the FULL path 
  261. specification. 
  262.  
  263.  
  264. ΓòÉΓòÉΓòÉ 5.1.1.5. Temp Directory ΓòÉΓòÉΓòÉ
  265.  
  266. This is the FULL path to an EXISTING directory that MaxFile/PM can use to store 
  267. temporary files in and use for rearchiving files. Don't use this directory for 
  268. ANYTHING else while MaxFile/PM is running. EVERYTHING, INCLUDING ANY 
  269. SUB-DIRECTORIES WILL BE REMOVED BY Maxfile/PM IF YOU REARCHIVE ANY FILES. 
  270.  
  271.  
  272. ΓòÉΓòÉΓòÉ 5.1.1.6. File Area Data ΓòÉΓòÉΓòÉ
  273.  
  274. This is the FULL path and filename of the file that contains your file area 
  275. definitions. For Maximus 2.xx users this will be AREA.DAT, for Lora users this 
  276. will SYSFILE.DAT, for SuperBBS users this will be FLSEARCH.BBS, for those using 
  277. the Generic setup this should be the name of the text file you created 
  278. according the guidelines in the Generic File Area Definitions section. 
  279.  
  280.  
  281. ΓòÉΓòÉΓòÉ 5.1.2. Main - Page 2 ΓòÉΓòÉΓòÉ
  282.  
  283. This sections covers Main Page 2. This page contains the settings that control 
  284. the overall operation of MaxFile/PM. Such as window defaults, etc.. 
  285.  
  286.  
  287. ΓòÉΓòÉΓòÉ 5.1.2.1. AutoSave ΓòÉΓòÉΓòÉ
  288.  
  289. This tells MaxFile/PM whether or not you want your FILES.BBS files 
  290. automatically saved when you close a file area. If you check this option 
  291. MaxFile/PM will save the FILES.BBS for you as soon as you close the window 
  292. associated with a FILES.BBS, if not, it will prompt you and ask if you want the 
  293. information saved. 
  294.  
  295.  
  296. ΓòÉΓòÉΓòÉ 5.1.2.2. Button Bar ΓòÉΓòÉΓòÉ
  297.  
  298. This check box tells MaxFile/PM whether or not you want the button bar turned 
  299. on in your FILES.BBS windows. 
  300.  
  301.  
  302. ΓòÉΓòÉΓòÉ 5.1.2.3. Create File Summaries ΓòÉΓòÉΓòÉ
  303.  
  304. When checked MaxFile/PM will create a summary of the file statistics for a file 
  305. area when the FILES.BBS for the area is saved. The name of the file will the 
  306. same as the file list (FILES.BBS in most cases) with the extension removed and 
  307. replaced with SUM. It will be saved into the same directory as the file list. 
  308.  
  309.  
  310. ΓòÉΓòÉΓòÉ 5.1.2.4. Header Size ΓòÉΓòÉΓòÉ
  311.  
  312. For those of you using programs such as DownSort, this option will allow you to 
  313. tell MaxFile/PM how many lines at the beginning of your FILES.BBS to skip when 
  314. reading them in. The headers ARE preserved when MaxFile/PM writes out a new 
  315. FILES.BBS. 
  316.  
  317.  
  318. ΓòÉΓòÉΓòÉ 5.1.2.5. Dupe Length ΓòÉΓòÉΓòÉ
  319.  
  320. Tells MaxFile/PM how many characters to look at in a filename when performing a 
  321. search for duplicates. 
  322.  
  323.  
  324. ΓòÉΓòÉΓòÉ 5.1.2.6. ED Marker ΓòÉΓòÉΓòÉ
  325.  
  326. For those BBS packages that support extended descriptions this option will come 
  327. in handy. Here you tell MaxFile/PM what character is associated with extended 
  328. descriptions for your BBS Package. This character can not be a space or a dash. 
  329.  
  330. Defining this character causes a few changes in the way MaxFile/PM handles your 
  331. file descriptions. When this option is used, file descriptions are allowed to 
  332. be up to 1024 characters in length and nothing is stripped from FILE_ID.DIZ 
  333. descriptions read in from archives. MaxFile/PM does not insert this character 
  334. in multiple line descriptions for you, you need to do this. However, when you 
  335. use Format Description MaxFile/PM will take care of putting this character 
  336. where it belongs. 
  337.  
  338.  
  339. ΓòÉΓòÉΓòÉ 5.1.2.7. FileList Margin ΓòÉΓòÉΓòÉ
  340.  
  341. This setting causes a change in the file description handling similar to the ED 
  342. Marker. NOTE: If an ED Marker is defined, FileList Margin is IGNORED. However, 
  343. if an ED Marker is NOT defined and FileList Margin is greater than zero; File 
  344. descriptions are limited to 1024 characters, FILE_ID.DIZ's are imported as is, 
  345. when a FILES.BBS is written _FileList Margin_ spaces are added to the beginning 
  346. of each extra line in the file description so that they line up in a file 
  347. listing. 
  348.  
  349. If an ED Marker is not defined and this is set to zero, file descriptions are 
  350. limited to 255 characters, any non-printable ASCII characters (0-31) and 
  351. high-bit ASCII characters are stripped from the file description. 
  352.  
  353.  
  354. ΓòÉΓòÉΓòÉ 5.1.2.8. File Database Utility ΓòÉΓòÉΓòÉ
  355.  
  356. The next field is for the filename of your File Database Utility. For Maximus 
  357. this will be either FB.EXE or FBP.EXE. On my system I have this set to FBP, 
  358. since the utility is in my path. For Lora-BBS users, this will be FILEIDX.EXE. 
  359. Please see the Known Problems section at the end of this document for more 
  360. information about FILEIDX.EXE. For SuperBBS users, I don't have a clue. If 
  361. someone would fill me in on this one I'd really appreciate it! This entry is 
  362. only required if you want MaxFile/PM to run the utility for you. 
  363.  
  364.  
  365. ΓòÉΓòÉΓòÉ 5.1.2.9. Run FD Utility ΓòÉΓòÉΓòÉ
  366.  
  367. The options for Run FD Utility determine when and if the File Database utility 
  368. will get run. There are three; Always, Prompt and Never. Always will run your 
  369. file database utility every time you exit MaxFile/PM. If no changes have been 
  370. made, it will prompt you before running it. Prompt will ask you if you wish to 
  371. run it. Do I need to explain Never? :-} 
  372.  
  373.  
  374. ΓòÉΓòÉΓòÉ 5.1.2.10. Display ΓòÉΓòÉΓòÉ
  375.  
  376. The Display options control whether or not the file size and date information 
  377. gets displayed for your files in the FILES.BBS windows. Simply check or uncheck 
  378. the check boxes to set your preferences. 
  379.  
  380.  
  381. ΓòÉΓòÉΓòÉ 5.1.3. Main - Page 3 ΓòÉΓòÉΓòÉ
  382.  
  383. This section covers a bit more of the basic information.. 
  384.  
  385.  
  386. ΓòÉΓòÉΓòÉ 5.1.3.1. Extensions edit control ΓòÉΓòÉΓòÉ
  387.  
  388. This is a simple edit control that you use to enter in the extensions that you 
  389. want add to the list box to the right. You may enter up to 3 characters for 
  390. each extension, wild cards are allowed. These extensions are used while 
  391. adopting files, anything not defined here will be ignored. These extensions are 
  392. use when you perform an Adopt from the FILES.BBS window context menu or you 
  393. have Auto Adopt turned on. 
  394.  
  395.  
  396. ΓòÉΓòÉΓòÉ 5.1.3.2. Add button ΓòÉΓòÉΓòÉ
  397.  
  398. After entering an extension in the edit control click this button to add it to 
  399. the list of extensions in the list box. 
  400.  
  401.  
  402. ΓòÉΓòÉΓòÉ 5.1.3.3. Remove button ΓòÉΓòÉΓòÉ
  403.  
  404. This button allows you to remove an entry from the list box. Simply highlight 
  405. the entry you want to remove from the list box and click here. 
  406.  
  407.  
  408. ΓòÉΓòÉΓòÉ 5.1.3.4. Auto Adopt ΓòÉΓòÉΓòÉ
  409.  
  410. This check box tells MaxFile/PM if you want it to automatically perform an 
  411. Adopt when a file area is first opened. This only works if you have actually 
  412. added at least one extension for MaxFile/PM to scan for. 
  413.  
  414.  
  415. ΓòÉΓòÉΓòÉ 5.1.3.5. Download counters ΓòÉΓòÉΓòÉ
  416.  
  417. If you want download counters added to the description of files that get 
  418. adopted, check this box. 
  419.  
  420. The next field is an edit control that allows you to configure the text string 
  421. you want to use for a download counter. You may enter up to 9 characters. 
  422.  
  423.  
  424. ΓòÉΓòÉΓòÉ 5.1.3.6. Default Description ΓòÉΓòÉΓòÉ
  425.  
  426. You may enter up to 80 characters for a default description. This text will get 
  427. used any time you Insert, Adopt or drop files from an outside source into a 
  428. window in MaxFile/PM and those files meet the following criteria: 1, they are 
  429. not an archive or 2, they are an archive and the archive does not contain a 
  430. FILE_ID.DIZ description inside of it. 
  431.  
  432.  
  433. ΓòÉΓòÉΓòÉ 5.1.3.7. Add (x/xx) counter on description copy ΓòÉΓòÉΓòÉ
  434.  
  435. This option allows you to tell MaxFile/PM whether or not you want the (xx of 
  436. xx) counters appended onto the end of descriptions when you perform a 
  437. "Description->Copy" in a FILES.BBS window. Check it if you want them, unchecked 
  438. if you don't. The default is for them to be added. 
  439.  
  440.  
  441. ΓòÉΓòÉΓòÉ 5.1.3.8. Remove Items ΓòÉΓòÉΓòÉ
  442.  
  443. Three choices here: 
  444.  
  445.    Prompt 
  446.    Entries 
  447.    Entries and Files 
  448.  
  449. This configuration option affects the default action of "Remove Items" inside a 
  450. FILES.BBS window. Prompt asks you each time. Entries removes just the entries. 
  451. Entries and Files removes the entries and deletes the files associated with 
  452. those entries. 
  453.  
  454.  
  455. ΓòÉΓòÉΓòÉ 5.2. Settings/Archivers - Archiver Information ΓòÉΓòÉΓòÉ
  456.  
  457. This section causes the most confusion when configuring MaxFile/PM. The best I 
  458. can do to help is to tell you what I use here on my system to give you a few 
  459. hints. 
  460.  
  461. There are eight pages, one each for; Zip, Arj, Lzh, Arc, HA, RAR, UC2 and ZOO. 
  462. I don't use HA, RAR or UC2 so you are on your own with these archivers. 
  463.  
  464. You will need to enter the executable name and the appropriate switches for 
  465. each of the actions for each archiver. You should include any switches 
  466. necessary for recursing sub-directories and if you want to make MaxFile/PM's 
  467. job a little easier, any switches to tell the archivers to 'move' files into 
  468. archives when adding to or creating a new archive. Below I will give a short 
  469. description of each entry and the settings for the archivers I use. You will 
  470. have MUCH better success with OS/2 based archivers. 
  471.  
  472. NOTE: Each of the archivers you use must be able to accept filenames on the 
  473. command line other than just the archive name. Some versions of UNARJ do not 
  474. allow you to do this. F'REQ GNUNARJ.* from me if you need an updated version 
  475. that allows filenames. 
  476.  
  477. I also believe I have gotten the DOS kludge worked around in the code. So you 
  478. should be able to just define your DOS archivers just like OS/2 based 
  479. archivers, I.E, PKUNZIP -v, for listing an archive. The settings for the DOS 
  480. archivers below worked for me for what little time I spent with them. 
  481.  
  482.  
  483. ΓòÉΓòÉΓòÉ 5.2.1. Extract ΓòÉΓòÉΓòÉ
  484.  
  485. This entry should contain the command and switches necessary to extract a file 
  486. from an archive. 
  487.  
  488.  
  489.  ZIP                  unzip -xo -U -C
  490.  
  491.  ARJ                  unarj e
  492.  
  493.  ARJ                  ARJ x -y
  494.  
  495.  LZH                  lh x /o
  496.  
  497.  ARC                  arc x
  498.  
  499.  RAR                  rar -o+ -y
  500.  
  501.  HA                   ha ey
  502.  
  503.  UC2                  uc2 ESF
  504.  
  505.  ZOO                  zoo xO
  506.  
  507.  
  508. ΓòÉΓòÉΓòÉ 5.2.2. Add ΓòÉΓòÉΓòÉ
  509.  
  510. This entry should contain the command and switches necessary to add files to an 
  511. archive. 
  512.  
  513.  
  514.  ZIP                  zip -9 -r
  515.  
  516.  ARJ                  ARJ a -r -y
  517.  
  518.  LZH                  lh a /o
  519.  
  520.  ARC                  arc a
  521.  
  522.  RAR                  RAR a -r -y -ep1
  523.  
  524.  HA                   ha a12rd
  525.  
  526.  UC2                  UC2 uc ASF
  527.  
  528.  ZOO                  zoo ah
  529.  
  530.  
  531. ΓòÉΓòÉΓòÉ 5.2.3. List ΓòÉΓòÉΓòÉ
  532.  
  533. This entry should contain the command and switches necessary to list the files 
  534. in an archive to standard output. 
  535.  
  536.  
  537.  ZIP                  unzip -v
  538.  
  539.  ARJ                  unarj l
  540.  
  541.  ARJ                  ARJ v -y
  542.  
  543.  LZH                  lh l /o
  544.  
  545.  ARC                  arc l
  546.  
  547.  RAR                  RAR v -y
  548.  
  549.  HA                   HA l
  550.  
  551.  UC2                  UC2 VS
  552.  
  553.  ZOO                  zoo L
  554.  
  555.  
  556. ΓòÉΓòÉΓòÉ 5.2.4. Test ΓòÉΓòÉΓòÉ
  557.  
  558. This entry should contain the command and switches necessary to test the 
  559. integrity of an archive with the output going to standard output. 
  560.  
  561.  
  562.  ZIP                  unzip -t
  563.  
  564.  ARJ                  unarj t
  565.  
  566.  ARJ                  arj t -y
  567.  
  568.  LZH                  lh t /o
  569.  
  570.  ARC                  arc v
  571.  
  572.  RAR                  RAR t -std -y
  573.  
  574.  HA                   HA t
  575.  
  576.  UC2                  UC2 TF
  577.  
  578.  ZOO                  zoo xN
  579.  
  580.  
  581. ΓòÉΓòÉΓòÉ 5.3. Settings/Viewers - File Viewers ΓòÉΓòÉΓòÉ
  582.  
  583. Here you can define viewers for use with the View function in a FILES.BBS 
  584. window. Enter the filename and any necessary switches for each of the programs. 
  585.  
  586. There are entries for the following file types: 
  587.  
  588.    GIF 
  589.    PCX 
  590.    JPG 
  591.    TIF 
  592.    BMP 
  593.    Other 
  594.  
  595. The 'Other' entry catches anything that is not an archive, GIF, PCX, JPG, TIF 
  596. or BMP file. I.E, text files. 
  597.  
  598.  
  599. ΓòÉΓòÉΓòÉ 5.4. Settings/Other - Other Programs. ΓòÉΓòÉΓòÉ
  600.  
  601. This section covers those items I just couldn't figure out where else to put. 
  602.  
  603.  
  604. ΓòÉΓòÉΓòÉ 5.4.1. Virus Scanner ΓòÉΓòÉΓòÉ
  605.  
  606. This should be the name of the program to scan files for viruses, make sure to 
  607. include any necessary switches. 
  608.  
  609. NOTE: MaxFile/PM does NOT extract files from the archives. You will need to do 
  610. this, or use a utility that can do it for you. 
  611.  
  612.  
  613. ΓòÉΓòÉΓòÉ 5.4.2. Editor ΓòÉΓòÉΓòÉ
  614.  
  615. Here you can define a text editor for editing text based files. Currently this 
  616. is only used for editing REXX macro scripts. 
  617.  
  618.  
  619. ΓòÉΓòÉΓòÉ 5.4.3. Shift F<xx> ΓòÉΓòÉΓòÉ
  620.  
  621. Five entries here, one each for: 
  622.  
  623.    Shift F6 
  624.    Shift F7 
  625.    Shift F8 
  626.    Shift F9 
  627.    Shift F10 
  628.  
  629. These five entries are for things I may have overlooked or for some special 
  630. processing that you would like to do to a file. Enter the program name and any 
  631. switches they need. When in a FILES.BBS window and you press one of the above 
  632. keystrokes, the appropriate entry will get started with one of the selected 
  633. files as a parameter on its command line, this will continue one file at a time 
  634. until all of the selected files have been processed. 
  635.  
  636.  
  637. ΓòÉΓòÉΓòÉ 5.5. Generic File Area Definitions ΓòÉΓòÉΓòÉ
  638.  
  639.  To provide support for any BBS system that uses the standard FILES.BBS format 
  640. for their file listings I have come up with a very simple text file format that 
  641. will allow you to tell MaxFile/PM how your file areas are defined. 
  642.  
  643.  The file is made up of a verb that tells MaxFile/PM how many areas it can 
  644. expect to find in the text file. Each successive line after that verb defines 
  645. the file areas themselves. A sample file is shown below: 
  646.  
  647. ----------------------------- AREAS.CFG sample --------------------------------
  648. AreaCount 5
  649. 0 d:\max\file\uncheck    d:\max\file\uncheck\files.bbs    Unchecked Uploads
  650. 1 d:\max\file\max        d:\max\file\max\files.bbs        BBS Stuff
  651. 2 d:\max\file\dos\games  d:\max\file\dos\games\files.bbs  Dos Games
  652. 3 d:\max\file\os2\util   d:\max\file\os2\util\files.bbs   OS/2 Utilities
  653. 4 d:\max\file\os2\apps   d:\max\file\os2\apps\files.bbs   OS/2 Applications
  654. -------------------------------------------------------------------------------
  655.  
  656.  The 'AreaCount' keyword tells MaxFile/PM how many area definitions it can 
  657. expect to find in the file. The AreaCount keyword must come BEFORE the area 
  658. definition lines. 
  659.  
  660. The format for each area definition line is: 
  661.  
  662.   <area tag> <file path> <list name> <area description>
  663.  
  664. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  665.  <area tag>           Is a short name to identify the file area.
  666.  
  667.  <file path>          Is the path to the files.
  668.  
  669.  <list name>          Is the full drive:\path and filename of the
  670.                       FILES.BBS for the area.
  671.  
  672.  <area description>   Is a short description of the area.
  673. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  674.  
  675.  You can name this file what ever you wish, just make sure you specify the name 
  676. of this file for the File Area Data option in the Settings notebook and make 
  677. sure the BBS Package is set to 'Generic'. 
  678.  
  679.  
  680. ΓòÉΓòÉΓòÉ 6. Using MaxFile/PM ΓòÉΓòÉΓòÉ
  681.  
  682. When MaxFile/PM first comes up a window will be displayed that contains all of 
  683. your file areas. I will be referring to this window by the term File Area 
  684. Window throughout the rest of this document. 
  685.  
  686. When you open up a file area, a window that is very similar in appearance to 
  687. the File Area window will appear. This window will contain all the files listed 
  688. in the FILES.BBS for that area. These windows will be referred to as FILES.BBS 
  689. Windows from here on out. 
  690.  
  691.  
  692. ΓòÉΓòÉΓòÉ 6.1. Selecting Items ΓòÉΓòÉΓòÉ
  693.  
  694. Perhaps the most confusing part of working in a window is selecting or 
  695. deselecting items. I wrote the program and I still have to think about it. 
  696.  
  697. Basically it works like this; Clicking mouse button 1 on an item selects it and 
  698. clears the selection from any other items in the window. To select multiple 
  699. items in the window, press mouse button 1 on the first item you want selected 
  700. and hold it down while you drag the mouse cursor. This allows you to select a 
  701. contiguous range of items. 
  702.  
  703. If you want to select multiple items and they aren't adjacent to each other, 
  704. hold down the CTRL key while you click mouse button 1 on each item. If the item 
  705. is not selected it will become selected, if the item is already selected the 
  706. selection is cleared for that item. 
  707.  
  708. Another technique to select items uses a combination of the CTRL and SHIFT keys 
  709. along with mouse button one. The SHIFT key when used in conjunction with mouse 
  710. button 1 will select/deselect all items between the first marked item and the 
  711. item SHIFT-clicked on. An example might help: 
  712.  
  713.     COMMENT
  714.     FILE1       <-- click mouse button one here
  715.     FILE2
  716.     FILE3
  717.     FILE4
  718.     FILE5       <-- SHIFT-click mouse button one here
  719.     COMMENT
  720.     FILE6       <-- CTRL-click mouse button one here
  721.     FILE7
  722.     FILE8
  723.     FILE9
  724.     FILE10
  725.     FILE11
  726.     FILE12      <-- CTRL-SHIFT-click mouse button one here
  727.  
  728. With no items selected, the above actions would select two non-contiguous 
  729. blocks of files; FILE1-FILE5 and FILE6-FILE12. 
  730.  
  731.  
  732. ΓòÉΓòÉΓòÉ 6.2. Drag and Drop/Moving Files ΓòÉΓòÉΓòÉ
  733.  
  734.                 * THIS IS HOW YOU MOVE FILES BETWEEN FILE AREAS *
  735.  
  736. Remember, MaxFile/PM is a Workplace Shell and Presentation Manager friendly 
  737. program. The basic operations of changing, editing and moving objects work the 
  738. same way. 
  739.  
  740. A drag operation is started by pressing mouse button 2 down and dragging the 
  741. mouse cursor. The operation is considered complete when you release mouse 
  742. button 2. Should you wish to abort the drag, press the ESC key on your 
  743. keyboard. 
  744.  
  745. When dragging files between windows in MaxFile/PM, holding down the CTRL key 
  746. will cause the objects to be copied instead of moved. This works for both files 
  747. and comments. 
  748.  
  749. You will need to make sure that both the source and destination windows are 
  750. visible on your display. 
  751.  
  752. You can drag files from anywhere on your system and drop them either on a 
  753. FILES.BBS window or onto the File Area window. When dropping on an open 
  754. FILES.BBS window, the files are inserted into the FILES.BBS at the point at 
  755. which they were dropped. When dropping on the File Area window, the files are 
  756. inserted at the end of the FILES.BBS for the area they are dropped on. 
  757.  
  758. You can also rearrange the items in a FILES.BBS window by selecting them, then 
  759. dragging them and dropping them where you want them to be. 
  760.  
  761. Many of you have asked about this one...To delete one or more items from a 
  762. FILES.BBS window; highlight the items you want deleted, then drag them to the 
  763. shredder object and delete them. Or, alternatively you can use the Remove Items 
  764. option on the context menu. 
  765.  
  766.  
  767. ΓòÉΓòÉΓòÉ 6.3. File Area Window ΓòÉΓòÉΓòÉ
  768.  
  769. The File Area window serves two basic purposes. First, it allows you to open 
  770. FILES.BBS Windows and second, it also serves as a dropping point for files so 
  771. that you can quickly move files to another file area without having to open the 
  772. file area. 
  773.  
  774.  
  775. ΓòÉΓòÉΓòÉ 6.3.1. File Area Window Context Menu ΓòÉΓòÉΓòÉ
  776.  
  777. The File Area Window Context Menu is where you control the overall operations 
  778. of MaxFile/PM. A somewhat detailed explanation of each menu item follows. 
  779.  
  780.  
  781. ΓòÉΓòÉΓòÉ 6.3.1.1. Open... ΓòÉΓòÉΓòÉ
  782.  
  783. This menu item allows you to open the highlighted file area(s). 
  784.  
  785. The various ways of opening a file area are: 
  786.  
  787.     1. Highlighting the area you want to open and pressing enter. 
  788.  
  789.     2. Double-clicking mouse button 1 on a file area. 
  790.  
  791. If the file area is already open it will be brought into view, even if it is 
  792. minimized to the Minimized Window Viewer folder. 
  793.  
  794.  
  795. ΓòÉΓòÉΓòÉ 6.3.1.2. Area Sort ΓòÉΓòÉΓòÉ
  796.  
  797. Three options here: 
  798.  
  799.    Tag 
  800.    Description 
  801.    Files Dir 
  802.  
  803. These options sort the File Area Window listing by the appropriate field in 
  804. ascending order. 
  805.  
  806.  
  807. ΓòÉΓòÉΓòÉ 6.3.1.3. Check for Duplicates ΓòÉΓòÉΓòÉ
  808.  
  809. To check your file areas for duplicate files choose this menu item after 
  810. selecting the area(s) you want MaxFile/PM to check against all of your file 
  811. areas. Please note that the scan performed when checking for duplicates does 
  812. not involve the FILES.BBS files for the areas scanned, it looks at the contents 
  813. of the download directory for each area. So all duplicates will be found 
  814. regardless of whether there is a FILES.BBS entry for them or not. However, the 
  815. files searched for come directly from the FILES.BBS files of the areas selected 
  816. in the File Area window. So make sure if you have a FILES.BBS window open for 
  817. one of the areas you will be checking for duplicates from, that you have saved 
  818. any changes made in that window. 
  819.  
  820. The File Area window will be locked open until you close the DupeCheck Results 
  821. dialog box. This dialog will appear as soon as the file scanning is complete. 
  822. Inside this dialog you will see a listing of all the files found. To open the 
  823. file area associated with a file, simply double-click on its entry. If you 
  824. decide that you want to delete the file from this dialog, highlight the entry 
  825. and click the delete button. 
  826.  
  827.  
  828. ΓòÉΓòÉΓòÉ 6.3.1.4. Search... ΓòÉΓòÉΓòÉ
  829.  
  830. This function is very similar to the Dupe Checker option, with the exception 
  831. that instead of checking for duplicate files you can enter a string of text 
  832. that MaxFile/PM will search for in each of the FILES.BBS files for each of the 
  833. selected areas. 
  834.  
  835. First select the areas that you want to search, then bring up the context menu 
  836. and select 'Search...' A dialog box will come up asking you what to search for. 
  837. You may enter up to 80 characters. Click ok to begin the search. 
  838.  
  839. The search is not case nor position sensitive. Both the filename and 
  840. description are searched for the text, if the text appears in one of these two 
  841. places a 'hit' will occur. The dialog box that comes up after the search is 
  842. complete works exactly the same as the dialog box showing the results of the 
  843. Dupe Checker option. 
  844.  
  845.  
  846. ΓòÉΓòÉΓòÉ 6.3.1.5. Find Area... ΓòÉΓòÉΓòÉ
  847.  
  848. This function will allow you to enter an area tag, MaxFile/PM will find the 
  849. area and then scroll it into view for you. 
  850.  
  851.  
  852. ΓòÉΓòÉΓòÉ 6.3.1.6. All Files List ΓòÉΓòÉΓòÉ
  853.  
  854. Probably the most requested feature had to be the ability to generate a list of 
  855. available files from the FILES.BBS listings. MaxFile/PM will generate an all 
  856. files list for you. It's highly customizable and can be run automagically from 
  857. a batch file once configured correctly. 
  858.  
  859. To use the all files generator interactively, simply start MaxFile/PM and then 
  860. select the areas from the File Area window that you want included in the 
  861. listing. Then bring up the context menu and select "All Files List". MaxFile/PM 
  862. will then process each FILES.BBS and produce two listings under the filenames 
  863. ALLFILES.LST and NEWFILES.LST in the directory that MaxFile/PM resides in. 
  864.  
  865. Each time you run the all files generator from the context menu, a file called 
  866. ALLFILES.CFG will be written that contains a list of the area tags for each of 
  867. the areas in the listing. Do NOT modify this file. The purpose behind this file 
  868. is to tell MaxFile/PM what areas to include when you run the all files 
  869. generator in batch mode. If you delete file areas that are in your 
  870. ALLFILES.CFG, you MUST run the all files generator from the context menu in 
  871. interactive mode at least once to keep the ALLFILES.CFG in sync with your file 
  872. areas. I'll put it this way... IF YOU WANT TO RUN IN BATCH MODE YOU MUST KEEP 
  873. allfiles.cfg IN SYNC WITH YOUR FILE AREAS. 
  874.  
  875. To customize the all files generator to suit your tastes, you can create some 
  876. text files which will be written to your file listing at the appropriate times. 
  877.  
  878. The names for the files are: 
  879.  
  880.    ALLFILES.HDR 
  881.    NEWFILES.HDR 
  882.    ALLFILES.FTR 
  883.    NEWFILES.FTR 
  884.    ALLFILES.CUS 
  885.  
  886. ALLFILES.HDR and ALLFILES.FTR are written verbatim to the file listing at the 
  887. beginning and ending of the listing, respectively. ALLFILES.CUS is a little 
  888. more complex. It allows you to insert text into the headers that are written to 
  889. the listing for each file area. The format of the file is: 
  890.  
  891.     <AreaTag> <Header text......>
  892.  
  893. <AreaTag> is the area tag of the file area header the text that follows it 
  894. should be inserted into. You may place as many lines as you need to for each 
  895. area as long as they all follow this format. <AreaTag> is checked against the 
  896. area tag for each area in such a manner that if the tag for the area begins 
  897. with the tag specified in this file the text will get inserted. An example 
  898. might be of some help here.. 
  899.  
  900. You have the following areas: 
  901.  
  902.    CICA001 
  903.    CICA002 
  904.    CICB001 
  905.    001 
  906.    002 
  907.  
  908. In your ALLFILES.CUS file you have: 
  909.  
  910.    CICA Files in this area are NOT freq'able. 
  911.    CIC These files are on my CD-ROM. 
  912.    00 These files are freq'able anytime but ZMH. 
  913.  
  914. CICA would match CICA001 and CICA002. CIC would match CICA001, CICA002 and 
  915. CICB002. 00 would match 001 and 002. Get the idea? Its rather simple once you 
  916. get used it. 
  917.  
  918. To run the all files generator in batch mode from the command line, specify the 
  919. -A switch on MaxFile/PM's command line. MaxFile/PM will do its thing and then 
  920. return to the command prompt when it is done. -a, -A, /a and /A are all 
  921. recognized as valid switches for this mode of operation. 
  922.  
  923.  
  924. ΓòÉΓòÉΓòÉ 6.3.1.7. Outdated Files... ΓòÉΓòÉΓòÉ
  925.  
  926. This option will allow you to either remove or move to a file area those files 
  927. that are older than a certain number of days. 
  928.  
  929. The process of taking care of your outdated files begins by selecting the areas 
  930. that you wish to scan from the File Area window. Now, bring up the context menu 
  931. and select 'OutDated Files...', you will be presented with a dialog box, this 
  932. is where you tell MaxFile/PM how to manage the old files. 
  933.  
  934. To remove files, select the Kill radio button. To move files to a selected file 
  935. area, select the Move radio button and then enter the Area Tag of the file area 
  936. you want the files to go into. The Area Tag you type in MUST exactly match one 
  937. of the area tags listed in the first column of the File Area window, upper and 
  938. lower case letters are important here. 
  939.  
  940. Now you need to tell MaxFile/PM the number of days old a file has to be before 
  941. it will be moved or deleted. Either type in the number of days or use the spin 
  942. button to adjust the number of days to your liking. To give you some indication 
  943. of the date range you will be working with, the date below the spin button will 
  944. tell you what the date on the oldest file can be. 
  945.  
  946. After entering the above, click OK and sit back and let MaxFile/PM do its 
  947. thing. If a file area you have selected is open, it will be skipped. Also, if 
  948. you are moving files, the file area that will receive the dated files will be 
  949. skipped. 
  950.  
  951.  
  952. ΓòÉΓòÉΓòÉ 6.3.1.8. Create FREQ List... ΓòÉΓòÉΓòÉ
  953.  
  954. Here you can tell MaxFile/PM to create an OKFILE listing for your mailer based 
  955. on the selected items in the File Area window. 
  956.  
  957. After selecting this option, you will be presented with a standard File Save As 
  958. dialog to choose a filename from. You can either type in the name of an 
  959. existing file, or the name you want the listing to have. If it doesn't exist 
  960. MaxFile/PM will create it for you. 
  961.  
  962. If the file "MAGIC.TXT" exists in the directory you start MaxFile/PM from, the 
  963. entries in it will be copied to the output file. The directory listing will 
  964. then be appended to the output file. 
  965.  
  966.  
  967. ΓòÉΓòÉΓòÉ 6.3.1.9. REXX Macro... ΓòÉΓòÉΓòÉ
  968.  
  969. Don't like the way MaxFile/PM does something? Well, now YOU can change it! REXX 
  970. scripts are now supported. In addition to all the commands available from REXX, 
  971. there are 21 REXX extensions added by MaxFile/PM so that you can manipulate 
  972. your files from a REXX command script. 
  973.  
  974. A discussion of REXX is well beyond the scope of this document, instead what 
  975. you will read about here are the extensions that MaxFile/PM adds to REXX to 
  976. allow you to work with your files. The supplied TESTREXX.CMD file is a sample 
  977. that shows the syntax and usage of each of the added functions. PLEASE use this 
  978. file as a guide when you are constructing your macros. 
  979.  
  980. REXX commands and programs that communicate with the user via Standard input 
  981. and Standard output are fully supported by MaxFile/PM's REXX interface. When 
  982. the REXX interface first starts up a window entitled "MaxFile/PM REXX Output" 
  983. will appear on your desktop, this window is your means of communication with 
  984. REXX. 
  985.  
  986. The top line of the REXX output window contains a single line edit control that 
  987. can accept up to 80 characters. When you wish to actually send the typed text 
  988. to standard input, click on the Send button. Clicking on the Send button when 
  989. the control is empty sends a CR/LF pair to standard input. 
  990.  
  991. The remainder of the output window is reserved for the output coming from your 
  992. REXX commands and/or application programs. REXX's PULL and SAY commands are 
  993. fully supported. There are some limitations to what the output window can do 
  994. though. It doesn't support; reverse tabs, vertical tabs, backspace or cursor 
  995. movements. For applications that use this type of output or expect to be able 
  996. to write to the screen using other methods than standard output you are going 
  997. to need to use the START command or some other similar utility to run them in 
  998. another session. 
  999.  
  1000. To stop a REXX script that is running, bring the Main File Area window to the 
  1001. front and pull up the context menu, then select Stop REXX this will halt the 
  1002. script after the current instruction is complete. 
  1003.  
  1004. Starting MaxFile/PM with the -r switch will cause MaxFile/PM to open its main 
  1005. window, immediately run the REXX script specified and then exit. An example: 
  1006.  
  1007.                               MAXFMPM -rTESTREXX.CMD
  1008.  
  1009. Would start MaxFile/PM, run TESTREXX.CMD to completion and then exit. -r -R /r 
  1010. and /R are all valid forms of the "REXX" switch. 
  1011.  
  1012. Listed later you will see the REXX extensions for use with MaxFile/PM, they 
  1013. will be listed by name with a short explanation of each. All the functions 
  1014. return 'ERROR' if something goes wrong. Those functions that aren't meant to 
  1015. return some type of information return 'OK' for success. If a syntax error 
  1016. occurs, processing of the script stops and the error cause can be found in the 
  1017. file REXX.ERR in the directory MaxFile/PM resides in. 
  1018.  
  1019.                     *  PAY ATTENTION TO THE NEXT PARAGRAPH  *
  1020.                    * IT WILL MAKE OR BREAK YOUR REXX SCRIPTS *
  1021.  
  1022. You can change directories throughout the lifetime of your script, but 
  1023. MaxFile/PM needs to be able to find its files and it expects them to be in the 
  1024. directory that your script gets called from. So if things start acting 
  1025. strangely when you are testing a script, make sure the current directory is 
  1026. your MaxFile/PM directory before you call one of the extensions listed here. 
  1027. The standard REXX function DIRECTORY() will return the current directory for 
  1028. you, use it to save the directory your script starts out in. Then just before 
  1029. your script ends, use it to restore the current directory. 
  1030.  
  1031.  
  1032. ΓòÉΓòÉΓòÉ 6.3.1.10. Stop REXX ΓòÉΓòÉΓòÉ
  1033.  
  1034. Stops the currently running REXX macro. The current instruction in the macro 
  1035. will finish executing before the macro stops. 
  1036.  
  1037.  
  1038. ΓòÉΓòÉΓòÉ 6.3.1.11. Edit REXX Macro... ΓòÉΓòÉΓòÉ
  1039.  
  1040. Here you can find and edit a REXX macro script, provided you have an editor 
  1041. defined in your configuration. 
  1042.  
  1043. After selecting this option you will be presented with a standard file dialog 
  1044. to select from the files on your system. After selecting a file, the editor you 
  1045. have configured will be started with the selected file as its one and only 
  1046. argument. 
  1047.  
  1048.  
  1049. ΓòÉΓòÉΓòÉ 6.3.1.12. Settings... ΓòÉΓòÉΓòÉ
  1050.  
  1051. Brings up the Settings Notebook for MaxFile/PM. Please see Configuring 
  1052. MaxFile/PM for more information. 
  1053.  
  1054.  
  1055. ΓòÉΓòÉΓòÉ 6.3.1.13. Product Information ΓòÉΓòÉΓòÉ
  1056.  
  1057. Displays MaxFile/PM's Product Information Dialog. 
  1058.  
  1059.  
  1060. ΓòÉΓòÉΓòÉ 6.3.2. MaxFile/PM REXX Extensions ΓòÉΓòÉΓòÉ
  1061.  
  1062. This section covers the extensions that MaxFile/PM provides for use in your 
  1063. REXX scripts that are run from the File Area Window context menu. 
  1064.  
  1065.  
  1066. ΓòÉΓòÉΓòÉ 6.3.2.1. MPM_GetVersion() ΓòÉΓòÉΓòÉ
  1067.  
  1068. Returns MaxFile/PM's revision or version number. 
  1069.  
  1070.  
  1071. ΓòÉΓòÉΓòÉ 6.3.2.2. MPM_ClearWindow() ΓòÉΓòÉΓòÉ
  1072.  
  1073. Clears the REXX output window. 
  1074.  
  1075.  
  1076. ΓòÉΓòÉΓòÉ 6.3.2.3. MPM_MsgBox(message, title) ΓòÉΓòÉΓòÉ
  1077.  
  1078. Displays a simple message box using 'message' as the text displayed in the 
  1079. message box and 'title' as the title for the message box. 
  1080.  
  1081.  
  1082. ΓòÉΓòÉΓòÉ 6.3.2.4. MPM_QueryArea([areatag]) ΓòÉΓòÉΓòÉ
  1083.  
  1084. Works in two different ways. Called with no arguments it returns the area tag 
  1085. of the first file area listed in the Main File Area window listing. When called 
  1086. with a single argument containing the area tag of an existing file area, it 
  1087. will return the area tag of the NEXT file area in the list. In either case, if 
  1088. an area can't be found it returns 'ERROR'. 
  1089.  
  1090.  
  1091. ΓòÉΓòÉΓòÉ 6.3.2.5. MPM_QueryAreaList('stemvar') ΓòÉΓòÉΓòÉ
  1092.  
  1093. Creates a compound stem variable containing the area tag, description, download 
  1094. path and the full path/filename of the FILES.BBS for each area. 
  1095.  
  1096. The stem variable name is passed to the function as a string. stemvar.0 
  1097. contains the total number of areas that information has been returned for. 
  1098.  
  1099. An example of how to use this function follows: 
  1100.  
  1101.     /* MPM_QueryAreaList() example */
  1102.     rc = MPM_QueryAreaList('arealist')
  1103.  
  1104.     Say arealist.0' items in Area List.'
  1105.     Say arealist.1.area' is the first area.'
  1106.     Say arealist.1.desc' is the first area description.'
  1107.     Say arealist.1.path' is the first area download path.'
  1108.     Say arealist.1.fbbs' is the first area FILES.BBS location.'
  1109.  
  1110.  
  1111. ΓòÉΓòÉΓòÉ 6.3.2.6. MPM_QueryAreaInfo(areatag, '0' | '1' | '2') ΓòÉΓòÉΓòÉ
  1112.  
  1113. Queries and returns the specified information for 'areatag.' The level info is 
  1114. as follows: 
  1115.  
  1116.  
  1117.  0    Area description
  1118.  
  1119.  1    Download Path
  1120.  
  1121.  2    FILES.BBS Location
  1122.  
  1123.  
  1124. ΓòÉΓòÉΓòÉ 6.3.2.7. MPM_DeselectArea(areatag) ΓòÉΓòÉΓòÉ
  1125.  
  1126. Detags a file area in the Main File Area window. 
  1127.  
  1128.  
  1129. ΓòÉΓòÉΓòÉ 6.3.2.8. MPM_SelectArea(areatag) ΓòÉΓòÉΓòÉ
  1130.  
  1131. Tags a file area in the Main File Area Window. 
  1132.  
  1133.  
  1134. ΓòÉΓòÉΓòÉ 6.3.2.9. MPM_OpenArea(areatag) ΓòÉΓòÉΓòÉ
  1135.  
  1136. Opens the FILES.BBS Window associated with 'areatag'. 
  1137.  
  1138.  
  1139. ΓòÉΓòÉΓòÉ 6.3.2.10. MPM_CloseArea(areatag) ΓòÉΓòÉΓòÉ
  1140.  
  1141. Closes the FILES.BBS window associated with 'areatag.' 
  1142.  
  1143.  
  1144. ΓòÉΓòÉΓòÉ 6.3.2.11. MPM_IsAreaOpen(areatag) ΓòÉΓòÉΓòÉ
  1145.  
  1146. Returns "1" if the FILES.BBS window associated with 'areatag' is open, "0" 
  1147. otherwise. 
  1148.  
  1149.  
  1150. ΓòÉΓòÉΓòÉ 6.3.2.12. MPM_AllFilesList() ΓòÉΓòÉΓòÉ
  1151.  
  1152. Starts up the All Files List generator in interactive mode, the list generated 
  1153. will be made up of the file areas that are selected in the File Area window. 
  1154. Use MPM_SelectArea() and MPM_DeselectArea() to select areas from REXX. 
  1155.  
  1156.  
  1157. ΓòÉΓòÉΓòÉ 6.3.2.13. MPM_SetFDUFlag(areatag) ΓòÉΓòÉΓòÉ
  1158.  
  1159. Sets the File Database Utility flag for the FILES.BBS that is associated with 
  1160. 'areatag.' Use this to tell MaxFile/PM that the File Database Utility needs to 
  1161. be run to update your file database after making changes that MaxFile/PM 
  1162. doesn't know about. 
  1163.  
  1164.  
  1165. ΓòÉΓòÉΓòÉ 6.3.2.14. MPM_QueryFile(areatag[, filename]) ΓòÉΓòÉΓòÉ
  1166.  
  1167. Returns the base filename of a file from a FILES.BBS window. When called with 
  1168. just the area tag of an open window it returns the first file in the window. 
  1169. When called with both the area tag and an existing filename it will return the 
  1170. NEXT filename in the window. If something goes wrong it returns ERROR. 
  1171.  
  1172.  
  1173. ΓòÉΓòÉΓòÉ 6.3.2.15. MPM_QueryFileList(areatag, 'stemvar') ΓòÉΓòÉΓòÉ
  1174.  
  1175. Creates a compound stem variable containing a list of all the files in the 
  1176. FILES.BBS associated with 'areatag'. The stem variable name is passed as a 
  1177. string to the function. stemvar.0 contains how many items are in the list. 
  1178.  
  1179. An example follows: 
  1180.  
  1181.     /* MPM_QueryFileList() example */
  1182.     Call RxFuncAdd 'SysSleep', 'RexxUtil', 'SysSleep'
  1183.     mpmarea = 'TEST'
  1184.  
  1185.     /* Open up the file area */
  1186.     retval = MPM_OpenArea(mpmarea)
  1187.     /* Give the open call a chance to work */
  1188.     Call SysSleep 3
  1189.  
  1190.     If MPM_IsAreaOpen(mpmarea) = '0' then Exit
  1191.  
  1192.     rc = MPM_QueryFileList(mpmarea, 'files')
  1193.  
  1194.     rc = MPM_CloseArea(mpmarea)
  1195.  
  1196.     Say 'There are 'files.0' files in the list.'
  1197.     Say
  1198.     Say files.1.file' is the first file.'
  1199.     Say files.1.path' is the path of the first file.'
  1200.     Say files.1.desc' is the description of the first file.'
  1201.  
  1202.  
  1203. ΓòÉΓòÉΓòÉ 6.3.2.16. MPM_QueryFileInfo(areatag, filename, '0' | '1' | '2' | '3') ΓòÉΓòÉΓòÉ
  1204.  
  1205. Queries and returns the specified information about 'filename.' The level 
  1206. information is as follows: 
  1207.  
  1208.  
  1209.  0    File Path
  1210.  
  1211.  1    File Date in DD MMM YYYY format
  1212.  
  1213.  2    File Size
  1214.  
  1215.  3    File Description
  1216.  
  1217.  
  1218. ΓòÉΓòÉΓòÉ 6.3.2.17. MPM_SelectFile(areatag, filename) ΓòÉΓòÉΓòÉ
  1219.  
  1220. Select 'filename' in the area identified by 'areatag'. 
  1221.  
  1222.  
  1223. ΓòÉΓòÉΓòÉ 6.3.2.18. MPM_DeselectFile(areatag, filename) ΓòÉΓòÉΓòÉ
  1224.  
  1225. Deselect 'filename' in the area identified by 'areatag'. 
  1226.  
  1227.  
  1228. ΓòÉΓòÉΓòÉ 6.3.2.19. MPM_SetFileInfo(areatag, filename, '0' | '1' | '2') ΓòÉΓòÉΓòÉ
  1229.  
  1230. Set the displayed information for a file in a FILES.BBS window. The level 
  1231. information is as follows: 
  1232.  
  1233.  
  1234.  0    Set File Date
  1235.  
  1236.  1    Set File Size
  1237.  
  1238.  2    Set File Description
  1239.  
  1240. Please note that options 0 and 1 are only for display purposes, if you want to 
  1241. set the file's date ("touch" it) you need to perform this yourself, MaxFile/PM 
  1242. does not do this for you, the same goes for the file's size. This REXX 
  1243. extension is merely to update the display in the FILES.BBS window. Option 2, 
  1244. for setting descriptions, does actually alter the description that will get 
  1245. saved for the file though. 
  1246.  
  1247. Dates should be in the FTSC format DD MMM YYYY, I.E, 01 Dec 1993. Sizes should 
  1248. be unformatted with no thousands separators. 
  1249.  
  1250.  
  1251. ΓòÉΓòÉΓòÉ 6.3.2.20. MPM_RemoveFile(areatag, filename) ΓòÉΓòÉΓòÉ
  1252.  
  1253. Removes the file 'filename' from the FILES.BBS window associated with 
  1254. 'areatag'. 
  1255.  
  1256.  
  1257. ΓòÉΓòÉΓòÉ 6.3.2.21. MPM_AddFile(areatag, filename, description) ΓòÉΓòÉΓòÉ
  1258.  
  1259. Adds 'filename' with description to the FILES.BBS window associated with 
  1260. 'areatag'. 'filename' MUST be a FULL file specification in the form of 
  1261. D:\PATH\FILENAME.EXE! The function returns 'ERROR' if something goes wrong. 
  1262.  
  1263.  
  1264. ΓòÉΓòÉΓòÉ 6.3.2.22. MPM_AnnounceFiles('stemvar') ΓòÉΓòÉΓòÉ
  1265.  
  1266. Creates a file announcement message and writes it to a Squish or *.MSG message 
  1267. base. The message is built from the information stored in the compound stem 
  1268. variable 'stemvar'. 
  1269.  
  1270. Please see TANN.CMD (included in the distribution archive) for an example of 
  1271. how to use this extension. 
  1272.  
  1273. The elements of the message that need to be placed in 'stemvar' are as follows: 
  1274.  
  1275.  
  1276.  stemvar.msgpath    is the root path of the message area to place the
  1277.                     message in.
  1278.  
  1279.  stemvar.msgproc    is the executable name and switches needed to run
  1280.                     your mail tosser/packer, this one is optional, if
  1281.                     it isn't defined it is ignored.
  1282.  
  1283.  stemvar.msgtype    this defines the type of message base and must be
  1284.                     one of: SQUISH, MSG or MSGECHO.
  1285.  
  1286.  stemvar.msgflag    is the message flag you want to use for this
  1287.                     message, it must be one of: HOLD, NORMAL, DIRECT
  1288.                     or CRASH.
  1289.  
  1290.  stemvar.to         is the name to address the message to, if it isn't
  1291.                     defined it defaults to 'All'.
  1292.  
  1293.  stemvar.toaddr     this the Fidonet style address of the recipient of
  1294.                     the message. It must be in the format
  1295.                     Zone:Net/Node.Point, I.E, 1:201/60.0, if not
  1296.                     defined it defaults to stemvar.fromaddr.
  1297.  
  1298.  stemvar.from       is the name the message is from, this one is
  1299.                     required.
  1300.  
  1301.  stemvar.fromaddr   is the address of who the message is from, in
  1302.                     other words, the originating Fidonet address. This
  1303.                     one is also required.
  1304.  
  1305.  stemvar.subject    this gets put in the subject field of the message.
  1306.                     If not defined it defaults to 'File Announcement'.
  1307.  
  1308.  stemvar.header     is the header of the message, it gets placed just
  1309.                     before the file list in the message. This one is
  1310.                     optional. 1024 character limit.
  1311.  
  1312.  stemvar.footer     this is similar to the header, except it comes
  1313.                     after the file list in the message. It is also
  1314.                     optional. 1024 character limit.
  1315.  
  1316.  stemvar.origin     this is the text that will get put in the origin
  1317.                     line of the message. The '_*_Origin:_' and from
  1318.                     fidonet address are taken care for you. All you
  1319.                     need to enter here is what text you want added in
  1320.                     between the two. This is optional, if it is not
  1321.                     defined no origin line is generated.
  1322.  
  1323.  stemvar.0          contains the number files being announced.
  1324.  
  1325.  stemvar.x.file     this is the base filename of a file to announce.
  1326.  
  1327.  stemvar.x.path     is the drive and path to the above base filename.
  1328.                     Do NOT include the filename here.
  1329.  
  1330.  stemvar.x.desc     this is the description you want to use for this
  1331.                     file in the message. 1024 character limit.
  1332.  
  1333. 'x' in the above three is a place holder for each of the files that you want 
  1334. announced, up to stemvar.0 files. 
  1335.  
  1336.  
  1337. ΓòÉΓòÉΓòÉ 6.3.2.23. MPM_FileAreaSort(area, 'Name|Date|Size|Desc', 'Asc|Desc'[, 'All']) ΓòÉΓòÉΓòÉ
  1338.  
  1339. Sorts the file area 'area' by; Name, Date, Size or Desc. In either ascending or 
  1340. descending order, optionally deselecting all highlighted files. 
  1341.  
  1342. This function behaves just like the menu options on the FILES.BBS context menu, 
  1343. if any items are selected ONLY those items are sorted. If you want to sort the 
  1344. entire area make sure you pass the fourth argument 'All' to it. 
  1345.  
  1346.  
  1347. ΓòÉΓòÉΓòÉ 6.3.2.24. MPM_SaveFilesBBS(area) ΓòÉΓòÉΓòÉ
  1348.  
  1349. Saves the FILES.BBS for 'area'. Should be used after any changes are made to a 
  1350. FILES.BBS window. 
  1351.  
  1352.  
  1353. ΓòÉΓòÉΓòÉ 6.3.2.25. MPM_SetWindowState([area, ]'MAXIMIZE | MINIMIZE | RESTORE') ΓòÉΓòÉΓòÉ
  1354.  
  1355. Sets the state of a window. If 'area' is ommitted, the File Area Window is set, 
  1356. otherwise, the state of the FILES.BBS window 'area' will be set. 
  1357.  
  1358. The possible window states are; MAXIMIZE, MINIMIZE or RESTORE, only one may be 
  1359. specified per call to this function. 
  1360.  
  1361.  
  1362. ΓòÉΓòÉΓòÉ 6.3.2.26. MPM_Crc32('filename') ΓòÉΓòÉΓòÉ
  1363.  
  1364. Examines 'filename' and returns a CRC32 value calculated according to FIPS PUB 
  1365. 71 and FED-STD-1003. This should prove useful for rolling your own TIC 
  1366. processor. 
  1367.  
  1368.  
  1369. ΓòÉΓòÉΓòÉ 6.4. FILES.BBS Window ΓòÉΓòÉΓòÉ
  1370.  
  1371. FILES.BBS windows are the heart and soul of MaxFile/PM, these windows are where 
  1372. you will be spending most of your time. A FILES.BBS window is very similar to 
  1373. the File Area window in appearance. What you will see when you open one of 
  1374. these windows is the contents of the FILES.BBS that is associated with the file 
  1375. area this window belongs to. 
  1376.  
  1377.  
  1378. ΓòÉΓòÉΓòÉ 6.4.1. The Button Bar ΓòÉΓòÉΓòÉ
  1379.  
  1380. If you have the Button Bar option in the Settings Notebook/Main/Page 2 turned 
  1381. on then just below the title bar of each FILES.BBS window there will be a 
  1382. button bar that contains buttons for the most commonly used items on the 
  1383. context menu. 
  1384.  
  1385. Should you forget what a particular button does you can find out by pressing 
  1386. mouse button 1 down while the mouse pointer is over the button and holding it 
  1387. down. A short description will appear in the status bar at the bottom of the 
  1388. FILES.BBS window. If you don't want to perform the operation at that time, drag 
  1389. the mouse pointer down into the list of files and release mouse button 1. 
  1390.  
  1391. Moving from the left side of the window towards the right, here's what they do: 
  1392.  
  1393.  
  1394.  Sort                 Uses the *last* sort type selected from the
  1395.                       context menu in a FILES.BBS Window. If no sort has
  1396.                       been selected it defaults to Name/Ascending.
  1397.  
  1398.  Edit Description     This is the same as ^E and Edit Description on the
  1399.                       context menu. Allows you to edit the description
  1400.                       for the highlighted file, if more than one file is
  1401.                       highlighted the file with the dotted cursor focus
  1402.                       is the one that will have the edit box opened for
  1403.                       it.
  1404.  
  1405.  Get FILE_ID.DIZ      Attempts to extract the FILE_ID.DIZ from the
  1406.                       selected files.
  1407.  
  1408.  Touch Files          Touches all the selected files.
  1409.  
  1410.  Virus Scan           Runs the defined Virus Scanner on all highlighted
  1411.                       files.
  1412.  
  1413.  Test Archive         Runs the archiver tests on the highlighted
  1414.                       archives.
  1415.  
  1416.  Remove Items         Just like Remove Items... from the context menu.
  1417.  
  1418.  Format               Same as Description->Format... from the context
  1419.  Description...       menu.
  1420.  
  1421.  
  1422. ΓòÉΓòÉΓòÉ 6.4.2. Hotkeys ΓòÉΓòÉΓòÉ
  1423.  
  1424. The following accelerator keys may be used when you are working in FILES.BBS 
  1425. window: 
  1426.  
  1427.     ^ = CTRL, ! = SHIFT
  1428.  
  1429.     Sort Ascending
  1430.         Name        ^1
  1431.         Date        ^2
  1432.         Size        ^3
  1433.         Description ^4
  1434.     Sort Descending
  1435.         Name        ^5
  1436.         Date        ^6
  1437.         Size        ^7
  1438.         Description ^8
  1439.     Description
  1440.         Edit        ^E
  1441.         Format      ^F
  1442.         Get DIZ     ^G
  1443.         Set DIZ     ^S
  1444.     Files
  1445.         Adopt       ^A
  1446.         Announce    ^N
  1447.         Touch       ^O
  1448.         View        ENTER
  1449.         Virus Scan  ^C
  1450.     Archives
  1451.         Test        ^T
  1452.         Extract to  ^X
  1453.         ReArchive
  1454.             to ZIP  !F2
  1455.             to ARJ  !F3
  1456.             to LZH  !F4
  1457.             to ARC  !F5
  1458.     Remove Items    ^D
  1459.  
  1460.  
  1461. ΓòÉΓòÉΓòÉ 6.4.3. Renaming Files ΓòÉΓòÉΓòÉ
  1462.  
  1463. To rename a file, press and hold the ALT key and click mouse button 1 on the 
  1464. file that you want to rename. Then enter the new filename and click button 1 
  1465. anywhere outside the edit box or press the keypad Enter key. Pressing ESC will 
  1466. discard any changes you have made to the filename. 
  1467.  
  1468.  
  1469. ΓòÉΓòÉΓòÉ 6.4.4. Editing File Descriptions ΓòÉΓòÉΓòÉ
  1470.  
  1471. Editing descriptions works in the much the same manner as renaming files, 
  1472. ALT+click mouse button 1 on the description you want to edit. To save the 
  1473. description, click outside the edit box or press the keypad Enter key. Pressing 
  1474. ESC will discard any changes made to the description or comment. 
  1475.  
  1476. The standard CUA conventions for cutting and pasting text work while the 
  1477. editing window is open for you to edit descriptions. 
  1478.  
  1479. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1480. ΓöéCtrl+INS       ΓöéCopy to the Clipboard                   Γöé
  1481. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1482. ΓöéShift+Del      ΓöéCut to the Clipboard                    Γöé
  1483. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1484. ΓöéDel            ΓöéCut (to the black hole of bits)         Γöé
  1485. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1486. ΓöéShift+INS      ΓöéPaste from the Clipboard                Γöé
  1487. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1488.  
  1489. These aren't well documented, but they are standard items that you can expect 
  1490. *most* applications to use when working with text, including MaxFile/PM. 
  1491.  
  1492.  
  1493. ΓòÉΓòÉΓòÉ 6.4.5. FILES.BBS Window Context Menu ΓòÉΓòÉΓòÉ
  1494.  
  1495. This sections covers the context menu for each FILES.BBS Window. 
  1496.  
  1497.  
  1498. ΓòÉΓòÉΓòÉ 6.4.5.1. Save FILES.BBS ΓòÉΓòÉΓòÉ
  1499.  
  1500. Performs an unconditional save of the FILES.BBS for the current FILES.BBS 
  1501. Window. At the same time it also sets the flag for this area to tell MaxFile/PM 
  1502. that the File Database Utility (if you have one configured) needs to be run on 
  1503. it. 
  1504.  
  1505.  
  1506. ΓòÉΓòÉΓòÉ 6.4.5.2. Shift-Macros ΓòÉΓòÉΓòÉ
  1507.  
  1508. Each of your defined program macros will be listed on this sub-menu. See 
  1509. Configuring MaxFile/PM -- Other for more information on program macros. 
  1510.  
  1511.  
  1512. ΓòÉΓòÉΓòÉ 6.4.5.3. Sort Ascending ΓòÉΓòÉΓòÉ
  1513.  
  1514. Four choices: 
  1515.  
  1516.    Name 
  1517.    Date 
  1518.    Size 
  1519.    Description 
  1520.  
  1521. Sorts the FILES.BBS entries for the current FILES.BBS Window in ascending 
  1522. order. 
  1523.  
  1524. Please note the following; If you want the entire FILES.BBS sorted make sure 
  1525. that none of the items in the window are selected. If any items are selected 
  1526. ONLY those items get sorted. Deselect All or CTRL+\ will remove the selection 
  1527. emphasis on all items in the window. This applies to both ascending and 
  1528. descending sorts. 
  1529.  
  1530.  
  1531. ΓòÉΓòÉΓòÉ 6.4.5.4. Sort Descending ΓòÉΓòÉΓòÉ
  1532.  
  1533. Four choices: 
  1534.  
  1535.    Name 
  1536.    Date 
  1537.    Size 
  1538.    Description 
  1539.  
  1540. Sorts the FILES.BBS entries for the current FILES.BBS Window in descending 
  1541. order. 
  1542.  
  1543. Please note the following; If you want the entire FILES.BBS sorted make sure 
  1544. that none of the items in the window are selected. If any items are selected 
  1545. ONLY those items get sorted. Deselect All or CTRL+\ will remove the selection 
  1546. emphasis on all items in the window. This applies to both ascending and 
  1547. descending sorts. 
  1548.  
  1549.  
  1550. ΓòÉΓòÉΓòÉ 6.4.5.5. Descriptions ΓòÉΓòÉΓòÉ
  1551.  
  1552. This section covers the operations that can be performed on file descriptions. 
  1553.  
  1554.  
  1555. ΓòÉΓòÉΓòÉ 6.4.5.5.1. Copy ΓòÉΓòÉΓòÉ
  1556.  
  1557. This selection takes the first description from a group of selected items and 
  1558. copies it to the rest of the files in the group. The copied description will 
  1559. have '(xx of xx)' appended to the end of it. This is convenient to use with a 
  1560. group of files that are all part of one program or file collection. 
  1561.  
  1562.  
  1563. ΓòÉΓòÉΓòÉ 6.4.5.5.2. Cleanse ΓòÉΓòÉΓòÉ
  1564.  
  1565. This option goes through each of the selected items in a FILES.BBS window and 
  1566. removes all the extra whitespace, non-printable ASCII and high-ASCII characters 
  1567. from the descriptions or comments. 
  1568.  
  1569.  
  1570. ΓòÉΓòÉΓòÉ 6.4.5.5.3. Edit ΓòÉΓòÉΓòÉ
  1571.  
  1572. Many of you asked for this one. Edit Description allows you to edit the 
  1573. description of a selected item by first selecting it, then choosing this option 
  1574. from the context menu. It works the same way as ALT+clicking mouse button 1 on 
  1575. an item's description. 
  1576.  
  1577.  
  1578. ΓòÉΓòÉΓòÉ 6.4.5.5.4. Format... ΓòÉΓòÉΓòÉ
  1579.  
  1580. This option is only usable when you have an Extended Description Marker (ED 
  1581. Marker) or a FileList Margin defined in the Settings Notebook. 
  1582.  
  1583. When an ED Marker is defined: 
  1584.  
  1585. What it does is take a file description and break it up into smaller parts and 
  1586. insert the defined ED Marker at the beginning of the excess lines so that your 
  1587. BBS package will understand the excess lines are part of the description for a 
  1588. file. 
  1589.  
  1590. After selecting this option from the context menu a dialog box will be 
  1591. presented asking you for a left margin and a line length. The left margin is 
  1592. where you want the ED Marker placed on the line and the line length is how many 
  1593. characters past the ED Marker the description is allowed to go on each line. 
  1594.  
  1595. When an ED Marker is NOT defined and FileList Margin is greater than zero: 
  1596.  
  1597. What it does is take a file description and wrap it into smaller line segments 
  1598. based on 80 - _FileList Margin_. 
  1599.  
  1600.  
  1601. ΓòÉΓòÉΓòÉ 6.4.5.5.5. Get FILE_ID.DIZ ΓòÉΓòÉΓòÉ
  1602.  
  1603. This option goes through the selected items in the window and attempts to 
  1604. extract the FILE_ID.DIZ from them. Comments and files that aren't archives are 
  1605. skipped over by this function. If a FILE_ID.DIZ is present in the archives 
  1606. selected, it will be read from it and placed in the description field. You will 
  1607. need to edit this text to suit your needs. 
  1608.  
  1609.  
  1610. ΓòÉΓòÉΓòÉ 6.4.5.5.6. Set FILE_ID.DIZ ΓòÉΓòÉΓòÉ
  1611.  
  1612. Here you can insert the file description for selected archives into the 
  1613. archives as a FILE_ID.DIZ. You will need to edit the description to conform to 
  1614. the 45/10 standard. 
  1615.  
  1616.  
  1617. ΓòÉΓòÉΓòÉ 6.4.5.5.7. Scan Docs... ΓòÉΓòÉΓòÉ
  1618.  
  1619. This works only with archives. MaxFile/PM will go through and extract all the 
  1620. documentation files it can find for a selected archive. It will then present a 
  1621. dialog box that will allow you to copy text from a file to use as a 
  1622. description. 
  1623.  
  1624. Each selected archive is processed in sequence, in other words, the Get 
  1625. Description Text dialog gets presented once for each selected archive. 
  1626.  
  1627. When the dialog first comes up a standard File Open dialog will be presented 
  1628. for you to choose a file to open. NOTE: If there were directories stored in the 
  1629. archive, they will be present and you might have to go down a few to find the 
  1630. files. 
  1631.  
  1632. After selecting a file the first 8K of it will be loaded into the text entry 
  1633. control in the Get Description dialog. You can edit the text if necessary to 
  1634. get it somewhere close to what you want. 
  1635.  
  1636. If you choose to open an INF file, the OS/2 View application will be started so 
  1637. that you can view the file selected. Using the Services menu from View you can 
  1638. copy a page to the clipboard from the INF file. Then you can switch back to the 
  1639. Get Description Dialog and paste the contents of the clipboard into the entry 
  1640. control by clicking on the "Paste from Clipboard" button. 
  1641.  
  1642. To copy and use part of the text in the entry control, highlight the text you 
  1643. want to copy and click on the "Copy" button. The highlighted text will be 
  1644. copied into the description of the selected file that the file in the entry 
  1645. control was extracted from. 
  1646.  
  1647. All the normal description handling characteristics apply to the copied text. 
  1648. If you do NOT have an Extended Description Marker defined and FileList Margin 
  1649. is set to 0; all whitespace, unprintable characters (CR, LF, etc..) and 
  1650. high-bit ASCII are stripped from the description and it is truncated to 255 
  1651. characters. 
  1652.  
  1653.  
  1654. ΓòÉΓòÉΓòÉ 6.4.5.6. Files ΓòÉΓòÉΓòÉ
  1655.  
  1656. This sections covers the operations that can be performed on files. 
  1657.  
  1658.  
  1659. ΓòÉΓòÉΓòÉ 6.4.5.6.1. Find... ΓòÉΓòÉΓòÉ
  1660.  
  1661. Many, many of you asked for this one. After selecting this option you will be 
  1662. asked to type in a filename. MaxFile/PM will search for the name and scroll it 
  1663. into view if it is found. Partial filenames are okay, case is not important. 
  1664.  
  1665.  
  1666. ΓòÉΓòÉΓòÉ 6.4.5.6.2. Adopt ΓòÉΓòÉΓòÉ
  1667.  
  1668. Adopt Files allows you to add any orphan files in a particular file area to the 
  1669. FILES.BBS for that area. Adopting is performed in a separate thread so that you 
  1670. may continue to work in the window for the file area while the adopt is going 
  1671. on. The window will be locked open while the Adopt is being performed. 
  1672.  
  1673.  
  1674. ΓòÉΓòÉΓòÉ 6.4.5.6.3. Remove Missing ΓòÉΓòÉΓòÉ
  1675.  
  1676. This option automates the process of removing entries in a FILES.BBS window 
  1677. that have no file associated with them. 
  1678.  
  1679. No special setup is required, just bring up the context menu and select this 
  1680. option. MaxFile/PM will then search through the FILES.BBS window and remove all 
  1681. entries that meet the following criteria; The entry is a file, is 0 bytes in 
  1682. size and has a date/time stamp of 00/00/00 00:00:00. 
  1683.  
  1684.  
  1685. ΓòÉΓòÉΓòÉ 6.4.5.6.4. Purge Dupes ΓòÉΓòÉΓòÉ
  1686.  
  1687. Purge Dupes scans the FILES.BBS window looking for duplicate file entries. Only 
  1688. the last entry for each file that has a duplicate entry is kept. 
  1689.  
  1690.  
  1691. ΓòÉΓòÉΓòÉ 6.4.5.6.5. Announce... ΓòÉΓòÉΓòÉ
  1692.  
  1693. This option will allow you to write a customized message announcing selected 
  1694. files directly to any Squish, *.MSG or *.MSG ECHO message base. You may also 
  1695. specify a mail processor so that you can scan for the message to send it out of 
  1696. your system. 
  1697.  
  1698. The whole process gets started by selecting the files you wish to announce from 
  1699. a FILES.BBS window. Next you bring up the context menu and select 'Announce 
  1700. Files...' You will be presented with a configuration dialog you must fill out 
  1701. to tell MaxFile/PM the particulars about the message you want to send. As it 
  1702. stands right now, you have to fill out the dialog for each different window. 
  1703. The configuration for each window will be saved separately and will be used 
  1704. each subsequent time you announce files from each particular window. 
  1705.  
  1706. There are a few things MaxFile/PM needs to know to be able to send the message 
  1707. correctly and they are as follows: 
  1708.  
  1709.  
  1710.  Message Base Path      The full path and base filename of the message
  1711.                         area put the message in. For *.MSG areas this will
  1712.                         be the full path to the directory that contains
  1713.                         the *.MSG files. For Squish areas this will be the
  1714.                         path and base filename of the Squish files related
  1715.                         to the message area. This is a required entry.
  1716.  
  1717.  Mail Processor         This is an optional entry to allow you to scan for
  1718.                         the message that was just written by a mail
  1719.                         tosser/scanner. Please see the documentation for
  1720.                         your tosser/scanner for more information.
  1721.  
  1722.  Message Type           This is the message base type, *.MSG and Squish
  1723.                         are fairly self-explanatory. *.MSG Echo, refers to
  1724.                         a Fidonet style *.MSG echo mail area that stores
  1725.                         the high-water mark in 1.MSG.
  1726.  
  1727.  Message Flags          These are the attribute flags for the message you
  1728.                         will be creating. They are mutually exclusive. I
  1729.                         will be adding Direct to the available flags when
  1730.                         I get the time to research the flags more.
  1731.  
  1732.  To:                    This is the name of the recipient of the message.
  1733.                         If you leave it blank, MaxFile/PM will
  1734.                         automatically default to 'All.'
  1735.  
  1736.  To Addr:               This is the address of the recipient of the
  1737.                         message. If left blank, the From Address will be
  1738.                         used. (Please see the From Address discussion for
  1739.                         more information on entering Fidonet addresses.)
  1740.  
  1741.  From:                  This is a required entry. This is the name of the
  1742.                         sender of the message.
  1743.  
  1744.  From Addr:             This is a required entry. This is the address of
  1745.                         the sender of the message. Most likely this will
  1746.                         be your fidonet address if you have one. If not it
  1747.                         doesn't matter what you enter here, as it won't
  1748.                         get used by your message bases.
  1749.  
  1750.                         The format for entering Fidonet addresses into
  1751.                         MaxFile/PM is: zone:net/node.point All four
  1752.                         elements are required. To use my address as an
  1753.                         example, the field would have 1:201/60.0 entered
  1754.                         into it.
  1755.  
  1756.  Header                 This is an optional entry that you can use to
  1757.                         place a customer banner at the top of the message
  1758.                         just before the files that are being announced in
  1759.                         the message. It is pretty much free-form, but you
  1760.                         will be much better off if you leave the
  1761.                         formatting up to MaxFile/PM. You may enter up to
  1762.                         1024 characters in this field.
  1763.  
  1764.  Footer                 This entry is basically the same as the Header
  1765.                         field, except it comes after the announced files.
  1766.                         You may enter up to 1024 characters in this field.
  1767.  
  1768. The 'Subject' line of the message is 'File Announcement' it is currently hard 
  1769. coded. If I get enough requests, I will add it as an option but as you can see, 
  1770. the message dialog is quite full as it is. The Tear line will always read '--- 
  1771. MaxFile/PM x.xx'. 
  1772.  
  1773.  
  1774. ΓòÉΓòÉΓòÉ 6.4.5.6.6. Send... ΓòÉΓòÉΓòÉ
  1775.  
  1776. Here you can create a file attach message. First select the file or files that 
  1777. you want to send, then select this item. The same dialog that is used for the 
  1778. Announce Files option is presented for you to fill out, please see the 
  1779. discussion of that function for more information on the dialog controls. 
  1780.  
  1781. The Header and Footer text are combined together to create the body of the 
  1782. message, if you enter any text for them. No tearline or origin are added to the 
  1783. message. In addition to the message attributes you set in the message 
  1784. information dialog box, the File Attach and Kill/Sent bits are set. 
  1785.  
  1786.  
  1787. ΓòÉΓòÉΓòÉ 6.4.5.6.7. Touch ΓòÉΓòÉΓòÉ
  1788.  
  1789. "Touching" is the process of updating the Time and Date stamps of files to the 
  1790. current time and date. This option allows you to do that for the selected files 
  1791. in the current window. 
  1792.  
  1793.  
  1794. ΓòÉΓòÉΓòÉ 6.4.5.6.8. View ΓòÉΓòÉΓòÉ
  1795.  
  1796. The View option works in conjunction with the external program options. For 
  1797. archives it will fire up the proper archiver to create a list of files 
  1798. contained in the archive and display a dialog containing that list. For 
  1799. pictures and text files the appropriate viewer will be started. View is also 
  1800. the action that is associated with double-clicking mouse button 1 on an entry 
  1801. in the window. 
  1802.  
  1803.  
  1804. ΓòÉΓòÉΓòÉ 6.4.5.6.9. Virus Scanner ΓòÉΓòÉΓòÉ
  1805.  
  1806. This option runs the virus scanner you have set up on each file selected in the 
  1807. current FILES.BBS window. The window that the virus scanner is run in is not 
  1808. closed when the scan is complete so that you may view the results. 
  1809.  
  1810. Nothing is extracted from the archives. The files are passed to the 
  1811. 'Other->Virus Scanner' entry from the Settings Notebook one at a time until all 
  1812. the selected files have been scanned. At this writing it is up to you to 
  1813. perform any additional processing. 
  1814.  
  1815.  
  1816. ΓòÉΓòÉΓòÉ 6.4.5.7. Archives ΓòÉΓòÉΓòÉ
  1817.  
  1818. This section covers the operations that can be performed in archives. 
  1819.  
  1820.  
  1821. ΓòÉΓòÉΓòÉ 6.4.5.7.1. Test Archive ΓòÉΓòÉΓòÉ
  1822.  
  1823. This option only works with archives. It simply invokes the appropriate 
  1824. archiver for each selected item in the window. The output from the archiver 
  1825. will be displayed in a dialog box after the testing is completed for each 
  1826. archive. 
  1827.  
  1828.  
  1829. ΓòÉΓòÉΓòÉ 6.4.5.7.2. Extract To... ΓòÉΓòÉΓòÉ
  1830.  
  1831. Here you can extract a selected archive to a directory that you specify. Note 
  1832. that the directory you specify must exist. 
  1833.  
  1834. After you have used this option at least once, the directory will be remembered 
  1835. the next time the dialog box comes up asking you for a directory. You can just 
  1836. press ENTER to accept it. 
  1837.  
  1838.  
  1839. ΓòÉΓòÉΓòÉ 6.4.5.7.3. ReArchive ΓòÉΓòÉΓòÉ
  1840.  
  1841. Eight choices here: 
  1842.  
  1843.    to ZIP 
  1844.    to ARJ 
  1845.    to LZH 
  1846.    to ARC 
  1847.    to HA 
  1848.    to RAR 
  1849.    to UC2 
  1850.    to ZOO 
  1851.  
  1852. Each of these options takes an existing archive or group of archives and 
  1853. converts them to the appropriate archive type. 
  1854.  
  1855. If the ADD entry for an archive is not defined its entry on this sub-menu will 
  1856. be disabled. 
  1857.  
  1858.  
  1859. ΓòÉΓòÉΓòÉ 6.4.5.8. Insert ΓòÉΓòÉΓòÉ
  1860.  
  1861. This section covers the options for inserting comments and files into a 
  1862. FILES.BBS Window. 
  1863.  
  1864.  
  1865. ΓòÉΓòÉΓòÉ 6.4.5.8.1. Comment ΓòÉΓòÉΓòÉ
  1866.  
  1867. To Insert a comment into the current FILES.BBS window, first select the item in 
  1868. the window that you want the comment to go in FRONT of. Then bring up the 
  1869. context menu and select Insert->Comment. A blank comment will then be inserted 
  1870. in the FILES.BBS window. 
  1871.  
  1872.  
  1873. ΓòÉΓòÉΓòÉ 6.4.5.8.2. File... ΓòÉΓòÉΓòÉ
  1874.  
  1875. Insert/File works much the same way as Insert/Comment, first select the item in 
  1876. the window that you want the file to go in FRONT of, then select Insert->File 
  1877. from the context menu. A file dialog will be displayed so that you can find the 
  1878. file you want to insert. Once you have found the file, select the Insert button 
  1879. in the dialog box. The file will then be inserted into the current window. 
  1880. Selecting the Cancel button inside the file dialog box aborts the insert 
  1881. operation. 
  1882.  
  1883. The file will be inserted into the FILES.BBS with a FULL PATH SPECIFICATION. It 
  1884. does NOT get copied or moved into the download directory. This allows you to 
  1885. point to a single file from multiple FILES.BBS files. 
  1886.  
  1887.  
  1888. ΓòÉΓòÉΓòÉ 6.4.5.9. Remove Items ΓòÉΓòÉΓòÉ
  1889.  
  1890. This item removes or deletes items from the FILES.BBS window. When you select 
  1891. it from the context menu, a dialog box will appear allowing you two options. 
  1892. 'Entries' just removes the entry from the FILES.BBS window, 'Entries and Files' 
  1893. causes the entries to be removed and the associated with the entries to be 
  1894. deleted. Click Ok to remove the items, or Cancel to abort the operation. 
  1895.  
  1896.  
  1897. ΓòÉΓòÉΓòÉ 6.4.5.10. Select All ΓòÉΓòÉΓòÉ
  1898.  
  1899. Selects all items in the current FILES.BBS Window. 
  1900.  
  1901.  
  1902. ΓòÉΓòÉΓòÉ 6.4.5.11. Select All Files ΓòÉΓòÉΓòÉ
  1903.  
  1904. Selects all files in the current FILES.BBS window, excluding orphans. 
  1905.  
  1906.  
  1907. ΓòÉΓòÉΓòÉ 6.4.5.12. Deselect All ΓòÉΓòÉΓòÉ
  1908.  
  1909. Deselects all items in the current FILES.BBS Window. 
  1910.  
  1911.  
  1912. ΓòÉΓòÉΓòÉ 6.4.5.13. Display Date ΓòÉΓòÉΓòÉ
  1913.  
  1914. Toggles the display of the File Date column in the current FILES.BBS Window. 
  1915. This setting is temporary, FILES.BBS Windows will always open according to the 
  1916. settings defined in the Settings Notebook. 
  1917.  
  1918.  
  1919. ΓòÉΓòÉΓòÉ 6.4.5.14. Display Size ΓòÉΓòÉΓòÉ
  1920.  
  1921. Toggles the display of the File Size column in the current FILES.BBS Window. 
  1922. This setting is temporary, FILES.BBS Windows will always open according to the 
  1923. settings defined in the Settings Notebook. 
  1924.  
  1925.  
  1926. ΓòÉΓòÉΓòÉ 6.4.5.15. Area Statistics ΓòÉΓòÉΓòÉ
  1927.  
  1928. This option displays an information message box containing how many files are 
  1929. in the current area, how much space they take up and how much free space 
  1930. remains on the volume. 
  1931.  
  1932.  
  1933. ΓòÉΓòÉΓòÉ 7. Example REXX Command Scripts ΓòÉΓòÉΓòÉ
  1934.  
  1935. This section contains some example REXX scripts that you can use to get an idea 
  1936. of how to use REXX with MaxFile/PM. 
  1937.  
  1938. Keep in my that these were written with the system they were tested on in mind, 
  1939. so you may have to change paths or areas to suit your configuration. 
  1940.  
  1941.  
  1942. ΓòÉΓòÉΓòÉ 7.1. ANNOUNCE.CMD ΓòÉΓòÉΓòÉ
  1943.  
  1944. /* ANNOUNCE.CMD - REXX program to generate a File Announcement
  1945. with MPBeta for new files. Version 1.22
  1946.  
  1947. ver 1.1:  Found an error and in the process of cleaning it up, sped up the
  1948. program's execution! Moved the file_desc stuff inside the loop.
  1949.  
  1950. ver 1.2:  Added format description routines, most borrowed from Craig
  1951. Morrison (Thanks!)
  1952.  
  1953. ver 1.21: Added two lines to add back the space between upload counters:
  1954. from ( 0) back to (  0). It was stripped out in formatting.
  1955.  
  1956.   - 13 July, 1994 by Elliott Goodman, 1:102/1319 - 805-264-0200
  1957. */
  1958.  
  1959. /* check whether RxFuncs are loaded. If not, load them. */
  1960.  
  1961. if RxFuncQuery('SysLoadFuncs') then
  1962. do
  1963.         call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
  1964.         call SysLoadFuncs
  1965. end
  1966.  
  1967. /* Just to let the user know what's going on.... */
  1968.  
  1969. say 'Searching thru file areas for new files to announce.'
  1970. say 'Please wait....';
  1971. say ' ';
  1972.  
  1973.  
  1974. /* create a tracking file */
  1975. report = 'd:\lora\file\mpbeta\announce.txt'
  1976.  
  1977. /* delete old tracking file, if present */
  1978. call SysFileDelete(report)
  1979.  
  1980. m_txt = 'Report of ANNOUNCE.CMD activity'
  1981. call lineout report, m_txt
  1982. m_txt = date('U')
  1983. call lineout report, m_txt
  1984. m_txt = ''
  1985. call lineout report, m_txt
  1986.  
  1987. /* get today's date, create an index from it */
  1988. day_index = SPECIFIED_DATE_IN_DAYS( DATE('U') )
  1989.  
  1990. /* set some defaults */
  1991.  
  1992. nfile.0 = 0
  1993. files.0 = 0             /* will increment */
  1994. file_index = 0
  1995.  
  1996. lmargin = 16         /* how far from the left margin the ED Marker should be */
  1997. llength = 45                 /* this is how long each line segment should be */
  1998. EDMarker = '>'        /* Set EDMarker to your extended description character */
  1999.  
  2000. spaces = SubStr(Copies(' ', 80), 1, lmargin)||EDMarker||' '
  2001.  
  2002. /* set up the array elements of FILES which will be used by
  2003. MPM_AnnounceFiles() at the end of all this processing.
  2004. See TANN.CMD included with MPBeta for details.   */
  2005.  
  2006. files.msgpath = 'D:\LORA\MSG\USERS'
  2007. files.msgtype = 'SQUISH'
  2008. files.msgflag = 'CRASH'
  2009. files.to = 'ALL'
  2010. files.toaddr = '1:102/1316.0'
  2011. files.header = 'New files online at Miles Enterprises BBS'
  2012. files.from = 'Elliott Goodman'
  2013. files.fromaddr = '1:102/1319.0'
  2014. files.footer = '- Elliott'
  2015.  
  2016. /* your origin info */
  2017. files.origin = 'Miles Enterprises * 805-264-0200 *'
  2018.  
  2019. /* my first 44 areas are on the CD so I start with 44 (and increment it
  2020. immediately.) This saves time since the CD is slow. */
  2021. mpmarea = 44
  2022.  
  2023. do forever              /* we'll bail out after the last area */
  2024.    mpmarea = MPM_QueryArea(mpmarea) /* look at next area */
  2025.    if mpmarea = 'ERROR' then do
  2026.       leave             /* this will bail us out */
  2027.       end /* if error (past last file area) */
  2028.  
  2029. /* get drive/subdir of next file area */
  2030.    area_path = MPM_QueryAreaInfo(mpmarea, '1')
  2031.  
  2032. /* notify user of our progress */
  2033.    say area_path ;
  2034.  
  2035. /* use SysFileTree here to check for new files */
  2036.    call SysFileTree area_path, stuff, 'F'
  2037.  
  2038. /* reset before each file area */
  2039.    found_new = 0
  2040.    nfile.0 = 0
  2041.  
  2042. /* assume at least one file in the file area */
  2043.    do i = 1 to stuff.0      /* cycle thru files in one area */
  2044.  
  2045. /* get info on each file in the area */
  2046.    parse var stuff.i,
  2047.          file_date,
  2048.          file_time,
  2049.          file_size,
  2050.          file_attr,
  2051.          file_name
  2052.  
  2053. /* remove trailing space */
  2054.    file_name = strip( file_name )
  2055.  
  2056. /* remove drive/subdir info from filename */
  2057.    parse var file_name (area_path) file_name
  2058.  
  2059. /* convert to caps, just in case */
  2060.    file_name = translate( file_name )
  2061.  
  2062. /* get extention. We don't want to announce FILES.BBS or FILES.BAK! */
  2063.    parse var file_name junk '.' extn
  2064.  
  2065.    if extn = 'BAK' then do
  2066.       iterate
  2067.       end
  2068.  
  2069.    if extn = 'BBS' then do
  2070.       iterate
  2071.       end
  2072.  
  2073. /* test if next file is dated today, hence NEW */
  2074.    file_test = SPECIFIED_DATE_IN_DAYS( file_date )
  2075.    if file_test = day_index then do
  2076.  
  2077. /* here's where the ver. 1.1 code makes it's major changes. Store the
  2078. files that are new and do them all at once for each area */
  2079.       found_new = 1
  2080.       nfile.0 = nfile.0 + 1
  2081.       t_index = nfile.0
  2082.       nfile.t_index = file_name
  2083.       end /* if file_test = day_index */
  2084.  
  2085.    end /* do i = 1 to stuff.0 */
  2086.  
  2087. /* now, if we found one or more new files in this area... */
  2088.    if found_new = 1 then do
  2089.  
  2090. /* we have to open the files.bbs file so we can get the
  2091. description */
  2092.       retval = MPM_OpenArea(mpmarea)
  2093.  
  2094. /* this just gives the system time to open the file */
  2095.       Call SysSleep 3
  2096.  
  2097. /* ....cycle thru the new files for this area */
  2098.       do k = 1 to nfile.0
  2099.  
  2100. /* continue storing elements in FILES */
  2101.          file_index = file_index + 1
  2102.          files.0 = files.0 + 1
  2103.          files.file_index.path = area_path
  2104.          files.file_index.file = nfile.k
  2105.  
  2106.          text = MPM_QueryFileInfo(mpmarea, nfile.k, '3')
  2107.  
  2108. /* just in case no description was Tic'd... */
  2109.          if text = 'ERROR' then do
  2110.             text = 'No Description!'
  2111.             end
  2112.  
  2113. /* here's where we format the file description!   */
  2114.  
  2115. /* Translate all CRs, LFs and Extended Description Markers into spaces */
  2116.          ntext = Translate(text, '   ', x2c('0d')||x2c('0a')||EDMarker)
  2117.  
  2118.          text = GetOneLine(llength, ntext)
  2119.          ntext = Space(DelWord(ntext, 1, Words(text)), 1)
  2120.          Do While Length(ntext) \= 0
  2121.             wText = GetOneLine(llength, ntext)
  2122.             text = text||x2c('0d')||x2c('0a')||spaces||wText
  2123.             ntext = Space(DelWord(ntext, 1, Words(wText)), 1)
  2124.             End
  2125.  
  2126. /* the following two lines replace the extra space between
  2127. parentesis that was removed: (  0) */
  2128.          text = overlay(' ',text,1,1)
  2129.          text = '('||text
  2130.  
  2131.          retval = MPM_SetFileInfo(mpmarea, nfile.k, '2', text)
  2132.  
  2133.          text = Space(Translate(text, ' ', '>'), 1)
  2134.          files.file_index.desc = text
  2135.          end /* do k to nfile.0 */
  2136.  
  2137. /* close the files.bbs file to avoid problems */
  2138.       retval = MPM_CloseArea(mpmarea)
  2139.       end /* if  found = 1 */
  2140.  
  2141.    end /* do forever */
  2142.  
  2143. /* if no new files: exit */
  2144. if files.0 = 0 then do
  2145.    m_txt = 'No new files found'
  2146.    call lineout report, m_txt
  2147.    exit
  2148.    end
  2149.  
  2150. /* there are new files. Save the info so we can play
  2151. with the descriptions when we wake up <g> */
  2152.  
  2153. m_txt = 'List of New Files'
  2154. call lineout report, m_txt
  2155. m_txt = ' '
  2156. call lineout report, m_txt
  2157.  
  2158. do j = 1 to files.0
  2159.    m_txt = 'File Path = ' files.j.path
  2160.    call lineout report, m_txt
  2161.    m_txt = 'File Name = ' files.j.file
  2162.    call lineout report, m_txt
  2163.    m_txt = 'File Description = ' files.j.desc
  2164.    call lineout report, m_txt
  2165.    m_txt = ' '
  2166.    call lineout report, m_txt
  2167.    end
  2168.  
  2169. /* actually make the announcement */
  2170. retval = MPM_AnnounceFiles('files')
  2171.  
  2172. m_txt = files.0 'new files announced!'
  2173. call lineout report, m_txt
  2174.  
  2175. /* and we're done */
  2176. exit
  2177.  
  2178. /*------------------------------------------------*/
  2179. /* Convert calendar date to consistent date index                  */
  2180. /*------------------------------------------------*/
  2181. SPECIFIED_DATE_IN_DAYS:
  2182.    Procedure
  2183.  
  2184. parse arg,
  2185.    mm '/',
  2186.    dd '/',
  2187.    yy
  2188.  
  2189. days_by_month = '31 28 31 30 31 30 31 31 30 31 30 31'
  2190. current_number_of_days = (yy * 365) + dd
  2191. do m = 1 while m < mm
  2192.    current_number_of_days = current_number_of_days +,
  2193.       WORD( days_by_month, m )
  2194. end
  2195. return current_number_of_days
  2196.  
  2197. /*   This subroutine and all format description routines written by
  2198.       Craig Morrison, author of MaxFilePM.
  2199.     GetOneLine takes a variable length string and returns a blank delimited
  2200.     string that is a substring of inText and is no longer than llen
  2201.     characters.
  2202.  
  2203.     A single word that is longer than llen is simply truncated at llen when it
  2204.     would be the only word in a line segment and not wrappable. Its cheesy and
  2205.     cheap, but hey, it works.. ;-)
  2206. */
  2207.  
  2208. GetOneLine:
  2209.  
  2210.     Parse Arg llen, inText
  2211.  
  2212.     cText = ''
  2213.     Do While Length(cText' 'Word(inText, 1)) < llen
  2214.         cText = cText' 'Word(inText, 1)
  2215.         inText = DelWord(inText, 1, 1)
  2216.         If inText = '' Then Leave
  2217.     End
  2218.  
  2219.     if cText = '' Then Do
  2220.         cText = Left(inText, llen)
  2221.     End
  2222.  
  2223. Return Space(cText, 1)
  2224.  
  2225.  
  2226. ΓòÉΓòÉΓòÉ 7.2. FILELIST.CMD ΓòÉΓòÉΓòÉ
  2227.  
  2228. /* MPM_QueryFileList() example */
  2229.  
  2230. Call RxFuncAdd 'SysSleep', 'RexxUtil', 'SysSleep'
  2231.  
  2232. mpmarea = 'TEST'
  2233.  
  2234. /* Open up the file area */
  2235. retval = MPM_OpenArea(mpmarea)
  2236.  
  2237. /* Give the open call a chance to work */
  2238. Call SysSleep 3
  2239.  
  2240. If MPM_IsAreaOpen(mpmarea) = '0' then Exit
  2241.  
  2242. rc = MPM_QueryFileList(mpmarea, 'files')
  2243.  
  2244. rc = MPM_CloseArea(mpmarea)
  2245.  
  2246. Say 'There are 'files.0' files in the list.'
  2247. Say
  2248. Say files.1.file' is the first file.'
  2249. Say files.1.path' is the path of the first file.'
  2250. Say files.1.desc' is the description of the first file.'
  2251.  
  2252. Say
  2253. Say 'Click SEND to quit.'
  2254. Pull .
  2255.  
  2256.  
  2257. ΓòÉΓòÉΓòÉ 7.3. LISTAREA.CMD ΓòÉΓòÉΓòÉ
  2258.  
  2259. /* LISTAREA.CMD Lists all available file areas */
  2260.  
  2261. rc = MPM_QueryAreaList('arealist')
  2262.  
  2263. do i = 1 to arealist.0
  2264.     Say arealist.i.area' - 'arealist.i.desc
  2265. end
  2266.  
  2267. Say
  2268. Say 'Click SEND to quit.'
  2269. Pull .
  2270.  
  2271.  
  2272. ΓòÉΓòÉΓòÉ 7.4. TANN.CMD ΓòÉΓòÉΓòÉ
  2273.  
  2274. /* Test MPM_AnnounceFiles(..)                                              */
  2275. /*                                                                         */
  2276. /* This example shows how to define ALL the fields for a file announcement */
  2277. /* Please note that by using MPM_QueryFileList(..) you can generate the    */
  2278. /* the stem needed to create a file announcement. All you have to do after */
  2279. /* calling that function is filter out the files you don't want, then fill */
  2280. /* in the message information before calling MPM_AnnounceFiles(..).        */
  2281.  
  2282. files.0 = 1
  2283. files.1.path = 'D:\bcos2\maxfile\'
  2284. files.1.file = 'mpm1_20.zip'
  2285. files.1.desc = 'MaxFile/PM 1.25, A FILES.BBS Manager for Presentation Manager'
  2286.  
  2287. /* Path to the message area, REQUIRED                                      */
  2288. files.msgpath  = 'D:\Max\Msg\Public'
  2289.  
  2290. /* Mail tosser/packer information, optional                                */
  2291. files.msgproc  = 'd:\squish\sq386p -cd:\squish\squish.cfg squash link -fWORKCHAT'
  2292.  
  2293. /* Message area type: SQUISH, MSG or MSGECHO. REQUIRED                     */
  2294. files.msgtype  = 'SQUISH'
  2295.  
  2296. /* Message flag; HOLD, NORMAL or CRASH. REQUIRED                           */
  2297. files.msgflag  = 'NORMAL'
  2298.  
  2299. /* Who to address the message to, defaults to 'All' if not defined         */
  2300. files.to       = 'Elliott Goodman'
  2301.  
  2302. /* The fidonet address for who the message is addressed to                 */
  2303. /* All four elements are REQUIRED, defaults to *.fromaddr if not defined   */
  2304. files.toaddr   = '1:102/1319.0'
  2305.  
  2306. /* Who the message is from, REQUIRED                                       */
  2307. files.from     = 'Craig Morrison'
  2308.  
  2309. /* Fidonet address of who the message is from, REQUIRED                    */
  2310. files.fromaddr = '1:201/60.0'
  2311.  
  2312. /* Optional header text for the message                                    */
  2313. files.header   = 'Check this out:'
  2314.  
  2315. /* Optional footer text for the message                                    */
  2316. files.footer   = "Slick ain't it?"
  2317.  
  2318. /* Optional subject line, defaults to 'File Announcement' if not defined   */
  2319. files.subject  = 'REXX MPM_AnnounceFiles(..) Test'
  2320.  
  2321. /* Optional origin information, if not defined, no origin line is created  */
  2322. files.origin   = 'Workplace Connection * (317) 742-2680'
  2323.  
  2324. /* The call itself, returns 'ERROR' if something goes wrong                */
  2325. retval = MPM_AnnounceFiles('files')
  2326.  
  2327. rc = MPM_MsgBox(retval, 'MPM_AnnounceFiles Result')
  2328.  
  2329.  
  2330. ΓòÉΓòÉΓòÉ 7.5. TESTREXX.CMD ΓòÉΓòÉΓòÉ
  2331.  
  2332. /* TEXTREXX.CMD - Sample REXX command file for testing MaxFile/PM's REXX     */
  2333. /* macro extensions.                                                         */
  2334.  
  2335. Say 'MaxFile/PM demo in progress.'
  2336.  
  2337. Call RxFuncAdd 'SysSleep', 'RexxUtil', 'SysSleep'
  2338.  
  2339.  
  2340. /* MPM_GetVersion() returns MaxFile/PM's revision number.                    */
  2341.  
  2342. mpmver = MPM_GetVersion()
  2343.  
  2344.  
  2345. /* MPM_MsgBox(message, title) displays a simple message box using 'message'  */
  2346. /* as the text displayed in the message box and 'title' as the title for the */
  2347. /* message box.                                                              */
  2348.  
  2349. rc = MPM_MsgBox('Version 'mpmver, 'MaxFile/PM - Query Version Number')
  2350.  
  2351.  
  2352. /* MPM_QueryArea([area tag]) works in two different ways.                    */
  2353. /* Called with no arguments it returns the area tag of the first file area   */
  2354. /* listed in the Main File Area window listing.                              */
  2355. /* When called with a single argument containing the area tag of an existing */
  2356. /* file area, it will return the area tag of the NEXT file area in the list. */
  2357. /* In either case, if an area can't be found it returns 'ERROR'.             */
  2358.  
  2359. mpmarea = MPM_QueryArea()
  2360. rc = MPM_MsgBox(mpmarea, 'MaxFile/PM - Query File Area')
  2361.  
  2362.  
  2363. /* MPM_DeselectArea(area tag) detags a file area in the Main File Area       */
  2364. /* window.                                                                   */
  2365.  
  2366. retval = MPM_DeselectArea(mpmarea)
  2367. rc = MPM_MsgBox(retval, 'MaxFile/PM - Deselect File Area Results')
  2368.  
  2369.  
  2370. /* See the MPM_QueryArea() comments above.                                   */
  2371.  
  2372. mpmarea = MPM_QueryArea(mpmarea)
  2373. rc = MPM_MsgBox(mpmarea, 'MaxFile/PM - Query Next File Area')
  2374.  
  2375.  
  2376. /* MPM_SelectArea(area tag) tags a file area in the Main File Area Window.   */
  2377.  
  2378. retval = MPM_SelectArea(mpmarea)
  2379. rc = MPM_MsgBox(retval, 'MaxFile/PM - Select File Area Results')
  2380.  
  2381.  
  2382. /* MPM_OpenArea(area tag) opens a FILES.BBS Window.                          */
  2383.  
  2384. retval = MPM_OpenArea(mpmarea)
  2385. rc = MPM_MsgBox(retval, 'MaxFile/PM - Open File Area Results')
  2386.  
  2387.  
  2388. /* MPM_IsAreaOpen(area tag) returns "1" if the FILES.BBS window associated   */
  2389. /* with 'area tag' is open, "0" otherwise.                                   */
  2390.  
  2391. retval = MPM_IsAreaOpen(mpmarea)
  2392. rc = MPM_MsgBox(retval, 'MaxFile/PM - Is File Area Open Results')
  2393.  
  2394.  
  2395. /* MPM_SetFDUFlag(area tag) sets the File Database Utility flag for the      */
  2396. /* FILES.BBS that is associated with 'area tag.' Use this to tell MaxFile/PM */
  2397. /* that the File Database Utility needs to be run to update your file        */
  2398. /* database after making changes that MaxFile/PM doesn't know about.         */
  2399.  
  2400. /* retval = MPM_SetFDUFlag(mpmarea) */
  2401. /* rc = MPM_MsgBox(retval, 'MaxFile/PM - Set FD Utility Flag Results') */
  2402.  
  2403.  
  2404. /* MPM_CloseArea(area tag) closes the FILES.BBS window associated with 'area */
  2405. /* tag.'                                                                     */
  2406.  
  2407. retval = MPM_CloseArea(mpmarea)
  2408. rc = MPM_MsgBox(retval, 'MaxFile/PM - Close File Area Results')
  2409.  
  2410.  
  2411. /* MPM_QueryAreaInfo(area tag, '0' | '1' | '2') queries and returns the      */
  2412. /* specified information for 'area tag.' The level info is as follows:       */
  2413. /*                                                                           */
  2414. /*                      0 - Area description                                 */
  2415. /*                      1 - Download Path                                    */
  2416. /*                      2 - FILES.BBS Location                               */
  2417.  
  2418. areainfo = MPM_QueryAreaInfo(mpmarea, '0')
  2419. rc = MPM_MsgBox('Description = 'areainfo,,
  2420.                 'MaxFile/PM - Query Area Info Results')
  2421.  
  2422. areainfo = MPM_QueryAreaInfo(mpmarea, '1')
  2423. rc = MPM_MsgBox('Download Path = 'areainfo,,
  2424.                 'MaxFile/PM - Query Area Info Results')
  2425.  
  2426. areainfo = MPM_QueryAreaInfo(mpmarea, '2')
  2427. rc = MPM_MsgBox('FILES.BBS Location = 'areainfo,,
  2428.                 'MaxFile/PM - Query Area Info Results')
  2429.  
  2430.  
  2431. /*****************************************************************************/
  2432. /*                                                                           */
  2433. /* What follows is a simple example of querying information about an open    */
  2434. /* file area.                                                                */
  2435. /*                                                                           */
  2436. /*****************************************************************************/
  2437.  
  2438. mpmarea = 'TEST'
  2439.  
  2440. /* Open up the file area */
  2441. retval = MPM_OpenArea(mpmarea)
  2442.  
  2443. /* Give the open call a chance to work */
  2444. Call SysSleep 3
  2445.  
  2446. /* Loop until the file area is open */
  2447. areaopen = '0'
  2448. do until areaopen \= '0'
  2449.     Call SysSleep 1
  2450.     areaopen = MPM_IsAreaOpen(mpmarea)
  2451. end
  2452.  
  2453. /* MPM_QueryFile(area tag[, filename]) returns the base filename of a        */
  2454. /* file from a FILES.BBS window. When called with just the area tag of an    */
  2455. /* open window it returns the first file in the window. When called with     */
  2456. /* both the area tag and an existing filename it will return the NEXT        */
  2457. /* filename in the window. If something goes wrong it returns ERROR.         */
  2458.  
  2459. /* Query the filename of the first file */
  2460. filename = MPM_QueryFile(mpmarea)
  2461. rc = MPM_MsgBox('File = 'filename, 'MaxFile/PM - Query File Results')
  2462.  
  2463. if filename = 'ERROR' then do
  2464.     exit
  2465. end
  2466.  
  2467. /* Query the next filename */
  2468. filename = MPM_QueryFile(mpmarea, filename)
  2469. rc = MPM_MsgBox('File = 'filename, 'MaxFile/PM - Query File Results')
  2470.  
  2471. /* MPM_QueryFileInfo(area tag, filename, '0' | '1' | '2' | '3') queries      */
  2472. /* and returns the specified information about 'filename.' The level         */
  2473. /* information is as follows:                                                */
  2474. /*                                                                           */
  2475. /*                     0 - File Path                                         */
  2476. /*                     1 - File Date in DD MMM YYYY format                   */
  2477. /*                     3 - File Size                                         */
  2478. /*                     4 - File Description                                  */
  2479.  
  2480. fileinfo = MPM_QueryFileInfo(mpmarea, filename, '0')
  2481. rc = MPM_MsgBox('Filepath = 'fileinfo, 'MaxFile/PM - Query File Info Results')
  2482.  
  2483.  
  2484. /* MPM_SelectFile/MPM_DeselectFile(area tag, filename) select and            */
  2485. /* deselect 'filename', respectively, in the area identified by 'area        */
  2486. /* tag'.                                                                     */
  2487.  
  2488. retval = MPM_SelectFile(mpmarea, filename)
  2489. rc = MPM_MsgBox(filename' selected!', 'Select File')
  2490.  
  2491. fileinfo = MPM_QueryFileInfo(mpmarea, filename, '1')
  2492. rc = MPM_MsgBox('Filedate = 'fileinfo, 'MaxFile/PM - Query File Info Results')
  2493.  
  2494. fileinfo = MPM_QueryFileInfo(mpmarea, filename, '2')
  2495. rc = MPM_MsgBox('Filesize = 'fileinfo, 'MaxFile/PM - Query File Info Results')
  2496.  
  2497. fileinfo = MPM_QueryFileInfo(mpmarea, filename, '3')
  2498. rc = MPM_MsgBox('File description = 'fileinfo,,
  2499.                 'MaxFile/PM - Query File Info Results')
  2500.  
  2501. retval = MPM_DeselectFile(mpmarea, filename)
  2502. rc = MPM_MsgBox(filename' deselected!', 'Deselect File')
  2503.  
  2504.  
  2505. /* MPM_SetFileInfo(area tag, filename, '0' | '1' | '2') set the displayed    */
  2506. /* information for a file in a FILES.BBS window. The level information is    */
  2507. /* as follows:                                                               */
  2508. /*                                                                           */
  2509. /*                         0 - Set File Date                                 */
  2510. /*                         1 - Set File Size                                 */
  2511. /*                         2 - Set Description                               */
  2512. /*                                                                           */
  2513. /* Please note that options 0 and 1 are only for display purposes, if you    */
  2514. /* want to set the file's date ("touch" it) you need to perform this         */
  2515. /* yourself, MaxFile/PM does not do this for you, the same goes for the      */
  2516. /* file's size. This REXX extension is merely to update the display in       */
  2517. /* the FILES.BBS window. Option 2, for setting descriptions, does            */
  2518. /* actually alter the description that will get saved for the file.          */
  2519.  
  2520. /* retval = MPM_SetFileInfo(mpmarea, filename, '2', 'Set with TESTREXX.CMD') */
  2521. /* rc = MPM_MsgBox(retval, 'Set File Info Results') */
  2522.  
  2523.  
  2524. /* MPM_RemoveFile(area tag, filename) removes the file 'filename' from       */
  2525. /* the FILES.BBS window associated with 'area tag'.                          */
  2526.  
  2527. /* retval = MPM_RemoveFile(mpmarea, filename) */
  2528. /* rc = MPM_MsgBox(retval, 'Remove File results') */
  2529.  
  2530.  
  2531. /* MPM_AddFile(area tag, filename, description) adds 'filename' with         */
  2532. /* description to the FILES.BBS window associated with 'area tag'.           */
  2533. /* 'filename' MUST be a FULL file specification in the form of               */
  2534. /* D:\PATH\FILENAME.EXE! The function returns 'ERROR' if something goes      */
  2535. /* wrong.                                                                    */
  2536.  
  2537. /* retval = MPM_AddFile(mpmarea, 'd:\test\ivtech.zip', 'New File from REXX') */
  2538. /* rc = MPM_MsgBox(retval, 'Add File Results') */
  2539.  
  2540.  
  2541. /* Close the file area */
  2542. retval = MPM_CloseArea(mpmarea)
  2543.  
  2544. /* MPM_Crc32(filename) returns a CRC32 for the specified file or ERROR if    */
  2545. /* something goes wrong.                                                     */
  2546. crc = MPM_Crc32('MPM1_20.ZIP')
  2547. rc = MPM_MsgBox('MPM1_20.ZIP CRC32 = 'crc, 'MPM_Crc32 Results')
  2548.  
  2549.  
  2550. rc = MPM_MsgBox('REXX Demo Complete!', 'MaxFile/PM - REXX Demo')
  2551.  
  2552.  
  2553. ΓòÉΓòÉΓòÉ 7.6. NEWFILES.CMD ΓòÉΓòÉΓòÉ
  2554.  
  2555. /* Sample MaxFile/PM New Files Search script */
  2556. '@echo off'
  2557. fAreas = 'FWAPPS FWBBS FWCOMM FWPROG FWREXX FWSYSUTL FWUTILS IBMINFO WINDATA'
  2558. fAreas = fAreas||' WINGAME WINGRAF WINPRNT WINPROG WINSOUN WINSYST WINUTIL'
  2559. fAreas = fAreas||' WINWORD'
  2560.  
  2561. /* Load just the REXXUTIL functions we need */
  2562. Call RxFuncAdd 'SysSleep', 'RexxUtil', 'SysSleep'
  2563.  
  2564. tDate = DATE('O')
  2565. Parse Var tDate tYear '/' tMonth '/' tDay
  2566.  
  2567. Say 'Beginning new files scan for 'tYear||tMonth||tDay'...'
  2568.  
  2569. newfiles = 0
  2570.  
  2571. Do index = 1 to Words(fAreas)
  2572.     fbbs = MPM_QueryAreaInfo(Word(fAreas, index), '2')
  2573.     If Stream(fbbs, 'c', 'query exists') \= '' Then Do
  2574.         rc = MPM_OpenArea(Word(fAreas, index))
  2575.         Call SysSleep 5
  2576.         If MPM_IsAreaOpen(Word(fAreas, index)) = '1' Then Do
  2577.             Drop fList.
  2578.             Say
  2579.             Say 'Reporting files for area - 'Word(fAreas, index)'.'
  2580.             rc = MPM_QueryFileList(Word(fAreas, index), 'fList')
  2581.             rc = MPM_CloseArea(Word(fAreas, index))
  2582.             If fList.0 \= 0 Then Do
  2583.                 Do fIndex = 1 to fList.0
  2584.                     fDate = Stream(fList.fIndex.path||fList.fIndex.file,,
  2585.                                    'c', 'query datetime')
  2586.                     Parse Var fDate fMonth '-' fDay '-' fYear .
  2587.                     If tYear||tMonth||tDay = fYear||fMonth||fDay Then Do
  2588.                         Say
  2589.                         Say '  'fList.fIndex.file' is a new file.'
  2590.                         newfiles = newfiles + 1
  2591.                     End
  2592.                 End
  2593.             End
  2594.         End
  2595.     End
  2596. End
  2597.  
  2598. Say
  2599. Say 'New file scan complete, 'newfiles' found.'
  2600. Say 'Click SEND to quit...'
  2601. Pull .
  2602.  
  2603.  
  2604. ΓòÉΓòÉΓòÉ 7.7. FILESORT.CMD ΓòÉΓòÉΓòÉ
  2605.  
  2606. /* File Sort Demo */
  2607.  
  2608. Call RxFuncAdd 'SysSleep', 'RexxUtil', 'SysSleep'
  2609.  
  2610. /* Hide the main window */
  2611. Call MPM_SetWindowState('MINIMIZE')
  2612.  
  2613. /* Initial file area open */
  2614. Call MPM_OpenArea '1'
  2615.  
  2616. Call SysSleep 4
  2617.  
  2618. Call MPM_FileAreaSort '1', 'Date', 'Desc', 'All'
  2619.  
  2620. Call MPM_MsgBox 'Click OK to Continue', 'MaxFile/PM REXX Demo'
  2621.  
  2622. Call MPM_FileAreaSort '1', 'Name', 'Asc', 'All'
  2623.  
  2624. Call MPM_MsgBox 'Click OK to Continue', 'MaxFile/PM REXX Demo'
  2625.  
  2626. Call MPM_SaveFilesBBS('1')
  2627.  
  2628. Call MPM_CloseArea('1')
  2629.  
  2630. /* Restore the main window */
  2631. Call MPM_SetWindowState('RESTORE')
  2632.  
  2633.  
  2634. ΓòÉΓòÉΓòÉ 8. Known Problems ΓòÉΓòÉΓòÉ
  2635.  
  2636. In a system as configurable as OS/2 there are always going to be problems, this 
  2637. section is devoted to those problems and in some cases work-arounds. If you are 
  2638. having trouble with MaxFile/PM this is the first place to look to see if you 
  2639. can find some help. 
  2640.  
  2641.  
  2642. ΓòÉΓòÉΓòÉ 8.1. Lora's FILEIDX.EXE ΓòÉΓòÉΓòÉ
  2643.  
  2644. Lora-BBS File index maintenance utility 
  2645.  
  2646. Make sure that you specify the files IDX file that you want rebuilt in the Main 
  2647. Settings dialog box. For example: 
  2648.  
  2649.                         ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2650. File Database Utility   Γöé E:\LORA\FILEIDX E:\LORA\FILES.IDX  Γöé
  2651.                         ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2652.  
  2653. MaxFile/PM will take care of the rest. (The "AREA .. .. .." part.) 
  2654.  
  2655.  
  2656. ΓòÉΓòÉΓòÉ 8.2. CONTAINER DISPLAY CORRUPTION ΓòÉΓòÉΓòÉ
  2657.  
  2658. Moving vertical separator bar messes up highlighting 
  2659.  
  2660. The Service Pack for OS/2 2.1 screwed up the way the highlighting is handled 
  2661. when the vertical separator bar is moved. I didn't it break folks, IBM did. 
  2662.  
  2663.  
  2664. ΓòÉΓòÉΓòÉ 8.3. MAXFMPM.INI CORRUPTION ΓòÉΓòÉΓòÉ
  2665.  
  2666. MAXFMPM.INI gets trashed if a REXX script bombs out and won't quit. 
  2667.  
  2668. Always keep a backup of your MAXFMPM.INI file someplace safe. I need specific 
  2669. examples of scripts that I can use to recreate the problem. I'm not sure what 
  2670. is causing it, but I am looking into it. 
  2671.  
  2672. The key to safety is to backup before you start a new script and try to debug 
  2673. it to get it to work. 
  2674.  
  2675.  
  2676. ΓòÉΓòÉΓòÉ 8.4. RANDOM WPS LOCK UPS ΓòÉΓòÉΓòÉ
  2677.  
  2678. While I can't pin down any one cause, there are a few things I have noticed 
  2679. that cause problems: 
  2680.  
  2681. Bloated INI files (OS2.INI larger than 512k) 
  2682.  
  2683. Version mismatches on display drivers. (e.g., 2.10 drivers used for 2.11) 
  2684.  
  2685. The display drivers do make a difference, I was running along fine until I 
  2686. installed the WD 640x480 256 color drivers. 
  2687.  
  2688.  
  2689. ΓòÉΓòÉΓòÉ 8.5. LAUNCH PAD SHREDDER WON'T SHRED MY FILES ΓòÉΓòÉΓòÉ
  2690.  
  2691. Create a shadow of your shredder object on the desktop and drag the items you 
  2692. want deleted to it or use Remove Items from the context menu in a FILES.BBS 
  2693. window.