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

Giorgos Keramidas keramida at ceid.upatras.gr
Fri Aug 6 23:29:42 UTC 2004


Nice :)

xargs is one of my favorite UNIX tools too.  If this builds fine
(I haven't tested it, just gave it a quick look), then please commit it.

On 2004-08-06 15:50, Peter Pentchev <roam at ringlet.net> wrote:
>  Or how about the following, which uses the &windows; entity properly? :)
>
>  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 15:40:46 -0000
>  @@ -18,6 +18,8 @@
>   %mailing-lists;
>   <!ENTITY % freebsd PUBLIC "-//FreeBSD//ENTITIES DocBook Miscellaneous FreeBSD Entities//EN">
>   %freebsd;
>  +<!ENTITY % trademarks PUBLIC "-//FreeBSD//ENTITIES DocBook Trademark Entities//EN">
>  +%trademarks;
>   <!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES DocBook URL Entities//EN">
>   %urls;
>   ]>
>  @@ -682,6 +684,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



More information about the freebsd-doc mailing list