docs/69086: Porters Handbook: How to convert from CR/LF to LF using REINPLACE_CMD
Peter Pentchev
roam at ringlet.net
Fri Aug 6 15:50:30 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 18:45:14 +0300
On Fri, Aug 06, 2004 at 04:43:47PM +0300, Peter Pentchev wrote:
> 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?
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
--
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
I had to translate this sentence into English because I could not read the original Sanskrit.
More information about the freebsd-doc
mailing list