diff -ruwN bash-5.2.15/bashline.c source/bashline.c --- bash-5.2.15/bashline.c 2022-04-17 16:37:12.000000000 -0600 +++ source/bashline.c 2023-09-09 09:07:14.698070413 -0600 @@ -2645,7 +2645,7 @@ const char *text; int state; { -#if defined (__WIN32__) || defined (__OPENNT) || !defined (HAVE_GRP_H) +#if defined (__WIN32__) || defined (__OPENNT) || !defined (HAVE_GRP_H) || defined(__redox__) return ((char *)NULL); #else static char *gname = (char *)NULL; diff -ruwN bash-5.2.15/builtins/ulimit.def source/builtins/ulimit.def --- bash-5.2.15/builtins/ulimit.def 2021-11-05 07:19:53.000000000 -0600 +++ source/builtins/ulimit.def 2023-09-09 09:07:14.698070413 -0600 @@ -609,7 +609,7 @@ } else { -#if defined (HAVE_RESOURCE) +#if defined (HAVE_RESOURCE) && !defined(__redox__) if (getrlimit (limits[ind].parameter, &limit) < 0) return -1; # if defined (HPUX9) diff -ruwN bash-5.2.15/config-top.h source/config-top.h --- bash-5.2.15/config-top.h 2021-11-05 07:11:12.000000000 -0600 +++ source/config-top.h 2023-09-09 09:07:14.698070413 -0600 @@ -63,24 +63,24 @@ /* The default value of the PATH variable. */ #ifndef DEFAULT_PATH_VALUE #define DEFAULT_PATH_VALUE \ - "/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:." + "/usr/local/bin;/usr/local/sbin;/usr/bin;/usr/sbin;/bin;/sbin;." #endif /* If you want to unconditionally set a value for PATH in every restricted shell, set this. */ -/* #define RBASH_STATIC_PATH_VALUE "/rbin:/usr/rbin" */ +/* #define RBASH_STATIC_PATH_VALUE "/rbin;/usr/rbin" */ /* The value for PATH when invoking `command -p'. This is only used when the Posix.2 confstr () function, or CS_PATH define are not present. */ #ifndef STANDARD_UTILS_PATH #define STANDARD_UTILS_PATH \ - "/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc" + "/bin;/usr/bin;/sbin;/usr/sbin;/etc;/usr/etc" #endif /* The default path for enable -f */ #ifndef DEFAULT_LOADABLE_BUILTINS_PATH #define DEFAULT_LOADABLE_BUILTINS_PATH \ - "/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:." + "/usr/local/lib/bash;/usr/lib/bash;/opt/local/lib/bash;/usr/pkg/lib/bash;/opt/pkg/lib/bash;." #endif /* Default primary and secondary prompt strings. */ diff -ruwN bash-5.2.15/configure source/configure --- bash-5.2.15/configure 2022-09-23 08:13:22.000000000 -0600 +++ source/configure 2023-09-09 09:07:14.702070414 -0600 @@ -3298,6 +3298,7 @@ *-nsk*) opt_bash_malloc=no ;; # HP NonStop *-haiku*) opt_bash_malloc=no ;; # Haiku OS *-genode*) opt_bash_malloc=no ;; # Genode has no sbrk +*-redox*) opt_bash_malloc=no ;; # Redox OS esac # memory scrambling on free() diff -ruwN bash-5.2.15/configure.ac source/configure.ac --- bash-5.2.15/configure.ac 2022-09-23 08:12:27.000000000 -0600 +++ source/configure.ac 2023-09-09 09:07:14.702070414 -0600 @@ -92,6 +92,7 @@ *-nsk*) opt_bash_malloc=no ;; # HP NonStop *-haiku*) opt_bash_malloc=no ;; # Haiku OS *-genode*) opt_bash_malloc=no ;; # Genode has no sbrk +*-redox*) opt_bash_malloc=no ;; # Redox OS esac # memory scrambling on free() diff -ruwN bash-5.2.15/execute_cmd.c source/execute_cmd.c --- bash-5.2.15/execute_cmd.c 2022-12-13 10:09:02.000000000 -0700 +++ source/execute_cmd.c 2023-09-09 09:07:14.702070414 -0600 @@ -1379,11 +1379,11 @@ nullcmd = (command == 0) || (command->type == cm_simple && command->value.Simple->words == 0 && command->value.Simple->redirects == 0); if (posixly_correct && nullcmd) { -#if defined (HAVE_GETRUSAGE) +#if defined (HAVE_GETRUSAGE) && defined (HAVE_GETTIMEOFDAY) selfb.ru_utime.tv_sec = kidsb.ru_utime.tv_sec = selfb.ru_stime.tv_sec = kidsb.ru_stime.tv_sec = 0; selfb.ru_utime.tv_usec = kidsb.ru_utime.tv_usec = selfb.ru_stime.tv_usec = kidsb.ru_stime.tv_usec = 0; before = shellstart; -#else +#elif defined (HAVE_TIMES) before.tms_utime = before.tms_stime = before.tms_cutime = before.tms_cstime = 0; tbefore = shell_start_time; #endif diff -ruwN bash-5.2.15/general.c source/general.c --- bash-5.2.15/general.c 2022-11-23 15:10:12.000000000 -0700 +++ source/general.c 2023-09-09 09:07:14.702070414 -0600 @@ -589,6 +589,7 @@ void check_dev_tty () { +#if !defined(__redox__) int tty_fd; char *tty; @@ -603,6 +604,7 @@ } if (tty_fd >= 0) close (tty_fd); +#endif } /* Return 1 if PATH1 and PATH2 are the same file. This is kind of @@ -1031,10 +1033,10 @@ `:'. If I is 0, then the path has a leading colon. Trailing colons are handled OK by the `else' part of the if statement; an empty string is returned in that case. */ - if (i && string[i] == ':') + if (i && string[i] == ';') i++; - for (start = i; string[i] && string[i] != ':'; i++) + for (start = i; string[i] && string[i] != ';'; i++) ; *p_index = i; diff -ruwN bash-5.2.15/include/posixwait.h source/include/posixwait.h --- bash-5.2.15/include/posixwait.h 2019-03-29 11:25:52.000000000 -0600 +++ source/include/posixwait.h 2023-09-09 09:07:14.702070414 -0600 @@ -34,7 +34,7 @@ /* How to get the status of a job. For Posix, this is just an int, but for other systems we have to crack the union wait. */ -#if !defined (_POSIX_VERSION) +#if 0 typedef union wait WAIT; # define WSTATUS(t) (t.w_status) #else /* _POSIX_VERSION */ @@ -50,7 +50,7 @@ /* More Posix P1003.1 definitions. In the POSIX versions, the parameter is passed as an `int', in the non-POSIX version, as `union wait'. */ -#if defined (_POSIX_VERSION) +#if 1 # if !defined (WSTOPSIG) # define WSTOPSIG(s) ((s) >> 8) diff -ruwN bash-5.2.15/lib/readline/input.c source/lib/readline/input.c --- bash-5.2.15/lib/readline/input.c 2022-04-08 13:43:24.000000000 -0600 +++ source/lib/readline/input.c 2023-09-09 09:07:14.702070414 -0600 @@ -805,7 +805,7 @@ int result; unsigned char c; int fd; -#if defined (HAVE_PSELECT) +#if defined (HAVE_PSELECT) || defined (HAVE_SELECT) sigset_t empty_set; fd_set readfds; #endif diff -ruwN bash-5.2.15/lib/readline/terminal.c source/lib/readline/terminal.c --- bash-5.2.15/lib/readline/terminal.c 2022-04-05 08:44:17.000000000 -0600 +++ source/lib/readline/terminal.c 2023-09-09 09:09:03.162131539 -0600 @@ -102,7 +102,7 @@ static int tcap_initialized; -#if !defined (__linux__) && !defined (NCURSES_VERSION) +#if !defined (__linux__) && !defined (NCURSES_VERSION) && !defined (__redox__) # if defined (__EMX__) || defined (NEED_EXTERN_PC) extern # endif /* __EMX__ || NEED_EXTERN_PC */ diff -ruwN bash-5.2.15/lib/sh/getcwd.c source/lib/sh/getcwd.c --- bash-5.2.15/lib/sh/getcwd.c 2012-03-10 08:48:50.000000000 -0700 +++ source/lib/sh/getcwd.c 2023-09-09 09:07:14.702070414 -0600 @@ -20,7 +20,7 @@ #include -#if !defined (HAVE_GETCWD) +#if !defined (HAVE_GETCWD) && !defined(__redox__) #if !defined (__GNUC__) && !defined (HAVE_ALLOCA_H) && defined (_AIX) #pragma alloca diff -ruwN bash-5.2.15/lib/sh/input_avail.c source/lib/sh/input_avail.c --- bash-5.2.15/lib/sh/input_avail.c 2021-05-24 09:16:33.000000000 -0600 +++ source/lib/sh/input_avail.c 2023-09-09 09:07:14.702070414 -0600 @@ -33,7 +33,7 @@ # include #endif /* HAVE_SYS_FILE_H */ -#if defined (HAVE_PSELECT) +#if defined (HAVE_PSELECT) || defined (HAVE_SELECT) # include #endif diff -ruwN bash-5.2.15/lib/sh/strtoimax.c source/lib/sh/strtoimax.c --- bash-5.2.15/lib/sh/strtoimax.c 2021-09-10 08:32:35.000000000 -0600 +++ source/lib/sh/strtoimax.c 2023-09-09 09:10:21.618185121 -0600 @@ -55,6 +55,8 @@ extern long long strtoll PARAMS((const char *, char **, int)); #endif +#if !defined (__redox__) + #ifdef strtoimax #undef strtoimax #endif @@ -79,6 +81,8 @@ return (strtol (ptr, endptr, base)); } +#endif + #ifdef TESTING # include int diff -ruwN bash-5.2.15/parse.y source/parse.y --- bash-5.2.15/parse.y 2022-12-13 10:09:02.000000000 -0700 +++ source/parse.y 2023-09-09 09:07:14.706070416 -0600 @@ -2625,6 +2625,7 @@ parser_state |= PST_ENDALIAS; /* We need to do this to make sure last_shell_getc_is_singlebyte returns true, since we are returning a single-byte space. */ +#if defined (HANDLE_MULTIBYTE) if (shell_input_line_index == shell_input_line_len && last_shell_getc_is_singlebyte == 0) { #if 0 @@ -2638,6 +2639,7 @@ shell_input_line_property[shell_input_line_index - 1] = 1; #endif } +#endif /* HANDLE_MULTIBYTE */ return ' '; /* END_ALIAS */ } #endif diff -ruwN bash-5.2.15/y.tab.c source/y.tab.c --- bash-5.2.15/y.tab.c 2022-12-13 10:09:02.000000000 -0700 +++ source/y.tab.c 2023-09-09 09:07:14.706070416 -0600 @@ -4936,6 +4936,7 @@ parser_state |= PST_ENDALIAS; /* We need to do this to make sure last_shell_getc_is_singlebyte returns true, since we are returning a single-byte space. */ +#if defined (HANDLE_MULTIBYTE) if (shell_input_line_index == shell_input_line_len && last_shell_getc_is_singlebyte == 0) { #if 0 @@ -4949,6 +4950,7 @@ shell_input_line_property[shell_input_line_index - 1] = 1; #endif } +#endif /* HANDLE_MULTIBYTE */ return ' '; /* END_ALIAS */ } #endif