home *** CD-ROM | disk | FTP | other *** search
/ ANews 1 / AnewsCD01.iso / Internet / Newsgroup / THOR_2.6 / THOR26_API.LHA / autodocs / BBSRead.doc < prev   
Text File  |  1999-02-28  |  141KB  |  4,248 lines

  1. TABLE OF CONTENTS
  2.  
  3. bbsread.library/--background--
  4. bbsread.library/AppendPassiveConfList
  5. bbsread.library/Archive
  6. bbsread.library/BBSEventArchiver
  7. bbsread.library/BBSUserData
  8. bbsread.library/BufBRClose
  9. bbsread.library/BufBROpen
  10. bbsread.library/BufBRRead
  11. bbsread.library/BufBRSeek
  12. bbsread.library/BufBRWrite
  13. bbsread.library/CharsetConvert
  14. bbsread.library/ConfCharset
  15. bbsread.library/ConfigBBS
  16. bbsread.library/ConfigConf
  17. bbsread.library/ConfigFArea
  18. bbsread.library/ConfigGlobal
  19. bbsread.library/ConfigType
  20. bbsread.library/ConfLineLength
  21. bbsread.library/EndOfAdding
  22. bbsread.library/ExternalBBSConfig
  23. bbsread.library/FindDupBRMsg
  24. bbsread.library/FindOrginalNr
  25. bbsread.library/FreeBRObject
  26. bbsread.library/GetBBSList
  27. bbsread.library/GetConfigValue
  28. bbsread.library/GetConfList
  29. bbsread.library/GetFAreaList
  30. bbsread.library/GetGlobalConfig
  31. bbsread.library/GetMarkedMsg
  32. bbsread.library/GetSignature
  33. bbsread.library/GetTagFile
  34. bbsread.library/GetTypeList
  35. bbsread.library/MakeEventPackage
  36. bbsread.library/MarkMessage
  37. bbsread.library/PackDataFile
  38. bbsread.library/ParseGrab
  39. bbsread.library/PGPBREvents
  40. bbsread.library/ReadBREvent
  41. bbsread.library/ReadBRFile
  42. bbsread.library/ReadBRKill
  43. bbsread.library/ReadBRMessage
  44. bbsread.library/ReadBRUser
  45. bbsread.library/ReadPassiveConfList
  46. bbsread.library/ScanForGrabs
  47. bbsread.library/SearchBRFile
  48. bbsread.library/SearchBRMessage
  49. bbsread.library/SearchBRUser
  50. bbsread.library/SortMessageArray
  51. bbsread.library/StartOfAdding
  52. bbsread.library/TypeFromBBS
  53. bbsread.library/UnArchive
  54. bbsread.library/UniqueMsgFile
  55. bbsread.library/UpdateBREvent
  56. bbsread.library/UpdateBRMessage
  57. bbsread.library/UpdateDataStruct
  58. bbsread.library/WriteBREvent
  59. bbsread.library/WriteBRFile
  60. bbsread.library/WriteBRIEFMsg
  61. bbsread.library/WriteBRKill
  62. bbsread.library/WriteBRMessage
  63. bbsread.library/WriteBRUser
  64. bbsread.library/WritePassiveConfList
  65. bbsread.library/--background--                 bbsread.library/--background--
  66.  
  67.     NOTES
  68.     Since this library uses functions in the dos.library, only processes
  69.     should open and use this library.
  70.  
  71.     All strings passed to functions in this library should use the 
  72.     standard Amiga character set (ISO). Use CharsetConvert() to convert 
  73.     the charset of strings which is not in ISO.
  74.  
  75.     The library uses two envirorment variables: 
  76.     o THOR/BBSDataPath - Path to where to store the database and 
  77.         configuration files.
  78.     o THOR/THORPath - Path to where the Thor system is installed. This
  79.         path *must* end with a ':' or a '/'.
  80.  
  81.     Progress Hooks:
  82.     Several functions support call back progress hooks. The hook is 
  83.     called with a BRProgress structure as the object parameter. The 
  84.     BRProgress structure is describred in <libraries/bbsread.h>. The 
  85.     tags for progress hooks are global:
  86.     
  87.     BR_ProgressHook - Callback hook for progress report is pointed by
  88.         (struct Hook *) ti_Data. Returning non-zero from the callback hook
  89.         will stopp the operation and in some cases make the function
  90.         return failure.
  91.  
  92.     BR_ProgressUpdates - The maximum number of calls to the callback hook
  93.         for one pass is in (ULONG) ti_Data. The default is 100.
  94.  
  95.     BR_ProgressReturn - Pointer to a ULONG to store the return value from
  96.         the progress hook is in (ULONG *) ti_Data.
  97.  
  98.     Common configuration tags: 
  99.     (Not supported by all configuration functions yet.)
  100.  
  101.     BRCFG_Use - Don't store the changes done to the configuration if 
  102.         (BOOL) ti_Data is TRUE.
  103.  
  104.     BRCFG_LastSaved - Will retrive the configuration last saved before 
  105.         applying any changes.
  106.     
  107.  
  108. bbsread.library/AppendPassiveConfList   bbsread.library/AppendPassiveConfList
  109.  
  110.    NAME    
  111.     AppendPassiveConfList - Append to the passive conference list.
  112.  
  113.    SYNOPSIS
  114.     error = AppendPassiveConfList( bbs, passConfList )
  115.     D0                             A0        A1
  116.  
  117.     BOOL AppendPassiveConfList( struct BBSListItem *, struct List * );
  118.  
  119.    FUNCTION
  120.     Appends a list of struct PasssConfListItem to a passive conference
  121.     list. No checking for duplicates will be done. If you don't have the 
  122.     internal number for the conference, pl_BBSConfNr must be initalized 
  123.     to -1.
  124.  
  125.    INPUTS
  126.     bbs - Pointer to the bbs which the list should be added to.
  127.     passConfList - Pointer to a list of struct PasssConfListItem. 
  128.  
  129.    RESULT
  130.     error - Boolean.
  131.  
  132.    EXAMPLE
  133.  
  134.    NOTES
  135.  
  136.    BUGS
  137.  
  138.    SEE ALSO
  139.  
  140. bbsread.library/Archive                               bbsread.library/Archive
  141.  
  142.    NAME    
  143.     Archive -- Add files to an archive.
  144.  
  145.    SYNOPSIS
  146.     error = Archive( arcitem, archive, tagitems )
  147.     D0                 A0       A1        A2
  148.  
  149.     LONG Archive( struct ArcConfigItem *, STRPTR, struct TagItem * );
  150.  
  151.     error = ArchiveTags( arcitem, archive, Tag1, ...)
  152.  
  153.     LONG ArchiveTags(struct ArcConfigItem *, STRPTR, ULONG, ...);
  154.  
  155.    FUNCTION
  156.     This function add files to an archive. The type of archiver to use is
  157.     determined with the arcitem. 
  158.     
  159.     The ability to return failure when the archiver fails depends on how 
  160.     the archivers behave.
  161.  
  162.     The tags not understood are forwarded to dos.library/SystemTagList(). 
  163.     Look at dos.library/SystemTagList() for futher information on tags.
  164.  
  165.    INPUTS
  166.     arcitem - Pointer to struct ArcConfigItem to tell which archiver to 
  167.         use.
  168.  
  169.     archive - Pointer to path and name of archive to add to.
  170.     tagitems - Pointer to TagItem array. See <dos/dostags.h>.  Both 
  171.         dos.library/SystemTagList() tags and dos.library/CreateNewProc()
  172.         tags may be passed.
  173.  
  174.     Here are the TagItem.ti_Tag values that are defined for
  175.     Archive().
  176.  
  177.     AR_AddFile - File to add to archive is in (STRPTR) ti_Data. At least 
  178.         one of this tag must be passed.
  179.     
  180.     AR_SourceDir - Path to source directory is in (STRPTR) it_Data. 
  181.         Default is to use current directory as source directory.
  182.  
  183.    RESULT
  184.     error    - 0 for success, result from archiver, or -1.  Note that on
  185.         error, the caller is responsible for any filehandles or other
  186.         things passed in via tags.
  187.  
  188.    EXAMPLE
  189.  
  190.    NOTES
  191.  
  192.    BUGS
  193.  
  194.    SEE ALSO
  195.  
  196. bbsread.library/BBSEventArchiver             bbsread.library/BBSEventArchiver
  197.  
  198.    NAME    
  199.     BBSEventArchiver - Returns the EventArchiver for a bbs.
  200.  
  201.    SYNOPSIS
  202.     arcitem = BBSEventArchiver( bbs )
  203.     D0                          A0
  204.  
  205.     struct ArcConfigItem * BBSEventArchiver( struct BBSListItem * );
  206.  
  207.    FUNCTION
  208.     Returns the ArcConfigItem structure correspondig to the EventArchiver
  209.     for this bbs. If the bbs has no defined event archiver, the event
  210.     archiver for the bbs type will be returned.
  211.  
  212.     Use this function instead of searching the ArcItem list by name for 
  213.     the correspondig ArcConfigItem.
  214.  
  215.     The ArcConfigItem structure returned is not a part of a list, so don't
  216.     use the ac_Node. The structure must be deallocated with 
  217.     FreeBRObject().
  218.  
  219.    INPUTS
  220.     bbs - Pointer to the bbs to get the archiver to.
  221.  
  222.    RESULT
  223.     arcitem - Pointer to a ArcConfigItem for the bbs. Returns a NULL 
  224.         pointer on failure (IoErr() will be set) or if the bbs and type 
  225.         has no defined EventArchiver. 
  226.  
  227.    EXAMPLE
  228.  
  229.    NOTES
  230.  
  231.    BUGS
  232.  
  233.    SEE ALSO
  234.  
  235. bbsread.library/BBSUserData                       bbsread.library/BBSUserData
  236.  
  237.    NAME    
  238.     BBSUserData -- Return the prefered userdata for a BBS.
  239.  
  240.    SYNOPSIS
  241.     userdata = BBSUserData( globals, bbs )
  242.     D0                        A0      A1
  243.  
  244.     struct UserData * BBSUserData( struct GlobalConfig *, 
  245.         struct BBSListItem * );
  246.  
  247.    FUNCTION
  248.     Get the prefered userdata for a bbs. The data is returned in a structure. 
  249.     The structure *must* be freed with FreeBRObject().
  250.  
  251.    INPUTS
  252.     globals - Pointer to your copy of the global configuration.
  253.     bbs - Pointer to BBSListItem for BBS to get UserData for. Can be a 
  254.         NULL-pointer.
  255.  
  256.    RESULT
  257.     userdata - Filled out UserData structure. NULL on failure.
  258.  
  259.    EXAMPLE
  260.  
  261.    NOTES
  262.     The pointers in the UserData structure is a copy of the pointers in 
  263.     either GlobalConfig or BBSData. Therefore, the ponters are only valid 
  264.     as long as you don't free or update any of these structures. 
  265.  
  266.    BUGS
  267.  
  268.    SEE ALSO
  269.  
  270. bbsread.library/BufBRClose                         bbsread.library/BufBRClose
  271.  
  272.    NAME    
  273.     BufBRClose -- Close a file used with BBSRead buffering.
  274.  
  275.    SYNOPSIS
  276.     success = BufBRClose( fileid )
  277.     D0                      A0
  278.  
  279.     BOOL BufBRClose( APTR );
  280.  
  281.    FUNCTION
  282.     Close a file opened by BufBROpen(). 
  283.  
  284.    INPUTS
  285.     fileid - Fileid for file to close.
  286.  
  287.    RESULT
  288.     success - Boolean.
  289.  
  290.    EXAMPLE
  291.  
  292.    NOTES
  293.  
  294.    BUGS
  295.  
  296.    SEE ALSO
  297.  
  298. bbsread.library/BufBROpen                           bbsread.library/BufBROpen
  299.  
  300.    NAME    
  301.     BufBROpen -- Open a BBSRead buffered file for input or output.
  302.  
  303.    SYNOPSIS
  304.     fileid = BufBROpen( name, accessMode )
  305.     D0                   A0       D0
  306.  
  307.     APTR BufBROpen( STRPTR, LONG );
  308.  
  309.    FUNCTION
  310.     The named file is prepared to be used for input or output through the 
  311.     BBSRead buffering system. All files are opened in shared mode. Uses 
  312.     the same mode constants as dos.library/Open().
  313.  
  314.     BBSRead buffered files should *not* be used when you want to read and
  315.     write large blocks.
  316.  
  317.     BBSRead buffered files should *not* be written to by processes not 
  318.     using BufBRWrite().
  319.  
  320.    INPUTS
  321.     name - Name of file to open.
  322.     accessMode - Mode to open file in.
  323.         
  324.  
  325.    RESULT
  326.     fileid - The fileid for the opened file. Returns a NULL pointer if 
  327.         the open failed, and a secondary error code will be available in 
  328.         IoErr().
  329.  
  330.    EXAMPLE
  331.  
  332.    NOTES
  333.     The fileid returned is *not* compatible with the file handler 
  334.     returned by dos.library/Open().
  335.  
  336.    BUGS
  337.  
  338.    SEE ALSO
  339.  
  340. bbsread.library/BufBRRead                           bbsread.library/BufBRRead
  341.  
  342.    NAME    
  343.     BufBRRead -- Read from a BBSRead buffered file.
  344.  
  345.    SYNOPSIS
  346.     actialLength = BufBRRead( fileid, buffer, length )
  347.     D0                          A0      A1      D0
  348.  
  349.     LONG BufBRRead( APTR, APTR, LONG );
  350.  
  351.    FUNCTION
  352.     Read from a file buffered with the bbsread buffer system. 
  353.  
  354.    INPUTS
  355.     fileid - APTR to BBSRead file handler.
  356.     buffer - Pointer to buffer.
  357.     length - Length to read.
  358.  
  359.    RESULT
  360.     actualLength - Actual length read. A value of 0 means EOF, and errors
  361.     are indicated with -1. See IoErr() for error specification.
  362.  
  363.    EXAMPLE
  364.  
  365.    NOTES
  366.  
  367.    BUGS
  368.  
  369.    SEE ALSO
  370.  
  371. bbsread.library/BufBRSeek                           bbsread.library/BufBRSeek
  372.  
  373.    NAME    
  374.     BufBRSeek -- Set the current position for a BBSRead buffered file.
  375.  
  376.    SYNOPSIS
  377.     oldPosition = BufBRSeek( fileid, position, mode )
  378.     D0                        A0      D0      D1
  379.  
  380.     LONG BufBRSeek(APTR, LONG, LONG);
  381.  
  382.    FUNCTION
  383.     Sets the read/write cursor for a BBSRead buffered file. Works like 
  384.     dos.library/Seek().
  385.  
  386.    INPUTS
  387.     fileid - APTR to BBSRead file handler.
  388.     position - Position to seek to.
  389.     mode - Seek mode. (Same as dos.library/Seek().)
  390.  
  391.    RESULT
  392.     oldPosition - Old position in file. Returns -1 on error.
  393.  
  394.    EXAMPLE
  395.  
  396.    NOTES
  397.  
  398.    BUGS
  399.  
  400.    SEE ALSO
  401.     dos.library/Seek()
  402.  
  403. bbsread.library/BufBRWrite                         bbsread.library/BufBRWrite
  404.  
  405.    NAME    
  406.     BufBRWrite -- Write to a BBSRead buffered file.
  407.  
  408.    SYNOPSIS
  409.     actialLength = BufBRWrite( fileid, buffer, length )
  410.     D0                          A0      A1      D0
  411.  
  412.     LONG BufBRWrite( APTR, APTR, LONG );
  413.  
  414.    FUNCTION
  415.     Write to a file buffered with the bbsread buffer system. 
  416.  
  417.    INPUTS
  418.     fileid - APTR to BBSRead file handler.
  419.     buffer - Pointer to buffer.
  420.     length - Length to write.
  421.  
  422.    RESULT
  423.     actualLength - Actual length written. Errors are indicated with -1. 
  424.         See IoErr() for error specification.
  425.  
  426.    EXAMPLE
  427.  
  428.    NOTES
  429.  
  430.    BUGS
  431.  
  432.    SEE ALSO
  433.  
  434. bbsread.library/CharsetConvert                 bbsread.library/CharsetConvert
  435.  
  436.    NAME    
  437.     CharsetConvert -- Converts strings from and to the ISO charset.
  438.  
  439.    SYNOPSIS
  440.     success = CharsetConvert( fromchar, tochar, frombuf, tobuf, len )
  441.     D0                          D1        D2       A0      A1   D3
  442.  
  443.     BOOL CharsetConvert( UBYTE, UBYTE, STRPTR, STRPTR, ULONG );
  444.  
  445.    FUNCTION
  446.     Converts strings of charset fromchar in frombuf to strings of charset
  447.     tochar in tobuf. Available charsets are BRCS_ISO, BRCS_IBN, BRCS_SF7,
  448.     BRCS_NO7, BRCS_DE7.
  449.  
  450.    INPUTS
  451.     fromchar - The charset used in frombuf.
  452.     tochars - The charset to convert to.
  453.     frombuf - The buffer with the string(s) to convert.
  454.     tobuf   - The buffer to put the result of the convertion. The size of
  455.         the buffer must be equal to the size of the frombuf. If this 
  456.         pointer is NULL, the result will be put in frombuf.
  457.     len - Number of bytes to convert. If this parameter is 0L, the 
  458.         0-terminated string in frombuf will be converted.
  459.  
  460.    RESULT
  461.     success - Boolean.
  462.  
  463.    EXAMPLE
  464.  
  465.    NOTES
  466.  
  467.    BUGS
  468.  
  469.    SEE ALSO
  470.  
  471. bbsread.library/ConfCharset                       bbsread.library/ConfCharset
  472.  
  473.    NAME    
  474.     ConfCharset -- Returns which charset the bbs has in this conf.
  475.  
  476.    SYNOPSIS
  477.     charset = ConfCharset( bbs, conf )
  478.     D0                      A0   A1
  479.  
  480.     UBYTE ConfCharset( struct BBSListItem *, struct ConfListItem *);
  481.  
  482.    FUNCTION
  483.     Use this function to obtain which charset the mesages in a conf from
  484.     the BBS is expected to be in. 
  485.  
  486.     The character set expected for a BBS can be obtained by using a NULL
  487.     pointer as the conf parameter.
  488.  
  489.    INPUTS
  490.     bbs - BBS to obtain  charset for.
  491.     conf - Conf to obtain charset for.
  492.  
  493.    RESULT
  494.     charset - Charset expected for this conf.
  495.  
  496.    EXAMPLE
  497.  
  498.    NOTES
  499.  
  500.    BUGS
  501.  
  502.    SEE ALSO
  503.  
  504. bbsread.library/ConfigBBS                           bbsread.library/ConfigBBS
  505.  
  506.    NAME    
  507.     ConfigBBS -- Set up the configuratin for a BBS.
  508.  
  509.    SYNOPSIS
  510.     newbbs = ConfigBBS( bbs, tagitems )
  511.     D0                  A0      A1
  512.  
  513.     struct BBSListItem * ConfigBBS( struct BBSListItem *, 
  514.         struct TagItem * );
  515.  
  516.     newbbs = ConfigBBSTags( bbs, Tag1, ... )
  517.  
  518.     struct BBSListItem * ConfigBBSTags( struct BBSListItem *, ULONG, 
  519.         ... );
  520.  
  521.    FUNCTION
  522.     Changes the setup for a BBS, or adds a new BBS to the database. 
  523.  
  524.    INPUTS
  525.     bbs - Pointer to the BBSListItem for the bbs to change configuration 
  526.         for. If this pointer is a NULL pointer, a new bbs will be 
  527.         created. The contents of bbs->bl_Data will be updated and string 
  528.         pointers may change.
  529.     tagitems - Pointer to TagItem array.
  530.  
  531.     Here are the TagItem.ti_Tag values that are defined for
  532.     ConfigBBS().
  533.  
  534.     BC_DeleteBBS - Markes the BBS pointed by the bbs parameter as deleted
  535.         if (BOOL) ti_Data is TRUE. Your BBSListItem passed as the bbs 
  536.         parameter will be removed from your bbslist. The pointer returned
  537.         is the old bbs pointer, but it will not point to a BBSListItem any
  538.         more.
  539.  
  540.     BC_BBSList - Your BBSList-header is pointed by (struct List *)
  541.         ti_Data. This is the pointer returned from GetBBSList(). When
  542.         adding a new BBS to the database this tag *must* be supplied. 
  543.         It *must* also be supplied when using the BC_Top, BC_Bottom,
  544.         BC_Up, BC_Down, BC_SortBBSList and BC_NewBBSOrder tags. 
  545.  
  546.     BC_BBSName - The new name of the BBS is pointed by (STRPTR) ti_Data.
  547.     BC_GrabName - The new name of the grabfile (without extension) is 
  548.         pointed by (STRPTR) ti_Data. Wildcards are supported. If 
  549.         wildcards are used, must the name match the full file name.
  550.  
  551.     BC_BBSType - The new type of the BBS is pointed by (STRPTR) ti_Data.
  552.         If no BBSType with this name is defined, the funktion will fail.
  553.  
  554.     BC_UserName - The new name the user is registered as is pointed by 
  555.         (STRPTR) ti_Data.
  556.  
  557.     BC_ScriptFlags - Flags for the script is in (LONGBITS) ti_Data. Check
  558.         the BBS type for available flags. Non-available flags passed will
  559.         be ignored.
  560.  
  561.     BC_Signature - Signature to use on this BBS is pointed by (STRPTR)
  562.         ti_Data. This signature should be used in conferences whith no
  563.         signature defined. A NULL-pointer equals no BBS signature, and the
  564.         global signature should be used on this BBS. If the signature is
  565.         in a file, this tag should contain the complete path to the
  566.         signature file, and the BDF_FILE_SIGNATURE flag must be set.
  567.  
  568.     BC_Top - Move the BBS to the top of the list if (BOOL) ti_Data is 
  569.         TRUE. Both your local and the global list will be updated. Be 
  570.         sure to also pass the BC_BBSList tag.
  571.  
  572.     BC_Bottom - Move the BBS to the bottom of the list if (BOOL) ti_Data
  573.         is TRUE. Both your local and the global list will be updated. Be
  574.         sure to also pass the BC_BBSList tag.
  575.  
  576.     BC_Up - Move the BBS one position upwards on the list if (BOOL) 
  577.         ti_Data is TRUE. Both your local and the global list will be
  578.         updated. Be sure to also pass the BC_BBSList tag.
  579.  
  580.     BC_Down - Move the BBS one position downwards on the list if (BOOL)
  581.         ti_Data is TRUE. Both your local and the global list will be
  582.         updated. Be sure to also pass the BC_BBSList tag.
  583.  
  584.     BC_SortBBSList - Sort the BBS-list alphabetically if (BOOL) ti_Data is
  585.         TRUE. Both your local and the global list will be sorted. Be sure
  586.         to also pass the BC_BBSList tag.
  587.  
  588.     BC_KeepMessages - Messages to keep in each conference when it's 
  589.         packed is in (ULONG) ti_Data. 
  590.         BBSData->bd_Flags affecting the use of this value:
  591.         - BDF_IGNORE_KEEPMSG: Messages won't be counted when packing 
  592.             conferences. 
  593.         - BDF_GLOBAL_KEEPMSG: The Global KeepMsg value will be used on 
  594.             this BBS. The BC_KeepMessages value will be stored, but it 
  595.             will be ignored.
  596.  
  597.     BC_KeepTime - How old messages to keep in each conference when it's
  598.         packed is in (ULONG) ti_Data. The time is in seconds. 
  599.         BBSData->bd_Flags affecting the use of this value:
  600.         - BDF_IGNORE_KEEPTIME: Time won't be checked when packing 
  601.             conferences.
  602.         - BDF_GLOBAL_KEEPTIME: The Global KeepTime value will be used on
  603.             this BBS. The BC_KeepTime value will be stored, but it
  604.             will be ignored.
  605.  
  606.     BC_SetBBSFlags   - BBS flags to set is in (LONGBITS) ti_Data. See 
  607.         <libraries/bbsread.h> for documentation on each flag.
  608.     BC_ClearBBSFlags - BBS flags to clear is in (LONGBITS) ti_Data.
  609.  
  610.     BC_EMailAddr - The address the user is registered with is pointed by
  611.         (STRTPR) ti_Data. This is used to check if a message is to the 
  612.         user. This address will be ignored if the BBSType for this has
  613.         the TDF_NO_ADDR_CHECK flag set.
  614.  
  615.     BC_XpkMethod - BBS Xpk method to use is pointed by (STRPTR) ti_Data.
  616.         If BC_XpkMethod is set to NULL, the global Xpk method will be
  617.         used for this bbs. BBSData->bd_Flags affecting the use of this 
  618.         value:
  619.         - BDF_NO_XPK_METHOD: Don't use Xpk on this bbs.
  620.     
  621.     BC_CharSet - The expected charset for the grabs from this bbs is in 
  622.         (UBYTE) ti_Data. Setting BC_CharSet to BRCS_ANY will use the 
  623.         default charset for the BBSType to this bbs. Default charset when
  624.         adding a new bbs is BRCS_ANY.
  625.  
  626.     BC_LineLength - Max linelength of messages for this bbs is (UWORD) 
  627.         ti_Data. Overrides the setting in the BBSType for this bbs if
  628.         BC_LineLength is non 0.
  629.  
  630.     BC_UserStreet - User street address is pointed by (STRPTR) ti_Data.
  631.         Overrides settings in global configuration if non-NULL.
  632.  
  633.     BC_UserAddress - User address is is pointed by (STRPTR) ti_Data.
  634.         Overrides settings in global configuration if non-NULL.
  635.  
  636.     BC_UserCountry - User country is is pointed by (STRPTR) ti_Data.
  637.         Overrides settings in global configuration if non-NULL.
  638.  
  639.     BC_UserPhone - User phone number is pointed by (STRPTR) ti_Data.
  640.         Overrides settings in global configuration if non-NULL.
  641.  
  642.     BC_Alias - Alias used on this BBS is pointed by (STRPTR) ti_Data.
  643.         If the alias is set and a conference on this bbs is defined as
  644.         CDF_ALIAS, the aliaswill be used to determine if messages are 
  645.         to/from the user in the particular conference. 
  646.  
  647.     BC_DnloadPath - Download path for this BBS is pointed by (STRPTR) 
  648.         ti_Data. Overrides settings in global configuration if non-NULL.
  649.  
  650.     BC_TagFile - Path and name of tagfile to use for this bbs is pointed 
  651.         by (STRPTR) ti_Data. Overrides settings in global configuration 
  652.         if non-NULL.
  653.  
  654.     BC_EventArchiver - Archiver to use when packing the events from this 
  655.         bbs is pointed by (STRPTR) ti_Data. Overrides settings in BBSType 
  656.         if non-NULL.
  657.  
  658.     BC_ReplyPacket - Filename of replypacket is pointed by (STRPTR) 
  659.         ti_Data. The filename is expected to be relative to the defined 
  660.         upload directory for this bbs.
  661.  
  662.     BC_UploadPath - Upload path for this BBS is pointed by (STRPTR) 
  663.         ti_Data. Overrides settings in global configuration if non-NULL.
  664.  
  665.     BC_NewBBSOrder - Rearrange the order of the bbses according to the 
  666.         list given in the BC_BBSList tag if (BOOL) ti_Data is TRUE.
  667.  
  668.     BC_QuoteType - Prefered quote type for this bbs is in (UBYTE) 
  669.         ti_Data. Overrides settings in bbstype if not QT_USE_SUPER.
  670.         See <libraries/BBSRead.h> for definitions of quote types.
  671.  
  672.     BC_QuoteChars - String to use as quote chars in custom quote type is
  673.         in (STRPTR) ti_Data. Max length of the string is 3. Overrides 
  674.         globaly defined quote chars if NULL or 0 length.
  675.  
  676.     BC_ReplyString - Reply string to use when a message is replied _and_ 
  677.         moved is in (STRPTR) ti_Data. Overrides globaly defined reply 
  678.         string if non NULL.
  679.  
  680.     BC_BBSEnterScript - Name of Arexx script to be run each time this bbs
  681.         is entered is pointed by (STRPTR) ti_Data. Overrides globaly 
  682.         defined enter script if non NULL.
  683.  
  684.     BC_BBSLeaveScript - Name of Arexx script to be run each time this bbs
  685.         is left is pointed by (STRPTR) ti_Data. Overrides globaly 
  686.         defined leave script if non NULL.
  687.  
  688.     BC_ConfEnterScript - Name of Arexx script to be run each time a 
  689.         conference on this bbs is entered is pointed by (STRPTR) ti_Data.
  690.         Overrides globaly defined enter script if non NULL.
  691.  
  692.     BC_ConfLeaveScript - Name of Arexx script to be run each time a 
  693.         conference on this bbs is left is pointed by (STRPTR) ti_Data.
  694.         Overrides globaly defined leave script if non NULL.
  695.  
  696.    RESULT
  697.     newbbs - When changing an existing bbs, this is the same as the bbs 
  698.         parameter. When adding a new bbs, this points to a BBSListItem
  699.         for the new BBS. On failure, a NULL pointer is returned.
  700.  
  701.    EXAMPLE
  702.  
  703.    NOTES
  704.     When adding a BBS, the BBSListItem for this BBS will automatically be
  705.     inserted in the list supplied with the BC_BBSList tag. Therefore, be
  706.     sure the list is not attached to a ListView or simular when calling
  707.     this function. The same applies when deleting BBS'es and when 
  708.     rearranging the bbslist.
  709.  
  710.     You *must* supply BC_BBSName and BC_BBSType when adding a new BBS to
  711.     the database.
  712.  
  713.     As of V4 is BC_GrabName no longer needed when adding a BBS.
  714.  
  715.     When adding new BBS'es will BC_Top, BC_Bottom, BC_Up, BC_Down,  
  716.     BC_SortBBSList and BC_NewBBSOrder be ignored.
  717.  
  718.     These flags are automatically set when adding a new bbs: 
  719.     BDF_GLOBAL_KEEPMSG | BDF_GLOBAL_KEEPTIME | BDF_IGNORE_KEEPMSG 
  720.     | BDF_IGNORE_KEEPTIME.
  721.  
  722.    BUGS
  723.  
  724.    SEE ALSO
  725.     GetBBSList()
  726.  
  727. bbsread.library/ConfigConf                         bbsread.library/ConfigConf
  728.  
  729.    NAME    
  730.     ConfigConf -- Set up the configuration for a conference.
  731.  
  732.    SYNOPSIS
  733.     newconf = ConfigConf( conf, tagitems )
  734.   D0                     A0      A1
  735.  
  736.     struct ConfListItem * ConfigConf( struct ConfListItem *, 
  737.         struct TagItem * );
  738.  
  739.     newconf = ConfigConfTags( conf, Tag1, ... )
  740.  
  741.     struct ConfListItem * ConfigConfTags( struct ConfListItem *, ULONG, 
  742.         ... );
  743.  
  744.    FUNCTION
  745.     Changes the setup for a conference, or adds a new conference to a 
  746.     bbs. Only conferences where messages are expected should be added. 
  747.     Use WritePassiveConfList() for complete conference lists.
  748.  
  749.    INPUTS
  750.     conf - Pointer to the ConfListItem for the conference to change 
  751.         configuration for. If this pointer is a NULL pointer, a new 
  752.         conference will be added to the bbs. The contents of 
  753.         conf->cl_Data will be updated and string pointers may change.
  754.     tagitems - Pointer to TagItem array.
  755.  
  756.     Here are the TagItem.ti_Tag values that are defined for
  757.     ConfigConf().
  758.  
  759.     CC_DeleteConf - Markes the Conf pointed by the conf parameter as
  760.         deleted if (BOOL) ti_Data is TRUE. Your ConfListItem passed as 
  761.         the conf parameter will be removed from your conflist. The 
  762.         pointer returned is the old conf pointer, but it will not point
  763.         to a ConfListItem any more.
  764.  
  765.     CC_ConfList - Your ConfList-header is pointed by (struct List *)
  766.         ti_Data. This is the pointer returned from GetConfList(). When
  767.         adding a new conference to a bbs, this tag *must* be supplied.
  768.         It *must* also be supplied when using the CC_Top, CC_Bottom,
  769.         CC_Up, CC_Down, CC_SortConfList and CC_NewConfOrder tags.
  770.  
  771.     CC_AddToBBS - The BBSListItem to add a conference to is pointed
  772.         by (struct BBSListItem *) ti_Data. *Must* be used when adding
  773.         a conference, and is ignored when changing the setup on a 
  774.         existing conference.
  775.  
  776.     CC_ConfName - The new name of the conference is pointed by 
  777.         (STRPTR) ti_Data. This tag must be supplied when adding a 
  778.         conference.
  779.  
  780.     CC_SetConfFlags   - Conference flags to set is in (LONGBITS) ti_Data.
  781.     CC_ClearConfFlags - Conference flags to clear is in 
  782.         (LONGBITS) ti_Data.
  783.  
  784.     CC_Signature - Signature to use in this conference is pointed by 
  785.         (STRPTR) ti_Data. A NULL-pointer equals no conference signature. 
  786.         The BBS signature should be used instead. If the signature is in 
  787.         a file, this tag should contain the complete path to the 
  788.         signature file, and the CDF_FILE_SIGNATURE flag must be set.
  789.  
  790.     CC_KeepMessages - Messages to keep in this conference when it's 
  791.         packed is in (ULONG) ti_Data. 
  792.         ConfData->cd_Flags affecting the use of this value:
  793.         - CDF_IGNORE_KEEPMSG: Messages won't be counted when packing 
  794.             this conference. 
  795.         - CDF_BBS_KEEPMSG: The BBS KeepMsg value will be used in when 
  796.             packing this conference. The CC_KeepMessages value will be 
  797.             stored, but it will be ignored.
  798.  
  799.     CC_KeepTime - How old messages to keep in this conference when it's
  800.         packed is in (ULONG) ti_Data. The time is in seconds. 
  801.         ConfData->cd_Flags affecting the use of this value:
  802.         - CDF_IGNORE_KEEPTIME: Time won't be checked when packing 
  803.             this conference.
  804.         - CDF_BBS_KEEPTIME: The BBS KeepTime value will be used when
  805.             packing this conference. The CC_KeepTime value will be stored,
  806.             but it will be ignored.
  807.  
  808.     CC_Top - Move the conference to the top of the list if (BOOL) ti_Data
  809.         is TRUE. Both your local and the global list will be updated. Be 
  810.         sure to also pass the CC_ConfList tag.
  811.  
  812.     CC_Bottom - Move the conference to the bottom of the list if (BOOL) 
  813.         ti_Data is TRUE. Both your local and the global list will be 
  814.         updated. Be sure to also pass the CC_ConfList tag.
  815.  
  816.     CC_Up - Move the conference one position upwards on the list if 
  817.         (BOOL) ti_Data is TRUE. Both your local and the global list will
  818.          be updated. Be sure to also pass the CC_ConfList tag. 
  819.  
  820.     CC_Down - Move the conference one position downwards on the list if 
  821.         (BOOL) ti_Data is TRUE. Both your local and the global list will
  822.         be updated. Be sure to also pass the CC_ConfList tag. 
  823.  
  824.     CC_Alias - Alias to use in this conference is pointed by (STRPTR) 
  825.         ti_Data. If the alias is set and the conference is defined as 
  826.         CDF_ALIAS, it will be used to determine if messages are to/from 
  827.         the user in this particular conference. Overrides settings in 
  828.         BBSData if non-NULL.
  829.  
  830.     CC_BBSConfNr - The internal number this conference has on the BBS is
  831.         in (LONG) ti_Data. This value is meant to ease the parsing and 
  832.         packing when numbers must be used for the conferences.
  833.  
  834.     CC_SortConfList - Sort the Conf-list alphabetically if (BOOL) ti_Data
  835.         is TRUE. Both your local and the global list will be sorted. Be 
  836.         sure to also pass the CC_ConfList tag. You must also pass a 
  837.         valid conf parameter to use this tag.
  838.  
  839.     CC_XpkMethod - Conf Xpk method to use is pointed by (STRPTR) ti_Data.
  840.         If CC_XpkMethod is set to NULL will the bbs Xpk method be used 
  841.         for this conf. ConfData->cd_Flags affecting the use of this value:
  842.         - CDF_NO_XPK_METHOD: Don't use Xpk on this conf.
  843.     
  844.     CC_CharSet - The expected charset for the grabs from this conf is in
  845.         (UBYTE) ti_Data. Setting CC_CharSet to BRCS_ANY will use the 
  846.         default charset for this bbs. Default charset when adding a 
  847.         newconf is BRCS_ANY.
  848.  
  849.     CC_LineLength - Max linelength of messages for this conf is (UWORD)
  850.         ti_Data. Overrides the setting for this bbs if CC_LineLength is
  851.         non 0.
  852.  
  853.     CC_TagFile - Path and name of tagfile to use for this conf is pointed
  854.         by (STRPTR) ti_Data. Overrides settings on bbs if non-NULL.
  855.  
  856.     CC_EmailAddr - The email address the user has in this conference is
  857.         pointed by (STRTPR) ti_Data. This is used to check if a message 
  858.         is to the user. Overrides setting in BBSData. This address will 
  859.         be ignored if the BBSType for this has the TDF_NO_ADDR_CHECK flag
  860.         set. This tag is for use on bbses where the user is member of 
  861.         more than one net.
  862.  
  863.     CC_NewConfOrder - Rearrange the order of the conferences according to
  864.         the list given in the CC_ConfList tag if (BOOL) ti_Data is TRUE.
  865.  
  866.     CC_QuoteType - Prefered quote type for this conference is in (UBYTE)
  867.         ti_Data. Overrides settings on the bbs if not QT_USE_SUPER.
  868.         See <libraries/BBSRead.h> for definitions of quote types.
  869.  
  870.     CC_QuoteChars - String to use as quote chars in custom quote type is
  871.         in (STRPTR) ti_Data. Max length of the string is 3. Overrides 
  872.         quote chars for bbs if NULL or 0 length.
  873.  
  874.     CC_ReplyString - Reply string to use when a message is replied _and_ 
  875.         moved is in (STRPTR) ti_Data. Overrides reply string defined for 
  876.         the bbs if non NULL.
  877.  
  878.     CC_ConfEnterScript - Name of Arexx script to be run each time this
  879.         conference is entered is pointed by (STRPTR) ti_Data. Overrides 
  880.        enter script defined for the bbs if non NULL.
  881.  
  882.     CC_ConfLeaveScript - Name of Arexx script to be run each time this
  883.         conference is left is pointed by (STRPTR) ti_Data. Overrides 
  884.         leave script defined for the bbs if non NULL.
  885.  
  886.     CC_ConfNetType - Which type of network this conference is connected to
  887.         is in (UBYTE) ti_Data. This tag is to be used on BBS'es of BBS
  888.         types which supports several network types. The default value is
  889.         CDNT_NONET. See <libraries/BBSRead.h> for definitions. New
  890.         definitions are added on request. No need to use this tag if the
  891.         bbs type only supports one network.
  892.  
  893.     CC_HighMark - The high mark for this conference on the remote server/..
  894.        is in (ULONG) ti_Data. This can be used by the parser to keep
  895.        uptodate what the last article collected was.
  896.  
  897.    RESULT
  898.     newconf - When changing an existing conference, this is the same as
  899.         conf parameter. When adding a new conference this points to a 
  900.         ConfListItem for this conference. On failure a NULL pointer 
  901.         is returned.
  902.  
  903.    EXAMPLE
  904.  
  905.    NOTES
  906.     When adding a conference, the ConfListItem for this conference will
  907.     automaticaly be inserted in the list supplied with the CC_ConfList 
  908.     tag. Therefore, be sure the list is not attached to a ListView or 
  909.     simular when calling this function. The same applies when deleting
  910.     conferences and when rearranging the conference list.
  911.  
  912.     When adding new conferences will CC_Top, CC_Bottom, CC_Up, CC_Down,
  913.     CC_SortConfList and CC_NewConfOrder be ignored.
  914.  
  915.     These flags are automatically set when adding a new conference: 
  916.     CDF_BBS_KEEPMSG | CDF_BBS_KEEPTIME | CDF_IGNORE_KEEPMSG 
  917.     | CDF_IGNORE_KEEPTIME.
  918.  
  919.    BUGS
  920.  
  921.    SEE ALSO
  922.     GetConfList()
  923.  
  924. bbsread.library/ConfigFArea                       bbsread.library/ConfigFArea
  925.  
  926.    NAME    
  927.     ConfigFArea -- Set up the configuration for a file area.
  928.  
  929.    SYNOPSIS
  930.     newfarea = ConfigFArea( farea, tagitems )
  931.     D0                        A0       A1
  932.     
  933.     struct FAreaListItem * ConfigFArea( struct FAreaListItem *, 
  934.         struct TagItem *);
  935.  
  936.     newfarea = ConfigFAreaTags(farea, Tag1, ... )
  937.  
  938.     struct FAreaListItem * ConfigFAreaTags( struct FAreaListItem *, 
  939.         ULONG, ... );
  940.     
  941.    FUNCTION
  942.     Changes the setup for a file area, or adds a new file area to the 
  943.     database.
  944.  
  945.    INPUTS
  946.     farea - Pointer to FAreaListItem for the file area to change 
  947.         configuration for. If this pointer is a NULL pointer, a new file
  948.         area will be created.
  949.     tagitems - Pointer to TagItem array.
  950.  
  951.     Here are the TagItem.ti_Tag values that are defined for
  952.     ConfigFArea().
  953.  
  954.     CFA_DeleteFArea - Markes the file area pointed by the farea parameter
  955.         as deleted if (BOOL) ti_Data is TRUE. Your FAreaListItem passed 
  956.         as the farea parameter will be removed from your farealist. The 
  957.         pointer returned is the old fareapointer, but it will not point 
  958.         to a FAreaListItem any more.
  959.  
  960.     CFA_FAreaList - Your FAreaList-header is pointed by (struct List *)
  961.         ti_Data. This is the pointer returned from GetFAreaList(). When
  962.         adding a new file area to the database, this tag *must* be
  963.         supplied. It *must* also be supplied when using the CFA_Top,
  964.         FCA_Bottom, CFA_Up, CFA_Down and CFA_SortFAreaList tags.
  965.  
  966.     CFA_AddToBBS - The BBSListItem to add a file area to is pointed
  967.         by (struct BBSListItem *) ti_Data. *Must* be used when adding
  968.         a file area, and is ignored when changing the setup on a 
  969.         existing file area.
  970.  
  971.     CFA_Name - The new name of the file area is pointed by (STRPTR) 
  972.         ti_Data.
  973.  
  974.     CFA_Top - Move the file area to the top of the list if (BOOL) ti_Data
  975.         is TRUE. Both your local and the global list will be updated. Be
  976.         sure to also pass the CFA_FAreaList tag.
  977.  
  978.     CFA_Bottom - Move the file area to the bottom of the list if (BOOL)
  979.         ti_Data is TRUE. Both your local and the global list will be
  980.         updated. Be sure to also pass the CFA_FAreaList tag.
  981.  
  982.     CFA_Up - Move the file area one position upwards on the list if (BOOL)
  983.         ti_Data is TRUE. Both your local and the global list will be 
  984.         updated. Be sure to also pass the CFA_FAreaList tag.
  985.  
  986.     CFA_Down - Move the file area one position downwards on the list if 
  987.         (BOOL) ti_Data is TRUE. Both your local and the global list will 
  988.         be updated. Be sure to also pass the CFA_FAreaList tag.
  989.  
  990.     CFA_SortFAreaList - Sort the file area list alphabeticaly if (BOOL) 
  991.         ti_Data is TRUE. Both your local and the global list will be 
  992.         sorted. Be sure to also pass the CFA_FAreaList tag.
  993.  
  994.    RESULT
  995.     newfarea - When changing an existing file area, this is the same as
  996.         the farea parameter. When adding a new file area, this points to a
  997.         FAreaListItem for this new file area. On failure, a NULL pointer
  998.         is returned.
  999.  
  1000.    EXAMPLE
  1001.  
  1002.    NOTES
  1003.     When adding a file area, the FAreaListItem for this file area will 
  1004.     automaticaly be inserted in the list supplied with the CFA_FAreaList
  1005.     tag. Therefore be sure the list is not attached to a ListView or 
  1006.     simular when calling this function. The same applies when deleting
  1007.     file areas and when rearranging the bbslist.
  1008.  
  1009.     You *must* supply CFA_Name when adding a new file area.
  1010.  
  1011.     When adding new areas will CFA_Top, FCA_Bottom, CFA_Up, CFA_Down and 
  1012.     CFA_SortFAreaList be ignored.
  1013.  
  1014.    BUGS
  1015.  
  1016.    SEE ALSO
  1017.  
  1018. bbsread.library/ConfigGlobal                     bbsread.library/ConfigGlobal
  1019.  
  1020.    NAME    
  1021.     ConfigGlobal -- Global configuration for the library.
  1022.  
  1023.    SYNOPSIS
  1024.     success = ConfigGlobal( globals, tagitems )
  1025.     D0                        A0        A1
  1026.     
  1027.     BOOL ConfigGlobal( struct GlobalConfig *, struct TagItem * );
  1028.  
  1029.     success = ConfigGlobalTags( globals, Tag1, ...)
  1030.     
  1031.     BOOL ConfigGlobalTags( struct GlobalConfig *, ULONG, ... );
  1032.  
  1033.    FUNCTION
  1034.     This function sets up the global configuration for the library. Your 
  1035.     copy of the clobal configuration will also be updated. Supports 
  1036.     BRCFG_Use and BRCFG_LastSaved tags.
  1037.  
  1038.    INPUTS
  1039.     globals - Pointer to global data got from GetGlobalConfig(). The 
  1040.         contents of globals will be updated and string pointers may 
  1041.         change.
  1042.     tagitems - Pointer to TagItem array.
  1043.  
  1044.     Here are the TagItem.ti_Tag values that are defined for
  1045.     ConfigGlobal().
  1046.  
  1047.     CG_DnloadPath - Path to where downloaded files reside is pointed 
  1048.         by (STRPTR) ti_Data.
  1049.  
  1050.     CG_UploadPath - Path to where files to be uploaded reside is pointed
  1051.         by (STRPTR) ti_Data.
  1052.     
  1053.     CG_Buffers - Number of buffers to use in buffer system in 
  1054.         (ULONG) ti_Data. 13 buffers is the default in the current version..
  1055.  
  1056.     CG_BufferSize - Size of each buffer the buffer system should use in
  1057.         (ULONG) ti_Data. 5096 bytes is the default in the currect version.
  1058.  
  1059.     CG_ConfigArchiver - Configure archiver. Name of archiver is in 
  1060.         (STRPTR) ti_Data.
  1061.  
  1062.     CG_ArcPattern - MatchPattern to recognize archives of 
  1063.         CG_ConfigArchiver type is in (STRPTR) ti_Data. If the ArcPattern
  1064.         begins with '$', the rest of the string will be matched with the
  1065.         contents of the archive instead of the filename. 
  1066.         i.e. $????2d6c68 finds LhA-archives.
  1067.     
  1068.     CG_UnArcCmd - Command to depack an archive of CG_ConfigArchiver type
  1069.         is in (STRPTR) ti_Data. If the unpack program isn't in c:, the 
  1070.         full path must be given. The file to be unpacked will be appended
  1071.         to the command given here..
  1072.  
  1073.     CG_ArcCmd - Command to pack an archive of CG_ConfigArchiver type is in 
  1074.         (STRPTR) ti_Data. The command is expected to use the standard 
  1075.         archiver organization of the arguments. If the archive program 
  1076.         isn't in c:, the full path must be given.
  1077.  
  1078.     CG_DeleteArchiver - Delete archiver which name is in (STRPTR) ti_Data.
  1079.         The deletion will fail if one bbstype uses this archiver as an 
  1080.         eventarchiver.
  1081.  
  1082.     CG_Signature - Global signature is in (STRPTR) ti_Data. This signature
  1083.         should be used on BBS'es where no signatures is defined. Can be a 
  1084.         NULL-pointer. If the signature is in a file, this tag should
  1085.         contain the complete path to the signature file, and the 
  1086.         GCF_FILE_SIGNATURE flag must be set.
  1087.  
  1088.     CG_KeepMessages - Messages to keep in each conference when they are
  1089.         packed is in (ULONG) ti_Data. 
  1090.         GlobalConfig->gc_Flags affecting the use of this value:
  1091.         - GCF_IGNORE_KEEPMSG: Messages won't be counted when packing 
  1092.             conferences. 
  1093.  
  1094.     CG_KeepTime - How old messages to keep in each conference when they 
  1095.         are packed is in (ULONG) ti_Data. The time is in seconds. 
  1096.         GlobalConfig->gc_Flags affecting the use of this value:
  1097.         - GCF_IGNORE_KEEPTIME: Time won't be checked when packing 
  1098.             conferences.
  1099.  
  1100.     CG_SetGlobalFlags   - Global flags to set is in (LONGBITS) ti_Data.
  1101.     CG_ClearGlobalFlags - Global flags to clear is in (LONGBITS) ti_Data.
  1102.  
  1103.     CG_XpkMethod - Global Xpk method to use is pointed by (STRPTR) 
  1104.         ti_Data. GlobalConfig->gc_Flags affecting the use of this value:
  1105.         - GCF_NO_XPK_METHOD: Don't use Xpk globaly.
  1106.  
  1107.     CG_UserPhone - Phone number for user is pointed by (STRPTR) ti_Data.
  1108.     CG_TmpDir - Name of temporary directory to use when packing data is 
  1109.         pointed by (STRPTR) ti_Data.
  1110.  
  1111.     CG_TagFile - Path and name of tagfile to use globaly is pointed by 
  1112.         (STRPTR) ti_Data.
  1113.  
  1114.     CG_BufCopyBack - Sets file buffer system to copyback mode if (BOOL) 
  1115.         ti_Data is TRUE. In copyback mode, changed buffers will only 
  1116.         be written back to to file when they are flushed from memory. 
  1117.         Each call to ConfigGlobal() with the CG_BufCopyBack tag *must* 
  1118.         be coupled with a call to ConfigGlobal() with the 
  1119.         CG_BufEndCopyBack tag. The copyback mode should be used while 
  1120.         adding large amount of data to the library. (Eg. parsing a 
  1121.         grabfile and adding the messages to the database) The use of the
  1122.         CG_BufCopyBack/G_BufEndCopyBack tags can be nested.
  1123.  
  1124.     CG_BufEndCopyBack - Turns off copyback mode for file buffer system if
  1125.         (BOOL) ti_Data is TRUE.
  1126.  
  1127.     CG_HitRate - Buffer hitrate is returned in *((ULONG *) ti_Data). The
  1128.         hitrate is in percent.
  1129.     
  1130.     CG_ReadHitRate - Buffer read hitrate is returned in *((ULONG *) 
  1131.         ti_Data). The hitrate is in percent.
  1132.  
  1133.     CG_WriteHitRate - Buffer write hitrate is returned in *((ULONG *)
  1134.         ti_Data). The hitrate is in percent.
  1135.  
  1136.     CG_ClearHitRate - Clear internal hitrate statistics if (BOOL)
  1137.         ti_Data is TRUE
  1138.  
  1139.     CG_HazeLevel1 - Keep messages marked with haze level 1 at least 
  1140.         (ULONG) ti_Data seconds.
  1141.  
  1142.     CG_HazeLevel2 - Keep messages marked with haze level 2 at least 
  1143.         (ULONG) ti_Data seconds.
  1144.  
  1145.     CG_HazeLevel2 - Keep messages marked with haze level 3 at least 
  1146.         (ULONG) ti_Data seconds.
  1147.  
  1148.     CG_PGPCommand - Command for pgp (with path) is pointed by (STRPTR)
  1149.         ti_Data.
  1150.  
  1151.     CG_PGPSignID - Id to use when PGP signing messages is pointed by
  1152.         (STRPTR) ti_Data. If NULL should '*' be used as sign id.
  1153.  
  1154.     CG_QuoteChars - String to use as quote chars in custom quote type is
  1155.         in (STRPTR) ti_Data. Max length of the string is 3.
  1156.  
  1157.     CG_ReplyString - Reply string to use when a message is replied _and_ 
  1158.         moved is in (STRPTR) ti_Data.
  1159.  
  1160.     CG_StartupScript - Name of Arexx script to be run each time Thor is 
  1161.         started is pointed by (STRPTR) ti_Data.
  1162.  
  1163.     CG_QuitScript - Name of Arexx script to be run each time Thor is 
  1164.         quited is pointed by (STRPTR) ti_Data.
  1165.  
  1166.     CG_BBSEnterScript - Name of Arexx script to be run each time a bbs
  1167.         is entered is pointed by (STRPTR) ti_Data.
  1168.  
  1169.     CG_BBSLeaveScript - Name of Arexx script to be run each time a bbs
  1170.         is left is pointed by (STRPTR) ti_Data. 
  1171.  
  1172.     CG_ConfEnterScript - Name of Arexx script to be run each time a 
  1173.         conference is entered is pointed by (STRPTR) ti_Data.
  1174.  
  1175.     CG_ConfLeaveScript - Name of Arexx script to be run each time a 
  1176.         conference is left is pointed by (STRPTR) ti_Data.
  1177.  
  1178.     CG_BufFreeAllocated - Free most memory allocated for buffers if 
  1179.         (BOOL) ti_Data is TRUE. The memory will be reallocated when 
  1180.         needed.
  1181.  
  1182.    RESULT
  1183.     success - Boolean.
  1184.  
  1185.    EXAMPLE
  1186.  
  1187.    NOTES
  1188.     
  1189.  
  1190.    BUGS
  1191.  
  1192.    SEE ALSO
  1193.  
  1194. bbsread.library/ConfigType                         bbsread.library/ConfigType
  1195.  
  1196.    NAME    
  1197.     ConfigType -- Set up the configuratin for a BBS type.
  1198.  
  1199.    SYNOPSIS
  1200.     newtype = ConfigType( type, tagitems )
  1201.     D0                     A0      A1
  1202.  
  1203.     struct TypeListItem * ConfigType( struct TypeListItem *, 
  1204.         struct TagItem * );
  1205.  
  1206.     newtype = ConfigTypeTags( type, Tag1, ... )
  1207.  
  1208.     struct TypeListItem * ConfigTypeTags( struct TypeListItem *, 
  1209.         ULONG, ... );
  1210.  
  1211.    FUNCTION
  1212.     Changes the definitions for a BBS type, or adds a new BBS type to the
  1213.     database. 
  1214.  
  1215.    INPUTS
  1216.     type - Pointer to the TypeListItem for the BBS type to change 
  1217.         configuration for. If this pointer is a NULL pointer, a new type 
  1218.         will be created. The contents of type->tl_Data will be updated 
  1219.         and string pointers may change.
  1220.     tagitems - Pointer to TagItem array.
  1221.  
  1222.     Here are the TagItem.ti_Tag values that are defined for
  1223.     ConfigType().
  1224.  
  1225.     CT_DeleteType - Markes the BBS type pointed by the type parameter as
  1226.         deleted if (BOOL) ti_Data is TRUE. The deletion of the type will
  1227.         fail if it is used by any BBS'es.
  1228.  
  1229.     CT_TypeList - Your TypeList-header is pointed by (struct List *)
  1230.         ti_Data. This is the pointer returned from GetTypeList(). When
  1231.         adding a new BBS type to the database, this tag *must* be 
  1232.         supplied. When changing the setup on exixting BBS types this tag
  1233.         is ignored.
  1234.  
  1235.     CT_TypeName - The new name of the BBS type is pointed by (STRPTR) 
  1236.         ti_Data.
  1237.  
  1238.     CT_LineLength - Max length of lines in messages in (UWORD) ti_Data.
  1239.     CT_SubjectLength - Max length of subjects in (UWORD) ti_Data.
  1240.     CT_FileDescrLen -  Max length of short filedescription in (UWORD) 
  1241.         ti_Data.
  1242.  
  1243.     CT_ConfigEvent - Set up an event this bbs type support. The event 
  1244.         identifier is in (ULONG) ti_Data. More than one event can be 
  1245.         set up in each call.
  1246.  
  1247.     CT_EventNeedTags - Set up what tags the event in the last 
  1248.         CT_ConfigEvent needs. The tags needed is in a TAG_END-terminated
  1249.         array pointed by (ULONG *) ti_Data.
  1250.  
  1251.     CT_EventOptTags - Set up what tags that are optional for the event
  1252.         in the last CT_ConfigEvent. The optional tags is in a TAG_END-
  1253.         terminated array pointed bt (ULONG *) ti_Data.
  1254.  
  1255.     CT_DeleteEvent - Delete event with (ULONG) ti_Data identifier from
  1256.         list of supported events.
  1257.  
  1258.     CT_CharSet - The default charset the grab from this BBS type uses is
  1259.         in (UBYTE) ti_Data. Default charset when adding a new BBS type is
  1260.         BRCS_ISO. See <libraries/BBSRead.h> for available charsets.
  1261.  
  1262.     CT_MsgParser - Command to parse the grabs from a BBS of this type is 
  1263.         in (STRPTR) ti_Data. The command must take the following 
  1264.         parameters: BBSNAME - name of bbs. GRAB - name of grab, including
  1265.         path. ARCHIVE - Switch, the grab is an archive. DELETE - Switch, 
  1266.         delete the grab afterwards if the adding is successful. PUBSCREEN 
  1267.         - Name of public screen to open any progress windows on. These
  1268.         parameters must be there even if it is not used by the parser.
  1269.         See <ParseMsg/ParseMsg.c> for more info.
  1270.  
  1271.     CT_AvailScrFlags - Mask for available scriptflags in (LONGBITS) 
  1272.         ti_Data.
  1273.  
  1274.     CT_FileNameLen - Max length of filenames allowed on this BBS type is
  1275.         in (UWORD) ti_Data. All characters in the filename are counted.
  1276.     
  1277.     CT_EventPacker - Command to pack events in a package to send to the 
  1278.         BBS is in (STRPTR) ti_Data. A NULL-pointer equals no packing of
  1279.         events on this BBS type. The execution of this command should be
  1280.         done on user request by the program which makes the events. The
  1281.         command should take the following parameters: BBSNAME - name of 
  1282.         bbs. No more parameters defined so far. PUBSCREEN - Name of 
  1283.         public screen to open evt. progress windows on. This parameter 
  1284.         must be there even if it is not used by the packer.
  1285.  
  1286.     CT_EventArchiver - Prefered archiver to use on event package is in 
  1287.         (STRPTR) ti_Data. A NULL-pointer equals no archiving of the 
  1288.         eventpackage. The archiver *must* have been configured in 
  1289.         global configuration.
  1290.  
  1291.     CT_SetTypeFlags   - BBSType flags to set is in (LONGBITS) ti_Data.
  1292.     CT_ClearTypeFlags - BBSType flags to clear is in (LONGBITS) ti_Data.
  1293.     CT_AcceptPattern - Pattern to use when accepting grabs for this 
  1294.         bbstype is pointed by (STRPTR) ti_Data. A NULL pointer equals 
  1295.         to a pattern of #?.
  1296.  
  1297.     CT_InitMsgFile - Command to initialize a message files is in (STRPTR)
  1298.         ti_Data. A NULL-pointer equals to no initializing other than just
  1299.         creating the file. This command is used by UniqueMsgFile(). The 
  1300.         command must exept the following parameters:
  1301.           BBSNAME/A  - Name of bbs the message is for.
  1302.           FILENAME/A - Name of file to initialized. (The file is already
  1303.                        created.)
  1304.           EVENT/N/A  - What event type it should be used in.
  1305.           USETAG/N/A - What message tag it should be used for.
  1306.  
  1307.     CT_ExtConfig - Command to do external configuration for a bbs is in
  1308.         (STRPTR) ti_Data. A NULL-pointer equals to no external 
  1309.         configuration. The command must exept the following parameters:
  1310.           BBSNAME/A - Name of bbs to configure.
  1311.           CONFNAME  - Name of current conference.
  1312.           PUBSCREEN - Name of public screen to use for windows.
  1313.  
  1314.     CT_QuoteType - Prefered quote type for this bbs type is in (UBYTE)
  1315.         ti_Data. See <libraries/BBSRead.h> for definitions of quote types.
  1316.  
  1317.    RESULT
  1318.     newtype - When changing an existing BBS type, this is the same as the
  1319.         type parameter. When adding a new BBS type this points to a 
  1320.         TypeListItem for this new BBS type. On failure a NULL pointer is
  1321.         returned.
  1322.  
  1323.    EXAMPLE
  1324.  
  1325.    NOTES
  1326.     When adding a BBS type, the TypeListItem for this BBS type will 
  1327.     automatically be inserted in the list supplied with the CT_TypeList 
  1328.     tag. Therefore, be sure the list is not attached to a ListView or 
  1329.     simular when calling this function. The same applies when deleting 
  1330.     BBS types.
  1331.  
  1332.     You must supply the following tags when adding a new BBS type to the 
  1333.     database: CT_TypeList, CT_TypeName, CT_LineLength, CT_SubjectLength,
  1334.     CT_MsgParser.
  1335.  
  1336.     As of V4, CT_MsgParser is no longer needed when adding a new BBS type.
  1337.  
  1338.     The commands given in the CT_MsgParser, CT_EventPacker, 
  1339.     CT_InitMsgFile and CT_ExtConfig is expected to be given with path 
  1340.     relative to the Thor home directory. 
  1341.  
  1342.    BUGS
  1343.  
  1344.    SEE ALSO
  1345.     GetTypeList()
  1346.  
  1347. bbsread.library/ConfLineLength                 bbsread.library/ConfLineLength
  1348.  
  1349.    NAME    
  1350.     ConfLineLength -- Returns max line length the bbs has in this conf.
  1351.  
  1352.    SYNOPSIS
  1353.     linelength = ConfLineLength( conf )
  1354.     D0                      A0
  1355.  
  1356.     UWORD ConfLineLength( struct ConfListItem * );
  1357.  
  1358.    FUNCTION
  1359.     Use this function to obtain max line length the messages on the BBS is
  1360.     expected to have in this conference.
  1361.  
  1362.    INPUTS
  1363.     conf - Conf to get max linelength for.
  1364.  
  1365.    RESULT
  1366.     linelength - Linelength expected in this conf.
  1367.  
  1368.    EXAMPLE
  1369.  
  1370.    NOTES
  1371.  
  1372.    BUGS
  1373.  
  1374.    SEE ALSO
  1375.  
  1376. bbsread.library/EndOfAdding                       bbsread.library/EndOfAdding
  1377.  
  1378.    NAME    
  1379.     EndOfAdding -- Call after adding a grab. (Used by MsgParser)
  1380.  
  1381.    SYNOPSIS
  1382.     void EndOfAdding( bbs )
  1383.                         A0
  1384.  
  1385.     void EndOfAdding( struct BBSListItem * );
  1386.  
  1387.    FUNCTION
  1388.     Function for MsgParser to call after finishing the parsing of a grab. 
  1389.     UnLocks your access to add a grab to this BBS. Makes sure 2 or more 
  1390.     processes do not add the same grab simultaneously.
  1391.  
  1392.     Will also free the memory used to hold data during message adding.
  1393.  
  1394.     Each call to StartOfAdding() must be coupled with a call to this 
  1395.     function.
  1396.  
  1397.    INPUTS
  1398.     bbs - Pointer to BBSListItem for BBS adding is finished.
  1399.  
  1400.    RESULT
  1401.  
  1402.    EXAMPLE
  1403.  
  1404.    NOTES
  1405.  
  1406.    BUGS
  1407.  
  1408.    SEE ALSO
  1409.     StartOfAdding()
  1410.  
  1411. bbsread.library/ExternalBBSConfig           bbsread.library/ExternalBBSConfig
  1412.  
  1413.    NAME    
  1414.     ExternalBBSConfig -- External configuration for bbs'es.
  1415.  
  1416.    SYNOPSIS
  1417.     error = ExternalBBSConfig( bbs, tagitems )
  1418.     D0                         A0      A1
  1419.  
  1420.     LONG ExternalBBSConfig( struct BBSListItem *, struct TagItem * );
  1421.  
  1422.     error = ExternalBBSConfigTags( bbs, Tag1, ... )
  1423.  
  1424.     LONG ExternalBBSConfigTags(struct BBSListItem *, ULONG, ... );
  1425.  
  1426.    FUNCTION
  1427.     This function calls the command for external configuration defined
  1428.     in the bbstype of this bbs. If no external configuration command is
  1429.     defined, this function will return success.
  1430.  
  1431.    INPUTS
  1432.     bbs - Pointer to BBSListItem for bbs.
  1433.     tagitems - Pointer to TagItem array.
  1434.  
  1435.     Here are the TagItem.ti_Tag values that are defined for
  1436.     ExternalBBSConfig():
  1437.  
  1438.     EBC_Conference - Pointer to active conference is in 
  1439.         (struct ConfListItem *) ti_Data. This tag may be omitted when no 
  1440.         conferences are active.
  1441.     
  1442.     EBC_PublicScreen - Public screen for external configuration to open 
  1443.         windows on is in (STRPTR) ti_Data. When this tag is omitted 
  1444.         the windows will be opened on the default public screen.
  1445.  
  1446.    RESULT
  1447.     error - 0 for success, result from command, or -1.
  1448.  
  1449.    EXAMPLE
  1450.  
  1451.    NOTES
  1452.  
  1453.    BUGS
  1454.  
  1455.    SEE ALSO
  1456.  
  1457. bbsread.library/FindDupBRMsg                     bbsread.library/FindDupBRMsg
  1458.  
  1459.    NAME    
  1460.     FindDupBRMsg -- Find duplicate messages in database.
  1461.  
  1462.    SYNOPSIS
  1463.     error = FindDupBRMsg( bbs, tagitems )
  1464.     D0                    A0      A1
  1465.  
  1466.     BOOL FindDupBRMsg( struct BBSListItem *, struct TagItem * );
  1467.  
  1468.     error = FindDupBRMsgTags( bbs, Tag1, ... )
  1469.  
  1470.     BOOL FindDupBRMsgTags( struct BBSListItem *, ULONG, ... );
  1471.  
  1472.    FUNCTION
  1473.     Searches the database for duplicate messages. 
  1474.  
  1475.     Supports callback progress hooks tags. BRProgress->brp_Actions
  1476.     will contain the number of duplicate messages found.
  1477.  
  1478.    INPUTS
  1479.     bbs - BBSListItem for the bbs to search for duplicate messages.
  1480.     tagitems - Pointer to TagItem array.
  1481.  
  1482.     Here are the TagItem.ti_Tag values that are defined for
  1483.     FindDupBRMsg().
  1484.  
  1485.     FDBRM_DeleteDupInConf - Mark duplicate messages in same conference as
  1486.         deleted if (BOOL) ti_Data is TRUE. Default is FALSE. The newest
  1487.         message will be marked as deleted if duplicates are found.
  1488.  
  1489.     FDBRM_UnMarkCrossPosts - Search trough unread messages and mark 
  1490.         crossposts as read if (BOOL) ti_Data is TRUE. Default is FALSE. 
  1491.         If a instance of the crossposted message is found read in the 
  1492.         database, all instances of it will be marked as read. If not,
  1493.         only the first instance of the crossposted message will be kept 
  1494.         unread. (The conferences will be scanned in the same order as 
  1495.         your conference list.) This tag is only useful on bbs'es where 
  1496.         messages are identified with unique message identifiers. 
  1497.  
  1498.    RESULT
  1499.     error - Boolean.
  1500.  
  1501.    EXAMPLE
  1502.  
  1503.    NOTES
  1504.     If the message has a messageid this messageid is regarded as unique.
  1505.  
  1506.    BUGS
  1507.  
  1508.    SEE ALSO
  1509.  
  1510. bbsread.library/FindOrginalNr                   bbsread.library/FindOrginalNr
  1511.  
  1512.    NAME    
  1513.     FindOrginalNr -- Find message by orginal number
  1514.  
  1515.    SYNOPSIS
  1516.     msgnr = FindOrginalNr( conf, orginalnr )
  1517.       D0                    A0       D1
  1518.     
  1519.     ULONG FindOrginalNr( struct ConfListItem *, ULONG );
  1520.  
  1521.    FUNCTION
  1522.     Scans the conference for a message with the passed orginal number.
  1523.  
  1524.    INPUTS
  1525.     conf - Conference to search in.
  1526.     orginalnr - Orginal number to search for.
  1527.  
  1528.    RESULT
  1529.     msgnr - The number the message has locally. Returns 0 if the orginalnr
  1530.         can't be found. 
  1531.  
  1532.    EXAMPLE
  1533.  
  1534.    NOTES
  1535.  
  1536.    BUGS
  1537.  
  1538.    SEE ALSO
  1539.  
  1540. bbsread.library/FreeBRObject                     bbsread.library/FreeBRObject
  1541.  
  1542.    NAME    
  1543.     FreeBRObject -- Frees an object allocated
  1544.  
  1545.    SYNOPSIS
  1546.     void FreeBRObject( object )
  1547.                        A0
  1548.  
  1549.     void FreeBRObject( void * );
  1550.  
  1551.    FUNCTION
  1552.     Frees an object allocated with any of the other functions in this 
  1553.     library. Safe to call with a NULL pointer or a (APTR) -1 pointer.
  1554.  
  1555.    INPUTS
  1556.     object - Pointer to object to free.
  1557.  
  1558.    RESULT
  1559.  
  1560.    EXAMPLE
  1561.  
  1562.    NOTES
  1563.  
  1564.    BUGS
  1565.  
  1566.    SEE ALSO
  1567.  
  1568. bbsread.library/GetBBSList                         bbsread.library/GetBBSList
  1569.  
  1570.    NAME    
  1571.     GetBBSList -- Returns a list of available BBS'es
  1572.  
  1573.    SYNOPSIS
  1574.     bbslist = GetBBSList()
  1575.     D0
  1576.  
  1577.     struct List * GetBBSList( void );
  1578.  
  1579.    FUNCTION
  1580.     Returns a Exec list of the available BBS'es. This list is your 
  1581.     private READ-ONLY copy of the actual list, and you will not notice 
  1582.     if anything is changed, i.e. BBS'es added or deleted.
  1583.  
  1584.     Each node in the list has bl_Node.ln_Name set to bl_Data->bd_Name. 
  1585.     You are free to use bl_Node.ln_Name for your own purposes.
  1586.      
  1587.     The list must be deallocated with FreeBRObject().
  1588.     
  1589.     You are allowed to rearrange the order of the nodes in the list. 
  1590.     *All* nodes must be in the list when the list is deallocated.
  1591.  
  1592.    INPUTS
  1593.  
  1594.    RESULT
  1595.     bbslist - Exec list of the available BBS'es. The list consist of 
  1596.         BBSListNode structures. Returns a NULL pointer on failure.
  1597.  
  1598.    EXAMPLE
  1599.  
  1600.    NOTES
  1601.  
  1602.    BUGS
  1603.  
  1604.    SEE ALSO
  1605.     <bbsread.h>
  1606.  
  1607. bbsread.library/GetConfigValue                 bbsread.library/GetConfigValue
  1608.  
  1609.    NAME    
  1610.     GetConfigValue -- Returns the configuration value to use.
  1611.  
  1612.    SYNOPSIS
  1613.     error = GetConfigValue( tagitems )
  1614.     D0                         A0
  1615.  
  1616.     BOOL GetConfigValue( struct TagItem * );
  1617.  
  1618.     error = GetConfigValueTags( Tag1, ... )
  1619.  
  1620.     BOOL GetConfigValueTags( ULONG, ... );
  1621.  
  1622.    FUNCTION
  1623.     Get the correct value for a specified conference of BBS. 
  1624.  
  1625.    INPUTS
  1626.     tagitems - Pointer to TagItem array.
  1627.  
  1628.     Here are the TagItem.ti_Tag values that are defined for
  1629.     GetConfigValue().
  1630.  
  1631.     GCV_GlobalConfig - GlobalConfig is pointed by 
  1632.         (struct GlobalConfig *) ti_Data. Default value is NULL.
  1633.  
  1634.     GCV_TypeListItem - TypeListItem is pointed by (struct 
  1635.         TypeListItem *) ti_Data. Default value is NULL.
  1636.  
  1637.     GCV_BBSListItem - BBSListItem is pointed by (struct 
  1638.         BBSListItem *) ti_Data. Default value is NULL.
  1639.  
  1640.     GCV_ConfListItem - ConfListItem is pointed by (struct 
  1641.         ConfListItem *) ti_Data. Default value is NULL.
  1642.  
  1643.     GCV_EventType - Type of event to use config value in is in (ULONG) 
  1644.         ti_Data. This value is used by GCV_ConfReplyString and 
  1645.         GCV_BBSReplyString tags. Default value of this tag is 
  1646.         EVE_REPLYMSG.
  1647.  
  1648.     GCV_ConfQuoteType - Where to put conference quote type is 
  1649.         pointed by (UBYTE *) ti_Data.
  1650.  
  1651.     GCV_ConfQuoteChars - Where to put pointer to conference quote chars
  1652.          is pointed by (STRPTR *) ti_Data.
  1653.  
  1654.     GCV_ConfQuoteReflow - Where to put conference reflow flag is 
  1655.         pointed by (BOOL *) ti_Data.
  1656.  
  1657.     GCV_BBSQuoteType - Where to put bbs quote type is pointed by 
  1658.         (UBYTE *) ti_Data.
  1659.  
  1660.     GCV_BBSQuoteChars - Where to put pointer to bbs quote chars is 
  1661.         pointed by (STRPTR *) ti_Data.
  1662.  
  1663.     GCV_BBSQuoteReflow - Where to put bbs reflow flag is pointed by
  1664.         (BOOL *) ti_Data.
  1665.  
  1666.     GCV_ConfReplyString - Where to put pointer to conference reply 
  1667.         string is pointed by (STRPTR *) ti_Data.
  1668.  
  1669.     GCV_BBSReplyString - Where to put pointer to bbs reply string is 
  1670.         pointed by (STRPTR *) ti_Data.
  1671.  
  1672.     GCV_ConfEnterScript - Where to put pointer to name of conference
  1673.         enter script is pointed by (STRPTR *) ti_Data.
  1674.  
  1675.     GCV_ConfLeaveScript - Where to put pointer to name of conference 
  1676.         leave script is pointed by (STRPTR *) ti_Data.
  1677.  
  1678.     GCV_BBSEnterScript - Where to put pointer to name of bbs enter script
  1679.         is pointed by (STRPTR *) ti_Data.
  1680.  
  1681.     GCV_BBSLeaveScript - Where to put pointer to name of bbs leave script
  1682.         is pointed by (STRPTR *) ti_Data.
  1683.  
  1684.    RESULT
  1685.     error - Boolean
  1686.  
  1687.    EXAMPLE
  1688.  
  1689.    NOTES
  1690.     The string pointers returned are only valid until GlobalConfig, 
  1691.     TypeData, BBSData or ConfData are updated or freed.
  1692.  
  1693.    BUGS
  1694.  
  1695.    SEE ALSO
  1696.  
  1697. bbsread.library/GetConfList                       bbsread.library/GetConfList
  1698.  
  1699.    NAME    
  1700.     GetConfList -- Returns a list of available conferences in a BBS.
  1701.  
  1702.    SYNOPSIS
  1703.     conflist = GetConfList( bbs )
  1704.                             A0
  1705.  
  1706.     struct List * GetConfList( struct BBSListItem * );
  1707.  
  1708.    FUNCTION
  1709.     Returns an Exec list of the available conferences on a specified BBS.
  1710.     This list is your private READ-ONLY copy of the actual list, and you
  1711.     will not notice if anything is changed, i.e. conferences added or
  1712.     deleted.
  1713.  
  1714.     Each node in the list has cl_Node.ln_Name set to cd_Name. You are
  1715.     free to use cl_Node.ln_Name for your own purposes. cl_UserData is 
  1716.     set to NULL.
  1717.      
  1718.     The list must be deallocated with FreeBRObject().
  1719.  
  1720.     You are allowed to rearrange the order of the nodes in the list. 
  1721.     *All* nodes must be in the list when the list is deallocated.
  1722.  
  1723.    INPUTS
  1724.     bbs - Pointer to the BBSListItem to get conference list for.
  1725.  
  1726.    RESULT
  1727.     conflist - Exec list of the available conferences at the BBS. The 
  1728.         list consists of ConfListItem structures. Returns a NULL pointer
  1729.         on failure.
  1730.  
  1731.    EXAMPLE
  1732.  
  1733.    NOTES
  1734.     Will update the bi_SumMarked and bi_SumM2User fields of 
  1735.     bbs->bl_Internal.
  1736.  
  1737.    BUGS
  1738.  
  1739.    SEE ALSO
  1740.     
  1741.  
  1742. bbsread.library/GetFAreaList                     bbsread.library/GetFAreaList
  1743.  
  1744.    NAME    
  1745.     GetFAreaList -- Returns a list of available file areas on a BBS.
  1746.  
  1747.    SYNOPSIS
  1748.     farealist = GetFAreaList( bbs )
  1749.                               A0
  1750.  
  1751.     struct List * GetFAreaList( struct BBSListItem * );
  1752.  
  1753.    FUNCTION
  1754.     Returns a Exec list of the available file areas on a specified BBS.
  1755.     This list is your private READ-ONLY copy of the actual list, and 
  1756.     you will not notice if anything is changed, i.e. conferences added 
  1757.     or deleted.
  1758.  
  1759.     Each node in the list has al_Node.ln_Name set to ad_Name. You are
  1760.     free to use al_Node.ln_Name for your own purposes.
  1761.      
  1762.     The list must be deallocated with FreeBRObject().
  1763.  
  1764.    INPUTS
  1765.     bbs - Pointer to the BBSListItem to get file area list for.
  1766.  
  1767.    RESULT
  1768.     farealist - Exec list of the available file areas at the BBS. The list
  1769.         consist of FAreaListItem structures. Returns a NULL pointer on
  1770.         failure.
  1771.  
  1772.    EXAMPLE
  1773.  
  1774.    NOTES
  1775.  
  1776.    BUGS
  1777.  
  1778.    SEE ALSO
  1779.     
  1780.  
  1781. bbsread.library/GetGlobalConfig               bbsread.library/GetGlobalConfig
  1782.  
  1783.    NAME    
  1784.     GetGlobalConfig -- Returns a copy of the global configuration.
  1785.  
  1786.    SYNOPSIS
  1787.     globalcfg = GetGlobalConfig()
  1788.     D0
  1789.  
  1790.     struct GlobalConfig *GetGlobalConfig();
  1791.  
  1792.    FUNCTION
  1793.     Returns a copy of the global configuration. The structure is your 
  1794.     private READ-ONLY copy of the actual structure. Beware that some
  1795.     STRPTR'ers in the returned structure could be NULL-pointers.
  1796.  
  1797.     The structure must be deallocated with FreeBRObject().
  1798.  
  1799.    INPUTS
  1800.  
  1801.    RESULT
  1802.     globalcfg - Structure with global configuration. Returns a NULL 
  1803.         pointer on failure.
  1804.  
  1805.    EXAMPLE
  1806.  
  1807.    NOTES
  1808.     Some of the STRPTR in the structure may be NULL-pointers.
  1809.  
  1810.    BUGS
  1811.  
  1812.    SEE ALSO 
  1813.     ConfigGlobal()
  1814.  
  1815. bbsread.library/GetMarkedMsg                     bbsread.library/GetMarkedMsg
  1816.  
  1817.    NAME    
  1818.     GetMarkedMsg -- Get messagenumbers of marked messages
  1819.  
  1820.    SYNOPSIS
  1821.     msgnrbuf = GetMarkedMsg( conf, usebuf, offset, numof )
  1822.     D0                        A0     A1     D1       D2
  1823.  
  1824.     ULONG * GetMarkedMsg( struct ConfListItem *, ULONG *, ULONG, ULONG );
  1825.  
  1826.    FUNCTION
  1827.     Returns the mesagenumbers of the marked (unread) messages. If there is
  1828.     not enough messages to fill the supplied buffer, the rest of the
  1829.     entries will be NULL'ed out.
  1830.  
  1831.    INPUTS
  1832.     conf - Pointer to conference to get marked messages in.
  1833.     usebuf - Pointer to the buffer to hold the messagenumbers in, must
  1834.         atleast of (numof * sizeof(ULONG)) length.
  1835.     offset - Where in the list over marked messages to start reading.
  1836.     numof - Number of messagenumbers to get.
  1837.  
  1838.    RESULT
  1839.     msgnrbuf - Pointer to the buffer containing the messagenumers.
  1840.         On failure, a NULL pointer is returned.
  1841.  
  1842.    EXAMPLE
  1843.  
  1844.    NOTES
  1845.  
  1846.    BUGS
  1847.  
  1848.    SEE ALSO
  1849.  
  1850. bbsread.library/GetSignature                     bbsread.library/GetSignature
  1851.  
  1852.    NAME    
  1853.     GetSignature -- Return the prefered signature.
  1854.  
  1855.    SYNOPSIS
  1856.     signature = GetSignature( globals, bbs, conf)
  1857.     D0                          A0      A1   A2
  1858.  
  1859.     STRPTR GetSignature( struct GlobalConfig *, struct BBSListItem *, 
  1860.         struct ConfListItem * );
  1861.  
  1862.    FUNCTION
  1863.     Returns the signature to use in a message in the conf conference in 
  1864.     the bbs BBS. The pointer returned is only valid until the next time
  1865.     you call this function. If the prefered signature is a file signature,
  1866.     the signature will be loaded and the returned pointer will point to 
  1867.     a buffer holding the signature.
  1868.  
  1869.    INPUTS
  1870.     globals - Pointer to your copy of the global configuration.
  1871.     bbs - Pointer to BBSListItem for bbs to get signature for. Can be a 
  1872.         NULL-pointer.
  1873.     conf - Pointer to ConfListItem for the conference to get signature 
  1874.         for. Can be a NULL-pointer.
  1875.  
  1876.    RESULT
  1877.     signature - Returns a string pointer for the signature to use. Returns
  1878.         a NULL-pointer if there is no defined signature or if the function
  1879.         failed. On failure, IoErr() will be non-zero. Will also return a
  1880.         NULL pointer if a NO_SIGNATURE flag is set.
  1881.  
  1882.    EXAMPLE
  1883.  
  1884.    NOTES
  1885.     The pointer returned may be a copy of the Signature string pointer in
  1886.     either GlobalConfig, BBSData or ConfData. Therefore the pointer is 
  1887.     only valid as long as you don't free or update any of these 
  1888.     structures.
  1889.  
  1890.    BUGS
  1891.  
  1892.    SEE ALSO
  1893.  
  1894. bbsread.library/GetTagFile                         bbsread.library/GetTagFile
  1895.  
  1896.    NAME    
  1897.     GetTagFile -- Return the prefered tag file.
  1898.  
  1899.    SYNOPSIS
  1900.     tagfile = GetTagFile( globals, bbs, conf)
  1901.     D0                      A0      A1   A2
  1902.  
  1903.     STRPTR GetTagFile( struct GlobalConfig *, struct BBSListItem *, 
  1904.         struct ConfListItem * );
  1905.  
  1906.    FUNCTION
  1907.     Returns the tag file to use in a message in the conf conference in 
  1908.     the bbs BBS.
  1909.  
  1910.    INPUTS
  1911.     globals - Pointer to your copy of the global configuration.
  1912.     bbs - Pointer to BBSListItem for bbs to get tag file for. Can be a 
  1913.         NULL-pointer.
  1914.     conf - Pointer to ConfListItem for the conference to get tag file 
  1915.         for. Can be a NULL-pointer.
  1916.  
  1917.    RESULT
  1918.     tagfile - Returns a string pointer for the tag file to use. Returns a
  1919.         NULL-pointer if there is no defined tag file. Will also return a
  1920.         NULL pointer if a NO_TAG flag is set.
  1921.  
  1922.    EXAMPLE
  1923.  
  1924.    NOTES
  1925.     The pointer returned is a copy of the tag file string pointer in
  1926.     either GlobalConfig, BBSData or ConfData. Therefore the pointer is 
  1927.     only valid as long as you don't free or update any of these 
  1928.     structures.
  1929.  
  1930.    BUGS
  1931.  
  1932.    SEE ALSO
  1933.  
  1934. bbsread.library/GetTypeList                       bbsread.library/GetTypeList
  1935.  
  1936.    NAME    
  1937.     GetTypeList -- Returns a list of available BBS types
  1938.  
  1939.    SYNOPSIS
  1940.     typelist = GetTypeList()
  1941.     D0
  1942.  
  1943.     struct List * GetTypeList( void );
  1944.  
  1945.    FUNCTION
  1946.     Returns an Exec list with the available BBS types. This list is your 
  1947.     private READ-ONLY copy of the actual list, and you will not notice 
  1948.     if anything is changed, i.e. BBS types added or deleted.
  1949.  
  1950.     Each node in the list has tl_Node.ln_Name set to tl_Data->td_TypeName.
  1951.     You are free to use tl_Node.ln_Name for your own purposes.
  1952.      
  1953.     The list must be deallocated with FreeBRObject().
  1954.     
  1955.    INPUTS
  1956.  
  1957.    RESULT
  1958.     typelist - Exec list of the available BBS types. The list consist of
  1959.         TypeListNode structures. Returns a NULL pointer on failure.
  1960.  
  1961.    EXAMPLE
  1962.  
  1963.    NOTES
  1964.  
  1965.    BUGS
  1966.  
  1967.    SEE ALSO
  1968.     <bbsread.h>
  1969.  
  1970. bbsread.library/MakeEventPackage             bbsread.library/MakeEventPackage
  1971.  
  1972.    NAME    
  1973.     MakeEventPackage -- Make event package for a bbs
  1974.  
  1975.    SYNOPSIS
  1976.     error = MakeEventPackage( bbs, tagitems )
  1977.     D0                        A0      A1
  1978.  
  1979.     LONG MakeEventPackage( struct BBSListItem *, struct TagItem * );
  1980.  
  1981.     error = MakeEventPackageTags( bbs, Tag1, ... )
  1982.  
  1983.     LONG MakeEventPackageTags( struct BBSListItem *, ULONG, ... );
  1984.  
  1985.    FUNCTION
  1986.     This function calls up the command to pack and archive the events for
  1987.     this BBS. The command used is the one set up in the typedata for the 
  1988.     BBS. This function returns success if no eventpacker is configured 
  1989.     for the bbstype of this bbs.
  1990.  
  1991.     The tags that are not understood are forwarded to dos.library/
  1992.     SystemTagList(). Look at dos.library/SystemTagList() for futher 
  1993.     information on tags.
  1994.  
  1995.     The BDF_EVENTS_CHANGED flag will be cleared for this bbs if this 
  1996.     function returns success.
  1997.  
  1998.    INPUTS
  1999.     bbs - Pointer to BBSListItem for bbs.
  2000.     tagitems - Pointer to TagItem array. Tags not defined for 
  2001.         MakeEventPackage() are passed to dos.library/SystemTagList(). See
  2002.         <dos/dostags.h>.  Both dos.library/SystemTagList() tags and 
  2003.         dos.library/CreateNewProc() tags may be passed. 
  2004.     
  2005.     Here are the TagItem.ti_Tag values that are defined for
  2006.     MakeEventPackage().
  2007.  
  2008.     EP_PublicScreen - Public screen for eventpacker to open possible
  2009.         progress windows on is in (STRPTR) ti_Data. The public screen name
  2010.         is forwarded to the packer as a parameter.
  2011.  
  2012.    RESULT
  2013.     error    - 0 for success, result from command, or -1.  Note that on 
  2014.         error, the caller is responsible for any filehandles or other
  2015.         things passed in via tags.
  2016.  
  2017.    EXAMPLE
  2018.  
  2019.    NOTES
  2020.     bbs->bl_Data->bd_Flags will be updated by MakeEventPackage().
  2021.  
  2022.    BUGS
  2023.  
  2024.    SEE ALSO
  2025.     dos.library/SystemTagList(), dos.library/CreateNewProc(),
  2026.     <dos/dostags.h>
  2027.  
  2028. bbsread.library/MarkMessage                       bbsread.library/MarkMessage
  2029.  
  2030.    NAME    
  2031.     MarkMessage -- Mark or unmark messages
  2032.  
  2033.    SYNOPSIS
  2034.     error = MarkMessage( conf, tagitems )
  2035.     D0                    A0      A1
  2036.  
  2037.     BOOL MarkMessage( struct ConfListItem *, struct TagItem * );
  2038.  
  2039.     error = MarkMessageTags( conf, Tag1, ... )
  2040.  
  2041.     BOOL MarkMessageTags( struct ConfListItem *, ULONG, ... );
  2042.  
  2043.    FUNCTION
  2044.     Use this function to mark or unmark messages.
  2045.  
  2046.    INPUTS
  2047.     conf - Pointer to conference to mark or unmark messages in.
  2048.     tagitems - Pointer to TagItem array.
  2049.  
  2050.     Here are the TagItem.ti_Tag values that are defined for
  2051.     MarkMessage().
  2052.  
  2053.     MM_MarkMessage - The messagenumber to mark is in (ULONG) ti_Data.
  2054.  
  2055.     MM_MarkArray - An array of ULONG containing messages to mark is 
  2056.         pointed to by (ULONG *) ti_Data. A NULL pointer terminates the
  2057.         array.
  2058.  
  2059.     MM_UnMarkMessage - The messagenumber to unmark is in (ULONG) ti_Data.
  2060.  
  2061.     MM_UnMarkArray - An array of ULONG containing messages to unmark is 
  2062.         pointed to by (ULONG *) ti_Data. A NULL pointer terminates the
  2063.         array.
  2064.  
  2065.     MM_SuperMarking - The mark tags will set the MDF_SUPERMARKED flag and
  2066.         the unmark tags will clear the MDF_SUPERMARKED flag if (BOOL) 
  2067.         ti_Data is TRUE.
  2068.  
  2069.     MM_Reset - Unmark all marked messages if (BOOL) ti_Data is TRUE.
  2070.  
  2071.     MM_MineFirst - Move marked messages to user first if (BOOL) 
  2072.         ti_Data is TRUE.
  2073.  
  2074.     MM_Reference - Move marked messages in reference order if (BOOL) 
  2075.         ti_Data is TRUE.
  2076.  
  2077.     MM_ToAllFirst - Move marked messages to all first if (BOOL) ti_Data 
  2078.         is TRUE.
  2079.  
  2080.     MM_SortByMsgNumbers - Sort the marked messages by its messagenumbers
  2081.         if (BOOL) ti_Data is TRUE.
  2082.  
  2083.     MM_GroupSubject - Group marked messages by subject if (BOOL) ti_Data
  2084.         is TRUE.
  2085.  
  2086.     MM_Reverse - Reverse the order of the marked messages if (BOOL) 
  2087.         ti_Data is TRUE.
  2088.  
  2089.     MM_SortAlphabetical - Sort alphabetically on subject or author
  2090.         (depending on what other tag is given in) if (BOOL) ti_Data
  2091.         is TRUE.
  2092.  
  2093.     MM_SortByAuthor - Sort by author names if (BOOL) ti_Data is TRUE.
  2094.  
  2095.    RESULT
  2096.     error - Returns TRUE on failure.
  2097.  
  2098.    EXAMPLE
  2099.  
  2100.    NOTES
  2101.     Super marked messages can only be unmarked when the MM_SuperMarking 
  2102.     tag is set to TRUE. 
  2103.  
  2104.    BUGS
  2105.  
  2106.    SEE ALSO
  2107.  
  2108. bbsread.library/PackDataFile                     bbsread.library/PackDataFile
  2109.  
  2110.    NAME    
  2111.     PackDataFile -- Removes all deleted entrys from a datafile
  2112.  
  2113.    SYNOPSIS
  2114.     fail = PackDataFile( tagitems )
  2115.     D0                      A0
  2116.  
  2117.     struct TagItem * PackDataFile( struct TagItem * );
  2118.  
  2119.     fail = PackDataFileTags( Tag1, ... )
  2120.  
  2121.     struct TagItem * PackDataFileTags( ULONG, ... );
  2122.  
  2123.    FUNCTION
  2124.     A function for 'packing' datafiles. This means removing all deleted 
  2125.     information from the datafile. This function supports callback 
  2126.     progress hooks.
  2127.  
  2128.    INPUTS
  2129.     tagitems - Pointer to TagItem array.
  2130.  
  2131.     Here are the TagItem.ti_Tag values that are defined for
  2132.     PackDataFile().
  2133.  
  2134.     PD_EventData - Clean up event data base for a bbs. The bbs to clean
  2135.         up is pointed by (struct BBSListItem *) ti_Data. No progress 
  2136.         callback for PD_EventData.
  2137.  
  2138.     PD_Conference - Pack the datafiles of the conference given in 
  2139.         (struct ConfListItem *) ti_Data. Messages will be deleted 
  2140.         acording to ConfData.cd_KeepMsg and ConfData.cd_KeepTime.
  2141.         A conference is packed in two passes. First pass deletes 
  2142.         messages, and the second pass actually packs the message data
  2143.         files. BRProgress.brp_Actions is only used for the first pass.
  2144.  
  2145.     PD_AttachmentList - This is a (struct List **) list consisting of 
  2146.         (struct AttachmentItem *) nodes that will contain the file
  2147.         attachments included on messages that are purged when 
  2148.         PD_Conference is used.  Free it using FreeBRObject() when
  2149.         you are done with it. This list will be valid but empty
  2150.         if no attachments are found (but still needs to be freed).
  2151.  
  2152.     PD_UserData - Pack the datafiles for the user database on the bbs 
  2153.         pointed by (struct BBSListItem *) ti_Data.
  2154.  
  2155.     PD_KillData - Pack the datafiles for the kill database on the bbs
  2156.         pointed by (struct BBSListItem *) ti_Data.
  2157.  
  2158.     PD_FileData - Pack the datafiles for the file database on the bbs 
  2159.         pointed by (struct BBSListItem *) ti_Data. 
  2160.  
  2161.     PD_SavePackedBRIEF - Name of file to save packed messages in BRIEF 
  2162.         format is pointed by (STRPTR) ti_Data. All messages which are 
  2163.         deleted because of KeepTime and KeepMsg will be saved to this 
  2164.         file. If the file exists, the messages will be appended to the
  2165.         file. Default is not to save any messages. This tag is ignored
  2166.         if the PD_Conference tag is not given.
  2167.  
  2168.    RESULT
  2169.     fail - NULL on success. On failure, it points to the tag which caused
  2170.         the failure.
  2171.  
  2172.    EXAMPLE
  2173.  
  2174.    NOTES
  2175.  
  2176.    BUGS
  2177.  
  2178.    SEE ALSO
  2179.  
  2180. bbsread.library/ParseGrab                           bbsread.library/ParseGrab
  2181.  
  2182.    NAME    
  2183.     ParseGrab -- Parse a grab and add it's messages.
  2184.  
  2185.    SYNOPSIS
  2186.     error = ParseGrab( grabnode, tagitems )
  2187.     D0                      A0        A1
  2188.  
  2189.     LONG ParseGrab( struct Node *, struct TagItem * );
  2190.  
  2191.     error = ParseGrabTags( grabnode, Tag1, ... )
  2192.  
  2193.     LONG ParseGrabTags( struct Node *, ULONG, ... );
  2194.  
  2195.    FUNCTION
  2196.     This calls up the command for adding messages in a grab to the message
  2197.     database. The grabnode parameter *must* be a node from a list returned 
  2198.     by ScanForGrabs(). The command used is the one set up in the typedata
  2199.     for the BBS.
  2200.  
  2201.     The tags that are not understood are forwarded to dos.library/
  2202.     SystemTagList(). Look at dos.library/SystemTagList() for futher 
  2203.     information on tags.
  2204.  
  2205.    INPUTS
  2206.     grabnode - Pointer to Node structure.
  2207.     tagitems - Pointer to TagItem array. See <dos/dostags.h>.  Both 
  2208.         dos.library/SystemTagList() tags and dos.library/CreateNewProc()
  2209.         tags may be passed.
  2210.     
  2211.     Here are the TagItem.ti_Tag values that are defined for
  2212.     ParseGrab().
  2213.  
  2214.     PG_PublicScreen - Public screen for eventpacker to open possible
  2215.         progress windows on is in (STRPTR) ti_Data. The public screen name
  2216.         is forwarded to the parser as a parameter. This screen name will
  2217.         also be used if ParseGrab() opens any reqtools requesters.
  2218.  
  2219.     PG_RequestWindow - Reference window for requesters opened by the 
  2220.         ParseGrab() function is pointed by (struct Window *) ti_Data. If
  2221.         this tag is omitted or is NULL and reqtools is not available will
  2222.         requesters appear on the default public screen.
  2223.  
  2224.    RESULT
  2225.     error    - 0 for success, result from command, or -1.  Note that on 
  2226.         error, the caller is responsible for any filehandles or other
  2227.         things passed in via tags.
  2228.  
  2229.    EXAMPLE
  2230.  
  2231.    NOTES
  2232.     This funtion uses reqtools requesters if reqtools.library is 
  2233.     available. The reqtools requesters opens on PG_PublicScreen if this
  2234.     tag is given.
  2235.  
  2236.    BUGS
  2237.  
  2238.    SEE ALSO
  2239.     dos.library/SystemTagList(), dos.library/CreateNewProc(),
  2240.     <dos/dostags.h>, ScanForGrabs()
  2241.  
  2242. bbsread.library/PGPBREvents                       bbsread.library/PGPBREvents
  2243.  
  2244.    NAME    
  2245.     PGPBREvents -- PGP sign and/or encrypt events.
  2246.  
  2247.    SYNOPSIS
  2248.     error = PGPBREvents( bbs, tagitems )
  2249.     D0                   A0      A1
  2250.  
  2251.     ULONG PGPBREvents( struct BBSListItem *, struct TagItem * );
  2252.  
  2253.     error = PGPBREventsTags(bbs, Tag1, ...)
  2254.  
  2255.     ULONG PGPBREventsTags(struct BBSListItem *, ULONG, ... );
  2256.  
  2257.    FUNCTION
  2258.     This function will PGP sign and/or encrypt BREV_MsgFile files if the 
  2259.     BREV_PGPSignID and/or BREV_PGPEncryptID tag is used in an event. The 
  2260.     encrypted and/or signed message (with ascii armour) is stored on the 
  2261.     disk under the same main name as the orginal text file, but with an 
  2262.     added .asc extension.
  2263.  
  2264.     This function is meant to be used by event packers before packing any 
  2265.     events. 
  2266.  
  2267.     Will not PGP sign and/or encrypt if the file containg the
  2268.     encrypted/signed message is older than the BREV_MsgFile or the event
  2269.     hasn't been changed since the encryption/signing.
  2270.  
  2271.    INPUTS
  2272.     bbs - BBS to sign and/or encrypt events on.
  2273.     tagitems - Pointer to TagItem array. Tags not defined for 
  2274.         PGPBREvents() are passed to dos.library/SystemTagList().See 
  2275.         <dos/dostags.h>. Both dos.library/SystemTagList() tags and 
  2276.         dos.library/CreateNewProc() tags may be passed.
  2277.  
  2278.     Here are the TagItem.ti_Tag values that are defined for
  2279.     PGPBREvents().
  2280.  
  2281.     PGP_PublicScreen - Public screen name for pass phrase requester 
  2282.         (needed when signing messages) is pointed (STRPTR) ti_Data. 
  2283.         Default is default public screen.
  2284.  
  2285.    RESULT
  2286.     error - 0 on success. On failure will the number of the event which
  2287.         failed be returned.
  2288.  
  2289.    EXAMPLE
  2290.  
  2291.    NOTES
  2292.  
  2293.    BUGS
  2294.  
  2295.    SEE ALSO
  2296.  
  2297. bbsread.library/ReadBREvent                       bbsread.library/ReadBREvent
  2298.  
  2299.    NAME    
  2300.     ReadBREvent -- Read a event from the database.
  2301.  
  2302.    SYNOPSIS
  2303.     eveobj = ReadBREvent( bbs, eventnr, tagitems )
  2304.     D0                    A0    D1        A1
  2305.     
  2306.     APTR ReadBREvent( struct BBSListItem *, ULONG, struct Tagitem * );
  2307.  
  2308.     eveobj = ReadBREventTags( bbs, eventnr, Tag1, ... )
  2309.  
  2310.     APTR ReadBREventTags( struct BBSListItem *, ULONG, ULONG, ... );
  2311.  
  2312.    FUNCTION
  2313.     Reads the data about an event from the database. 
  2314.  
  2315.    INPUTS
  2316.     bbs - Pointer to BBSListItem structure returned in GetBBSList().
  2317.     eventnr - Number of the event to get data for.
  2318.     tagitems - Pointer to TagItem array.
  2319.  
  2320.     Here are the TagItem.ti_Tag values that are defined for
  2321.     ReadBREvent().
  2322.  
  2323.     RBREV_EventTagsPtr - Where to put a pointer to the loaded event 
  2324.         tagarray is pointed by (struct TagItem **) ti_Data. This tagarray
  2325.         contains all the BREV_#? tags for this event. These are the same 
  2326.         as supplied with WriteBREvent() when this event was added to the 
  2327.         database. If the event is marked as deleted or if ReadBREvent() 
  2328.         fails, *(struct TagItem **) ti_Data) will be set to NULL.
  2329.  
  2330.     RBREV_EventType - Where to put the type of this event is pointed by 
  2331.         (ULONG *) ti_Data.
  2332.  
  2333.     RBREV_EventDate - Where to put the date when the event was added to
  2334.         the database is pointed by (ULONG *) ti_Data. The date is in 
  2335.         seconds from 01-Jan-1978.
  2336.  
  2337.     RBREV_Flags - Where to put the flags for this event is pointed by 
  2338.         (LONGBITS *) ti_Data. See <libraries/bbsread.h> for definitions.
  2339.  
  2340.    RESULT
  2341.     eveobj - Returns NULL on failure. On success, eveobj *must* be passed
  2342.         to FreeBRObject() if it is anything else than (APTR) -1.
  2343.  
  2344.    EXAMPLE
  2345.  
  2346.    NOTES
  2347.     No need to FreeBRObject() eveobj if eveobj is (APTR) -1.
  2348.  
  2349.     You are allowed to change the returned strings. (They must not be made
  2350.     any longer)
  2351.  
  2352.    BUGS
  2353.  
  2354.    SEE ALSO
  2355.  
  2356. bbsread.library/ReadBRFile                         bbsread.library/ReadBRFile
  2357.  
  2358.    NAME    
  2359.     ReadBRFile -- Read the data for a file from the database.
  2360.  
  2361.    SYNOPSIS
  2362.     fileobj = ReadBRFile( farea, filenr, tagitems )
  2363.     D0                      A0     D1       A1
  2364.     
  2365.     APTR ReadBRFile( struct FAreaListItem *, ULONG, struct Tagitem * );
  2366.  
  2367.     fileobj = ReadBRFileTags( farea, filenr, Tag1, ... )
  2368.  
  2369.     APTR ReadBRFileTags( struct FAreaListItem *, ULONG, ULONG, ... );
  2370.  
  2371.    FUNCTION
  2372.     Reads the data for a file from the database.
  2373.  
  2374.    INPUTS
  2375.     farea - Pointer to FAreaListItem structure returned in GetFAreaList().
  2376.     filenr - Number of file to get data for.
  2377.     tagitems - Pointer to TagItem array.
  2378.  
  2379.     Here are the TagItem.ti_Tag values that are defined for
  2380.     ReadBRFile().
  2381.  
  2382.     RBRF_FileTagsPtr - Where to put a pointer to the loaded file tagarray
  2383.         is pointed by (struct TagItem **) ti_Data. This tagarray contains
  2384.         all the BRFILE_#? tags for this file. These are the same as 
  2385.         supplied with WriteBRFile() when this file was written to the
  2386.         database. If the file is marked as deleted or if ReadBRFile() 
  2387.         fails, *(struct TagItem **) ti_Data) will be set to NULL.
  2388.  
  2389.     RBRF_FileDate - Where to put the date when the file was added to the
  2390.         database is pointed by (ULONG *) ti_Data. The date is in seconds 
  2391.         from 01-Jan-1978.
  2392.  
  2393.     RBRF_Flags - Where to put the flags for this file is pointed by 
  2394.         (LONGBITS *) ti_Data. See <libraries/bbsread.h> for definitions.
  2395.  
  2396.     RBRF_NextFile - Where to put the number of the next file in the same 
  2397.         file area as this file is pointed by (ULONG *) ti_Data. This tag
  2398.         *must* be used when traversing trough all files in a file area. 
  2399.         The number of the first file in a file area is in the file areas
  2400.         FAreaData structure. A 0 means there are no more files in this
  2401.         file area.
  2402.     
  2403.    RESULT
  2404.     userobj - Returns NULL on failure. On success, fileobj *must* be passed
  2405.         to FreeBRObject() if it is anything else than (APTR) -1.
  2406.  
  2407.    EXAMPLE
  2408.  
  2409.    NOTES
  2410.     No need to FreeBRObject() fileobj if fileobj is (APTR) -1.
  2411.  
  2412.     You are allowed to change the returned strings. (They must not be made
  2413.     any longer)
  2414.  
  2415.    BUGS
  2416.  
  2417.    SEE ALSO
  2418.  
  2419. bbsread.library/ReadBRKill                         bbsread.library/ReadBRKill
  2420.  
  2421.    NAME    
  2422.     ReadBRKill -- Read the data for a kill from the database.
  2423.  
  2424.    SYNOPSIS
  2425.     killobj = ReadBRKill( bbs, killnr, tagitems )
  2426.     D0                    A0    D1       A1
  2427.  
  2428.     ULONG ReadBRKill( struct BBSListItem *, ULONG, struct Tagitem * );
  2429.  
  2430.     killobj = ReadBRKillTags( bbs, killnr, Tag1, ... )
  2431.  
  2432.     ULONG ReadBRKill( struct BBSListItem *, ULONG, ULONG, ... );
  2433.  
  2434.    FUNCTION
  2435.     Read the data for a kill from the database.
  2436.  
  2437.    INPUTS
  2438.     bbs - Pointer to BBSListItem structure returned in GetBBSList().
  2439.     killnr - Number of kill to get data for.
  2440.     tagitems - Pointer to TagItem array.
  2441.  
  2442.     Here are the TagItem.ti_Tag values that are defined for
  2443.     ReadBRKill().
  2444.  
  2445.     RBRK_KillTagsPtr - Where to put a pointer to the loaded kill tagarray
  2446.         is pointed by (struct TagItem **) ti_Data. This tagarray contains
  2447.         all the BRMSG_#? tags for this kill. These are the same as 
  2448.         supplied with WriteBRKill() when this kill was written to the 
  2449.         database. If the kill is marked as deleted or if ReadBRKill() 
  2450.         fails, *((struct TagItem **) ti_Data) will be set to NULL.
  2451.  
  2452.     RBRK_KillDate - Where to put the date when the kill was added to the
  2453.         database is pointed by (ULONG *) ti_Data. The date is in seconds
  2454.         from 01-Jan-1978.
  2455.  
  2456.     RBRK_LastKill - Where to put the date when this kill last killed is
  2457.         pointed by (ULONG *) ti_Data. The date is in seconds from 
  2458.         01-Jan-1978.
  2459.  
  2460.     RBRK_Flags - Where to put the flags for this kill is pointed by 
  2461.         (LONGBITS *) ti_Data. See <libraries/bbsread.h> for definitions.
  2462.  
  2463.    RESULT
  2464.     killobj - Returns NULL on failure. On success, killobj *must* be passed
  2465.         to FreeBRObject() if it is anything else than (APTR) -1.
  2466.  
  2467.    EXAMPLE
  2468.  
  2469.    NOTES
  2470.     No need to FreeBRObject() userobj if userobj is (APTR) -1.
  2471.  
  2472.     You are allowed to change the returned strings. (They must not be made
  2473.     any longer)
  2474.  
  2475.    BUGS
  2476.  
  2477.    SEE ALSO
  2478.  
  2479. bbsread.library/ReadBRMessage                   bbsread.library/ReadBRMessage
  2480.  
  2481.    NAME    
  2482.     ReadBRMessage -- Read a message from the database.
  2483.  
  2484.    SYNOPSIS
  2485.     msgobj = ReadBRMessage( conf, msgnr, tagitems )
  2486.     D0                      A0     D1      A1
  2487.  
  2488.     APTR ReadBRMessage( struct ConfListItem *, ULONG, struct TagItem * );
  2489.  
  2490.     msgobj = ReadBRMessageTags( conf, msgnr, Tag1, ... )
  2491.     D0                      A0     D1      A1
  2492.  
  2493.     APTR ReadBRMessageTags( struct ConfListItem *, ULONG, ULONG, ... );
  2494.  
  2495.    FUNCTION
  2496.     Read data about a message from the database. 
  2497.  
  2498.     The multiple parts in multipart messages should be presented in the
  2499.     order they are found in the taglist. BRMSG_Text should always be
  2500.     presented first.
  2501.  
  2502.    INPUTS
  2503.     conf - Pointer to ConfListItem structure returned in GetConfList.
  2504.     msgnr - Number of the message to get data for.
  2505.  
  2506.     tagitems - Pointer to TagItem array.
  2507.  
  2508.     Here are the TagItem.ti_Tag values that are defined for
  2509.     ReadBRMessage().
  2510.  
  2511.     RBRMSG_MsgTagsPtr - Where to put a pointer to the loaded message 
  2512.         tagarray is pointed by (struct TagItem **) ti_Data. This tagarray
  2513.         contains all the BRMSG_#? tags for this message. These are the 
  2514.         same as supplied with WriteBRMessage() when this message was added
  2515.         to the database. If the message is marked as deleted or if 
  2516.         ReadBRMessage() fails, *(struct TagItem **) ti_Data) will be set to
  2517.         NULL.
  2518.  
  2519.     RBRMSG_MsgDate - Where to put the date when the message was added to
  2520.         the database is pointed by (ULONG *) ti_Data. The date is in 
  2521.         seconds from 01-Jan-1978.
  2522.  
  2523.     RBRMSG_Reference - Where to put the number of the message this message
  2524.         refers to is pointed by (ULONG *) ti_Data. If the reference is 0, 
  2525.         this message has no references.
  2526.  
  2527.     RBRMSG_FirstRef - Where to put the number of the first message which
  2528.         refers to this message is pointed by (ULONG *) ti_Data.
  2529.  
  2530.     RBRMSG_LastRef - Where to put the number of the last message which 
  2531.         refers to this message is pointed by (ULONG *) ti_Data.
  2532.  
  2533.     RBRMSG_PrevRef - Where to put the number of the previous message which
  2534.         refers to the same message as this message is pointed by (ULONG *)
  2535.         ti_Data.
  2536.  
  2537.     RBRMSG_NextRef - Where to put the number of the next message which 
  2538.         refers to the same message as this message is pointed by (ULONG *)
  2539.         ti_Data.
  2540.     
  2541.     RBRMSG_Flags - Where to put the flags for this message is pointed by 
  2542.         (LONGBITS *) ti_Data. See <libraries/bbsread.h> for definitions.
  2543.  
  2544.     RBRMSG_GetHeader - Tags considered as header fields are returned 
  2545.         in the message tagarray if (BOOL) ti_Data is TRUE. Default is 
  2546.         TRUE. To be used in combination with RBRMSG_MsgTagsPtr. What tags
  2547.         which are considered as header fields are defined in 
  2548.         <libraries/bbsread.h>
  2549.  
  2550.     RBRMSG_GetText - Tags considered as text fields are returned in the 
  2551.         message tagarray if (BOOL) ti_Data is TRUE. Default is TRUE. To be
  2552.         used in combination with RBRMSG_MsgTagsPtr. What tags which are 
  2553.         considered as text fields are defined in <libraries/bbsread.h>
  2554.  
  2555.    RESULT
  2556.     msgobj - Returns NULL on failure. On success, msgobj *must* be passed
  2557.         to FreeBRObject() if it is anything else than (APTR) -1.
  2558.  
  2559.    EXAMPLE
  2560.  
  2561.    NOTES
  2562.     No need to FreeBRObject() msgobj if msgobj is (APTR) -1.
  2563.  
  2564.     You are allowed to change the returned strings. (They must not be made
  2565.     any longer)
  2566.  
  2567.    BUGS
  2568.  
  2569.    SEE ALSO
  2570.  
  2571. bbsread.library/ReadBRUser                         bbsread.library/ReadBRUser
  2572.  
  2573.    NAME    
  2574.     ReadBRUser -- Read the data for an user from the database.
  2575.  
  2576.    SYNOPSIS
  2577.     userobj = ReadBRUser( bbs, usernr, tagitems )
  2578.     D0                    A0     D1       A1
  2579.     
  2580.     APTR ReadBRUser( struct BBSListItem *, ULONG, struct Tagitem * );
  2581.  
  2582.     userobj = ReadBRUserTags( bbs, usernr, Tag1, ... )
  2583.  
  2584.     APTR ReadBRUserTags( struct BBSListItem *, ULONG, ULONG, ... );
  2585.  
  2586.    FUNCTION
  2587.     Reads the data for an user from the database.
  2588.  
  2589.    INPUTS
  2590.     bbs - Pointer to BBSListItem structure returned in GetBBSList().
  2591.     eventnr - Number of user to get data for.
  2592.     tagitems - Pointer to TagItem array.
  2593.  
  2594.     Here are the TagItem.ti_Tag values that are defined for
  2595.     ReadBRUser().
  2596.  
  2597.     RBRUSR_UserTagsPtr - Where to put a pointer to the loaded user 
  2598.         tagarray is pointed by (struct TagItem **) ti_Data. This tagarray
  2599.         contains all the BRUSR_#? tags for this user. These are the same 
  2600.         as supplied with WriteBRUser() when this user was written to the 
  2601.         database. If the user is marked as deleted or if ReadBRUser() 
  2602.         fails, *(struct TagItem **) ti_Data) will be set to NULL.
  2603.  
  2604.     RBRUSR_UserDate - Where to put the date when the user was added to the
  2605.         database is pointed by (ULONG *) ti_Data. The date is in seconds 
  2606.         from 01-Jan-1978.
  2607.  
  2608.     RBRUSR_Flags - Where to put the flags for this user is pointed by 
  2609.         (LONGBITS *) ti_Data. See <libraries/bbsread.h> for definitions.
  2610.  
  2611.     
  2612.    RESULT
  2613.     userobj - Returns NULL on failure. On success, userobj *must* be passed
  2614.         to FreeBRObject() if it is anything else than (APTR) -1.
  2615.  
  2616.    EXAMPLE
  2617.  
  2618.    NOTES
  2619.     No need to FreeBRObject() userobj if userobj is (APTR) -1.
  2620.  
  2621.     You are allowed to change the returned strings. (They must not be
  2622.     made any longer)
  2623.  
  2624.    BUGS
  2625.  
  2626.    SEE ALSO
  2627.  
  2628. bbsread.library/ReadPassiveConfList       bbsread.library/ReadPassiveConfList
  2629.  
  2630.    NAME    
  2631.     ReadPassiveConfList -- Read the passive conference list.
  2632.  
  2633.    SYNOPSIS
  2634.     passConfList = ReadPassiveConfList( bbs )
  2635.     D0                                  A0
  2636.  
  2637.     struct List * ReadPassiveConfList( struct BBSListItem * );
  2638.  
  2639.    FUNCTION
  2640.     Gives you a list of all conferences in the passive conference list 
  2641.     datafiles. The passive conference list is a list of *all* available 
  2642.     conferences at the bbs. It should be used when the user want to send 
  2643.     a join event. Returns a list of struct PassConfListItem. The 
  2644.     pl_Node.ln_Name pointer equals the pl_Name pointer.
  2645.  
  2646.    INPUTS
  2647.     bbs - Pointer to the bbs which the list should be read from.
  2648.  
  2649.    RESULT
  2650.     passConfList - Pointer to the list header of the passive conference 
  2651.         list. The list *must* be freed with a call to FreeBRObject(). 
  2652.         Returns NULL on failure or if no passive conference list is 
  2653.         available. IoErr() will be set on failure.
  2654.  
  2655.    EXAMPLE
  2656.  
  2657.    NOTES
  2658.  
  2659.    BUGS
  2660.  
  2661.    SEE ALSO
  2662.  
  2663. bbsread.library/ScanForGrabs                     bbsread.library/ScanForGrabs
  2664.  
  2665.    NAME    
  2666.     ScanForGrabs -- Scans download directory for grabs.
  2667.  
  2668.    SYNOPSIS
  2669.     grablist = ScanForGrabs( void )
  2670.     D0
  2671.  
  2672.     struct MinList * ScanForGrabs( void );
  2673.  
  2674.    FUNCTION
  2675.     Scans the download directory for grabs. The BBS'es with waiting grabs 
  2676.     is returned in a list of struct Node. Node.ln_Name points to the name
  2677.     of the BBS.
  2678.  
  2679.     If there are more than one grab from a BBS, there will be a node in 
  2680.     the list for each grabfile. The nodes in the list are sorted on the
  2681.     name of the grabfile. By this the grabs are sorted correct if they 
  2682.     are numbered. The grabs should be parsed in the order they are found 
  2683.     in the list.
  2684.  
  2685.     The list must be deallocated with FreeBRObject().
  2686.  
  2687.    INPUTS
  2688.  
  2689.    RESULT
  2690.     grablist - Pointer to MinList structure. List contains Node 
  2691.         structures. Returns an empty list if there are no new grabs. 
  2692.         Returns NULL-pointer on failure and sets IoErr() if possible.
  2693.  
  2694.    EXAMPLE
  2695.  
  2696.    NOTES
  2697.     Returns NULL-pointer if gc_DnloadPath isn't set with GlobalConfig().
  2698.  
  2699.    BUGS
  2700.  
  2701.    SEE ALSO
  2702.  
  2703. bbsread.library/SearchBRFile                     bbsread.library/SearchBRFile
  2704.  
  2705.    NAME    
  2706.     SearchBRFile -- Search file database.
  2707.  
  2708.    SYNOPSIS
  2709.     found = SearchBRFile( tagitems )
  2710.     D0                       A0 
  2711.  
  2712.     struct SFileResult * SearchBRFile( struct TagItem * );
  2713.  
  2714.     found = SearchBRFileTags( Tag1, ... )
  2715.  
  2716.     struct SFileResult * SearchBRFileTags( ULONG, ... );
  2717.  
  2718.    FUNCTION
  2719.     This function scans the filedatabase for a file matching the given 
  2720.     searchkey. It's possible to search a file area or all file areas on a
  2721.     bbs. 
  2722.  
  2723.     Supports callback progress hooks tags.
  2724.  
  2725.    INPUTS
  2726.     tagitems - Pointer to TagItem array.
  2727.  
  2728.     Here are the TagItem.ti_Tag values that are defined for
  2729.     SearchBRFile().
  2730.  
  2731.     SBRF_SearchFAreaList - List of file areas to search in is pointed by
  2732.         (struct List *) ti_Data. The list *MUST* have been obtained with 
  2733.         GetFAreaList(). The point of this tag is to be able to search 
  2734.         all file areas on a bbs in one call.
  2735.  
  2736.     SBRF_SearchFArea - Search the file area pointed by (struct 
  2737.         FAreaListItem *) ti_Data. This tag has higher priority than the 
  2738.         SBRF_SearchFAreaList tag.
  2739.  
  2740.     SBRF_SearchStr - String to search for is pointed by (STRPTR) ti_Data.
  2741.         Wildcards are allowed.
  2742.  
  2743.     SBRF_SearchName - Search for a file with a name matching 
  2744.         SBRF_SearchStr exact if (BOOL) ti_Data is TRUE. Default is FALSE.
  2745.     
  2746.     SBRF_SearchAll - Search all strings for a match with SBRF_SearchStr 
  2747.         if (BOOL) ti_Data is TRUE. Default is FALSE. This tag has higher
  2748.         priority than the SBRF_SearchName tag.
  2749.  
  2750.     SBRF_NewerThan - Find files newer than (ULONG) ti_Data. Time is in 
  2751.         seconds since 1.January 1978
  2752.  
  2753.    RESULT
  2754.     found - Pointer to a SFileResult structure containing the results of 
  2755.         the search. The SFileResult structure must be deallocated with 
  2756.         FreeBRObject(). Returns a NULL pointer if no matches where found
  2757.         or if the function failed. IoErr() will be non null on failure.
  2758.  
  2759.    EXAMPLE
  2760.  
  2761.    NOTES
  2762.     This function will fail if neither SBRF_SearchBBS nor SBRF_SearchFArea
  2763.     is given in the taglist.
  2764.  
  2765.     If found->fr_NextResult is non NULL, a linked list of SFileResult
  2766.     structures is returned.
  2767.  
  2768.    BUGS
  2769.  
  2770.    SEE ALSO
  2771.  
  2772. bbsread.library/SearchBRMessage               bbsread.library/SearchBRMessage
  2773.  
  2774.    NAME    
  2775.     SearchBRMessage -- Search for messages in a conference.
  2776.  
  2777.    SYNOPSIS
  2778.     found = SearchBRMessage( conf, tagitems )
  2779.     D0                   A0      A1
  2780.  
  2781.     struct SearchResult * SearchBRMessage( struct ConfListItem *, 
  2782.         struct TagItem * );
  2783.  
  2784.     found = SearchBRMessageTags( conf, tag1, ... )
  2785.  
  2786.     struct SearchResult * SearchBRMessageTags( struct ConfListItem *, 
  2787.         ULONG, ... );
  2788.  
  2789.    FUNCTION
  2790.     Search through the messages in a conference. The search is not case 
  2791.     sensitive.
  2792.  
  2793.     Standard AmigaDOS wildcards are supported.
  2794.  
  2795.     Supports callback progress hooks tags.
  2796.  
  2797.    INPUTS
  2798.     conf - Conference to search in.
  2799.     tagitems - Pointer to TagItem array.
  2800.  
  2801.     Here are the TagItem.ti_Tag values that are defined for
  2802.     SearchBRMessage().
  2803.  
  2804.     SC_FindString - String to search for is in (STRPTR) ti_Data. There 
  2805.         can be searched for more than one string on each call by using 
  2806.         this tag more than once. As of V3, this tag is no longer needed 
  2807.         when searching.
  2808.  
  2809.     SC_FromUser - Search for messages from the user in (STRPTR) ti_data.
  2810.  
  2811.     SC_ToUser - Search for messages to the user in (STRPTR) ti_data. 
  2812.         Overrides the SC_ToAll tag.
  2813.  
  2814.     SC_FromMessage - Message number to start searching at is in (ULONG) 
  2815.         ti_Data. Default is to start at the first message in the 
  2816.         conference.
  2817.  
  2818.     SC_ToMessage - Message number to end searching at is in (ULONG) 
  2819.         ti_Data. Default is to end at the last message in the conference.
  2820.  
  2821.     SC_SearchSubject - Search in the subject if (BOOL) ti_Data is TRUE. 
  2822.         Default value for this tag is TRUE.
  2823.  
  2824.     SC_SearchMessage - Search in the message if (BOOL) ti_Data is TRUE.
  2825.         Default value for this tag is TRUE.
  2826.  
  2827.     SC_SearchComment - Search in the comment if (BOOL) ti_Data is TRUE. 
  2828.         Default value for this tag is TRUE.
  2829.  
  2830.     SC_SearchMsgID - Search in the message id if (BOOL) ti_Data
  2831.        is TRUE. Default value for this tag is TRUE.
  2832.  
  2833.     SC_MessageArray - Message numbers to search is in a NULL-terminated 
  2834.         array of ULONG pointed by (ULONG *) ti_Data. This tag overrides 
  2835.         the SC_FromMessage and SC_ToMessage tags.
  2836.     
  2837.     SC_ToAll - Search for messages to ALL if (BOOL) ti_Data is TRUE. 
  2838.  
  2839.     SC_KeptMessages - Search for messages with the MDF_KEEP flag set if 
  2840.         (BOOL) ti_Data is TRUE.
  2841.  
  2842.     SC_NewerThan - Search for messages newer than (ULONG) ti_Data. The 
  2843.         time is in seconds since 1.January 1978.
  2844.  
  2845.     SC_OlderThan - Search for messages older than (ULONG) ti_Data. The 
  2846.         time is in seconds since 1.January 1978.
  2847.  
  2848.    RESULT
  2849.     found - Pointer to a SearchResult structure containing the results of
  2850.         the search. The SearchResult structure must be deallocated with 
  2851.         FreeBRObject(). Returns a NULL pointer if no matches where found 
  2852.         or the function failed. IoErr() will be non null on failure.
  2853.  
  2854.    EXAMPLE
  2855.  
  2856.    NOTES
  2857.     If found->sr_NextResult is non NULL, a linked list of SearchResult
  2858.     structures is returned.
  2859.  
  2860.     The found->sr_Messages[] array is garantied to be NULL terminated.
  2861.  
  2862.    BUGS
  2863.  
  2864.    SEE ALSO
  2865.  
  2866. bbsread.library/SearchBRUser                     bbsread.library/SearchBRUser
  2867.  
  2868.    NAME    
  2869.     SearchBRUser -- Search user database.
  2870.  
  2871.    SYNOPSIS
  2872.     found = SearchBRUser( bbs, tagitems )
  2873.     D0                    A0      A1
  2874.  
  2875.     struct SUserResult * SearchBRUser( struct BBSListItem *, 
  2876.         struct TagItem * );
  2877.  
  2878.     found = SearchBRUserTags( bbs, Tag1, ... )
  2879.  
  2880.     struct SUserResult * SearchBRUserTags( struct BBSListItem *, ULONG, 
  2881.         ... );
  2882.  
  2883.    FUNCTION
  2884.     This function scans the userdatabase for an user at the given BBS.
  2885.     When suggesting users, SoundEx hashing will be used to suggest user 
  2886.     names which match the search string. If there are more than one name 
  2887.     in the search string, the first and the last will be used to narrow 
  2888.     the suggestions. The search order is aliases, names, addresses and 
  2889.     comment.
  2890.  
  2891.     Standard AmigaDOS wildcards is supported.
  2892.  
  2893.    INPUTS
  2894.     bbs - Pointer to BBS to search in.
  2895.     namestr - Name to search for.
  2896.     tagitems - Pointer to TagItem array.
  2897.  
  2898.     Here are the TagItem.ti_Tag values that are defined for
  2899.     SearchBRUser().
  2900.  
  2901.     SBRU_SearchStr - String to search for is pointed by (STRPTR) ti_Data.
  2902.  
  2903.     SBRU_SearchName - Search for a name matching SBRU_SearchStr exact if
  2904.         (BOOL) ti_Data is TRUE. Default is TRUE.
  2905.  
  2906.     SBRU_SearchAddr - Search for a address matching SBRU_SearchStr exact
  2907.         if (BOOL) ti_Data is TRUE. Default is TRUE.
  2908.     
  2909.     SBRU_SearchAlias - Search for a alias matching SBRU_SearchStr exact
  2910.         if (BOOL) ti_Data is TRUE. Default is TRUE.
  2911.     
  2912.     SBRU_SearchComment - Search in comment for a match to SBRU_SearchStr
  2913.         if (BOOL) ti_Data is TRUE. Default is FALSE. When wildcards are 
  2914.         used, the search pattern must match a line in the comment.
  2915.  
  2916.     SBRU_SuggestUsers - A list of suggestions for user names if 
  2917.         SBRU_SearchStr doesn't match any user names in the database will
  2918.         be pointed by *((struct MinList **) ti_Data) when this function 
  2919.         returns. The list will consist of UserSuggestion structures. The 
  2920.         list pointer may be a NULL-pointer if no users where found or if
  2921.         there was a failure. NB: The list *must* be freed with 
  2922.         FreeBRObject(). This tag is ignored when the SBRU_SearchName tag
  2923.         is FALSE or if SBRU_SearchStr contains wildcards.
  2924.  
  2925.    RESULT
  2926.     found - Pointer to a SUserResult structure containing the results of 
  2927.         the search. The SUserResult structure must be deallocated with 
  2928.         FreeBRObject(). Returns a NULL pointer if no matches where found
  2929.         or if the function failed. IoErr() will be non null on failure.
  2930.  
  2931.    EXAMPLE
  2932.  
  2933.    NOTES
  2934.     If found->ur_NextResult is non NULL, a linked list of SUserResult
  2935.     structures is returned.
  2936.  
  2937.    BUGS
  2938.  
  2939.    SEE ALSO
  2940.  
  2941. bbsread.library/SortMessageArray             bbsread.library/SortMessageArray
  2942.  
  2943.    NAME    
  2944.     SortMessageArray -- Sorts messagenumbers in an array by the given method (V5
  2945. )
  2946.  
  2947.    SYNOPSIS
  2948.     msgnrbuf = SortMessageArray( conf, usebuf, method )
  2949.     D0                        A0     A1     D0
  2950.  
  2951.     ULONG * SortMessageArray( struct ConfListItem *, ULONG * );
  2952.  
  2953.    FUNCTION
  2954.    Sorts the NULL-terminated array usebuf according to the given method.
  2955.  
  2956.    INPUTS
  2957.     conf - Pointer to conference to use for the array
  2958.     usebuf - Pointer to the buffer that contains the messagenumbers.
  2959.         NOTE: The buffer must be NULL-terminated.
  2960.     method - What method should be used when sorting the messages. See
  2961.         <libraries/bbsread.h> for definitions
  2962.  
  2963.    RESULT
  2964.     msgnrbuf - Pointer to the buffer containing the messagenumbers.
  2965.         On failure, a NULL pointer is returned.
  2966.  
  2967.    EXAMPLE
  2968.  
  2969.    NOTES
  2970.  
  2971.    BUGS
  2972.  
  2973.    SEE ALSO
  2974.  
  2975. bbsread.library/StartOfAdding                   bbsread.library/StartOfAdding
  2976.  
  2977.    NAME    
  2978.     StartOfAdding -- Call before adding a grab. (Used by MsgParser)
  2979.  
  2980.    SYNOPSIS
  2981.     void StartOfAdding( bbs )
  2982.                         A0
  2983.  
  2984.     void StartOfAdding( struct BBSListItem * );
  2985.  
  2986.    FUNCTION
  2987.     Function for MsgParser to call before doing anything with UnArchiving
  2988.     or parsing. Locks your access to add a grab to this BBS. Makes sure
  2989.     2 or more processes do not add the same grab simultaneously.
  2990.  
  2991.     Each call to this function must be coupled with a call to 
  2992.     EndOfAdding().
  2993.  
  2994.    INPUTS
  2995.     bbs - Pointer to BBSListItem for BBS to start adding to.
  2996.  
  2997.    RESULT
  2998.  
  2999.    EXAMPLE
  3000.  
  3001.    NOTES
  3002.  
  3003.    BUGS
  3004.  
  3005.    SEE ALSO
  3006.     EndOfAdding()
  3007.  
  3008. bbsread.library/TypeFromBBS                       bbsread.library/TypeFromBBS
  3009.  
  3010.    NAME    
  3011.     TypeFromBBS - Returns the TypeListItem structure of a BBS.
  3012.  
  3013.    SYNOPSIS
  3014.     bbstype = TypeFromBBS( bbs )
  3015.     D0                      A0
  3016.  
  3017.     struct TypeListItem * TypeFromBBS( struct BBSListItem * );
  3018.  
  3019.    FUNCTION
  3020.     Returns the TypeListItem structure correspondig to the type of the bbs
  3021.     parameter. Use this function instead of searching the type list by 
  3022.     name for the correspondig TypeListItem.
  3023.  
  3024.     The TypeListItem structure returned is not a part of a list, so don't
  3025.     use the tl_Node. The structure must be deallocated with 
  3026.     FreeBRObject().
  3027.  
  3028.    INPUTS
  3029.     bbs - Pointer to the BBSListItem to get the type of.
  3030.  
  3031.    RESULT
  3032.     bbstype - Pointer to a TypeListItem for the bbs. Returns a NULL 
  3033.         pointer on failure.
  3034.  
  3035.    EXAMPLE
  3036.  
  3037.    NOTES
  3038.  
  3039.    BUGS
  3040.  
  3041.    SEE ALSO
  3042.  
  3043. bbsread.library/UnArchive                           bbsread.library/UnArchive
  3044.  
  3045.    NAME    
  3046.     UnArchive -- Unarchives an archive.
  3047.  
  3048.    SYNOPSIS
  3049.     error = UnArchive( archive, tagitems )
  3050.     D0                    A0       A1
  3051.  
  3052.     BOOL UnArchive( STRPTR, struct TagItem * );
  3053.  
  3054.     error = UnArchiveTags( archive, Tag1, ...)
  3055.  
  3056.     LONG UnArchiveTags( STRPTR, ULONG, ...);
  3057.  
  3058.    FUNCTION
  3059.     This function unarchives an archive. The type of archiver to use is
  3060.     determined with the global configuration for the library. If no
  3061.     archivetypes match this archive, the function will return failure. The
  3062.     ability to return failure when the unarchivers fail depends on how the
  3063.     unarchivers behave.
  3064.  
  3065.     Files which match no known archiver will be copied to the destination.
  3066.     Files with .txt extension and files without extension are treated as 
  3067.     text files and trailing numbers in the file name will be removed.
  3068.     (.txt extension will also be removed)
  3069.  
  3070.     The tags not understood are forwarded to dos.library/SystemTagList(). 
  3071.     Look at dos.library/SystemTagList() for futher information on tags.
  3072.  
  3073.    INPUTS
  3074.     archive - Pointer to path and name of archive to unarchive.
  3075.     tagitems - Pointer to TagItem array. See <dos/dostags.h>.  Both 
  3076.         dos.library/SystemTagList() tags and dos.library/CreateNewProc()
  3077.         tags may be passed.
  3078.  
  3079.     Here are the TagItem.ti_Tag values that are defined for
  3080.     UnArchive().
  3081.  
  3082.     UA_RetrieveFile - File to retrieve from archive is in (STRPTR) 
  3083.         ti_Data. More than one of this tag can be passed. If this tag is
  3084.         omitted, all files in archive will be unarchived.
  3085.     
  3086.     UA_DestDir - Path to destination directory is in (STRPTR) it_Data. 
  3087.         Default is to use current directory as destination directory.
  3088.  
  3089.     UA_ArchiverUsed - Where to put a pointer to the ArcConfigItem 
  3090.         structure for the archiver used in archive is pointed by 
  3091.         (struct ArcConfigItem **) ti_Data. The ArcConfigItem structure
  3092.         returned is not a part of a list, so don't use the ac_Node. The 
  3093.         structure must be deallocated with FreeBRObject(). You get a 
  3094.         NULL when no identifiable archiver is used or the function failed
  3095.         with -1.
  3096.  
  3097.    RESULT
  3098.     error    - 0 for success, result from archiver, or -1.  Note that on
  3099.         error, the caller is responsible for any filehandles or other
  3100.         things passed in via tags.
  3101.  
  3102.    EXAMPLE
  3103.  
  3104.    NOTES
  3105.  
  3106.    BUGS
  3107.     If a destination directory is spesified, the archive _must_ be given
  3108.     with an absolute path.
  3109.  
  3110.    SEE ALSO
  3111.  
  3112. bbsread.library/UniqueMsgFile                   bbsread.library/UniqueMsgFile
  3113.  
  3114.    NAME    
  3115.     UniqueMsgFile -- Create a unique message file (for events)
  3116.  
  3117.    SYNOPSIS
  3118.     filename = UniqueMsgFile( bbs, filepart, tagitems )
  3119.     D0                        A0      A1        A2
  3120.  
  3121.     STRPTR UniqueMsgFile( struct BBSListItem *, STRPTR *, 
  3122.         struct TagItem * );
  3123.  
  3124.     filename = UniqueMsgFileTags(bbs, filepart, Tag1, ... )
  3125.  
  3126.     STRPTR UniqueMsgFileTags( struct BBSListItem *, STRPTR *, 
  3127.         ULONG, ... );
  3128.  
  3129.    FUNCTION
  3130.     Creates a unique message file to be used with BREV_MsgFile and
  3131.     BREV_DetailedFileDescr tags. The file is created in the directory for
  3132.     the given bbs. If the type of the bbs has td_InitMsgFile set,  the
  3133.     command will be used to initialize the msg file.
  3134.  
  3135.    INPUTS
  3136.     bbs - Pointer to BBSListItem for bbs.
  3137.     filepart - Pointer to STRPTR where to put the pointer to the file 
  3138.         part of the filename and path returned. The pointer returned in
  3139.         *filepart must be used in the BREV_MsgFile and 
  3140.         BREV_DetailedFileDescr tags.
  3141.     tagitems - Pointer to TagItem array.
  3142.  
  3143.     Here are the TagItem.ti_Tag values that are defined for
  3144.     UniqueMsgFile():
  3145.  
  3146.     UMF_Extension - Extension to use for message file is pointed by 
  3147.         (STRPTR) ti_Data. The default extension is "msg".
  3148.  
  3149.     UMF_UseTag - What message tag the file should be used for is in 
  3150.         (ULONG) ti_Data. The default value is BREV_MsgFile.
  3151.  
  3152.     UMF_Event - What type of event this message should be used for is in
  3153.         (ULONG) ti_Data. The default event type is EVE_ENTERMSG.
  3154.  
  3155.    RESULT
  3156.     filename - Complete path to the created file. Returns NULL on 
  3157.         failure. The filename *must* be freed with a call to 
  3158.         FreeBRObject().
  3159.  
  3160.    EXAMPLE
  3161.  
  3162.    NOTES
  3163.     If you for some reason don't use the returned filename in any event
  3164.     tag, you should delete the file before you call FreeBRObject().
  3165.  
  3166.    BUGS
  3167.  
  3168.    SEE ALSO
  3169.  
  3170. bbsread.library/UpdateBREvent                   bbsread.library/UpdateBREvent
  3171.  
  3172.    NAME    
  3173.     UpdateBREvent -- Updates the flags of one event.
  3174.  
  3175.    SYNOPSIS
  3176.     success = UpdateBREvent( bbs, eventnr, tagitems )
  3177.     D0                       A0     D1        A1
  3178.  
  3179.     BOOL UpdateBREvent( struct BBSListItem *, ULONG, struct TagItem * );
  3180.  
  3181.     success = UpdateBREventTags( bbs, eventnr, Tag1, ... )
  3182.  
  3183.     BOOL UpdateBREventTags( struct BBSListItem *, ULONG, ULONG, ... );
  3184.  
  3185.    FUNCTION
  3186.     Lets you update the flags of an event. This function will set the 
  3187.     BDF_EVENTS_CHANGED flag for this BBS. The priority of the flags are:
  3188.     (highest to lowest) EDF_DELETED, EDF_DONE, EDF_ERROR, EDF_FREEZE, 
  3189.     EDF_PACKED.
  3190.  
  3191.    INPUTS
  3192.     bbs - BBS to update event on.
  3193.     eventnr - Eventnr to update.
  3194.     tagitems - Pointer to TagItem array.
  3195.  
  3196.     Here are the TagItem.ti_Tag values that are defined for
  3197.     UpdateBREvent().
  3198.  
  3199.     UBRE_SetDeleted - Set EDF_DELETED flag if (BOOL) ti_Data is TRUE. 
  3200.         Will clear EDF_PACKED and EDF_ERROR flags.
  3201.  
  3202.     UBRE_ClearDeleted - Clear EDF_DELETED flag if (BOOL) ti_Data is TRUE.
  3203.  
  3204.     UBRE_SetPacked - Set EDF_PACKED flag if (BOOL) ti_Data is TRUE. This
  3205.         flag is for use against BBS'es where evenets are sent in packages.
  3206.         Set this flag when the event is packed into the package. Then use
  3207.         this flag to delete the events done when the package is 
  3208.         successfully sent. This makes it possible to repack a package 
  3209.         easily without loosing any events.
  3210.  
  3211.     UBRE_ClearPacked - Clear EDF_PACKED flag if (BOOL) ti_Data is TRUE.
  3212.  
  3213.     UBRE_SetError - Set EDF_ERROR flag if (BOOL) ti_Data is TRUE. Set
  3214.         this flag if the event couldn't be executed. While this flag is
  3215.         set, event packers should ignore this event. Will clear the 
  3216.         EDF_PACKED flag.
  3217.  
  3218.     UBRE_ClearError - Clear EDF_ERROR flag if (BOOL) ti_Data is TRUE.
  3219.  
  3220.     UBRE_SetDone - Set EDF_DONE flag if (BOOL) ti_Data is TRUE. This flag
  3221.         should be set when an event is successfully executed. Events
  3222.         marked with this flag will be removed from the datafile when
  3223.         packing the eventdata.
  3224.  
  3225.     UBRE_ClearDone - Clear EDF_DONE flag if (BOOL) ti_Data is TRUE.
  3226.  
  3227.     UBRE_SetFreeze - Set EDF_FREEZE flag if (BOOL) ti_Data is TRUE. When 
  3228.         his flag is set, event pakkers should ignore this event. Will 
  3229.         clear the EDF_PACKED flag.
  3230.  
  3231.     UBRE_ClearFreeze - Clear EDF_FREEZE flag if (BOOL) ti_Data is TRUE.
  3232.  
  3233.     UBRE_Activate - Activate event if (BOOL) ti_Data is TRUE. Will clear
  3234.         EDF_FREEZE, EDF_DONE, EDF_ERROR, EDF_PACKED and EDF_DELETED 
  3235.         flags.
  3236.  
  3237.    RESULT
  3238.     success - Boolean.
  3239.  
  3240.    EXAMPLE
  3241.  
  3242.    NOTES
  3243.     bbs->bl_Data->bd_Flags and bbs->bl_Data->bd_NumEvents will be updated
  3244.     by UpdateBREvent().
  3245.  
  3246.    BUGS
  3247.  
  3248.    SEE ALSO
  3249.     WriteBREvent()
  3250.  
  3251. bbsread.library/UpdateBRMessage               bbsread.library/UpdateBRMessage
  3252.  
  3253.    NAME    
  3254.     UpdateBRMessage -- Updates the flags of one message.
  3255.  
  3256.    SYNOPSIS
  3257.     success = UpdateBRMessag( conf, msgnr, tagitems )
  3258.     D0                         A0    D1        A1
  3259.  
  3260.     BOOL UpdateBRMessage( struct ConfListItem *, ULONG, struct TagItem * );
  3261.  
  3262.     success = UpdateBRMessageTags( conf, msgnr, Tag1, ... )
  3263.  
  3264.     BOOL UpdateBRMessageTags( struct ConfListItem *, ULONG, ULONG, ... );
  3265.  
  3266.    FUNCTION
  3267.     Lets you update the flags of a message. Starting from V6 of the library,
  3268.    this function can also be used to update the headers and text of a 
  3269.    message.
  3270.  
  3271.    INPUTS
  3272.    conf - Pointer to conference where to update message.
  3273.     msgnr - Number of the message to .
  3274.     tagitems - Pointer to TagItem array.
  3275.  
  3276.     Here are the TagItem.ti_Tag values that are defined for
  3277.     UpdateBRMessage().
  3278.  
  3279.     UBRM_SetDelete - Set MDF_DELETED flag if (BOOL) ti_Data is TRUE.
  3280.         Will also unmark the message if it is marked.
  3281.  
  3282.     UBRM_ClearDelete - Clear MDF_DELETED flag if (BOOL) ti_Data is TRUE.
  3283.         Will fail if MDF_UNRECOVERABLE flag is set.
  3284.  
  3285.     UBRM_SetKeep - Set MDF_KEEP flag if (BOOL) ti_Data is TRUE.
  3286.  
  3287.     UBRM_ClearKeep - Clear MDF_KEEP flag if (BOOL) ti_Data is TRUE.
  3288.  
  3289.     UBRM_SetReplied - Set MDF_REPLIED flag if (BOOL) ti_Data is TRUE.
  3290.  
  3291.     UBRM_ClearReplied - Clear MDF_REPLIED flag if (BOOL) ti_Data is TRUE.
  3292.  
  3293.     UBRM_SetUrgent - Set MDF_URGENT flag if (BOOL) ti_Data is TRUE.
  3294.     
  3295.     UBRM_ClearUrgent - Clear MDF_URGENT flag if (BOOL) ti_Data is TRUE.
  3296.     
  3297.     UBRM_SetImportant - Set MDF_IMPORTANT flag if (BOOL) ti_Data is TRUE.
  3298.  
  3299.     UBRM_ClearImportant - Clear MDF_IMPORTANT flag if (BOOL) ti_Data is 
  3300.         TRUE.
  3301.  
  3302.     UBRM_ClearMarked - Clear MDF_MARKED flag (make msg read) if (BOOL) ti_Data
  3303.        is TRUE.
  3304.  
  3305.     UBRM_SetMarked - Set MDF_MARKED flag (make msg unread) if (BOOL) ti_Data
  3306.        is TRUE.
  3307.  
  3308.     UBRM_SetSuperUnread - Set MDF_SUPERMARKED flag if (BOOL) ti_Data is TRUE.
  3309.  
  3310.     UBRM_ClearSuperUnread - Clear MDF_SUPERMARKED flag if (BOOL) ti_Data is 
  3311.         TRUE.
  3312.  
  3313.     UBRM_SetHazeLevel - Haze Level to set for message is in (ULONG) 
  3314.         ti_Data. Possible haze levels are 0 to 3.
  3315.             0 - No hazing.
  3316.             1 - The message will be kept at least as long as 
  3317.                 GlobalConfig->gc_HazeLevel1 seconds.
  3318.             2 - The message will be kept at least as long as 
  3319.                 GlobalConfig->gc_HazeLevel2 seconds.
  3320.             3 - The message will be kept at least as long as 
  3321.                 GlobalConfig->gc_HazeLevel3 seconds.
  3322.  
  3323.     UBRM_SetConfidential - Set MDF_CONFIDENTIAL flag if (BOOL) ti_Data is
  3324.         TRUE.
  3325.  
  3326.     UBRM_ClearConfidential - Clear MDF_CONFIDENTIAL flag if (BOOL) ti_Data
  3327.         is TRUE.
  3328.  
  3329.     UBRM_SetQueued - Set MDF_QUEUED flag if (BOOL) ti_Data
  3330.         is TRUE. (V6)
  3331.  
  3332.     UBRM_ClearQueued - Clear MDF_QUEUED flag if (BOOL) ti_Data
  3333.         is TRUE. (V6)
  3334.  
  3335.    UBRM_UpdateHeaders - Update header tags if (BOOL) ti_Data is TRUE.
  3336.        Note that all header tags of the message must be replaced, it
  3337.        will not work to replace just a few. (V6)
  3338.  
  3339.    UBRM_UpdateText - Update text tags if (BOOL) ti_Data is TRUE.
  3340.        Note that all text tags of the message must be replaced, it
  3341.        will not work to replace just a few. (V6)
  3342.  
  3343.     If UBRM_UpdateHeaders is TRUE, the following header tags are accepted:
  3344.  
  3345.     BRMSG_FromName - The name of the user who this message is written by
  3346.         is pointed by (STRPTR) ti_Data. This is only the 'real name' of 
  3347.         the author. This tag must be supplied.
  3348.  
  3349.     BRMSG_FromAddr - The address of the user this messag is written by is
  3350.         pointed by (STRPTR) ti_Data. This is the author's net-address. 
  3351.         The name needn't redundantly be repeated in this field, if it's 
  3352.         already in BRMSG_FromName. Only use this if the message is in a
  3353.         network conference.
  3354.  
  3355.     BRMSG_ToName - The name of the user who this message is to is pointed
  3356.         by (STRPTR) ti_Data. This is only the 'real name'. When adding 
  3357.         messages with no receiver (to all), use a NULL pointer in ti_Data
  3358.         or omit this tag.
  3359.  
  3360.     BRMSG_ToAddr - The address of the user this messag is to is pointed by
  3361.         (STRPTR) ti_Data. This is the addressed person's net-address. The 
  3362.         name needn't redundantly be repeated in this field, if it's 
  3363.         already in BRMSG_ToName. Only use this if the message is in a 
  3364.         network conference. This tag can only be used when you use the 
  3365.         BRMSG_ToName tag.
  3366.  
  3367.     BRMSG_MsgID - The message ID string is pointed by (STRPTR) ti_Data.
  3368.         Use this tag when the message has a string as idenificator. This
  3369.         id is considered to be unique.
  3370.  
  3371.     BRMSG_OrginalNr - The number this message has on the BBS is in (ULONG)
  3372.         ti_Data. Use this tag when the message has a number as 
  3373.         identificator.
  3374.  
  3375.     BRMSG_RefID - If this message is an answer (STRPTR) ti_Data points to 
  3376.         the ID string for the message this message refer to. 
  3377.  
  3378.     BRMSG_RefNr - If this message is an answer (ULONG) ti_Data contains
  3379.         the messagenumber this message refer to. The messagenumber is the
  3380.         number the refered message has on the BBS.
  3381.         
  3382.     BRMSG_MsgSize - The size of the message on the remote system is in (ULONG)
  3383.         ti_Data. Use this tag when the message has a known size in bytes.
  3384.  
  3385.     BRMSG_SpecialID - A special ID for use by the mail/news parser can be
  3386.        kept in this (STRPTR) ti_Data. For instance, it can be used to keep
  3387.        POP server information to be able to retrieve a particular message
  3388.        at a later stage.
  3389.  
  3390.     BRMSG_ErrorString - An error description is in (STRPTR) ti_Data. This
  3391.        is for use by the parser to notify the host program of errors
  3392.        during retrieval of a message. (V6)
  3393.  
  3394.     BRMSG_CreationDate - The time the message was created is in (ULONG)
  3395.         ti_Data. The time is in seconds since 1.January 1978.
  3396.  
  3397.     BRMSG_CreationDateTxt - The time the message was created is in 
  3398.         (STRPTR) ti_Data. The formating of the string is free. Use this 
  3399.         when it is impossible to use BRMSG_CreationDate
  3400.  
  3401.     BRMSG_Subject - The subject of the message is pointed by (STRPTR) 
  3402.         ti_Data. This tag must be supplied.
  3403.  
  3404.  
  3405.     If UBRM_UpdateText is TRUE, the following text tags are accepted:
  3406.  
  3407.     BRMSG_ReplyConf - The name of the conference a reply to this message
  3408.         should be put is pointed by (STRPTR) ti_Data. If the message is 
  3409.         private, it should only be moved if it is possible to have private
  3410.         messages in this conference.
  3411.     
  3412.     BRMSG_ReplyName - Name of the user a reply of this message should go
  3413.         to is in (STRPTR) ti_Data. Same format as BRMSG_ToName.
  3414.  
  3415.     BRMSG_ReplyAddr - The address of the user a reply of this message 
  3416.         should go to is in (STRPTR) ti_Data. Same format as BRMSG_ToAddr.
  3417.  
  3418.     BRMSG_Comment - Comments concerning this message is in a NULL 
  3419.         terminated STRPTR array pointed by (STRPTR *) ti_Data. Each STRPTR
  3420.         represents a line of text. No newline characters are allowed. 
  3421.         Header information not used in anoter tag could be put here.
  3422.  
  3423.     BRMSG_Text - The text in this message is in a NULL terminated STRPTR
  3424.         array pointed by (STRPTR *) ti_Data. Each STRPTR represents a line
  3425.         of text. No newline characters are allowed. This tag must be
  3426.         supplied, but can point to a 0 line STRPTR array. Any information
  3427.         that do not belong to the orginal text must not be put here. The
  3428.         text may be of any size. Lines may be of any length. It is up to
  3429.         the reader program to wrap lines if needed.
  3430.  
  3431.     BRMSG_BinaryPart - File name for file containing the binary part is
  3432.         pointed by (STRPTR) ti_Data. Paths should be relative to
  3433.         bbs->bl_BBSPath, but absolute paths are alloved. This tag can be
  3434.         used more than once in a message.
  3435.  
  3436.     BRMSG_BinaryPartDesc - A description of the binary part is pointed by
  3437.         (STRPTR) ti_Data. The N'th use of this tag describes the n'th use
  3438.         of the BRMSG_BinaryPart tag. This tag must be used each time the
  3439.         BRMSG_BinaryPart tag is used.
  3440.  
  3441.     BRMSG_BinaryPartComment - Comments concerning a binary part is in a
  3442.         NULL terminated STRPTR array pointed by (STRPTR *) ti_Data. Each
  3443.         STRPTR represents a line of text. No newline characters are
  3444.         allowed. The N'th use of this tag comments the n'th use of the
  3445.         BRMSG_BinaryPart tag. This tag must be used each time the
  3446.         BRMSG_BinaryPart tag is used. It's legal for the comment to
  3447.         contain 0 lines.
  3448.  
  3449.     BRMSG_TextPart - If the message contains more than one text part,
  3450.        the parts beyond the first part should use this tag. The text is
  3451.         in a NULL terminated STRPTR array pointed by (STRPTR *) ti_Data.
  3452.         Each STRPTR represents a line of text. No newline characters are
  3453.         allowed. This tag can be used more than once in a message.
  3454.  
  3455.     BRMSG_TextPartComment - Comments concerning a text part is in a NULL
  3456.         terminated STRPTR array pointed by (STRPTR *) ti_Data. Each STRPTR
  3457.         represents a line of text. No newline characters are allowed. The
  3458.         N'th use of this tag comments the n'th use of the BRMSG_TextPart
  3459.         tag. This tag must be used each time the BRMSG_TextPart tag is
  3460.         used. It's legal for the comment to contain 0 lines.
  3461.  
  3462.     BRMSG_TextPartUniqueID - A unique numerical ID for the textpart should
  3463.        be provided with this (ULONG) tag. This ID can be used by the 
  3464.        application to find a certain textpart, and must be 
  3465.        unique within the same message. Eg. the first textpart might get
  3466.        an ID of 1, the second 2, etc.
  3467.  
  3468.     BRMSG_TextPartFilename - If the textpart consists of a textfile or
  3469.        somesuch where a filename is expected to be used when saving the
  3470.        part, the suggested filename is provided as (STRPTR) with this
  3471.        tag.
  3472.  
  3473.     BRMSG_MsgPart - A tag array for a message part is pointed by (TagItem
  3474.         *) ti_Data. The tagarry can contain *all* message tags, and *must*
  3475.         contain at least one BRMSG_#? tag. This tag can be used more than
  3476.         once in a message.
  3477.  
  3478.    Other accepted tags when updating headers and/or text:
  3479.  
  3480.     WBRMSG_Private - Message is flaged as private if (BOOL) ti_Data is 
  3481.         TRUE. Default is FALSE.
  3482.  
  3483.     WBRMSG_Read - Message is flagged as read by reciever if (BOOL) 
  3484.         ti_Data is TRUE. Default is FALSE.
  3485.  
  3486.     WBRMSG_Urgent - Message is flagged as urgent if (BOOL) ti_Data is 
  3487.         TRUE. Default is FALSE.
  3488.  
  3489.     WBRMSG_Important - Message is flagged as important if (BOOL) ti_Data 
  3490.         is TRUE. Default is FALSE.
  3491.     
  3492.     WBRMSG_Confidential - Message is flagged as confidential if (BOOL)
  3493.         ti_Data is TRUE. Default is FALSE.
  3494.  
  3495.     WBRMSG_ToFromUserStatus - The status of the MDF_TO_USER and
  3496.         MDF_FROM_USER flags this message should have is in (LONGBITS)
  3497.         ti_Data. When this tag is used, the sender or receiver will *not*
  3498.         be matched against the name and/or address of the user. When using
  3499.         this tag, the parser is responsible for checking if the message is
  3500.         to or from the user. 
  3501.  
  3502.    RESULT
  3503.     success - Boolean.
  3504.  
  3505.    EXAMPLE
  3506.  
  3507.    NOTES
  3508.  
  3509.    BUGS
  3510.  
  3511.    SEE ALSO
  3512.  
  3513. bbsread.library/UpdateDataStruct             bbsread.library/UpdateDataStruct
  3514.  
  3515.    NAME    
  3516.     UpdateDataStruct -- Updates data structures.
  3517.  
  3518.    SYNOPSIS
  3519.     fail = UpdateDataStruct( tagitems )
  3520.     D0                          A0
  3521.  
  3522.     struct TagItem * UpdateDataStruct( struct TagItem * );
  3523.  
  3524.     fail = UpdateDataStructTags( Tag1, ... )
  3525.  
  3526.     struct TagItem * UpdateDataStructTags( ULONG, ... );
  3527.  
  3528.    FUNCTION
  3529.     Function for updating data structures. This metod involves less
  3530.     overhead than freeing an getting a new data structure. If you don't
  3531.     use the UD_RemoveDeleted tag, you will be garanteed that all entrys 
  3532.     in the lists are still there. The entrys in a list may have changed 
  3533.     order, and there may have been inserted new nodes.
  3534.  
  3535.    INPUTS
  3536.     tagitems - Pointer to TagItem array.
  3537.  
  3538.     Here are the TagItem.ti_Tag values that are defined for
  3539.     UpdateDataStruct().
  3540.  
  3541.     UD_ConfList - Conference list to update datastructures in is pointed
  3542.         by (List *) ti_Data. 
  3543.  
  3544.     UD_ConfItem - ConfListItem structure to update is in (struct 
  3545.         ConfListItem *) ti_Data.
  3546.  
  3547.     UD_BBSList - BBS list to update datastructures in is pointed by 
  3548.         (List *) ti_Data.
  3549.  
  3550.     UD_BBSItem - BBSListItem structure to update is in (struct 
  3551.         BBSListItem *) ti_Data.
  3552.  
  3553.     UD_FAreaList - File area list to update datastructures in is pointed
  3554.         by (List *) ti_Data.
  3555.  
  3556.     UD_FAreaItem - FAreaListItem structure to update is in (struct 
  3557.         FAreaListItem *) ti_Data.
  3558.  
  3559.     UD_RemoveDeleted - Remove deleted entries in lists if (BOOL) ti_Data
  3560.         is TRUE. Default is FALSE. 
  3561.  
  3562.    RESULT
  3563.     fail - NULL on success. On failure, it points to the tag which caused
  3564.         the failure.
  3565.  
  3566.    EXAMPLE
  3567.  
  3568.    NOTES
  3569.  
  3570.    BUGS
  3571.  
  3572.    SEE ALSO
  3573.  
  3574. bbsread.library/WriteBREvent                     bbsread.library/WriteBREvent
  3575.  
  3576.    NAME    
  3577.     WriteBREvent -- Adds a event to a bbs.
  3578.  
  3579.    SYNOPSIS
  3580.     eventnr = WriteBREvent( bbs, event, tagitems )
  3581.     D0                     A0    D1      A1
  3582.  
  3583.     ULONG WriteBREvent( struct BBSListItem *, ULONG, struct TagItem * );
  3584.  
  3585.     eventnr = WriteBREventTags( bbs, event, Tag1, ... )
  3586.  
  3587.     ULONG WriteBREventTags( struct BBSListItem *, ULONG, ULONG, ... );
  3588.  
  3589.    FUNCTION
  3590.     This function adds a event to the list of events to be done on the
  3591.     next call to the BBS.
  3592.  
  3593.     Available eventtypes and what tags that are allowed to use with the
  3594.     different event types are defined in the BBSType for this BBS. Be 
  3595.     sure to pass all the NeedTags with apropriate values. This function  
  3596.     will set the BDF_EVENTS_CHANGED flag for this BBS.
  3597.  
  3598.    INPUTS
  3599.     bbs - Pointer to the BBSListItem for the bbs to add the event to.
  3600.     event - What type of event to add. For a list of types se 
  3601.         <libraries/bbsread.h>
  3602.     tagitems - Pointer to TagItem array.
  3603.  
  3604.     Here are the TagItem.ti_Tag values that are defined for
  3605.     WriteBREvent().
  3606.  
  3607.     BREV_ToName - Name to send to is pointed by (STRPTR) ti_Data.
  3608.     BREV_ToAddr - Address to send to is pointed by (STRPTR) ti_Data.
  3609.     BREV_Subject - Subject of message is pointed by (STRPTR) ti_Data. 
  3610.         Must not be longer than TypeData->td_SubjectLength.
  3611.  
  3612.     BREV_Conference - Name of conference is pointed by (STRPTR) ti_Data.
  3613.     BREV_RefNr - The number of the message to reply to is in (ULONG) 
  3614.         ti_Data. The message number is the number this message has in the
  3615.         local database.
  3616.  
  3617.     BREV_RefOrginalNr - Number of the message on BBS to reply to is in
  3618.         (ULONG) ti_Data.
  3619.  
  3620.     BREV_RefId - The idstring of the message to reply to is pointed by 
  3621.         (STRPTR) ti_Data.
  3622.  
  3623.     BREV_MsgFile - Name of file with text is pointed by (STRPTR) ti_Data.
  3624.         Filename is relative to bbs->bl_BBSPath. Each line in this file 
  3625.         should not be longer than TypeData->td_LineLength.
  3626.  
  3627.     BREV_Private - Message should be flagged as private if (BOOL) ti_Data
  3628.         is TRUE. Default value is FALSE.
  3629.  
  3630.     BREV_LocalFile - Path and name of local file is in (STRPTR) ti_Data.
  3631.     BREV_Directory - Directory for file to up/down load is in (STRPTR) 
  3632.         ti_Data. This is the remote directory.
  3633.  
  3634.     BREV_FileName - Name of file to upload/download is pointed by (STRPTR)
  3635.         ti_Data. This is the remote filename. It must not be longer than 
  3636.         TypeData->td_FileNameLen.
  3637.  
  3638.     BREV_DownloadNotify - Notify on download if (BOOL) ti_Data is TRUE. 
  3639.         Default value is FALSE.
  3640.  
  3641.     BREV_FileDescr - File description is pointed by (STRPTR) ti_Data. Must
  3642.         not be longer than TypeData->td_FileDescrLen.
  3643.  
  3644.     BREV_DetailedFileDescr - Name of file with detailed file description
  3645.         is pointed by (STRPTR) ti_Data. Filename is relative to
  3646.         bbs->bl_BBSPath. Each line in this file should not be longer than
  3647.         TypeData->td_LineLength.
  3648.  
  3649.     BREV_FromMessageNr - Message number to start at is in (ULONG) ti_Data.
  3650.     BREV_ToMessageNr - Message number to end at is in (ULONG) ti_Data.
  3651.     BREV_CommandString - Command string is in (STRPTR) ti_Data.
  3652.     BREV_Boolean - Boolean value is in (BOOL) ti_Data.
  3653.     BREV_Date - Time in seconds since 1.January 1978 is in (ULONG) 
  3654.         ti_Data.
  3655.  
  3656.     BREV_PGPSignID - Id for key to sign with is pointed by (STRPTR) 
  3657.         ti_Data. It's preferable that the keyid is used to identify a 
  3658.         key. (e.g. 0x5B4231FD) Using a '*' will sign with the first key
  3659.         in the secret keyring.
  3660.  
  3661.     BREV_PGPEncryptID - Id for key(s) to encrypt with is pointed by
  3662.         (STRPTR) ti_Data. It's preferable that the keyid is used to
  3663.         identify a key. (e.g. 0x5B4231FD) If more than one key are used to
  3664.         encrypt, the id for each key should be separeated with a space.
  3665.  
  3666.     BREV_RefConference - Name of the conferene of the message to reply to
  3667.         is in (STRPTR) ti_Data. This tag is to be used when replying
  3668.         messages to other conferences than the conference of the orginal
  3669.         message. Should ony be used when the bbs type has the
  3670.         TDF_GLOBAL_REPLIES flag set.
  3671.  
  3672.     BREV_Urgent - Flag event as urgent if (BOOL) ti_Data is TRUE. Default
  3673.         value is FALSE.
  3674.  
  3675.     BREV_Important - Flag event as important if (BOOL) ti_Data is TRUE.
  3676.         Default value is FALSE.
  3677.  
  3678.     BREV_Confidential - Flag event as confidential if (BOOL) ti_Data is
  3679.         TRUE. Default value is FALSE.
  3680.  
  3681.     BREV_ReturnReceipt - Set return reciept flagg for event if (BOOL)
  3682.         ti_Data is TRUE. Default value is FALSE.
  3683.  
  3684.     BREV_Encode8bit - Encode outgoing text if it is 8 bit and (BOOL)
  3685.         ti_Data is TRUE. Default value is FALSE.
  3686.  
  3687.     WBREV_UpdateEventNr - Update event with event number (ULONG) ti_Data.
  3688.         All old tags for this event will be discarded. Will clear the
  3689.         flags set for this event.
  3690.  
  3691.    RESULT
  3692.     eventnr - The number the event got in the database. Returns 0 on 
  3693.         failure.
  3694.  
  3695.    EXAMPLE
  3696.  
  3697.    NOTES
  3698.     All strings is considerd to be in ISO charset.
  3699.  
  3700.     bbs->bl_Data->bd_LastEvent, bbs->bl_Data->bd_NumEvents and 
  3701.     bbs->bl_Data->bd_Flags will be updated by WriteBREvent().
  3702.  
  3703.    BUGS
  3704.  
  3705.    SEE ALSO
  3706.  
  3707. bbsread.library/WriteBRFile                       bbsread.library/WriteBRFile
  3708.  
  3709.    NAME    
  3710.     WriteBRFile -- Write an entry to the file database.
  3711.  
  3712.    SYNOPSIS
  3713.     filenr = WriteBRFile( farea, tagitems )
  3714.     D0                    A0       A1
  3715.  
  3716.     ULONG WriteBRFile( struct FAreaListItem *, struct TagItem * );
  3717.  
  3718.     filenr = WriteBRFileTags( farea, Tag1, ... )
  3719.  
  3720.     ULONG WriteBRFileTags( struct FAreaListItem *, ULONG, ... );
  3721.  
  3722.    FUNCTION
  3723.     Writes an entry to a file area in the file database for a bbs.
  3724.  
  3725.    INPUTS
  3726.     farea - Pointer to FAreaListItem for file area to write file to.
  3727.  
  3728.     tagitems - Pointer to TagItem array.
  3729.  
  3730.     Here are the TagItem.ti_Tag values that are defined for
  3731.     WriteBRFile().
  3732.  
  3733.     BRFILE_Name - The name the file is identified with on the bbs is 
  3734.         pointed by (STRPTR) ti_Data. This tag must be supplied when 
  3735.         adding or updating file tags.
  3736.  
  3737.     BRFILE_Date - The date the file has on the bbs is in (ULONG) ti_Data. 
  3738.         The time is in seconds since 1.January 1978.
  3739.     
  3740.     BRFILE_Size - The size of the file is in (ULONG) ti_Data.
  3741.  
  3742.     BRFILE_Description - A (short) description of the file is in a NULL
  3743.         terminated STRPTR array pointed by (STRPTR *) ti_Data. Each STRPTR
  3744.         represents a line of text. No newline characters are allowed.
  3745.  
  3746.     BRFILE_Downloads - Number of times the file has been downloaded from
  3747.         the bbs is in (ULONG) ti_Data.
  3748.  
  3749.     WBRF_UpdateFileNr - Update the file with filenumber (ULONG) ti_Data. 
  3750.         All old tags for this file will be discarded.
  3751.  
  3752.     WBRF_DeleteFile - Mark the file with file number supplied in the 
  3753.         WBRF_UpdateFileNr tag as deleted if (BOOL) ti_Data is TRUE.
  3754.         This tag is ignored when the WBRF_UpdateFileNr tag is not 
  3755.         supplied.
  3756.  
  3757.    RESULT
  3758.     filenr - The number the file got in the database. Returns 0 on 
  3759.         failure.
  3760.  
  3761.    EXAMPLE
  3762.  
  3763.    NOTES
  3764.  
  3765.    BUGS
  3766.  
  3767.    SEE ALSO
  3768.  
  3769. bbsread.library/WriteBRIEFMsg                   bbsread.library/WriteBRIEFMsg
  3770.  
  3771.    NAME    
  3772.     WriteBRIEFMsg -- Write a message in BRIEF.
  3773.  
  3774.    SYNOPSIS
  3775.     error = WriteBRIEFMsg( fileid, conf, msgnr )
  3776.     D0                      A0     A1    D0
  3777.     
  3778.     BOOL WriteBRIEFMsg( APTR, struct ConfListItem *, ULONG );
  3779.  
  3780.    FUNCTION
  3781.     Writes a message in BRIEF to a file opened by BufBROpen(). 
  3782.  
  3783.    INPUTS
  3784.     fileid - APTR to BBSRead file handler.
  3785.     conf - Pointer to ConfListItem for conference.
  3786.     msgnr - Message number to write.
  3787.  
  3788.    RESULT
  3789.     error - Boolean.
  3790.  
  3791.    EXAMPLE
  3792.  
  3793.    NOTES
  3794.  
  3795.    BUGS
  3796.  
  3797.    SEE ALSO
  3798.  
  3799. bbsread.library/WriteBRKill                       bbsread.library/WriteBRKill
  3800.  
  3801.    NAME    
  3802.     WriteBRKill -- Write an entry to the kill database.
  3803.  
  3804.    SYNOPSIS
  3805.     killnr = WriteBRKill( bbs, tagitems )
  3806.     D0                    A0       A1
  3807.  
  3808.     ULONG WriteBRKill( struct BBSListItem *, struct TagItem * );
  3809.  
  3810.     killnr = WriteBRKillTags( bbs, Tag1, ... )
  3811.  
  3812.     ULONG WriteBRKillTags( struct BBSListItem *, ULONG, ... );
  3813.  
  3814.    FUNCTION
  3815.     Writes an entry to the kill database for aa bbs. This kill database
  3816.     is used during message adding. Killed messages will be added to the 
  3817.     database, but will not be marked as unread unless WBRK_MarkDeleted is 
  3818.     used, in which case the message is NOT added to the database. 
  3819.     A message will be killed if the message data matches *one* of the
  3820.     kills for a bbs. Kills can also be used to set message flags, see tags
  3821.     below.
  3822.  
  3823.    INPUTS
  3824.     bbs - Pointer to BBSListItem for bbs to wtitekill to.
  3825.  
  3826.     tagitems - Pointer to TagItem array.
  3827.  
  3828.     Here are the TagItem.ti_Tag values that are defined for
  3829.     WriteBRKill().
  3830.  
  3831.     BRMSG_#? - All normal message tags can be used in a kill. Standard 
  3832.         AmigaDos wildcards can be used in all string tags. In string array,
  3833.         tags all given lines must match one line in the corresponding tag
  3834.         in the message. At least one message tag must be supplied to add
  3835.         a kill.
  3836.  
  3837.     BRKILL_Conference - Which conference to kill in is pointed by (STRPTR)
  3838.         ti_Data. Standard AmigaDos wildcards can be used. Default value 
  3839.         for this tag is '#?'.
  3840.  
  3841.     BRKILL_Private - The kill will only match private messages if (BOOL)
  3842.         ti_Date is TRUE. If (BOOL) ti_Date is FALSE, the kill will only 
  3843.         match non-private messages. The default is not to regard the 
  3844.         private flag.
  3845.  
  3846.     BRKILL_Description - A description the user can use for this kill
  3847.         is pointed by (STRPTR) ti_Data. New for V5 of bbsread.library.
  3848.  
  3849.     WBRK_UpdateKillNr - Update the kill will kill number (ULONG) ti_Data.
  3850.         All old tags and flags for this kill will be discarded.
  3851.  
  3852.     WBRK_DeleteKill - Mark the kill with the kill number supplied in the
  3853.         WBRK_UpdateKillNr tag  as deleted if (BOOL) ti_Data is TRUE.
  3854.  
  3855.     WBRK_MarkKeep - Mark messages matching the kill with MDF_KEEP if 
  3856.         (BOOL) ti_Data is TRUE. The message will be marked as unread.
  3857.  
  3858.     WBRK_MarkUrgent - Mark messages matching the kill with MDF_URGENT if
  3859.         (BOOL) ti_Data is TRUE. The message will be marked as unread.
  3860.  
  3861.     WBRK_MarkImportant - Mark messages matching the kill with 
  3862.         MDF_IMPORTANT if (BOOL) ti_Data is TRUE. The message will be 
  3863.         marked as unread.
  3864.  
  3865.     WBRK_MarkDeleted - Mark messages matching the kill with 
  3866.         MDF_DELETED if (BOOL) ti_Data is TRUE. The message will
  3867.         not be written do the database in this case. (4.66+)
  3868.  
  3869.     WBRK_MarkHazeLevel - Mark messages matching the kill with the haze
  3870.         level according to (ULONG) ti_Data. Possible haze levels are 0 
  3871.         to 3. The message will be marked as unread. 
  3872.             0 - No hazing.
  3873.             1 - The message will be kept at least as long as 
  3874.                 GlobalConfig->gc_HazeLevel1 seconds.
  3875.             2 - The message will be kept at least as long as 
  3876.                 GlobalConfig->gc_HazeLevel2 seconds.
  3877.             3 - The message will be kept at least as long as 
  3878.                 GlobalConfig->gc_HazeLevel3 seconds.
  3879.  
  3880.    RESULT
  3881.     killnr - The number the kill got in the database. Returns 0 on 
  3882.         failure.
  3883.  
  3884.    EXAMPLE
  3885.  
  3886.    NOTES
  3887.     WBRK_MarkDeleted is new for 4.66 and higher
  3888.     BRKILL_Description is new for V5.
  3889.  
  3890.    BUGS
  3891.  
  3892.    SEE ALSO
  3893.  
  3894. bbsread.library/WriteBRMessage                 bbsread.library/WriteBRMessage
  3895.  
  3896.    NAME    
  3897.     WriteBRMessage -- Writes a messsage to a conference.
  3898.  
  3899.    SYNOPSIS
  3900.     msgnr = WriteBRMessage( conf, tagitems )
  3901.     D0                       A0      A1
  3902.  
  3903.     ULONG WriteBRMessage( struct ConfListItem *, struct TagItem * );
  3904.  
  3905.     msgnr = WriteBRMessageTags( conf, Tag1, ... )
  3906.  
  3907.     ULONG WriteBRMessageTags( struct ConfListItem *, ULONG, ... );
  3908.  
  3909.    FUNCTION
  3910.     This funtions Writes a message to a conference. 
  3911.  
  3912.     The multiple parts in multipart messages should be put in the taglist
  3913.     in the order they should be presented. BRMSG_Text should always
  3914.     contain the first text part of the message.
  3915.  
  3916.    INPUTS
  3917.     conf - Pointer to the ConfListItem for the conference to Write the 
  3918.         message to.
  3919.     
  3920.     tagitems - Pointer to TagItem array.
  3921.  
  3922.     Here are the TagItem.ti_Tag values that are defined for
  3923.     WriteBRMessage().
  3924.  
  3925.     BRMSG_FromName - The name of the user who this message is written by
  3926.         is pointed by (STRPTR) ti_Data. This is only the 'real name' of 
  3927.         the author. This tag must be supplied.
  3928.  
  3929.     BRMSG_FromAddr - The address of the user this messag is written by is
  3930.         pointed by (STRPTR) ti_Data. This is the author's net-address. 
  3931.         The name needn't redundantly be repeated in this field, if it's 
  3932.         already in BRMSG_FromName. Only use this if the message is in a
  3933.         network conference.
  3934.  
  3935.     BRMSG_ToName - The name of the user who this message is to is pointed
  3936.         by (STRPTR) ti_Data. This is only the 'real name'. When adding 
  3937.         messages with no receiver (to all), use a NULL pointer in ti_Data
  3938.         or omit this tag.
  3939.  
  3940.     BRMSG_ToAddr - The address of the user this messag is to is pointed by
  3941.         (STRPTR) ti_Data. This is the addressed person's net-address. The 
  3942.         name needn't redundantly be repeated in this field, if it's 
  3943.         already in BRMSG_ToName. Only use this if the message is in a 
  3944.         network conference. This tag can only be used when you use the 
  3945.         BRMSG_ToName tag.
  3946.  
  3947.     BRMSG_MsgID - The message ID string is pointed by (STRPTR) ti_Data.
  3948.         Use this tag when the message has a string as idenificator. This
  3949.         id is considered to be unique.
  3950.  
  3951.     BRMSG_OrginalNr - The number this message has on the BBS is in (ULONG)
  3952.         ti_Data. Use this tag when the message has a number as 
  3953.         identificator.
  3954.  
  3955.     BRMSG_RefID - If this message is an answer (STRPTR) ti_Data points to 
  3956.         the ID string for the message this message refer to. 
  3957.  
  3958.     BRMSG_RefNr - If this message is an answer (ULONG) ti_Data contains
  3959.         the messagenumber this message refer to. The messagenumber is the
  3960.         number the refered message has on the BBS.
  3961.         
  3962.     BRMSG_MsgSize - The size of the message on the remote system is in (ULONG)
  3963.         ti_Data. Use this tag when the message has a known size in bytes. (V6)
  3964.  
  3965.     BRMSG_SpecialID - A special ID for use by the mail/news parser can be
  3966.        kept in this (STRPTR) ti_Data. For instance, it can be used to keep
  3967.        POP server information to be able to retrieve a particular message
  3968.        at a later stage. (V6)
  3969.  
  3970.     BRMSG_ErrorString - An error description is in (STRPTR) ti_Data. This
  3971.        is for use by the parser to notify the host program of errors
  3972.        during retrieval of a message. (V6)
  3973.  
  3974.     BRMSG_CreationDate - The time the message was created is in (ULONG)
  3975.         ti_Data. The time is in seconds since 1.January 1978.
  3976.  
  3977.     BRMSG_CreationDateTxt - The time the message was created is in 
  3978.         (STRPTR) ti_Data. The formating of the string is free. Use this 
  3979.         when it is impossible to use BRMSG_CreationDate
  3980.  
  3981.     BRMSG_Subject - The subject of the message is pointed by (STRPTR) 
  3982.         ti_Data. This tag must be supplied.
  3983.  
  3984.     BRMSG_ReplyConf - The name of the conference a reply to this message
  3985.         should be put is pointed by (STRPTR) ti_Data. If the message is 
  3986.         private, it should only be moved if it is possible to have private
  3987.         messages in this conference.
  3988.     
  3989.     BRMSG_ReplyName - Name of the user a reply of this message should go
  3990.         to is in (STRPTR) ti_Data. Same format as BRMSG_ToName.
  3991.  
  3992.     BRMSG_ReplyAddr - The address of the user a reply of this message 
  3993.         should go to is in (STRPTR) ti_Data. Same format as BRMSG_ToAddr.
  3994.  
  3995.     BRMSG_Comment - Comments concerning this message is in a NULL 
  3996.         terminated STRPTR array pointed by (STRPTR *) ti_Data. Each STRPTR
  3997.         represents a line of text. No newline characters are allowed. 
  3998.         Header information not used in anoter tag could be put here.
  3999.  
  4000.     BRMSG_Text - The text in this message is in a NULL terminated STRPTR
  4001.         array pointed by (STRPTR *) ti_Data. Each STRPTR represents a line
  4002.         of text. No newline characters are allowed. This tag must be
  4003.         supplied, but can point to a 0 line STRPTR array, even if adding
  4004.        only header information in V6 of bbsread. Any information
  4005.         that do not belong to the orginal text must not be put here. The
  4006.         text may be of any size. Lines may be of any length. It is up to
  4007.         the reader program to wrap lines if needed.
  4008.  
  4009.     BRMSG_BinaryPart - File name for file containing the binary part is
  4010.         pointed by (STRPTR) ti_Data. Paths should be relative to
  4011.         bbs->bl_BBSPath, but absolute paths are alloved. This tag can be
  4012.         used more than once in a message.
  4013.  
  4014.     BRMSG_BinaryPartDesc - A description of the binary part is pointed by
  4015.         (STRPTR) ti_Data. The N'th use of this tag describes the n'th use
  4016.         of the BRMSG_BinaryPart tag. This tag must be used each time the
  4017.         BRMSG_BinaryPart tag is used.
  4018.  
  4019.     BRMSG_BinaryPartComment - Comments concerning a binary part is in a
  4020.         NULL terminated STRPTR array pointed by (STRPTR *) ti_Data. Each
  4021.         STRPTR represents a line of text. No newline characters are
  4022.         allowed. The N'th use of this tag comments the n'th use of the
  4023.         BRMSG_BinaryPart tag. This tag must be used each time the
  4024.         BRMSG_BinaryPart tag is used. It's legal for the comment to
  4025.         contain 0 lines.
  4026.  
  4027.     BRMSG_TextPart - If the message contains more than one text part,
  4028.        the parts beyond the first part should use this tag. The text is
  4029.         in a NULL terminated STRPTR array pointed by (STRPTR *) ti_Data.
  4030.         Each STRPTR represents a line of text. No newline characters are
  4031.         allowed. This tag can be used more than once in a message.
  4032.  
  4033.     BRMSG_TextPartComment - Comments concerning a text part is in a NULL
  4034.         terminated STRPTR array pointed by (STRPTR *) ti_Data. Each STRPTR
  4035.         represents a line of text. No newline characters are allowed. The
  4036.         N'th use of this tag comments the n'th use of the BRMSG_TextPart
  4037.         tag. This tag must be used each time the BRMSG_TextPart tag is
  4038.         used. It's legal for the comment to contain 0 lines.
  4039.  
  4040.     BRMSG_TextPartUniqueID - A unique numerical ID for the textpart should
  4041.        be provided with this (ULONG) tag. This ID can be used by the 
  4042.        application to find a certain textpart, and must be 
  4043.        unique within the same message. Eg. the first textpart might get
  4044.        an ID of 1, the second 2, etc.
  4045.  
  4046.     BRMSG_TextPartFilename - If the textpart consists of a textfile or
  4047.        somesuch where a filename is expected to be used when saving the
  4048.        part, the suggested filename is provided as (STRPTR) with this
  4049.        tag.
  4050.  
  4051.     BRMSG_MsgPart - A tag array for a message part is pointed by (TagItem
  4052.         *) ti_Data. The tagarry can contain *all* message tags, and *must*
  4053.         contain at least one BRMSG_#? tag. This tag can be used more than
  4054.         once in a message.
  4055.  
  4056.     WBRMSG_MarkMessage - Message will be marked if (BOOL) ti_Data is TRUE.
  4057.         NB: Default is TRUE. Messages written by 
  4058.         bd_UserName/gc_GlobalUserName which not are to bd_UserName and 
  4059.         messages which matches a normal kill will not be marked.
  4060.  
  4061.     WBRMSG_Private - Message is flaged as private if (BOOL) ti_Data is 
  4062.         TRUE. Default is FALSE.
  4063.  
  4064.     WBRMSG_Read - Message is flagged as read by reciever if (BOOL) 
  4065.         ti_Data is TRUE. Default is FALSE.
  4066.  
  4067.     WBRMSG_Urgent - Message is flagged as urgent if (BOOL) ti_Data is 
  4068.         TRUE. Default is FALSE.
  4069.  
  4070.     WBRMSG_Important - Message is flagged as important if (BOOL) ti_Data 
  4071.         is TRUE. Default is FALSE.
  4072.     
  4073.     WBRMSG_Confidential - Message is flagged as confidential if (BOOL)
  4074.         ti_Data is TRUE. Default is FALSE.
  4075.  
  4076.     WBRMSG_ToFromUserStatus - The status of the MDF_TO_USER and
  4077.         MDF_FROM_USER flags this message should have is in (LONGBITS)
  4078.         ti_Data. When this tag is used, the sender or receiver will *not*
  4079.         be matched against the name and/or address of the user. When using
  4080.         this tag, the parser is responsible for checking if the message is
  4081.         to or from the user. 
  4082.  
  4083.     WBRMSG_Queued - Message is flagged as queued for later download if (BOOL)
  4084.         ti_Data is TRUE. Default is FALSE. (V6)
  4085.  
  4086.     WBRMSG_EmptyBody - Message is flagged as having no message body if (BOOL)
  4087.         ti_Data is TRUE. Default is FALSE. Make sure to use this tag when
  4088.        adding only headers. This flag will be cleared automatically when
  4089.        adding a body using UpdateBRMessage(). (V6)
  4090.  
  4091.    RESULT
  4092.     msgnr - The number the message got in the database. Returns 0 on 
  4093.         failure and -1 if the message matched a kill that would delete
  4094.         the message, in which case the message will not be added to
  4095.         the database.
  4096.  
  4097.    EXAMPLE
  4098.     Some   examples   for  splitting  addresses  in  'Name'  and
  4099.     'Address':
  4100.  
  4101.     RFC:
  4102.  
  4103.     "Martin Horneffer <maho@balrog.dfv.rwth-aachen.de>"
  4104.     -> name: "Martin Horneffer"
  4105.        address: "maho@balrog.dfv.rwth-aachen.de"
  4106.  
  4107.     "horneff@pool.informatik.rwth-aachen.de (Martin Horneffer)"
  4108.     -> name: "Martin Horneffer"
  4109.        address: "horneff@pool.informatik.rwth-aachen.de"
  4110.  
  4111.     "horneff@pool.informatik.rwth-aachen.de"
  4112.     -> name: "horneff"
  4113.        address: "horneff@pool.informatik.rwth-aachen.de"
  4114.  
  4115.     FidoNet:
  4116.  
  4117.     "Martin Horneffer at 2:242/7.9"
  4118.     -> name: "Martin Horneffer"
  4119.        address: "2:242/7.9"
  4120.  
  4121.     "Joerg Gutzke at 2:242/7"
  4122.     -> name: "Joerg Gutzke"
  4123.        address: "2:242/7"
  4124.  
  4125.    NOTES
  4126.     All strings is considered to be in the BRCS_ISO charset. To get the 
  4127.     charset defined for this Conf/BBS/BBSType use ConfCharset().
  4128.  
  4129.     -1 is a new return code added for 4.65 and higher of bbsread.library
  4130.  
  4131.    BRMSG_Text must contain atleast an empty array, even if you are adding
  4132.    only header information.
  4133.  
  4134.    BUGS
  4135.  
  4136.    SEE ALSO
  4137.  
  4138. bbsread.library/WriteBRUser                       bbsread.library/WriteBRUser
  4139.  
  4140.    NAME    
  4141.     WriteBRUser -- Writes a user to a bbs.
  4142.  
  4143.    SYNOPSIS
  4144.     usernr = WriteBRUser( bbs, tagitems )
  4145.     D0                     A0      A1
  4146.  
  4147.     ULONG WriteBRUser( struct BBSListItem *, struct TagItem * );
  4148.  
  4149.     usernr = WriteBRUserTags( bbs, Tag1, ... )
  4150.  
  4151.     ULONG WriteBRUserTags( struct BBSListItem *, ULONG, ... );
  4152.  
  4153.    FUNCTION
  4154.     Writes a user to the userdatabase for a bbs.
  4155.  
  4156.    INPUTS
  4157.     bbs - Pointer to BBSListItem for bbs to write user to.
  4158.  
  4159.     tagitems - Pointer to TagItem array.
  4160.  
  4161.     Here are the TagItem.ti_Tag values that are defined for
  4162.     WriteBRUser().
  4163.  
  4164.     BRUSR_Name - The name the user has om this bbs is pointed by (STRPTR)
  4165.         ti_Data. This tag must be supplied when adding or updating a user.
  4166.  
  4167.     BRUSR_Address - The address the user has on this bbs is pointed by 
  4168.         (STRPTR) ti_Data. 
  4169.  
  4170.     BRUSR_Alias - Alias to use for refering to this user is pointed by
  4171.         (STRPTR) ti_Data. This alias can be used to look up this user 
  4172.         in the database.
  4173.  
  4174.     BRUSR_Comment - A comment that can be attatched to this user is in a 
  4175.         NULL terminated STRPTR array pointed by (STRPTR *) ti_Data. Each
  4176.         STRPTR represents a line of text. No newline characters are 
  4177.         allowed.
  4178.  
  4179.     BRUSR_Encode8BitMsg - Encode 8 bit private messages to this user if
  4180.         (BOOL) ti_Data is TRUE. Default is FALSE. Only applicable when the
  4181.         TDF_SUPPORTS_ENCODE_8BIT_MAIL flag is set for the bbstype of this
  4182.         bbs.
  4183.  
  4184.     BRUSR_PGPkeyID - The PGP key ID for this users PGP key is pointed by
  4185.         (STRPTR) ti_Data.
  4186.  
  4187.     WBRUSR_UpdateUserNr - Update the user with user number (ULONG) 
  4188.         ti_Data. All old tags for this user will be discarded.
  4189.  
  4190.     WBRUSR_DeleteUser - Mark the user with the usernumber supplied in the
  4191.         WBRUSR_UpdateUserNr tag as deleted if (BOOL) ti_Data is TRUE. 
  4192.         This tag is ignored when the WBRUSR_UpdateUserNr tag is not 
  4193.         supplied.
  4194.  
  4195.     WBRUSR_OnlyIfNotExist - If (BOOL) ti_Data is TRUE, the user will only
  4196.         be written to the database if the name given in BRUSR_Name don't 
  4197.         exist in the database. Default is FALSE. This tag is ignored when
  4198.         updating users with WBRUSR_UpdateUserNr.
  4199.  
  4200.    RESULT
  4201.     usernr - The number the user got in the database. Returns 0 on 
  4202.         failure.
  4203.  
  4204.    EXAMPLE
  4205.  
  4206.    NOTES
  4207.  
  4208.    BUGS
  4209.  
  4210.    SEE ALSO
  4211.  
  4212. bbsread.library/WritePassiveConfList     bbsread.library/WritePassiveConfList
  4213.  
  4214.    NAME    
  4215.     WritePassiveConfList -- Write to the passive conference list.
  4216.  
  4217.    SYNOPSIS
  4218.     error = WritePassiveConfList( bbs, passConfList )
  4219.     D0                            A0       A1
  4220.     
  4221.     BOOL WritePassiveConfList( struct BBSListItem *, struct List * );
  4222.  
  4223.    FUNCTION
  4224.     Writes a list of conference names to the passive conference list 
  4225.     datafiles. The old list is deleted before writing this new one. The 
  4226.     passive conference list is a list of *all* available conferences at
  4227.     the bbs. It should be used when the user want to send a join event.
  4228.  
  4229.     The list should only be written when the parser has got a list over 
  4230.     all conferences at the bbs. If you don't have the internal number for
  4231.     the conference, pl_BBSConfNr must be initalized to -1.
  4232.  
  4233.    INPUTS
  4234.     bbs - Pointer to the bbs which the list should be written to.
  4235.     passConfList - Pointer to a list of struct PasssConfListItem. 
  4236.  
  4237.    RESULT
  4238.     error - Boolean.
  4239.  
  4240.    EXAMPLE
  4241.  
  4242.    NOTES
  4243.  
  4244.    BUGS
  4245.  
  4246.    SEE ALSO
  4247.  
  4248.