diff options
author | joerg <joerg> | 2009-04-29 18:03:47 +0000 |
---|---|---|
committer | joerg <joerg> | 2009-04-29 18:03:47 +0000 |
commit | 12abc01dfb5e8beed6151b4a4cd3d742748ab5f9 (patch) | |
tree | 0d57844808ba2dd04848376d947a9b5bf8938141 /devel | |
parent | 95a38a02e404a7cc24ec2eb7f67a7655025feaf2 (diff) | |
download | pkgsrc-12abc01dfb5e8beed6151b4a4cd3d742748ab5f9.tar.gz |
Add cat page for the sake of platforms without usable nroff installed.
Diffstat (limited to 'devel')
-rw-r--r-- | devel/nbpatch/files/nbpatch.cat1 | 432 |
1 files changed, 432 insertions, 0 deletions
diff --git a/devel/nbpatch/files/nbpatch.cat1 b/devel/nbpatch/files/nbpatch.cat1 new file mode 100644 index 00000000000..418e2ddb483 --- /dev/null +++ b/devel/nbpatch/files/nbpatch.cat1 @@ -0,0 +1,432 @@ +PATCH(1) NetBSD General Commands Manual PATCH(1) + +NNAAMMEE + ppaattcchh -- apply a diff file to an original + +SSYYNNOOPPSSIISS + ppaattcchh [--bbCCccEEeeffllNNnnRRssttuuvv] [--BB _b_a_c_k_u_p_-_p_r_e_f_i_x] [--DD _s_y_m_b_o_l] [--dd _d_i_r_e_c_t_o_r_y] + [--FF _m_a_x_-_f_u_z_z] [--ii _p_a_t_c_h_f_i_l_e] [--oo _o_u_t_-_f_i_l_e] [--pp _s_t_r_i_p_-_c_o_u_n_t] + [--rr _r_e_j_-_n_a_m_e] [--VV tt | nniill | nneevveerr] [--xx _n_u_m_b_e_r] [--zz _b_a_c_k_u_p_-_e_x_t] + [----ppoossiixx] [_o_r_i_g_f_i_l_e [_p_a_t_c_h_f_i_l_e]] + ppaattcchh <_p_a_t_c_h_f_i_l_e + +DDEESSCCRRIIPPTTIIOONN + ppaattcchh will take a patch file containing any of the four forms of differ- + ence listing produced by the diff(1) program and apply those differences + to an original file, producing a patched version. If _p_a_t_c_h_f_i_l_e is omit- + ted, or is a hyphen, the patch will be read from the standard input. + + ppaattcchh will attempt to determine the type of the diff listing, unless + over-ruled by a --cc, --ee, --nn, or --uu option. Context diffs (old-style, new- + style, and unified) and normal diffs are applied directly by the ppaattcchh + program itself, whereas ed diffs are simply fed to the ed(1) editor via a + pipe. + + If the _p_a_t_c_h_f_i_l_e contains more than one patch, ppaattcchh will try to apply + each of them as if they came from separate patch files. This means, + among other things, that it is assumed that the name of the file to patch + must be determined for each diff listing, and that the garbage before + each diff listing will be examined for interesting things such as file + names and revision level (see the section on _F_i_l_e_n_a_m_e _D_e_t_e_r_m_i_n_a_t_i_o_n + below). + + The options are as follows: + + --BB _b_a_c_k_u_p_-_p_r_e_f_i_x, ----pprreeffiixx _b_a_c_k_u_p_-_p_r_e_f_i_x + Causes the next argument to be interpreted as a prefix to the + backup file name. If this argument is specified, any argument to + --zz will be ignored. + + --bb, ----bbaacckkuupp + Save a backup copy of the file before it is modified. By default + the original file is saved with a backup extension of ".orig" + unless the file already has a numbered backup, in which case a + numbered backup is made. This is equivalent to specifying "--VV + eexxiissttiinngg". This option is currently the default, unless ----ppoossiixx + is specified. + + --CC, ----cchheecckk + Checks that the patch would apply cleanly, but does not modify + anything. + + --cc, ----ccoonntteexxtt + Forces ppaattcchh to interpret the patch file as a context diff. + + --DD _s_y_m_b_o_l, ----iiffddeeff _s_y_m_b_o_l + Causes ppaattcchh to use the "#ifdef...#endif" construct to mark + changes. The argument following will be used as the differenti- + ating symbol. Note that, unlike the C compiler, there must be a + space between the --DD and the argument. + + --dd _d_i_r_e_c_t_o_r_y, ----ddiirreeccttoorryy _d_i_r_e_c_t_o_r_y + Causes ppaattcchh to interpret the next argument as a directory, and + change the working directory to it before doing anything else. + + --EE, ----rreemmoovvee--eemmppttyy--ffiilleess + Causes ppaattcchh to remove output files that are empty after the + patches have been applied. This option is useful when applying + patches that create or remove files. + + --ee, ----eedd + Forces ppaattcchh to interpret the patch file as an ed(1) script. + + --FF _m_a_x_-_f_u_z_z, ----ffuuzzzz _m_a_x_-_f_u_z_z + Sets the maximum fuzz factor. This option only applies to con- + text diffs, and causes ppaattcchh to ignore up to that many lines in + looking for places to install a hunk. Note that a larger fuzz + factor increases the odds of a faulty patch. The default fuzz + factor is 2, and it may not be set to more than the number of + lines of context in the context diff, ordinarily 3. + + --ff, ----ffoorrccee + Forces ppaattcchh to assume that the user knows exactly what he or she + is doing, and to not ask any questions. It assumes the follow- + ing: skip patches for which a file to patch can't be found; patch + files even though they have the wrong version for the "Prereq:" + line in the patch; and assume that patches are not reversed even + if they look like they are. This option does not suppress com- + mentary; use --ss for that. + + --ii _p_a_t_c_h_f_i_l_e, ----iinnppuutt _p_a_t_c_h_f_i_l_e + Causes the next argument to be interpreted as the input file name + (i.e. a patchfile). This option may be specified multiple times. + + --ll, ----iiggnnoorree--wwhhiitteessppaaccee + Causes the pattern matching to be done loosely, in case the tabs + and spaces have been munged in your input file. Any sequence of + whitespace in the pattern line will match any sequence in the + input file. Normal characters must still match exactly. Each + line of the context must still match a line in the input file. + + --NN, ----ffoorrwwaarrdd + Causes ppaattcchh to ignore patches that it thinks are reversed or + already applied. See also --RR. + + --nn, ----nnoorrmmaall + Forces ppaattcchh to interpret the patch file as a normal diff. + + --oo _o_u_t_-_f_i_l_e, ----oouuttppuutt _o_u_t_-_f_i_l_e + Causes the next argument to be interpreted as the output file + name. + + --pp _s_t_r_i_p_-_c_o_u_n_t, ----ssttrriipp _s_t_r_i_p_-_c_o_u_n_t + Sets the pathname strip count, which controls how pathnames found + in the patch file are treated, in case you keep your files in a + different directory than the person who sent out the patch. The + strip count specifies how many slashes are to be stripped from + the front of the pathname. (Any intervening directory names also + go away.) For example, supposing the file name in the patch file + was _/_u_/_h_o_w_a_r_d_/_s_r_c_/_b_l_u_r_f_l_/_b_l_u_r_f_l_._c: + + Setting --pp_0 gives the entire pathname unmodified. + + --pp_1 gives + + _u_/_h_o_w_a_r_d_/_s_r_c_/_b_l_u_r_f_l_/_b_l_u_r_f_l_._c + + without the leading slash. + + --pp_4 gives + + _b_l_u_r_f_l_/_b_l_u_r_f_l_._c + + Not specifying --pp at all just gives you _b_l_u_r_f_l_._c, unless all of + the directories in the leading path (_u_/_h_o_w_a_r_d_/_s_r_c_/_b_l_u_r_f_l) exist + and that path is relative, in which case you get the entire path- + name unmodified. Whatever you end up with is looked for either + in the current directory, or the directory specified by the --dd + option. + + --RR, ----rreevveerrssee + Tells ppaattcchh that this patch was created with the old and new + files swapped. (Yes, I'm afraid that does happen occasionally, + human nature being what it is.) ppaattcchh will attempt to swap each + hunk around before applying it. Rejects will come out in the + swapped format. The --RR option will not work with ed diff scripts + because there is too little information to reconstruct the + reverse operation. + + If the first hunk of a patch fails, ppaattcchh will reverse the hunk + to see if it can be applied that way. If it can, you will be + asked if you want to have the --RR option set. If it can't, the + patch will continue to be applied normally. (Note: this method + cannot detect a reversed patch if it is a normal diff and if the + first command is an append (i.e. it should have been a delete) + since appends always succeed, due to the fact that a null context + will match anywhere. Luckily, most patches add or change lines + rather than delete them, so most reversed normal diffs will begin + with a delete, which will fail, triggering the heuristic.) + + --rr _r_e_j_-_n_a_m_e, ----rreejjeecctt--ffiillee _r_e_j_-_n_a_m_e + Causes the next argument to be interpreted as the reject file + name. + + --ss, ----qquuiieett, ----ssiilleenntt + Makes ppaattcchh do its work silently, unless an error occurs. + + --tt, ----bbaattcchh + Similar to --ff, in that it suppresses questions, but makes some + different assumptions: skip patches for which a file to patch + can't be found (the same as --ff); skip patches for which the file + has the wrong version for the "Prereq:" line in the patch; and + assume that patches are reversed if they look like they are. + + --uu, ----uunniiffiieedd + Forces ppaattcchh to interpret the patch file as a unified context + diff (a unidiff). + + --VV tt | nniill | nneevveerr, ----vveerrssiioonn--ccoonnttrrooll tt | nniill | nneevveerr + Causes the next argument to be interpreted as a method for creat- + ing backup file names. The type of backups made can also be + given in the PATCH_VERSION_CONTROL or VERSION_CONTROL environment + variables, which are overridden by this option. The --BB option + overrides this option, causing the prefix to always be used for + making backup file names. The values of the + PATCH_VERSION_CONTROL and VERSION_CONTROL environment variables + and the argument to the --VV option are like the GNU Emacs + ``version-control'' variable; they also recognize synonyms that + are more descriptive. The valid values are (unique abbreviations + are accepted): + + tt, nnuummbbeerreedd + Always make numbered backups. + + nniill, eexxiissttiinngg + Make numbered backups of files that already have + them, simple backups of the others. + + nneevveerr, ssiimmppllee + Always make simple backups. + + --vv, ----vveerrssiioonn + Causes ppaattcchh to print out its revision header and patch level. + + --xx _n_u_m_b_e_r, ----ddeebbuugg _n_u_m_b_e_r + Sets internal debugging flags, and is of interest only to ppaattcchh + patchers. + + --zz _b_a_c_k_u_p_-_e_x_t, ----ssuuffffiixx _b_a_c_k_u_p_-_e_x_t + Causes the next argument to be interpreted as the backup exten- + sion, to be used in place of ".orig". + + ----ppoossiixx + Enables strict IEEE Std 1003.1-2004 (``POSIX.1'') conformance, + specifically: + + 1. Backup files are not created unless the --bb option is speci- + fied. + + 2. If unspecified, the file name used is the first of the old, + new and index files that exists. + + PPaattcchh AApppplliiccaattiioonn + ppaattcchh will try to skip any leading garbage, apply the diff, and then skip + any trailing garbage. Thus you could feed an article or message contain- + ing a diff listing to ppaattcchh, and it should work. If the entire diff is + indented by a consistent amount, this will be taken into account. + + With context diffs, and to a lesser extent with normal diffs, ppaattcchh can + detect when the line numbers mentioned in the patch are incorrect, and + will attempt to find the correct place to apply each hunk of the patch. + As a first guess, it takes the line number mentioned for the hunk, plus + or minus any offset used in applying the previous hunk. If that is not + the correct place, ppaattcchh will scan both forwards and backwards for a set + of lines matching the context given in the hunk. First ppaattcchh looks for a + place where all lines of the context match. If no such place is found, + and it's a context diff, and the maximum fuzz factor is set to 1 or more, + then another scan takes place ignoring the first and last line of con- + text. If that fails, and the maximum fuzz factor is set to 2 or more, + the first two and last two lines of context are ignored, and another scan + is made. (The default maximum fuzz factor is 2.) + + If ppaattcchh cannot find a place to install that hunk of the patch, it will + put the hunk out to a reject file, which normally is the name of the out- + put file plus ".rej". (Note that the rejected hunk will come out in con- + text diff form whether the input patch was a context diff or a normal + diff. If the input was a normal diff, many of the contexts will simply + be null.) The line numbers on the hunks in the reject file may be dif- + ferent than in the patch file: they reflect the approximate location + patch thinks the failed hunks belong in the new file rather than the old + one. + + As each hunk is completed, you will be told whether the hunk succeeded or + failed, and which line (in the new file) ppaattcchh thought the hunk should go + on. If this is different from the line number specified in the diff, you + will be told the offset. A single large offset MAY be an indication that + a hunk was installed in the wrong place. You will also be told if a fuzz + factor was used to make the match, in which case you should also be + slightly suspicious. + + FFiilleennaammee DDeetteerrmmiinnaattiioonn + If no original file is specified on the command line, ppaattcchh will try to + figure out from the leading garbage what the name of the file to edit is. + When checking a prospective file name, pathname components are stripped + as specified by the --pp option and the file's existence and writability + are checked relative to the current working directory (or the directory + specified by the --dd option). + + If the diff is a context or unified diff, ppaattcchh is able to determine the + old and new file names from the diff header. For context diffs, the + ``old'' file is specified in the line beginning with "***" and the + ``new'' file is specified in the line beginning with "---". For a uni- + fied diff, the ``old'' file is specified in the line beginning with "---" + and the ``new'' file is specified in the line beginning with "+++". If + there is an "Index:" line in the leading garbage (regardless of the diff + type), ppaattcchh will use the file name from that line as the ``index'' file. + + ppaattcchh will choose the file name by performing the following steps, with + the first match used: + + 1. If ppaattcchh is operating in strict IEEE Std 1003.1-2004 (``POSIX.1'') + mode, the first of the ``old'', ``new'' and ``index'' file names + that exist is used. Otherwise, ppaattcchh will examine either the + ``old'' and ``new'' file names or, for a non-context diff, the + ``index'' file name, and choose the file name with the fewest path + components, the shortest basename, and the shortest total file name + length (in that order). + + 2. If no file exists, ppaattcchh checks for the existence of the files in an + SCCS or RCS directory (using the appropriate prefix or suffix) using + the criteria specified above. If found, ppaattcchh will attempt to get + or check out the file. + + 3. If no suitable file was found to patch, the patch file is a context + or unified diff, and the old file was zero length, the new file name + is created and used. + + 4. If the file name still cannot be determined, ppaattcchh will prompt the + user for the file name to use. + + Additionally, if the leading garbage contains a "Prereq: " line, ppaattcchh + will take the first word from the prerequisites line (normally a version + number) and check the input file to see if that word can be found. If + not, ppaattcchh will ask for confirmation before proceeding. + + The upshot of all this is that you should be able to say, while in a news + interface, the following: + + | patch -d /usr/src/local/blurfl + + and patch a file in the blurfl directory directly from the article con- + taining the patch. + + BBaacckkuupp FFiilleess + By default, the patched version is put in place of the original, with the + original file backed up to the same name with the extension ".orig", or + as specified by the --BB, --VV, or --zz options. The extension used for making + backup files may also be specified in the SIMPLE_BACKUP_SUFFIX environ- + ment variable, which is overridden by the options above. + + If the backup file is a symbolic or hard link to the original file, ppaattcchh + creates a new backup file name by changing the first lowercase letter in + the last component of the file's name into uppercase. If there are no + more lowercase letters in the name, it removes the first character from + the name. It repeats this process until it comes up with a backup file + that does not already exist or is not linked to the original file. + + You may also specify where you want the output to go with the --oo option; + if that file already exists, it is backed up first. + + NNootteess FFoorr PPaattcchh SSeennddeerrss + There are several things you should bear in mind if you are going to be + sending out patches: + + First, you can save people a lot of grief by keeping a _p_a_t_c_h_l_e_v_e_l_._h file + which is patched to increment the patch level as the first diff in the + patch file you send out. If you put a "Prereq:" line in with the patch, + it won't let them apply patches out of order without some warning. + + Second, make sure you've specified the file names right, either in a con- + text diff header, or with an "Index:" line. If you are patching some- + thing in a subdirectory, be sure to tell the patch user to specify a --pp + option as needed. + + Third, you can create a file by sending out a diff that compares a null + file to the file you want to create. This will only work if the file you + want to create doesn't exist already in the target directory. + + Fourth, take care not to send out reversed patches, since it makes people + wonder whether they already applied the patch. + + Fifth, while you may be able to get away with putting 582 diff listings + into one file, it is probably wiser to group related patches into sepa- + rate files in case something goes haywire. + +EENNVVIIRROONNMMEENNTT + POSIXLY_CORRECT When set, ppaattcchh behaves as if the ----ppoossiixx option + has been specified. + SIMPLE_BACKUP_SUFFIX Extension to use for backup file names instead of + ".orig". + TMPDIR Directory to put temporary files in; default is + _/_t_m_p. + PATCH_VERSION_CONTROL Selects when numbered backup files are made. + VERSION_CONTROL Same as PATCH_VERSION_CONTROL. + +FFIILLEESS + $TMPDIR/patch* ppaattcchh temporary files + /dev/tty used to read input when ppaattcchh prompts the user + +DDIIAAGGNNOOSSTTIICCSS + Too many to list here, but generally indicative that ppaattcchh couldn't parse + your patch file. + + The message "Hmm..." indicates that there is unprocessed text in the + patch file and that ppaattcchh is attempting to intuit whether there is a + patch in that text and, if so, what kind of patch it is. + + The ppaattcchh utility exits with one of the following values: + + 0 Successful completion. + 1 One or more lines were written to a reject file. + >1 An error occurred. + + When applying a set of patches in a loop it behooves you to check this + exit status so you don't apply a later patch to a partially patched file. + +SSEEEE AALLSSOO + diff(1) + +SSTTAANNDDAARRDDSS + The ppaattcchh utility is compliant with the IEEE Std 1003.1-2004 + (``POSIX.1'') specification (except as detailed above for the ----ppoossiixx + option), though the presence of ppaattcchh itself is optional. + + The flags [--CCEEffssttuuvvBBFFVVxxzz] and [----ppoossiixx] are extensions to that specifica- + tion. + +AAUUTTHHOORRSS + Larry Wall with many other contributors. + +CCAAVVEEAATTSS + ppaattcchh cannot tell if the line numbers are off in an ed script, and can + only detect bad line numbers in a normal diff when it finds a "change" or + a "delete" command. A context diff using fuzz factor 3 may have the same + problem. Until a suitable interactive interface is added, you should + probably do a context diff in these cases to see if the changes made + sense. Of course, compiling without errors is a pretty good indication + that the patch worked, but not always. + + ppaattcchh usually produces the correct results, even when it has to do a lot + of guessing. However, the results are guaranteed to be correct only when + the patch is applied to exactly the same version of the file that the + patch was generated from. + +BBUUGGSS + Could be smarter about partial matches, excessively deviant offsets and + swapped code, but that would take an extra pass. + + Check patch mode (--CC) will fail if you try to check several patches in + succession that build on each other. The entire ppaattcchh code would have to + be restructured to keep temporary files around so that it can handle this + situation. + + If code has been duplicated (for instance with #ifdef OLDCODE ... #else + ... #endif), ppaattcchh is incapable of patching both versions, and, if it + works at all, will likely patch the wrong one, and tell you that it suc- + ceeded to boot. + + If you apply a patch you've already applied, ppaattcchh will think it is a + reversed patch, and offer to un-apply the patch. This could be construed + as a feature. + +NetBSD 5.0 August 18, 2008 NetBSD 5.0 |