patch man page on Tru64

Man page or keyword search:  
man Server   12896 pages
apropos Keyword Search (all sections)
Output format
Tru64 logo
[printable version]

patch(1)							      patch(1)

NAME
       patch - Applies changes to files

SYNOPSIS
       patch  [-bflsvNRS]  [-c	 |  -e	 |  -n] [-B prefix] [-d directory] [-D
       define] [-F] [number] [-i  patchfile]  [-o  outfile]  [-p  number]  [-r
       rejectfile] [original_file] [patchfile] [+] [flags] [original_file]

       The  patch  command  takes  a patch file that contains any of the three
       forms of difference listing produced by the diff program (normal,  con‐
       text,  or  ed-style) and applies those differences to an original file,
       producing a patched version.

STANDARDS
       Interfaces documented on this reference page conform to industry	 stan‐
       dards as follows:

       patch:  XCU5.0

       Refer  to  the  standards(5)  reference page for more information about
       industry standards and associated tags.

OPTIONS
       Saves a copy of the original contents of each modified file, before the
       differences  are	 applied  in  a	 file of the same name with the suffix
       appended to it.	If the file already exists,  it	 is  overwritten.   If
       multiple patches are applied to the same file, the file is written only
       for the first patch.  If -o outfile is also  specified,	patchfile.orig
       will  not  be  created,	but if outfile already exists, outfile.orig is
       created.	 [Tru64 UNIX]  Specifies a prefix to  the  backup  file	 name.
       Interprets the patch file as a context diff (the output of diff when -c
       or -C is specified).  Changes the current directory to directory before
       processing.   Uses  the	C  preprocessor #ifdef define ...  #endif con‐
       struct to mark changes.	The define argument is used as the differenti‐
       ating  symbol.	Interprets the patch file as an ed script, rather than
       as a diff script.  [Tru64 UNIX]	Suppresses queries to  the  user.   To
       suppress commentary, use the -s option.	[Tru64 UNIX]  Sets the maximum
       fuzz factor.  This option applies to context  diffs  only,  and	causes
       patch  to  ignore  up to the specified number of lines when determining
       where to install a hunk.	 If  the  -F  option  is  not  specified,  the
       default fuzz factor is 2.  If the -F option is specified without a num‐
       ber argument, the fuzz factor is taken to be 0 (zero).  The factor  may
       not  be	set to more than the number of lines of context in the context
       diff (ordinarily 3).

	      [Tru64 UNIX]  Note that a larger fuzz factor increases the  odds
	      of  a  faulty  patch.  Reads the patch information from the file
	      named by the specified  patchfile,  rather  than	from  standard
	      input.   Causes  any sequence of spaces and tabs (whitespace) in
	      the diff script to match any sequence of	spaces	in  the	 input
	      file.  Other characters will be matched exactly.	Interprets the
	      script as a normal diff.	Ignores patches where the  differences
	      have  already  been  applied  to	the file; by default, already-
	      applied patches are rejected. (See the -R option.)   Instead  of
	      modifying	 the files (specified by the patchfile argument or the
	      diff listings) directly, write a copy of the file referenced  by
	      each  patch,  with  the appropriate differences applied, to out‐
	      file.  Multiple patches for a single file	 are  applied  to  the
	      intermediate  versions  of  the  file  created  by  any previous
	      patches, and result in multiple, concatenated  versions  of  the
	      file  written to outfile.	 Sets the path name strip count, which
	      controls how path names found in the  patch  file	 are  treated.
	      This  option  is	useful	if  you keep your files in a different
	      directory than that specified by the  patch.   The  strip	 count
	      specifies	 how many slashes are to be stripped from the front of
	      the  path	 name.	Any  intervening  directory  names  are	  also
	      stripped.

	      For   example,   if   the	 file  name  in	 the  patch  file  was
	      /u/howard/src/blurfl/blurfl.c, entering -p0  leaves  the	entire
	      path    name    unmodified.     Entering	  -p1	 results    in
	      u/howard/src/blurfl/blurfl.c without the leading slash.	Enter‐
	      ing  -p4 results in blurfl/blurfl.c.  Omitting -p from the patch
	      command line, results in blurfl.c.

	      The patch command looks for the resulting path name in the  cur‐
	      rent  directory, or in the directory specified by the -d option.
	      Specifies the reject file name.  By  default,  the  reject  file
	      name  has	 the  same  name  as  the output file, with the suffix
	      appended to it.  Reverses the sense of the  patch	 script;  that
	      is,  patch assumes that the diff script was created from the new
	      version to the old version.  The patch command tries to  reverse
	      each portion of the script before applying it.  Rejected differ‐
	      ences are saved in swapped format.  The -R option cannot be used
	      with  ed	scripts	 because  there	 is  too little information to
	      reconstruct the reverse operation.

	      If this option is not specified, and  until  a  portion  of  the
	      patch  file  is  successfully applied, patch tries to apply each
	      portion in its reversed sense as well as in  its	normal	sense.
	      If  the  attempt is successful, you are prompted to determine if
	      -R should be set.

	      Note that this method cannot detect a reversed patch if it is  a
	      normal  diff  and if the first command is an append (that is, it
	      should have been a delete), since appends always succeed because
	      a	 NULL  context matches anywhere.  Luckily, most patches add or
	      change lines rather than delete them, so	most  reversed	normal
	      diffs  begin  with  a  delete,  which  will fail, triggering the
	      heuristic.)  [Tru64  UNIX]  Patches  silently  unless  an	 error
	      occurs.	[Tru64 UNIX]  Ignores a patch from the patch file, but
	      continues looking for the next patch in the file.	  Thus,	 patch
	      -S + -S + <patchfile

	      ignores  the  first  and	second	patches	 in patchfile (see the
	      description of the + offset that follows).  [Tru64 UNIX]	Prints
	      out  the	revision  header  and patch level.  [Tru64 UNIX]  Sets
	      internal debugging flags.	 (This option is of interest  only  to
	      patch  patchers.)	  [Tru64  UNIX]	 Specifies flags (and possibly
	      another original	file  name)  for  the  second  and  subsequent
	      patches.	The argument list for each patch must be preceded with
	      a +.  (Note, however, that the argument list  for	 a  second  or
	      subsequent patch may not specify a new patch file.)

OPERANDS
       The file to be patched.

DESCRIPTION
       By  default,  the patched version is put in place of the original.  The
       original file can be backed up to the same name with the	 extension  by
       using the -b option.  You may also specify where you want the output to
       go with the -o option.  If the -i patchfile option is not specified, or
       if patchfile is a - (dash), the patch is read from standard input.

       The  patch  command attempts to determine the type of the diff listing,
       unless it is overruled by a -c, -e, or -n option,  which	 specify  con‐
       text,  ed,  and	normal	diffs, respectively.  Context diffs and normal
       diffs are applied by the patch program itself, while ed diffs  are  fed
       to the ed editor by means of a pipe.

       The  patch  file	 must contain zero or more lines of header information
       followed by one or more patches.	 Each patch must contain zero or  more
       lines  of  file	name identification in the format produced by diff -c,
       and one or more sets of	diff  output,  which  are  customarily	called
       “hunks”.

       The  patch  command tries to skip any leading text, apply the diff, and
       then skip any trailing text.  Thus, you could feed an article  or  mes‐
       sage  containing	 a  diff  listing to patch, and it would work.	If the
       entire diff is indented by a consistent amount, patch takes  this  into
       account.

       If  no  original	 file is specified on the command line, patch tries to
       figure out the name of the file to edit from the leading text.  In  the
       header  of  a context diff, the file name is found from lines beginning
       with *** (the name of the file from which the  patches  arose)  or  ---
       (the name of the file to which the patches should be applied), with the
       shortest name of an existing file  being	 selected.   If	 there	is  an
       Index:  line in the leading text, patch tries to use the file name from
       that line.  The context diff header takes  precedence  over  an	Index:
       line.  If  no  file name can be determined from the leading text, patch
       asks you for the name of the file to patch.

       If the original file cannot be found, but a suitable SCCS or  RCS  file
       is available, patch attempts to get or check out the file.

       Additionally,  if the leading text contains a Prereq: line, patch takes
       the first word from the prerequisites line (normally a version  number)
       and  checks  the	 input file to see if that word can be found.  If not,
       patch asks for confirmation before proceeding.

       If the patch file contains more than one patch, patch  tries  to	 apply
       each  of them as if they came from separate patch files.	 In this case,
       the name of the file to patch must be determined for each diff listing,
       and  the	 header text before each diff listing is examined for informa‐
       tion such as file names and revision level.  You can give options  (and
       another	original  file	name) for the second and subsequent patches by
       separating the corresponding argument lists with a +.

       For each hunk, patch 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, patch scans both forwards and backwards for a set of
       lines  matching the context given in the hunk.  The patch command looks
       for a place where all lines of the context match.

       If no such place is found, and patch is performing a context diff,  and
       the  maximum  fuzz  factor  is set to 1 or more, patch performs another
       scan that ignores the first and last line of  context.	If  that  scan
       fails,  and  the maximum fuzz factor is set to 2 or more, patch ignores
       the first two and last two lines of context, and	 makes	another	 scan.
       (The default maximum fuzz factor is 2.)

       If  patch  cannot  find	a  place to install that hunk of the patch, it
       places the hunk in a reject file (normally, with the same name  as  the
       output  file  and  the  suffix  hunk  is	 written in context diff form,
       regardless of the format of the patch file.  If the input was a	normal
       or  ed-style diff, the reject file may contain diffs with zero lines of
       context.	 The line numbers on the hunks in the reject file may be  dif‐
       ferent  from  the  line numbers in the patch file; the reject file line
       numbers reflect the approximate locations for the failed hunks  in  the
       new file rather than the old one.

       As  each	 hunk is completed, patch tells you whether the hunk succeeded
       or failed, and on which line in the new file  patch  assumed  the  hunk
       should  go.  If this is different from the line number specified in the
       diff, patch tells you the offset.  A single  large  offset  may	be  an
       indication  that	 a  hunk  was installed in the wrong place.  The patch
       command also tells you if a fuzz factor was used to make the match,  in
       which case you should be slightly suspicious.

NOTES
       There are several things you should bear in mind if you are going to be
       sending out patches: [Tru64 UNIX]  It is recommended that  you  keep  a
       <patchlevel.h> file that 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, users will not be able to apply patches out of order
       without some warning.  [Tru64 UNIX]  Make sure  you  specify  the  file
       names  correctly,  either  in  a	 context diff header or with an Index:
       line.  If you are patching something in a subdirectory, be sure to tell
       the patch user to specify a -p option as needed.	 [Tru64 UNIX]  You can
       create a file by sending out a diff that compares a null	 file  to  the
       file  you want to create.  This works only if the file you want to cre‐
       ate does not already exist in the target directory.  [Tru64 UNIX]  Take
       care  not  to  send out reversed patches, since this makes users wonder
       whether they already applied the patch.	[Tru64 UNIX]  While you may be
       able  to put many diff listings into one file, it is advisable to group
       related patches into separate files.  [Tru64 UNIX]  The	patch  command
       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.

	      [Tru64  UNIX]  A	context diff using a fuzz factor of 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 make sense.  Compiling without	 errors	 is  a
	      pretty good indication that the patch worked, but this is not an
	      infallible indicator.  [Tru64 UNIX]  The results	of  the	 patch
	      command  are  guaranteed	to  be	correct only when the patch is
	      applied to exactly the same version of the file from  which  the
	      patch  was generated.  [Tru64 UNIX]  If the code has been dupli‐
	      cated (for example, with #ifdef OLDCODE ...  #else ...  #endif),
	      patch  is	 incapable  of	patching  both versions, and, if patch
	      works at all, it will likely patch the wrong  version  and  tell
	      you  that	 it  succeeded.	  If  you apply a patch you've already
	      applied, patch assumes it is a reversed  patch,  and  offers  to
	      undo it.

DIAGNOSTICS
       [Tru64  UNIX]  The  message Hmm...  indicates that there is unprocessed
       text in the patch file  and  that  patch	 is  attempting	 to  determine
       whether there is a patch in that text and, if so, what kind of patch it
       is.

       [Tru64 UNIX]  The patch command exits with  a  nonzero  status  if  any
       reject  files  were created.  When applying a set of patches in a loop,
       you should check this exit status, so you don't apply a later patch  to
       a partially patched file.

EXIT STATUS
       The  following exit values are returned: Successful completion.	One or
       more lines were written to a reject file.  An error occurred.

ENVIRONMENT VARIABLES
       The following environment variables affect the execution of patch: Pro‐
       vides  a	 default value for the internationalization variables that are
       unset or null. If LANG is unset or null, the corresponding  value  from
       the  default  locale is used.  If any of the internationalization vari‐
       ables contain an invalid setting, the utility behaves as if none of the
       variables  had been defined.  If set to a non-empty string value, over‐
       rides the values	 of  all  the  other  internationalization  variables.
       Determines  the	locale for the interpretation of sequences of bytes of
       text data as characters (for example, single-byte as opposed to	multi‐
       byte  characters	 in  arguments).  Determines the locale for the format
       and contents of diagnostic messages written to standard error.	Deter‐
       mines  the  locale for recognizing the format of time stamps written by
       the diff command.  Determines the location of  message  catalogues  for
       the processing of LC_MESSAGES.

FILES
SEE ALSO
       Commands:  diff(1)

       Standards:  standards(5)

								      patch(1)
[top]
                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server Tru64

List of man pages available for Tru64

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net