Patchwork [readline] Fix compilation on MinGW

login
register
mail settings
Submitter Doug Evans via gdb-patches
Date Aug. 13, 2019, 7:04 p.m.
Message ID <20190813190436.215693-1-cbiesinger@google.com>
Download mbox | patch
Permalink /patch/34074/
State New
Headers show

Comments

Doug Evans via gdb-patches - Aug. 13, 2019, 7:04 p.m.
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(-)
Tom Tromey - Aug. 13, 2019, 7:46 p.m.
>>>>> "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
Doug Evans via gdb-patches - Aug. 13, 2019, 7:58 p.m.
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

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)
     {