[readline] Fix compilation on MinGW

Message ID 20190813190436.215693-1-cbiesinger@google.com
State New, archived
Headers

Commit Message

Terekhov, Mikhail via Gdb-patches Aug. 13, 2019, 7:04 p.m. UTC
  S_ISLNK should not be called outside of an #ifdef.

However, this specific call is actually unnecessary, because
linkok can only be 0 if S_ISLNK is true, per the code above.

I have sent a bug report to bug-readline, though it does not show
up in the online archive yet.

2019-08-13  Christian Biesinger  <cbiesinger@google.com>

	* colors.c (_rl_print_color_indicator): Remove unnecessary
	S_ISLNK check to fix compilation on MinGW.
---
 readline/ChangeLog.gdb | 5 +++++
 readline/colors.c      | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)
  

Comments

Tom Tromey Aug. 13, 2019, 7:46 p.m. UTC | #1
>>>>> "Christian" == Christian Biesinger via gdb-patches <gdb-patches@sourceware.org> writes:

Christian> S_ISLNK should not be called outside of an #ifdef.
Christian> However, this specific call is actually unnecessary, because
Christian> linkok can only be 0 if S_ISLNK is true, per the code above.

Christian> I have sent a bug report to bug-readline, though it does not show
Christian> up in the online archive yet.

I didn't see it show up there.  I wonder if something went wrong.

Christian> 2019-08-13  Christian Biesinger  <cbiesinger@google.com>

Christian> 	* colors.c (_rl_print_color_indicator): Remove unnecessary
Christian> 	S_ISLNK check to fix compilation on MinGW.

This looks fine to me.  Please check it in.

It's important to be sure to follow up with upstream readline; and to
update the patch in the local tree if Chet uses a different patch.

thank you,
Tom
  
Terekhov, Mikhail via Gdb-patches Aug. 13, 2019, 7:58 p.m. UTC | #2
On Tue, Aug 13, 2019 at 2:46 PM Tom Tromey <tom@tromey.com> wrote:
> >>>>> "Christian" == Christian Biesinger via gdb-patches <gdb-patches@sourceware.org> writes:
>
> Christian> S_ISLNK should not be called outside of an #ifdef.
> Christian> However, this specific call is actually unnecessary, because
> Christian> linkok can only be 0 if S_ISLNK is true, per the code above.
>
> Christian> I have sent a bug report to bug-readline, though it does not show
> Christian> up in the online archive yet.
>
> I didn't see it show up there.  I wonder if something went wrong.

I also emailed Chet directly, hopefully that worked.

> Christian> 2019-08-13  Christian Biesinger  <cbiesinger@google.com>
>
> Christian>      * colors.c (_rl_print_color_indicator): Remove unnecessary
> Christian>      S_ISLNK check to fix compilation on MinGW.
>
> This looks fine to me.  Please check it in.

Done.

> It's important to be sure to follow up with upstream readline; and to
> update the patch in the local tree if Chet uses a different patch.

Will do.

Christian
  
Terekhov, Mikhail via Gdb-patches Sept. 15, 2019, 1:47 a.m. UTC | #3
On Tue, Aug 13, 2019 at 3:58 PM Christian Biesinger
<cbiesinger@google.com> wrote:
>
> On Tue, Aug 13, 2019 at 2:46 PM Tom Tromey <tom@tromey.com> wrote:
> > It's important to be sure to follow up with upstream readline; and to
> > update the patch in the local tree if Chet uses a different patch.
>
> Will do.

It looks like Chet committed the same patch:
http://git.savannah.gnu.org/cgit/readline.git/diff/colors.c?h=devel&id=c612c3607b183ae654d6c920c729de5444fdb899

Christian
  

Patch

diff --git a/readline/ChangeLog.gdb b/readline/ChangeLog.gdb
index 982ef7b710..01b083951e 100644
--- a/readline/ChangeLog.gdb
+++ b/readline/ChangeLog.gdb
@@ -1,3 +1,8 @@ 
+2019-08-13  Christian Biesinger  <cbiesinger@google.com>
+
+	* colors.c (_rl_print_color_indicator): Remove unnecessary
+	S_ISLNK check to fix compilation on MinGW.
+
 2019-08-12  Tom Tromey  <tom@tromey.com>
 
 	* Imported readline 8.0.
diff --git a/readline/colors.c b/readline/colors.c
index 53758e0e77..81aecfe0c8 100644
--- a/readline/colors.c
+++ b/readline/colors.c
@@ -175,7 +175,7 @@  _rl_print_color_indicator (const char *f)
 
   if (linkok == -1 && _rl_color_indicator[C_MISSING].string != NULL)
     colored_filetype = C_MISSING;
-  else if (linkok == 0 && S_ISLNK(mode) && _rl_color_indicator[C_ORPHAN].string != NULL)
+  else if (linkok == 0 && _rl_color_indicator[C_ORPHAN].string != NULL)
     colored_filetype = C_ORPHAN;	/* dangling symlink */
   else if(stat_ok != 0)
     {