@@ -645,11 +645,15 @@ pid_t xwaitpid(pid_t pid, int *status, int flags) {
645645}
646646
647647int open_cterm (int flags ) {
648+ #if BFS_HAS_CTERMID
648649 char path [L_ctermid ];
649650 if (ctermid (path ) == NULL || strlen (path ) == 0 ) {
650651 errno = ENOTTY ;
651652 return -1 ;
652653 }
654+ #else
655+ const char * path = "/dev/tty" ;
656+ #endif
653657
654658 return open (path , flags );
655659}
@@ -1019,7 +1023,7 @@ size_t xstrwidth(const char *str) {
10191023 mbstate_t mb = {0 };
10201024 while (i < len ) {
10211025 wint_t wc = xmbrtowc (str , & i , len , & mb );
1022- if (wc == WEOF ) {
1026+ if (wc == ( wint_t ) WEOF ) {
10231027 // Assume a single-width '?'
10241028 ++ ret ;
10251029 continue ;
@@ -1103,7 +1107,7 @@ static size_t printable_len(const char *str, size_t len, enum wesc_flags flags)
11031107 mbstate_t mb = {0 };
11041108 for (size_t j = i ; i < len ; i = j ) {
11051109 wint_t wc = xmbrtowc (str , & j , len , & mb );
1106- if (wc == WEOF ) {
1110+ if (wc == ( wint_t ) WEOF ) {
11071111 break ;
11081112 }
11091113 if (!wesc_iswprint (wc , flags )) {
@@ -1153,7 +1157,7 @@ static char *dollar_quote(char *dest, char *end, const char *str, size_t len, en
11531157 bool safe = false;
11541158
11551159 wint_t wc = xmbrtowc (str , & i , len , & mb );
1156- if (wc != WEOF ) {
1160+ if (wc != ( wint_t ) WEOF ) {
11571161 safe = wesc_iswprint (wc , flags );
11581162 }
11591163
0 commit comments