A              ---->Anonymous ftp Directory [ANU_News.Patches]<---- J The files in this directory are source patches for Geoff Huston's ANU NewsM implementation of News/NNTP under VMS which have been posted to the newsgroup : news.software.anu-news.  Patch files are named as follows:K  - If a patch has not been incorporated into the distributed source code of M    an ANU News release, the file name has the format yymmdd_file.Patch, where K    'yymmdd' is the date the patch was posted, and 'file' is the name of the K    source file which is revised by the patch.  Some patches may affect more J    than one file; in this case, the name is that of the C source file mostI    affected (the name of a header file is used only if the patch does not     revise any C files). D  - If a patch has been incorporated into a subsequent release of theK    distributed ANU News source code, the file name has the format described J    above, but the file type has the format .Patch_ObsltNNNN, where NNNN isH    a 4 character string identifying the release into which the patch wasN    incorporated (e.g. 920629_NewsFiles.Patch_Obslt61b7, which was incorporatedE    into release 6.1b7 of ANU News). At present, the following version -    identifiers are in use:                    K        61b6 - indicates patches incorporated into ANU News release 6.1beta6 K        61b7 - indicates patches incorporated into ANU News release 6.1beta7 K        61b8 - indicates patches incorporated into ANU News release 6.1beta8 O Thus, if you want to retrieve only the patches which revise the most recent ANU L News release, you can use the ftp command mget *.patch, while if you want toM retrieve all patches which revise a given ANU News release, you should add to E this a series of mget *.patch_obsltNNNN commands, for each NNNN which L identifies a release later than the one you wish to revise.  At present, the< following version identifiers are in use:                     4                           ---->Applying a Patch<----H 	The patch files are designed to be used with the Wall patch tool.  ThisN program, along with the corresponding diff utility, is available for anonymousI ftp here (in directory [Anonymous.Util.VMS.SysMaint]).  The DCL procedure L NewsPatch.Com, located in this directory, is designed to apply a patch afterI making copies of the affected files.  (In order to take full advantage of I NewsPatch.Com, you should use the version of the Wall patch program which H incorporates the -a and FAILURE patches [the one available here does].) K Alternatively, you can apply the patches by defining a symbol which invokes H patch as a foreign command (e.g. UxPatch == "$dev:[dir]Wall_Patch"), setI default to the News_Src directory, and run patch with the command UxPatch N <{patchfile} where {patchfile} is the file specification of the patch you wantM to apply.  In this case, you can use  patch -R to remove a troublesome patch. N The patch tool will print progress reports, and will inform you of the results at each step in the process.  G 	More information on the function of patch and diff can be found in the K documentation accompanying these programs.  There's nothing magic about the N patch files, and the changes can be made by hand; the patch program just makesM it easier.  Occasionally, if you're using a modified version one of the files F affected by the patch (either previously patched or modified by hand),L automatic application of the patch may fail.  In this case, you will have to# make the necessary changes by hand.   6                         ---->The PatchList.h File<----J 	Since News patches aren't cumulative in general, and since some sites mayG not choose to apply all patches, I felt that rather than incrementing a K patchlevel.h file, it would be better to create a patchlist.h file and just N record the ID of each patch applied.  In order to do this automatically as theM patch is applied, create a file named PatchList.h in your News_Src directory, M and type the line "=+=+= End =+=+=" (no quotes) as the body of the file.  The L Patch ID of each patch applied will be added automatically to this file justJ before the end marker, if the patch is applied using the directions above.  /                               ---->Caveats<---- L 	These patches are just the changes posted by the original author, placed inM a standard format.  In general, I haven't been able to test their correctness M or effects.  YMMV - I can't accept any responsibility for any consequences of I applying any patch to your code.  Always keep an unpatched version of all ; affected files, in case the patch does more harm than good. L 	If it becomes apparent that a patch is defective, I'll try to supplement itM with a corrected patch.  In this case, I'll replace the diff in the defective L patch file with a pointer to the corrected patch ID, and place a note in theL Description: header of the corrected patch indicating that it supersedes theN defective patch.  In no case will I make any changes to source code which wereN not specified in the original post, without changing the author attribution of5 the patch, or getting the original author's approval. K 	Please remember that I'm maintaining this patch collection on my own time, L so I may not be able to address a specific issue for some time, depending on" the demands of other committments.G 	Finally, maintaining of this collection is my work alone, and does not H reflect the efforts of HHMI, the University of Pennsylvania or any otherC organization.  The patches are available free of charge, and may be I redistributed freely, as long as no charge is made and attribution to the N original author is maintained.  No warranty is made as to the effectiveness ofM these patches, or their suitability for any purpose.  None of the individuals H or organizations mentioned herein will accept any responsibility for anyB damages of any kind arising from use of these patches. 'Nuff said.  8                      ---->Format of the Patch Files<----I 	Each patch is generated by making the changes specified in the post to a N copy of the appropriate source files, in the form distributed with the versionK of News indicated in the News Version: header.  Since you may not apply the O same patches I do, or do so in the same order, each patch consists of a diff vs L the version of the source file distributed in the saveset, regardless of anyN earlier patches to that file which may have been posted.  The revised file andM the original are then used to generate a context diff to be used as input for O the patch utility.  In these diffs, the name of the original file is unchanged, M while the name of the revised file has _New appended.  This convention allows B patch to identify the necessary files when applying the revisions.L 	Only the changes specified by the original author are incorporated into theN patch, with one exception - if the post didn't contain instructions to includeM a notice of the modification the the leading comment of each affected file, I  have added such a notice.   + Each patch file is in the following format: - 1. The first line is always "ANU News Patch".   M 2. The second line begins with the string "Patch ID: ", and is followed by an M    ID string of the form yymmdd_filename!author@address, where the portion of J    the ID preceding the ! is derived in the same way as the file name, andN    author@address is the email address of the person posting the patch, or the<    person cited as the author, if different from the poster.  N 3. The third line begins with the string "Date: ", and is followed by the dateN    the patch was posted, in the format dd-mmm-yyyy.  (No new information, just    more readable.)  L 4. The fourth line begins with the string "Author: ", and is followed by the9    name of the patch's author, and his/her email address.   O 5. The fifth line begins with the string "News Version: ", and is followed by a N    string noting the News version of the source file from which the patch file    was generated.   O 6. The sixth line begins with the string "News Files: ", and is followed by the N    name(s) of all files affected by the patch (except PatchList.h; see below).J    Unless otherwise specified, these files are distributed in the News_Src    saveset.   N 7. The seventh line begins with the string "Description: ", and is followed byJ    a brief description of the patch's purpose and/or effects.  This may beI    taken directly from the post describing the patch, or I may summarize.   L 8. Following the description may be one or more of the following headers (in    the order given below):G    a. "Requires: " - this patch requires that the patch(es) whose ID(s) H       are listed in this header have been applied, either for this patchN       to be successfully applied, or for it to function properly once applied.L    b. "Supplemented: " - the patch(es) whose ID(s) are listed in this headerK       either extends the function of this patch or corrects nonfatal errors L       in this patch.  The patches referenced are not required for this patchK       to function, though they may be necessary for it to function properly #       according to its description. J    c. "Superseded: " - this patch has been replaced by the patch(es) whoseH       ID(s) appear in this header, and is no longer current.  Unless youG       have a specific reason to apply this patch (e.g. you are using an L       outdated version of News), you should not apply this patch, but shouldJ       apply the patch(es) which supersede it instead.  If the text of thisI       header indicates that this patch has been included in a distributed G       version of News, the patch is not necessary if you are using that K       version of News, whether or not the precise changes specified by this I       patch have been made to the distributed version of the News source. H    d. "Replaces: " - this patch supersedes a previous patch(es), becauseM       it corrects a fatal error in the original(s), obviates the need for the I       original(s), or simply makes the same changes to a newer version of H       the News source.  If this patch is applied, you need not apply anyK       patch(es) listed in this header.  If you do apply any of the replaced I       patches, or if you apply this patch to a copy of the source code to J       which any of the replaced patches have been applied, the results are?       undefined (patch application may fail or may break News). G 8. Following the headers is the actual set of patch instructions.  Each K    context diff is of the file version distributed with the version of News N    indicated in the header (e.g. NewsFoo.C) vs the patched file, named for the-    original file + _New (e.g. NewsFoo_New.C).   M 9. After all patch instructions for News files, there is a final context diff     of the form:  *** patchlist.h;-1 --- patchlist.h  ************** *** 1,1    =+=+= End =+=+= 
 --- 1,2 -----  + <Patch ID>   =+=+= End =+=+= O    where <Patch ID> is the ID of the current patch.  This is used to record the ?    application of the patch in PatchList.h, as described above.   /                               ---->Example<----  ANU News Patch3 Patch ID: 920923_newspost.c!ewilts@galaxy.gov.bc.ca  Date: 23-Sep-1992 ) Author: Ed Wilts  ewilts@galaxy.gov.bc.ca  News Version: 6.1beta5 News Files: NewsPost.C@ Description: Fixes a typo in the user message 'Invoking mailer'. *** newspost.c;  --- newspost_new.c **************	 *** 31,36 .   **	  - Add support for UWO/Mail for Vax/VMS ,   **	V6.1	 9-Feb-1992	rankin@eql.caltech.edu   **	  - Lint cleanup    **--   **/      --- 31,38 ----- .   **	  - Add support for UWO/Mail for Vax/VMS ,   **	V6.1	 9-Feb-1992	rankin@eql.caltech.edu   **	  - Lint cleanup - + **	V6.1	23-Sep-1992	ewilts@galaxy.gov.bc.ca 5 + **	  - Fixed typo in user message "Invoking mailer"    **--   **/      **************
 *** 1244,1250 P             sprintf(&xfrbuf[strlen(xfrbuf)],"%s,",add_transform(address_field));*             address_field = comma_pointer;$             } while (address_field);Z !         if (*xfrbuf) call_mail(Post_file,s,xfrbuf,"Invoiking mailer - reply to poster");           } P         if (mail_self) call_mail(Post_file,s,usr_username,"CC: self - mailing");	         }  --- 1246,1252 ----- P             sprintf(&xfrbuf[strlen(xfrbuf)],"%s,",add_transform(address_field));*             address_field = comma_pointer;$             } while (address_field);Y !         if (*xfrbuf) call_mail(Post_file,s,xfrbuf,"Invoking mailer - reply to poster");            } P         if (mail_self) call_mail(Post_file,s,usr_username,"CC: self - mailing");	         }  *** patchlist.h;-1 --- patchlist.h  ************** *** 1,1    =+=+= End =+=+= 
 --- 1,2 ----- + + 920923_newspost.c!ewilts@galaxy.gov.bc.ca    =+=+= End =+=+=   0                               ---->Comments<----K 	If anyone has any comments or suggestions about the format of these files, K or about the general value or lack thereof of this collection, feel free to K drop me a line or to post to news.software.anu-news group.  Questions about O specific patches are best directed to the original authors - they probably know % more about what's going on than I do.   I 	I hope folks find this a useful addition to ANU News support.  Thanks to N everyone out there who takes the time to publish their patches for the rest of us.    Charles Bailey1 Howard Hughes Medical Institute/Dept. of Genetics - University of Pennsylvania School of Medicine  bailey@genetics.upenn.edu    Rev. 12-Aug-1993