minor code touch-up
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
hyung-hwan 2024-10-06 21:28:30 +09:00
parent 54e33f53b9
commit 20bdc0d52d
2 changed files with 73 additions and 35 deletions

View File

@ -69,7 +69,7 @@
#if defined(HCL_ENABLE_FLTFMT) #if defined(HCL_ENABLE_FLTFMT)
#include <stdio.h> /* for snrintf(). used for floating-point number formatting */ #include <stdio.h> /* for snrintf(). used for floating-point number formatting */
#if defined(_MSC_VER) || defined(__BORLANDC__) || (defined(__WATCOMC__) && (__WATCOMC__ < 1200)) #if defined(_MSC_VER) || (defined(__BORLANDC__) && (__BORLANDC__ > 0x520)) || (defined(__WATCOMC__) && (__WATCOMC__ < 1200))
# define snprintf _snprintf # define snprintf _snprintf
# if !defined(HAVE_SNPRINTF) # if !defined(HAVE_SNPRINTF)
# define HAVE_SNPRINTF # define HAVE_SNPRINTF
@ -338,9 +338,7 @@ static hcl_bch_t* sprintn_upper (hcl_bch_t* nbuf, hcl_uintmax_t num, int base, h
} }
/* ------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------- */
#define PUT_BCH(hcl,fmtout,c,n) do { \ #define PUT_BCH(hcl,fmtout,c,n) do { \
if (n > 0) { \
hcl_oow_t _yy; \ hcl_oow_t _yy; \
hcl_bch_t _cc = c; \ hcl_bch_t _cc = c; \
for (_yy = 0; _yy < n; _yy++) \ for (_yy = 0; _yy < n; _yy++) \
@ -350,7 +348,6 @@ static hcl_bch_t* sprintn_upper (hcl_bch_t* nbuf, hcl_uintmax_t num, int base, h
if (_xx == 0) goto done; \ if (_xx == 0) goto done; \
fmtout->count++; \ fmtout->count++; \
} \ } \
} \
} while (0) } while (0)
#define PUT_BCS(hcl,fmtout,ptr,len) do { \ #define PUT_BCS(hcl,fmtout,ptr,len) do { \
@ -363,7 +360,6 @@ static hcl_bch_t* sprintn_upper (hcl_bch_t* nbuf, hcl_uintmax_t num, int base, h
} while (0) } while (0)
#define PUT_UCH(hcl,fmtout,c,n) do { \ #define PUT_UCH(hcl,fmtout,c,n) do { \
if (n > 0) { \
hcl_oow_t _yy; \ hcl_oow_t _yy; \
hcl_uch_t _cc = c; \ hcl_uch_t _cc = c; \
for (_yy = 0; _yy < n; _yy++) \ for (_yy = 0; _yy < n; _yy++) \
@ -373,7 +369,6 @@ static hcl_bch_t* sprintn_upper (hcl_bch_t* nbuf, hcl_uintmax_t num, int base, h
if (_xx == 0) goto done; \ if (_xx == 0) goto done; \
fmtout->count++; \ fmtout->count++; \
} \ } \
} \
} while (0) } while (0)
#define PUT_UCS(hcl,fmtout,ptr,len) do { \ #define PUT_UCS(hcl,fmtout,ptr,len) do { \
@ -1837,6 +1832,14 @@ static int print_bcs (hcl_t* hcl, hcl_fmtout_t* fmtout, const hcl_bch_t* ptr, hc
static int print_ucs (hcl_t* hcl, hcl_fmtout_t* fmtout, const hcl_uch_t* ptr, hcl_oow_t len) static int print_ucs (hcl_t* hcl, hcl_fmtout_t* fmtout, const hcl_uch_t* ptr, hcl_oow_t len)
{ {
#if defined(HCL_OOCH_IS_UCH)
hcl_uch_t* optr;
#else
hcl_oow_t bcslen, ucslen;
hcl_ooch_t bcsbuf[64], * bcsptr;
#endif
if (HCL_UNLIKELY(!hcl->io.udo_wrtr)) if (HCL_UNLIKELY(!hcl->io.udo_wrtr))
{ {
hcl_seterrbmsg (hcl, HCL_EINVAL, "no user-defined output handler"); hcl_seterrbmsg (hcl, HCL_EINVAL, "no user-defined output handler");
@ -1844,8 +1847,6 @@ static int print_ucs (hcl_t* hcl, hcl_fmtout_t* fmtout, const hcl_uch_t* ptr, hc
} }
#if defined(HCL_OOCH_IS_UCH) #if defined(HCL_OOCH_IS_UCH)
hcl_uch_t* optr;
optr = (hcl_uch_t*)ptr; optr = (hcl_uch_t*)ptr;
while (len > 0) while (len > 0)
{ {
@ -1860,9 +1861,6 @@ static int print_ucs (hcl_t* hcl, hcl_fmtout_t* fmtout, const hcl_uch_t* ptr, hc
len -= hcl->io.udo_arg.xlen; len -= hcl->io.udo_arg.xlen;
} }
#else #else
hcl_oow_t bcslen, ucslen;
hcl_ooch_t bcsbuf[64], * bcsptr;
while (len > 0) while (len > 0)
{ {
ucslen = len; ucslen = len;

View File

@ -37,6 +37,11 @@
# define USE_THREAD # define USE_THREAD
#endif #endif
#if defined(__BORLANDC__) && defined(__DOS__) && defined(_WIN32) && defined(__DPMI32__)
/* bcc32 with powerpack seems to define _WIN32 in DPMI32 mode */
# undef _WIN32
#endif
#if defined(_WIN32) #if defined(_WIN32)
# if !defined(_WIN32_WINNT) # if !defined(_WIN32_WINNT)
# define _WIN32_WINNT 0x0400 # define _WIN32_WINNT 0x0400
@ -137,6 +142,14 @@
# define XPOLLERR (1 << 2) # define XPOLLERR (1 << 2)
# define XPOLLHUP (1 << 3) # define XPOLLHUP (1 << 3)
# if !defined(STDOUT_FILENO)
# define STDOUT_FILENO (1)
# endif
# if !defined(STDERR_FILENO)
# define STDERR_FILENO (2)
# endif
#elif defined(macintosh) #elif defined(macintosh)
# include <Types.h> # include <Types.h>
# include <OSUtils.h> # include <OSUtils.h>
@ -762,13 +775,17 @@ static size_t sprintf_timestamp (char* ts, struct tm* tmp)
{ {
int off_h, off_m; int off_h, off_m;
#if defined(__DOS__)
off_m = _timezone / 60;
#else
off_m = tmp->tm_gmtoff / 60; off_m = tmp->tm_gmtoff / 60;
#endif
off_h = off_m / 60; off_h = off_m / 60;
off_m = off_m % 60; off_m = off_m % 60;
if (off_m < 0) off_m = -off_m; if (off_m < 0) off_m = -off_m;
return (size_t)sprintf(ts, return (size_t)sprintf(ts,
"%04d-%02d-%02d %02d:%02d:%02d %+03.2d%02.2d ", "%04d-%02d-%02d %02d:%02d:%02d %+03d%02d ",
tmp->tm_year + 1900, tmp->tm_mon + 1, tmp->tm_mday, tmp->tm_year + 1900, tmp->tm_mon + 1, tmp->tm_mday,
tmp->tm_hour, tmp->tm_min, tmp->tm_sec, off_h, off_m); tmp->tm_hour, tmp->tm_min, tmp->tm_sec, off_h, off_m);
} }
@ -825,7 +842,7 @@ static void log_write (hcl_t* hcl, hcl_bitmask_t mask, const hcl_ooch_t* msg, hc
tzi.Bias = -tzi.Bias; /* utc = localtime + bias(mins). so negate it */ tzi.Bias = -tzi.Bias; /* utc = localtime + bias(mins). so negate it */
min = tzi.Bias % 60; min = tzi.Bias % 60;
if (min < 0) min = -min; if (min < 0) min = -min;
tslen = sprintf(ts, "%04d-%02d-%02d %02d:%02d:%02d %+03.2d%02.2d ", tslen = sprintf(ts, "%04d-%02d-%02d %02d:%02d:%02d %+03d%02d ",
(int)now.wYear, (int)now.wMonth, (int)now.wDay, (int)now.wYear, (int)now.wMonth, (int)now.wDay,
(int)now.wHour, (int)now.wMinute, (int)now.wSecond, (int)now.wHour, (int)now.wMinute, (int)now.wSecond,
(int)(tzi.Bias / 60), (int)min); (int)(tzi.Bias / 60), (int)min);
@ -1289,12 +1306,16 @@ static void _assertfail (hcl_t* hcl, const hcl_bch_t* expr, const hcl_bch_t* fil
#elif defined(__OS2__) #elif defined(__OS2__)
DosExit (EXIT_PROCESS, 249); DosExit (EXIT_PROCESS, 249);
#elif defined(__DOS__) #elif defined(__DOS__)
#if defined(__BORLANDC__) && defined(__DPMI32__)
_exit (249);
#else
{ {
union REGS regs; union REGS regs;
regs.h.ah = DOS_EXIT; regs.h.ah = DOS_EXIT;
regs.h.al = 249; regs.h.al = 249;
intdos (&regs, &regs); intdos (&regs, &regs);
} }
#endif
#elif defined(vms) || defined(__vms) #elif defined(vms) || defined(__vms)
lib$stop (SS$_ABORT); /* use SS$_OPCCUS instead? */ lib$stop (SS$_ABORT); /* use SS$_OPCCUS instead? */
/* this won't be reached since lib$stop() terminates the process */ /* this won't be reached since lib$stop() terminates the process */
@ -1394,7 +1415,7 @@ static void vm_gettime (hcl_t* hcl, hcl_ntime_t* now)
#endif #endif
#elif defined(__DOS__) #elif defined(__DOS__)
xtn_t* xtn = GET_XTN(moo); xtn_t* xtn = GET_XTN(hcl);
clock_t c, elapsed; clock_t c, elapsed;
hcl_ntime_t et; hcl_ntime_t et;
@ -1404,18 +1425,18 @@ static void vm_gettime (hcl_t* hcl, hcl_ntime_t* now)
now->sec = c / CLOCKS_PER_SEC; now->sec = c / CLOCKS_PER_SEC;
#if (CLOCKS_PER_SEC == 100) #if (CLOCKS_PER_SEC == 100)
now->nsec = HCL_MSEC_TO_NSEC((c % CLOCKS_PER_SEC) * 10); now->nsec = HCL_MSEC_TO_NSEC((c % (clock_t)CLOCKS_PER_SEC) * 10);
#elif (CLOCKS_PER_SEC == 1000) #elif (CLOCKS_PER_SEC == 1000)
now->nsec = HCL_MSEC_TO_NSEC(c % CLOCKS_PER_SEC); now->nsec = HCL_MSEC_TO_NSEC(c % (clock_t)CLOCKS_PER_SEC);
#elif (CLOCKS_PER_SEC == 1000000L) #elif (CLOCKS_PER_SEC == 1000000L)
now->nsec = HCL_USEC_TO_NSEC(c % CLOCKS_PER_SEC); now->nsec = HCL_USEC_TO_NSEC(c % (clock_t)CLOCKS_PER_SEC);
#elif (CLOCKS_PER_SEC == 1000000000L) #elif (CLOCKS_PER_SEC == 1000000000L)
now->nsec = (c % CLOCKS_PER_SEC); now->nsec = (c % (clock_t)CLOCKS_PER_SEC);
#else #else
# error UNSUPPORTED CLOCKS_PER_SEC # error UNSUPPORTED CLOCKS_PER_SEC
#endif #endif
HCL_ADD_NTIME (&xtn->tc_last_ret , &xtn->tc_last_ret, &et); HCL_ADD_NTIME (&xtn->tc_last_ret, &xtn->tc_last_ret, &et);
*now = xtn->tc_last_ret; *now = xtn->tc_last_ret;
#elif defined(macintosh) #elif defined(macintosh)
@ -2433,6 +2454,8 @@ static void vm_muxwait (hcl_t* hcl, const hcl_ntime_t* dur, hcl_vmprim_muxwait_c
# pragma aux _halt_cpu = "hlt" # pragma aux _halt_cpu = "hlt"
# elif defined(_MSC_VER) # elif defined(_MSC_VER)
static void _halt_cpu (void) { _asm { hlt } } static void _halt_cpu (void) { _asm { hlt } }
# elif defined(__BORLANDC__)
static void _halt_cpu (void) { _asm { hlt } }
# endif # endif
#endif #endif
@ -2538,7 +2561,11 @@ static int vm_getsig (hcl_t* hcl, hcl_uint8_t* u8)
#endif #endif
if (read(xtn->sigfd.p[0], u8, HCL_SIZEOF(*u8)) == -1) if (read(xtn->sigfd.p[0], u8, HCL_SIZEOF(*u8)) == -1)
{ {
#if defined(EWOULDBLOCK)
if (errno == EINTR || errno == EWOULDBLOCK || errno == EAGAIN) return 0; if (errno == EINTR || errno == EWOULDBLOCK || errno == EAGAIN) return 0;
#else
if (errno == EINTR || errno == EAGAIN) return 0;
#endif
hcl_seterrwithsyserr (hcl, 0, errno); hcl_seterrwithsyserr (hcl, 0, errno);
return -1; return -1;
} }
@ -2551,7 +2578,11 @@ static int vm_setsig (hcl_t* hcl, hcl_uint8_t u8)
xtn_t* xtn = GET_XTN(hcl); xtn_t* xtn = GET_XTN(hcl);
if (write(xtn->sigfd.p[1], &u8, HCL_SIZEOF(u8)) == -1) if (write(xtn->sigfd.p[1], &u8, HCL_SIZEOF(u8)) == -1)
{ {
#if defined(EWOULDBLOCK)
if (errno == EINTR || errno == EWOULDBLOCK || errno == EAGAIN) return 0; if (errno == EINTR || errno == EWOULDBLOCK || errno == EAGAIN) return 0;
#else
if (errno == EINTR || errno == EAGAIN) return 0;
#endif
hcl_seterrwithsyserr (hcl, 0, errno); hcl_seterrwithsyserr (hcl, 0, errno);
return -1; return -1;
} }
@ -3002,6 +3033,7 @@ static pid_t ticker_pid = -1;
static HCL_INLINE void start_ticker (void) static HCL_INLINE void start_ticker (void)
{ {
#if defined(SIGALRM)
if (set_signal_handler(SIGALRM, swproc_all_hcls, SA_RESTART) >= 0) if (set_signal_handler(SIGALRM, swproc_all_hcls, SA_RESTART) >= 0)
{ {
ticker_pid = fork(); ticker_pid = fork();
@ -3035,10 +3067,12 @@ static HCL_INLINE void start_ticker (void)
/* parent just carries on. */ /* parent just carries on. */
} }
#endif
} }
static HCL_INLINE void stop_ticker (void) static HCL_INLINE void stop_ticker (void)
{ {
#if defined(SIGALRM)
if (ticker_pid >= 0) if (ticker_pid >= 0)
{ {
int wstatus; int wstatus;
@ -3048,6 +3082,7 @@ static HCL_INLINE void stop_ticker (void)
unset_signal_handler (SIGALRM); unset_signal_handler (SIGALRM);
} }
#endif
} }
#endif #endif
@ -3527,8 +3562,11 @@ static HCL_INLINE void reset_log_to_default (xtn_t* xtn)
xtn->log.fd = -1; xtn->log.fd = -1;
xtn->log.fd_flags = 0; xtn->log.fd_flags = 0;
#endif #endif
#if defined(HAVE_ISATTY)
if (isatty(STDERR_FILENO)) xtn->log.fd_flags |= LOGFD_STDERR_TTY; if (isatty(STDERR_FILENO)) xtn->log.fd_flags |= LOGFD_STDERR_TTY;
if (isatty(STDOUT_FILENO)) xtn->log.fd_flags |= LOGFD_STDOUT_TTY; if (isatty(STDOUT_FILENO)) xtn->log.fd_flags |= LOGFD_STDOUT_TTY;
#endif
} }
static HCL_INLINE void chain (hcl_t* hcl) static HCL_INLINE void chain (hcl_t* hcl)
@ -4841,6 +4879,8 @@ static void (__interrupt *dos_prev_int23_handler) (void);
static void __interrupt dos_int23_handler (void) static void __interrupt dos_int23_handler (void)
#endif #endif
{ {
/* dos int23 - ctrl-c handler */
#if (IRQ_TERM == 0x23) && defined(_INTELC32_) #if (IRQ_TERM == 0x23) && defined(_INTELC32_)
/* note this code for _INTELC32_ doesn't seem to work properly /* note this code for _INTELC32_ doesn't seem to work properly
* unless the program is waiting on getch() or something similar */ * unless the program is waiting on getch() or something similar */