mirror of
https://github.com/urbit/shrub.git
synced 2024-12-26 05:23:35 +03:00
edd57d380d
- Fixes the IPC bug - Fixes the terminfo bug - Moves the OSX SDK out of our nixcrpkgs fork. - Vendor nixcrpkgs instead of having it be a submodule.
172 lines
5.6 KiB
Diff
172 lines
5.6 KiB
Diff
We got this patch from the mingw-w64-readline AUR Arch package.
|
|
|
|
This patch originall comes from MXE, and is licensed under the MIT license.
|
|
|
|
https://github.com/mxe/mxe/blob/master/src/readline-1.patch
|
|
|
|
Copyright (c) 2007-2016
|
|
|
|
Volker Diels-Grabsch
|
|
Mark Brand
|
|
Tony Theodore
|
|
Martin Gerhardy
|
|
Tiancheng "Timothy" Gu
|
|
Boris Nagaev
|
|
... and many other contributors
|
|
(contact via the project mailing list or issue tracker)
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
|
|
documentation files (the "Software"), to deal in the Software without restriction, including without limitation
|
|
the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
|
|
to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
|
|
The above copyright notice and this permission notice shall be included in all copies or substantial portions of
|
|
the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
|
THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
|
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
DEALINGS IN THE SOFTWARE.
|
|
|
|
From 6896ffa4fc85bf0dfae58e69a860d2076c1d9fd2 Mon Sep 17 00:00:00 2001
|
|
From: Timothy Gu <timothygu99@gmail.com>
|
|
Date: Tue, 30 Sep 2014 17:16:32 -0700
|
|
Subject: [PATCH 2/2] Handle missing S_IS* macros more gracefully
|
|
|
|
diff --git a/colors.c b/colors.c
|
|
index 89d9035..ec19844 100644
|
|
--- a/colors.c
|
|
+++ b/colors.c
|
|
@@ -152,14 +152,22 @@ _rl_print_color_indicator (char *f)
|
|
{
|
|
colored_filetype = C_FILE;
|
|
|
|
+#if defined (S_ISUID)
|
|
if ((mode & S_ISUID) != 0 && is_colored (C_SETUID))
|
|
colored_filetype = C_SETUID;
|
|
- else if ((mode & S_ISGID) != 0 && is_colored (C_SETGID))
|
|
+ else
|
|
+#endif
|
|
+#if defined (S_ISGID)
|
|
+ if ((mode & S_ISGID) != 0 && is_colored (C_SETGID))
|
|
colored_filetype = C_SETGID;
|
|
- else if (is_colored (C_CAP) && 0) //f->has_capability)
|
|
+ else
|
|
+#endif
|
|
+ if (is_colored (C_CAP) && 0) //f->has_capability)
|
|
colored_filetype = C_CAP;
|
|
+#if defined(S_IXUGO)
|
|
else if ((mode & S_IXUGO) != 0 && is_colored (C_EXEC))
|
|
colored_filetype = C_EXEC;
|
|
+#endif
|
|
else if ((1 < astat.st_nlink) && is_colored (C_MULTIHARDLINK))
|
|
colored_filetype = C_MULTIHARDLINK;
|
|
}
|
|
@@ -173,8 +181,10 @@ _rl_print_color_indicator (char *f)
|
|
colored_filetype = C_STICKY_OTHER_WRITABLE;
|
|
else
|
|
#endif
|
|
+#if defined (S_IWOTH)
|
|
if ((mode & S_IWOTH) != 0 && is_colored (C_OTHER_WRITABLE))
|
|
colored_filetype = C_OTHER_WRITABLE;
|
|
+#endif
|
|
#if defined (S_ISVTX)
|
|
else if ((mode & S_ISVTX) != 0 && is_colored (C_STICKY))
|
|
colored_filetype = C_STICKY;
|
|
diff --git a/colors.h b/colors.h
|
|
index fc926e5..e62edd0 100644
|
|
--- a/colors.h
|
|
+++ b/colors.h
|
|
@@ -96,7 +96,7 @@ enum indicator_no
|
|
};
|
|
|
|
|
|
-#if !S_IXUGO
|
|
+#if !S_IXUGO && defined(S_IXUSR) && defined(S_IXGRP) && defined(S_IXOTH)
|
|
# define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH)
|
|
#endif
|
|
|
|
diff --git a/posixstat.h b/posixstat.h
|
|
index 3eb7f29..854a2c9 100644
|
|
--- a/posixstat.h
|
|
+++ b/posixstat.h
|
|
@@ -78,30 +78,44 @@
|
|
|
|
#if defined (S_IFBLK) && !defined (S_ISBLK)
|
|
#define S_ISBLK(m) (((m)&S_IFMT) == S_IFBLK) /* block device */
|
|
+#elif !defined (S_IFBLK)
|
|
+#define S_ISBLK(m) 0
|
|
#endif
|
|
|
|
#if defined (S_IFCHR) && !defined (S_ISCHR)
|
|
#define S_ISCHR(m) (((m)&S_IFMT) == S_IFCHR) /* character device */
|
|
+#elif !defined (S_IFCHR)
|
|
+#define S_ISCHR(m) 0
|
|
#endif
|
|
|
|
#if defined (S_IFDIR) && !defined (S_ISDIR)
|
|
#define S_ISDIR(m) (((m)&S_IFMT) == S_IFDIR) /* directory */
|
|
+#elif !defined (S_IFDIR)
|
|
+#define S_ISDIR(m) 0
|
|
#endif
|
|
|
|
#if defined (S_IFREG) && !defined (S_ISREG)
|
|
#define S_ISREG(m) (((m)&S_IFMT) == S_IFREG) /* file */
|
|
+#elif !defined (S_IFREG)
|
|
+#define S_ISREG(m) 0
|
|
#endif
|
|
|
|
#if defined (S_IFIFO) && !defined (S_ISFIFO)
|
|
#define S_ISFIFO(m) (((m)&S_IFMT) == S_IFIFO) /* fifo - named pipe */
|
|
+#elif !defined (S_IFIFO)
|
|
+#define S_ISFIFO(m) 0
|
|
#endif
|
|
|
|
#if defined (S_IFLNK) && !defined (S_ISLNK)
|
|
#define S_ISLNK(m) (((m)&S_IFMT) == S_IFLNK) /* symbolic link */
|
|
+#elif !defined (S_IFLNK)
|
|
+#define S_ISLNK(m) 0
|
|
#endif
|
|
|
|
#if defined (S_IFSOCK) && !defined (S_ISSOCK)
|
|
#define S_ISSOCK(m) (((m)&S_IFMT) == S_IFSOCK) /* socket */
|
|
+#elif !defined (S_IFSOCK)
|
|
+#define S_ISSOCK(m) 0
|
|
#endif
|
|
|
|
/*
|
|
@@ -137,6 +151,8 @@
|
|
/* These are non-standard, but are used in builtins.c$symbolic_umask() */
|
|
#define S_IRUGO (S_IRUSR | S_IRGRP | S_IROTH)
|
|
#define S_IWUGO (S_IWUSR | S_IWGRP | S_IWOTH)
|
|
+#if defined(S_IXUSR) && defined(S_IXGRP) && defined(S_IXOTH)
|
|
#define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH)
|
|
+#endif
|
|
|
|
#endif /* _POSIXSTAT_H_ */
|
|
--
|
|
1.8.3.2
|
|
|
|
diff --git a/histfile.c b/histfile.c
|
|
--- a/histfile.c
|
|
+++ b/histfile.c
|
|
@@ -610,8 +610,6 @@
|
|
user is running this, it's a no-op. If the shell is running after sudo
|
|
with a shared history file, we don't want to leave the history file
|
|
owned by root. */
|
|
- if (rv == 0 && exists)
|
|
- r = chown (filename, finfo.st_uid, finfo.st_gid);
|
|
|
|
xfree (filename);
|
|
FREE (tempname);
|
|
@@ -757,8 +755,6 @@
|
|
user is running this, it's a no-op. If the shell is running after sudo
|
|
with a shared history file, we don't want to leave the history file
|
|
owned by root. */
|
|
- if (rv == 0 && exists)
|
|
- mode = chown (histname, finfo.st_uid, finfo.st_gid);
|
|
|
|
FREE (histname);
|
|
FREE (tempname);
|