From: Denis PILAT <denis.pilat@st.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: gdb-patches@sources.redhat.com, bash-maintainers@gnu.org
Subject: Re: [patch-readline] history file reading
Date: Tue, 21 Mar 2006 15:30:00 -0000 [thread overview]
Message-ID: <441FD3C7.1090504@st.com> (raw)
In-Reply-To: <uirqdpd2r.fsf@gnu.org>
[-- Attachment #1: Type: text/plain, Size: 1303 bytes --]
Eli Zaretskii wrote:
>>Date: Thu, 16 Mar 2006 14:44:38 +0100
>>From: Denis PILAT <denis.pilat@st.com>
>>
>>On minGW host, history file are open in text mode, that's imply windows
>>specific
>>carriage return to be inserted ( \n -> \r\n conversion performed) and
>>prevents windows history file to be compliant with linux one's.
>>When using current history file for windows, "^M" appears at each end of
>>line.
>>
>>This patch fixes this problem.
>>
>>
>
>Thanks.
>
>However, I think there's a better fix: teach readline to always remove
>any CRs before an LF character, even on Posix platforms. That way,
>even if the history file was edited by some Windows editor that
>doesn't honor the end-of-line format, it can still be read on any OS.
>And as a bonus, we might get a cleaner code, without ugly OS-dependent
>#ifdef's.
>
>Unless Chet and others disagree, would you like to prepare a patch
>along these lines?
>
>
>
This new version of my patch changes the way we read history files to
allow "\r\n" in end-of-line.
I don't change any more the way we write history files.
--
Denis
2006-03-21 Denis Pilat <denis.pilat@st.com>
* histfile.c (read_history_range): remove '\r' character from
history lines
to allow reading files with Windows like end-of-line on unix host.
[-- Attachment #2: histfile.patch --]
[-- Type: text/plain, Size: 519 bytes --]
Index: histfile.c
===================================================================
--- histfile.c (revision 386)
+++ histfile.c (working copy)
@@ -228,7 +228,11 @@
for (line_end = line_start; line_end < bufend; line_end++)
if (*line_end == '\n')
{
- *line_end = '\0';
+ /* allow reading files with Windows like end-of-line */
+ if ( line_end - 1 >= line_start && *( line_end - 1 ) =='\r' )
+ *( line_end - 1 ) = '\0';
+ else
+ *line_end = '\0';
if (*line_start)
add_history (line_start);
next prev parent reply other threads:[~2006-03-21 10:22 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-03-17 0:15 [patch-readline] history file generation on minGW host Denis PILAT
2006-03-17 0:26 ` Daniel Jacobowitz
2006-03-17 0:31 ` Denis PILAT
2006-03-17 16:07 ` Eli Zaretskii
2006-03-17 19:12 ` Denis PILAT
2006-03-17 19:37 ` Chet Ramey
2006-03-21 15:30 ` Denis PILAT [this message]
2006-03-21 15:32 ` [patch-readline] history file reading Chet Ramey
2006-03-21 15:38 ` Daniel Jacobowitz
2006-03-21 16:29 ` Andreas Schwab
2006-03-21 16:42 ` Bob Rossi
2006-03-21 16:46 ` Daniel Jacobowitz
2006-03-23 4:55 ` Eli Zaretskii
2006-03-21 19:52 ` Brian J. Fox
2006-03-21 19:55 ` Daniel Jacobowitz
2006-03-21 20:02 ` Andreas Schwab
2006-03-23 5:15 ` Eli Zaretskii
2006-03-23 4:37 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=441FD3C7.1090504@st.com \
--to=denis.pilat@st.com \
--cc=bash-maintainers@gnu.org \
--cc=eliz@gnu.org \
--cc=gdb-patches@sources.redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox