docs/69086: Porters Handbook: How to convert from CR/LF to LF using REINPLACE_CMD

Peter Pentchev roam at ringlet.net
Fri Aug 6 13:50:24 UTC 2004


The following reply was made to PR docs/69086; it has been noted by GNATS.

From: Peter Pentchev <roam at ringlet.net>
To: Alexey Dokuchaev <danfe at regency.nsu.ru>
Cc: bug-followup at FreeBSD.org
Subject: Re: docs/69086: Porters Handbook: How to convert from CR/LF to LF using REINPLACE_CMD
Date: Fri, 6 Aug 2004 16:43:47 +0300

 On Thu, Jul 15, 2004 at 02:01:05PM +0700, Alexey Dokuchaev wrote:
 > 
 > >Number:         69086
 > >Category:       docs
 > >Synopsis:       Porters Handbook: How to convert from CR/LF to LF using REINPLACE_CMD
 
 What do you think about the following patch, which advocates a bit more
 efficient method (find/xargs will invoke REINPLACE_CMD an order of
 magnitude less than invoking it for each and every file, or even on many
 files in succession :), and also has some minor corrections and
 rewording to the text above?
 
 G'luck,
 Peter
 
 Index: doc/en_US.ISO8859-1/books/porters-handbook/book.sgml
 ===================================================================
 RCS file: /home/ncvs/doc/en_US.ISO8859-1/books/porters-handbook/book.sgml,v
 retrieving revision 1.470
 diff -u -r1.470 book.sgml
 --- doc/en_US.ISO8859-1/books/porters-handbook/book.sgml	5 Aug 2004 10:04:30 -0000	1.470
 +++ doc/en_US.ISO8859-1/books/porters-handbook/book.sgml	6 Aug 2004 13:37:55 -0000
 @@ -682,6 +682,25 @@
  	  lines!); define <literal>USE_AUTOCONF_VER=213</literal> and take the
  	  diffs of <filename>configure.in</filename>.</para>
  
 +	<para>Quite often, there is a situation when the software being
 +	  ported, especially if it is primarily developed on Windows, uses
 +	  the CR/LF convention for most of its source files.  This may cause
 +	  problems with further patching, compiler warnings, scripts
 +	  execution (<command>/bin/sh^M</command> not found), etc.  To
 +	  quickly convert those files from CR/LF to just LF, you can do
 +	  something like this:</para>
 +
 +	<programlisting>USE_REINPLACE=	yes
 +
 +post-extract:
 +	@${FIND} -E ${WRKDIR} -type f -iregex ".*\.(c|cpp|h|txt)" -print0 | \
 +		${XARGS} -0 ${REINPLACE_CMD} -e 's/[[:cntrl:]]*$$//' '{}' \;</programlisting>
 +
 +	<para>Of course, if you need to process each and every file,
 +	  <option>-iregex</option> above can be omitted.  Be aware that this
 +	  piece of code will strip all trailing control characters from each
 +	  line of processed file (except <literal>\n</literal>).</para>
 +
  	<para>Also, if you had to delete a file, then you can do it in the
  	  <maketarget>post-extract</maketarget> target rather than as part of
  	  the patch.  Once you are happy with the resulting diff, please split
 
 -- 
 Peter Pentchev	roam at ringlet.net    roam at cnsys.bg    roam at FreeBSD.org
 PGP key:	http://people.FreeBSD.org/~roam/roam.key.asc
 Key fingerprint	FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
 If I were you, who would be reading this sentence?



More information about the freebsd-doc mailing list