home *** CD-ROM | disk | FTP | other *** search
/ The Pier Shareware 6 / The_Pier_Shareware_Number_6_(The_Pier_Exchange)_(1995).iso / 035 / mpm1_22a.zip / maxfmpm.INF (.txt) < prev    next >
OS/2 Help File  |  1994-10-17  |  83KB  |  2,544 lines

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