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