summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2017-01-07 20:31:02 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2017-01-07 20:31:02 +0000
commit6a9ca73e10c3c4e8a95101313e9c5d46cf018f86 (patch)
tree41ae80cb08fa1e280012b799ad0d1e63090b19bc
parent6245dcef12eed3b12b129519eeaf11f7e221d278 (diff)
downloadexecline-6a9ca73e10c3c4e8a95101313e9c5d46cf018f86.tar.xz
Types fix: first pass
This pass makes variable size_t-ready, so everything works when the prototypes are fixed in skalibs. Some code uses "unsigned int *" where it should be "size_t *"; it cannot be changed now, but it's been marked with XXX. It must change at the same time as the skalibs API.
-rw-r--r--src/execline/background.c2
-rw-r--r--src/execline/backtick.c4
-rw-r--r--src/execline/dollarat.c3
-rw-r--r--src/execline/elgetopt.c6
-rw-r--r--src/execline/emptyenv.c3
-rw-r--r--src/execline/exec.c3
-rw-r--r--src/execline/execlineb.c3
-rw-r--r--src/execline/export.c5
-rw-r--r--src/execline/forbacktickx.c4
-rw-r--r--src/execline/forstdin.c14
-rw-r--r--src/execline/forx.c10
-rw-r--r--src/execline/getpid.c5
-rw-r--r--src/execline/heredoc.c3
-rw-r--r--src/execline/loopwhilex.c2
-rw-r--r--src/execline/pipeline.c2
-rw-r--r--src/execline/runblock.c3
-rw-r--r--src/execline/trap.c12
-rw-r--r--src/execline/tryexec.c3
-rw-r--r--src/execline/unexport.c3
-rw-r--r--src/execline/withstdinas.c4
-rw-r--r--src/include-local/exlsn.h2
-rw-r--r--src/include/execline/execline.h14
-rw-r--r--src/libexecline/el_execsequence.c2
-rw-r--r--src/libexecline/el_parse.c11
-rw-r--r--src/libexecline/el_parse_from_buffer.c3
-rw-r--r--src/libexecline/el_popenv.c11
-rw-r--r--src/libexecline/el_pushenv.c13
-rw-r--r--src/libexecline/el_spawn1.c3
-rw-r--r--src/libexecline/el_substandrun.c3
-rw-r--r--src/libexecline/el_substandrun_str.c3
-rw-r--r--src/libexecline/el_substitute.c50
-rw-r--r--src/libexecline/el_transform.c21
-rw-r--r--src/libexecline/el_vardupl.c5
-rw-r--r--src/libexecline/exlp.c16
-rw-r--r--src/libexecline/exlsn_multidefine.c7
35 files changed, 144 insertions, 114 deletions
diff --git a/src/execline/background.c b/src/execline/background.c
index d3e96ff..79771af 100644
--- a/src/execline/background.c
+++ b/src/execline/background.c
@@ -64,7 +64,7 @@ int main (int argc, char const **argv, char const *const *envp)
#else
char fmt[UINT64_FMT + 2] = "!=" ;
#endif
- register unsigned int i = 2 ;
+ register size_t i = 2 ;
i += uint64_fmt(fmt+i, (uint64)pid) ; fmt[i++] = 0 ;
#ifdef EXECLINE_OLD_VARNAMES
byte_copy(fmt+i, 8, "LASTPID=") ; i += 8 ;
diff --git a/src/execline/backtick.c b/src/execline/backtick.c
index 38ab0af..5ab4dfa 100644
--- a/src/execline/backtick.c
+++ b/src/execline/backtick.c
@@ -19,7 +19,7 @@ int main (int argc, char const **argv, char const *const *envp)
pid_t pid ;
int argc1, fdwstat ;
stralloc modif = STRALLOC_ZERO ;
- unsigned int modifstart ;
+ size_t modifstart ;
int insist = 0, chomp = 0 ;
char const *def = 0 ;
PROG = "backtick" ;
@@ -74,7 +74,7 @@ int main (int argc, char const **argv, char const *const *envp)
if (argc1 == argc - 1) return 0 ;
if (!stralloc_0(&modif)) strerr_diefu1sys(111, "stralloc_catb") ;
{
- unsigned int reallen = str_len(modif.s) ;
+ size_t reallen = str_len(modif.s) ;
if (reallen < modif.len - 1)
{
if (insist >= 2)
diff --git a/src/execline/dollarat.c b/src/execline/dollarat.c
index 66b5c61..136968b 100644
--- a/src/execline/dollarat.c
+++ b/src/execline/dollarat.c
@@ -1,5 +1,6 @@
/* ISC license. */
+#include <sys/types.h>
#include <skalibs/bytestr.h>
#include <skalibs/sgetopt.h>
#include <skalibs/buffer.h>
@@ -52,7 +53,7 @@ int main (int argc, char const *const *argv, char const *const *envp)
}
else
{
- unsigned int written = 0 ;
+ size_t written = 0 ;
if (!netstring_put(buffer_1, x, str_len(x), &written))
strerr_diefu1sys(111, "write a netstring to stdout") ;
}
diff --git a/src/execline/elgetopt.c b/src/execline/elgetopt.c
index 4dfd4d8..a48968f 100644
--- a/src/execline/elgetopt.c
+++ b/src/execline/elgetopt.c
@@ -1,5 +1,6 @@
/* ISC license. */
+#include <sys/types.h>
#include <skalibs/bytestr.h>
#include <skalibs/sgetopt.h>
#include <skalibs/env.h>
@@ -13,10 +14,11 @@
int main (int argc, char const *const *argv, char const *const *envp)
{
- unsigned int n, nbak ;
- unsigned int envlen = env_len(envp) ;
+ size_t envlen = env_len(envp) ;
stralloc modif = STRALLOC_ZERO ;
char const *x = env_get2(envp, "#") ;
+ unsigned int n, nbak ;
+
PROG = "elgetopt" ;
if (argc < 3) strerr_dieusage(100, USAGE) ;
if (!x) strerr_dienotset(100, "#") ;
diff --git a/src/execline/emptyenv.c b/src/execline/emptyenv.c
index cae8869..90d72d1 100644
--- a/src/execline/emptyenv.c
+++ b/src/execline/emptyenv.c
@@ -1,5 +1,6 @@
/* ISC license. */
+#include <sys/types.h>
#include <skalibs/sgetopt.h>
#include <skalibs/bytestr.h>
#include <skalibs/strerr2.h>
@@ -77,7 +78,7 @@ int main (int argc, char const *const *argv, char const *const *envp)
{
static char const *const list[12] = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "#", "ELGETOPT_" } ;
stralloc sa = STRALLOC_ZERO ;
- unsigned int envlen = env_len(envp) ;
+ size_t envlen = env_len(envp) ;
int n = el_popenv(&sa, envp, envlen, flagpos ? list : list + 11, 11 * flagpos + flagopt) ;
if (n < 0) strerr_diefu1sys(111, "pop current execline environment") ;
{
diff --git a/src/execline/exec.c b/src/execline/exec.c
index 2213ba4..9b923ab 100644
--- a/src/execline/exec.c
+++ b/src/execline/exec.c
@@ -1,5 +1,6 @@
/* ISC license. */
+#include <sys/types.h>
#include <skalibs/bytestr.h>
#include <skalibs/djbunix.h>
#include <skalibs/sgetopt.h>
@@ -36,7 +37,7 @@ int main (int argc, char const **argv, char const *const *envp)
if (argv0) argv[0] = argv0 ;
if (dash)
{
- register unsigned int n = str_len(argv[0]) ;
+ register size_t n = str_len(argv[0]) ;
char dashed[n+2] ;
dashed[0] = '-' ;
byte_copy(dashed+1, n+1, argv[0]) ;
diff --git a/src/execline/execlineb.c b/src/execline/execlineb.c
index fbbaeee..3b14fe5 100644
--- a/src/execline/execlineb.c
+++ b/src/execline/execlineb.c
@@ -1,5 +1,6 @@
/* ISC license. */
+#include <sys/types.h>
#include <errno.h>
#include <skalibs/uint.h>
#include <skalibs/allreadwrite.h>
@@ -175,7 +176,7 @@ int main (int argc, char const *const *argv, char const *const *envp)
if (flagpushenv > 1)
{
static char const *const list[11] = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "#" } ;
- unsigned int envlen = env_len(envp) ;
+ size_t envlen = env_len(envp) ;
char const *w[envlen] ;
if (el_pushenv(&satmp, envp, envlen, list, 11) < 0) goto errenv ;
if (!env_make(w, envlen, satmp.s, satmp.len)) goto errenv ;
diff --git a/src/execline/export.c b/src/execline/export.c
index e7a7bbe..b189268 100644
--- a/src/execline/export.c
+++ b/src/execline/export.c
@@ -1,5 +1,6 @@
/* ISC license. */
+#include <sys/types.h>
#include <skalibs/bytestr.h>
#include <skalibs/strerr2.h>
#include <skalibs/env.h>
@@ -9,14 +10,14 @@
int main (int argc, char const *const *argv, char const *const *envp)
{
- unsigned int len1 ;
+ size_t len1 ;
PROG = "export" ;
if (argc < 4) strerr_dieusage(100, USAGE) ;
len1 = str_len(argv[1]) ;
if (byte_chr(argv[1], len1, '=') < len1)
strerr_dief2x(100, "invalid variable name: ", argv[1]) ;
{
- unsigned int len2 = str_len(argv[2]) ;
+ size_t len2 = str_len(argv[2]) ;
char fmt[len1 + len2 + 2] ;
byte_copy(fmt, len1, argv[1]) ;
fmt[len1] = '=' ;
diff --git a/src/execline/forbacktickx.c b/src/execline/forbacktickx.c
index c0c617a..9833174 100644
--- a/src/execline/forbacktickx.c
+++ b/src/execline/forbacktickx.c
@@ -40,7 +40,7 @@ int main (int argc, char const *const *argv, char const *const *envp)
case 'o' :
{
unsigned short okcodes[256] ;
- unsigned int nbc ;
+ unsigned int nbc ; /* XXX */
if (!ushort_scanlist(okcodes, 256, l.arg, &nbc)) dieusage() ;
codes = l.arg ;
not = 0 ;
@@ -49,7 +49,7 @@ int main (int argc, char const *const *argv, char const *const *envp)
case 'x' :
{
unsigned short okcodes[256] ;
- unsigned int nbc ;
+ unsigned int nbc ; /* XXX */
if (!ushort_scanlist(okcodes, 256, l.arg, &nbc)) dieusage() ;
codes = l.arg ;
not = 1 ;
diff --git a/src/execline/forstdin.c b/src/execline/forstdin.c
index 3b52fab..96b6e8b 100644
--- a/src/execline/forstdin.c
+++ b/src/execline/forstdin.c
@@ -33,11 +33,11 @@ static int isok (unsigned short *tab, unsigned int n, int code)
static void parallel_sigchld_handler (int sig)
{
pid_t *tab = genalloc_s(pid_t, &pids) ;
- unsigned int len = genalloc_len(pid_t, &pids) ;
+ size_t len = genalloc_len(pid_t, &pids) ;
int wstat ;
for (;;)
{
- register int r = wait_pids_nohang(tab, len, &wstat) ;
+ register ssize_t r = wait_pids_nohang(tab, len, &wstat) ;
if (r <= 0) break ;
tab[r-1] = tab[--len] ;
}
@@ -74,11 +74,11 @@ int main (int argc, char const **argv, char const *const *envp)
case 'd' : delim = l.arg ; delimlen = str_len(delim) ; break ;
case 'o' :
not = 0 ;
- if (!ushort_scanlist(okcodes, 256, l.arg, &nbc)) dieusage() ;
+ if (!ushort_scanlist(okcodes, 256, l.arg, &nbc)) dieusage() ; /* XXX */
break ;
case 'x' :
not = 1 ;
- if (!ushort_scanlist(okcodes, 256, l.arg, &nbc)) dieusage() ;
+ if (!ushort_scanlist(okcodes, 256, l.arg, &nbc)) dieusage() ; /* XXX */
break ;
default : dieusage() ;
}
@@ -88,8 +88,8 @@ int main (int argc, char const **argv, char const *const *envp)
if (argc < 2) dieusage() ;
{
stralloc modif = STRALLOC_ZERO ;
- unsigned int envlen = env_len(envp) ;
- unsigned int modifstart = str_len(argv[0])+1 ;
+ size_t envlen = env_len(envp) ;
+ size_t modifstart = str_len(argv[0])+1 ;
char const *newenv[envlen + 2] ;
if (!stralloc_ready(&modif, modifstart+1))
strerr_diefu1sys(111, "stralloc_ready") ;
@@ -118,7 +118,7 @@ int main (int argc, char const **argv, char const *const *envp)
}
else
{
- unsigned int unread = 0 ;
+ unsigned int unread = 0 ; /* XXX: change to size_t when the skalibs API changes */
if (netstring_get(buffer_0, &modif, &unread) <= 0)
{
if (netstring_okeof(buffer_0, unread)) break ;
diff --git a/src/execline/forx.c b/src/execline/forx.c
index bae2f4b..327f168 100644
--- a/src/execline/forx.c
+++ b/src/execline/forx.c
@@ -60,11 +60,11 @@ int main (int argc, char const **argv, char const *const *envp)
case 'p' : flagpar = 1 ; break ;
case 'o' :
not = 0 ;
- if (!ushort_scanlist(okcodes, 256, l.arg, &nbc)) dieusage() ;
+ if (!ushort_scanlist(okcodes, 256, l.arg, &nbc)) dieusage() ; /* XXX */
break ;
case 'x' :
not = 1 ;
- if (!ushort_scanlist(okcodes, 256, l.arg, &nbc)) dieusage() ;
+ if (!ushort_scanlist(okcodes, 256, l.arg, &nbc)) dieusage() ; /* XXX */
break ;
default : dieusage() ;
}
@@ -81,8 +81,8 @@ int main (int argc, char const **argv, char const *const *envp)
if (argc1 >= argc) strerr_dief1x(100, "unterminated block") ;
if (!argc1 || (argc1 + 1 == argc)) return 0 ;
{
- unsigned int envlen = env_len(envp) ;
- unsigned int varlen = str_len(x) ;
+ size_t envlen = env_len(envp) ;
+ size_t varlen = str_len(x) ;
unsigned int i = 0 ;
pid_t pids[flagpar ? argc1 : 1] ;
char const *newenv[envlen + 2] ;
@@ -90,7 +90,7 @@ int main (int argc, char const **argv, char const *const *envp)
for (; i < (unsigned int)argc1 ; i++)
{
pid_t pid ;
- unsigned int vallen = str_len(argv[i]) ;
+ size_t vallen = str_len(argv[i]) ;
char modif[varlen + vallen + 2] ;
byte_copy(modif, varlen, x) ;
modif[varlen] = '=' ;
diff --git a/src/execline/getpid.c b/src/execline/getpid.c
index 03a517c..0ade4d3 100644
--- a/src/execline/getpid.c
+++ b/src/execline/getpid.c
@@ -1,5 +1,6 @@
/* ISC license. */
+#include <sys/types.h>
#include <unistd.h>
#include <skalibs/bytestr.h>
#include <skalibs/uint.h>
@@ -11,15 +12,15 @@
int main (int argc, char const *const *argv, char const *const *envp)
{
- unsigned int len ;
+ size_t len ;
PROG = "getpid" ;
if (argc < 3) strerr_dieusage(100, USAGE) ;
len = str_len(argv[1]) ;
if (byte_chr(argv[1], len, '=') < len)
strerr_dief2x(100, "invalid variable name: ", argv[1]) ;
{
+ size_t i = len+1 ;
char fmt[UINT_FMT + len + 2] ;
- unsigned int i = len+1 ;
byte_copy(fmt, len, argv[1]) ;
fmt[len] = '=' ;
i += uint_fmt(fmt+i, getpid()) ; fmt[i++] = 0 ;
diff --git a/src/execline/heredoc.c b/src/execline/heredoc.c
index 899c2d8..c3dd691 100644
--- a/src/execline/heredoc.c
+++ b/src/execline/heredoc.c
@@ -1,5 +1,6 @@
/* ISC license. */
+#include <sys/types.h>
#include <unistd.h>
#include <skalibs/sgetopt.h>
#include <skalibs/bytestr.h>
@@ -42,7 +43,7 @@ int main (int argc, char const *const *argv, char const *const *envp)
case -1: strerr_diefu2sys(111, df ? "double" : "", "fork") ;
case 0:
{
- unsigned int len = str_len(argv[1]) ;
+ size_t len = str_len(argv[1]) ;
PROG = "heredoc (child)" ;
fd_close(fd[0]) ;
if (allwrite(fd[1], argv[1], len) < len)
diff --git a/src/execline/loopwhilex.c b/src/execline/loopwhilex.c
index d2955ad..0f1f5e4 100644
--- a/src/execline/loopwhilex.c
+++ b/src/execline/loopwhilex.c
@@ -23,7 +23,7 @@ int main (int argc, char const *const *argv, char const *const *envp)
int wstat ;
int not = 0, cont = 1, rev = 0 ;
unsigned short okcodes[256] ;
- unsigned int nbc = 0 ;
+ unsigned int nbc = 0 ; /* XXX */
PROG = "loopwhilex" ;
{
subgetopt_t l = SUBGETOPT_ZERO ;
diff --git a/src/execline/pipeline.c b/src/execline/pipeline.c
index ca5ef0f..fea0b87 100644
--- a/src/execline/pipeline.c
+++ b/src/execline/pipeline.c
@@ -73,7 +73,7 @@ int main (int argc, char const **argv, char const *const *envp)
#else
char fmt[UINT64_FMT + 2] = "!=" ;
#endif
- register unsigned int i = 2 ;
+ register size_t i = 2 ;
i += uint64_fmt(fmt+i, (uint64)pid) ; fmt[i++] = 0 ;
#ifdef EXECLINE_OLD_VARNAMES
byte_copy(fmt+i, 8, "LASTPID=") ; i += 8 ;
diff --git a/src/execline/runblock.c b/src/execline/runblock.c
index 4e3808d..c36675f 100644
--- a/src/execline/runblock.c
+++ b/src/execline/runblock.c
@@ -1,5 +1,6 @@
/* ISC license. */
+#include <sys/types.h>
#include <skalibs/sgetopt.h>
#include <skalibs/uint.h>
#include <skalibs/strerr2.h>
@@ -132,7 +133,7 @@ int main (int argc, char const *const *argv, char const *const *envp)
else /* popenv, then exec */
{
char const *list[11] = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "#" } ;
- unsigned int envlen = env_len(envp) ;
+ size_t envlen = env_len(envp) ;
register int popped = el_popenv(&satmp, envp, envlen, list, 11) ;
if (popped < 0) strerr_diefu1sys(111, "pop environment") ;
else
diff --git a/src/execline/trap.c b/src/execline/trap.c
index bfb5733..9a21e49 100644
--- a/src/execline/trap.c
+++ b/src/execline/trap.c
@@ -114,12 +114,12 @@ int main (int argc, char const **argv, char const *const *envp)
{
iopause_fd x = { .fd = spfd, .events = IOPAUSE_READ } ;
+ size_t envlen = env_len(envp) ;
char modif[2 + UINT64_FMT] = "!=" ;
- unsigned int envlen = env_len(envp) ;
+ size_t l = 2 + uint64_fmt(modif + 2, pids[NSIG+1]) ;
char const *newenvp[envlen + 2] ;
- i = 2 + uint64_fmt(modif + 2, pids[NSIG+1]) ;
- modif[i++] = 0 ;
- if (!env_merge(newenvp, envlen + 2, envp, envlen, modif, i))
+ modif[l++] = 0 ;
+ if (!env_merge(newenvp, envlen + 2, envp, envlen, modif, l))
strerr_diefu1sys(111, "adjust environment") ;
for (;;)
{
@@ -142,8 +142,8 @@ int main (int argc, char const **argv, char const *const *envp)
case SIGCHLD :
for (;;)
{
- int id, wstat ;
- id = wait_pids_nohang(pids, NSIG + 2, &wstat) ;
+ int wstat ;
+ ssize_t id = wait_pids_nohang(pids, NSIG + 2, &wstat) ;
if (id < 0 && errno != ECHILD)
strerr_diefu1sys(111, "wait") ;
if (id <= 0) break ;
diff --git a/src/execline/tryexec.c b/src/execline/tryexec.c
index 0612210..9026603 100644
--- a/src/execline/tryexec.c
+++ b/src/execline/tryexec.c
@@ -1,5 +1,6 @@
/* ISC license. */
+#include <sys/types.h>
#include <skalibs/bytestr.h>
#include <skalibs/sgetopt.h>
#include <skalibs/strerr2.h>
@@ -49,7 +50,7 @@ int main (int argc, char const **argv, char const *const *envp)
if (argv0) dom[0] = argv0 ;
if (dash)
{
- register unsigned int n = str_len(dom[0]) ;
+ register size_t n = str_len(dom[0]) ;
char dashed[n+2] ;
dashed[0] = '-' ;
byte_copy(dashed+1, n+1, dom[0]) ;
diff --git a/src/execline/unexport.c b/src/execline/unexport.c
index 189249c..c7ffc77 100644
--- a/src/execline/unexport.c
+++ b/src/execline/unexport.c
@@ -1,5 +1,6 @@
/* ISC license. */
+#include <sys/types.h>
#include <skalibs/bytestr.h>
#include <skalibs/strerr2.h>
#include <skalibs/env.h>
@@ -9,7 +10,7 @@
int main (int argc, char const *const *argv, char const *const *envp)
{
- unsigned int len ;
+ size_t len ;
PROG = "unexport" ;
if (argc < 3) strerr_dieusage(100, USAGE) ;
len = str_len(argv[1]) ;
diff --git a/src/execline/withstdinas.c b/src/execline/withstdinas.c
index af7140f..7729024 100644
--- a/src/execline/withstdinas.c
+++ b/src/execline/withstdinas.c
@@ -17,7 +17,7 @@ int main (int argc, char const **argv, char const *const *envp)
{
subgetopt_t localopt = SUBGETOPT_ZERO ;
stralloc modif = STRALLOC_ZERO ;
- unsigned int modifstart ;
+ size_t modifstart ;
int insist = 0, chomp = 0 ;
char const *def = 0 ;
PROG = "withstdinas" ;
@@ -44,7 +44,7 @@ int main (int argc, char const **argv, char const *const *envp)
if (!slurp(&modif, 0)) strerr_diefu1sys(111, "slurp") ;
if (!stralloc_0(&modif)) strerr_diefu1sys(111, "stralloc_catb") ;
{
- unsigned int reallen = str_len(modif.s) ;
+ size_t reallen = str_len(modif.s) ;
if (reallen < modif.len - 1)
{
if (insist >= 2)
diff --git a/src/include-local/exlsn.h b/src/include-local/exlsn.h
index 2bdcf58..238bd6b 100644
--- a/src/include-local/exlsn.h
+++ b/src/include-local/exlsn.h
@@ -32,7 +32,7 @@ extern exlsnfunc_t exlsn_multidefine ;
extern int exlp (unsigned int, char const *const *, exlsn_t *) ;
extern void el_substandrun (int, char const *const *, char const *const *, exlsn_t const *) gccattr_noreturn ;
-extern void el_substandrun_str (stralloc *, unsigned int, char const *const *, exlsn_t const *) gccattr_noreturn ;
+extern void el_substandrun_str (stralloc *, size_t, char const *const *, exlsn_t const *) gccattr_noreturn ;
extern void exlsn_main (int, char const **, char const *const *, exlsnfunc_t *, char const *) gccattr_noreturn ;
#endif
diff --git a/src/include/execline/execline.h b/src/include/execline/execline.h
index 45ee1e5..bbe4db9 100644
--- a/src/include/execline/execline.h
+++ b/src/include/execline/execline.h
@@ -26,14 +26,14 @@ extern int el_parse_from_buffer (stralloc *, buffer *) ;
/* Basics */
-extern int el_vardupl (char const *, char const *, unsigned int) gccattr_pure ;
+extern int el_vardupl (char const *, char const *, size_t) gccattr_pure ;
extern unsigned int el_getstrict (void) gccattr_const ;
/* Environment shifting */
-extern int el_pushenv (stralloc *, char const *const *, unsigned int, char const *const *, unsigned int) ;
-extern int el_popenv (stralloc *, char const *const *, unsigned int, char const *const *, unsigned int) ;
+extern int el_pushenv (stralloc *, char const *const *, size_t, char const *const *, size_t) ;
+extern int el_popenv (stralloc *, char const *const *, size_t, char const *const *, size_t) ;
/* Sequence */
@@ -61,7 +61,7 @@ struct eltransforminfo_s
#define ELTRANSFORMINFO_ZERO { .delim = " \n\r\t", .crunch = 0, .chomp = 0, .split = 0 }
-extern int el_transform (stralloc *, unsigned int, eltransforminfo_t const *) ;
+extern int el_transform (stralloc *, size_t, eltransforminfo_t const *) ;
/* Substitution */
@@ -69,11 +69,11 @@ extern int el_transform (stralloc *, unsigned int, eltransforminfo_t const *) ;
typedef struct elsubst_s elsubst_t, *elsubst_t_ref ;
struct elsubst_s
{
- unsigned int var ;
- unsigned int value ;
+ size_t var ;
+ size_t value ;
unsigned int n ;
} ;
-extern int el_substitute (stralloc *, char const *, unsigned int, char const *, char const *, elsubst_t const *, unsigned int) ;
+extern int el_substitute (stralloc *, char const *, size_t, char const *, char const *, elsubst_t const *, unsigned int) ;
#endif
diff --git a/src/libexecline/el_execsequence.c b/src/libexecline/el_execsequence.c
index 6b825af..d697f2e 100644
--- a/src/libexecline/el_execsequence.c
+++ b/src/libexecline/el_execsequence.c
@@ -19,8 +19,8 @@ void el_execsequence (char const *const *argv1, char const *const *argv2, char c
}
else
{
+ size_t j = 2 ;
int wstat ;
- unsigned int j = 2 ;
#ifdef EXECLINE_OLD_VARNAMES
char fmt[UINT_FMT * 2 + 15] = "?=" ;
#else
diff --git a/src/libexecline/el_parse.c b/src/libexecline/el_parse.c
index 1544f51..acff34a 100644
--- a/src/libexecline/el_parse.c
+++ b/src/libexecline/el_parse.c
@@ -1,6 +1,7 @@
/* ISC license. */
-#include <skalibs/uint16.h>
+#include <sys/types.h>
+#include <stdint.h>
#include <skalibs/uint.h>
#include <skalibs/bytestr.h>
#include <skalibs/stralloc.h>
@@ -10,7 +11,7 @@
int el_parse (stralloc *sa, el_chargen_func_t_ref next, void *source)
{
static unsigned char const class[256] = "`aaaaaaaaadaaaaaaaaaaaaaaaaaaaaaafcbffffffffffffjhhhhhhhiifffffffmmmmmmfffffffffffffffffffffeffffggmmmgfffffffkfffkfkfkflffnfoffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" ;
- static uint16 const table[16][16] =
+ static uint16_t const table[16][16] =
{
{ 0x0011, 0x4011, 0x0010, 0x0010, 0x0010, 0x0011, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x4091 },
{ 0x0000, 0x4000, 0x8001, 0x8003, 0x8003, 0x0005, 0x0010, 0x8403, 0x8403, 0x8403, 0x8403, 0x0010, 0x8403, 0x8403, 0x0100, 0x4080 },
@@ -30,14 +31,14 @@ int el_parse (stralloc *sa, el_chargen_func_t_ref next, void *source)
{ 0x820f, 0x8001, 0x8001, 0x8003, 0x8003, 0x0005, 0x0010, 0x8403, 0x8403, 0x8403, 0x8403, 0x0010, 0x8403, 0x8403, 0x8001, 0x8001 }
} ;
- unsigned int mark = 0 ;
- unsigned int n = 0 ;
+ size_t mark = 0 ;
+ int n = 0 ;
unsigned int blevel = 0 ;
unsigned char state = 0, base = 10 ;
while (state < 0x10)
{
- uint16 c ;
+ uint16_t c ;
unsigned char cur ;
if (!(*next)(&cur, source)) return -1 ;
c = table[class[cur]-'`'][state] ;
diff --git a/src/libexecline/el_parse_from_buffer.c b/src/libexecline/el_parse_from_buffer.c
index 802fe40..83862f3 100644
--- a/src/libexecline/el_parse_from_buffer.c
+++ b/src/libexecline/el_parse_from_buffer.c
@@ -1,12 +1,13 @@
/* ISC license. */
+#include <sys/types.h>
#include <skalibs/buffer.h>
#include <skalibs/stralloc.h>
#include <execline/execline.h>
static int next (unsigned char *c, void *p)
{
- register int r = buffer_get((buffer *)p, (char *)c, 1) ;
+ register ssize_t r = buffer_get((buffer *)p, (char *)c, 1) ;
if (r < 0) return 0 ;
if (!r) *c = 0 ;
return 1 ;
diff --git a/src/libexecline/el_popenv.c b/src/libexecline/el_popenv.c
index 3726506..c0089d0 100644
--- a/src/libexecline/el_popenv.c
+++ b/src/libexecline/el_popenv.c
@@ -1,18 +1,19 @@
/* ISC license. */
+#include <sys/types.h>
#include <errno.h>
#include <skalibs/bytestr.h>
#include <skalibs/stralloc.h>
#include <skalibs/uint.h>
#include <execline/execline.h>
-int el_popenv (stralloc *sa, char const *const *envp, unsigned int envlen, char const *const *list, unsigned int listlen)
+int el_popenv (stralloc *sa, char const *const *envp, size_t envlen, char const *const *list, size_t listlen)
{
- unsigned int i = 0, salen = sa->len, count = 0 ;
+ size_t i = 0, salen = sa->len ;
+ int count = 0 ;
for (; i < envlen ; i++)
{
- unsigned int equal, colon, n ;
- unsigned int j = 0 ;
+ size_t equal, colon, n, j = 0 ;
for (; j < listlen ; j++) if (str_start(envp[i], list[j])) break ;
if (j == listlen) goto copyit ;
j = str_len(list[j]) ;
@@ -34,7 +35,7 @@ int el_popenv (stralloc *sa, char const *const *envp, unsigned int envlen, char
copyit:
if (!stralloc_catb(sa, envp[i], str_len(envp[i]) + 1)) goto err ;
}
- return (int)count ;
+ return count ;
badenv :
errno = EINVAL ;
diff --git a/src/libexecline/el_pushenv.c b/src/libexecline/el_pushenv.c
index 9b9608d..4ec43bb 100644
--- a/src/libexecline/el_pushenv.c
+++ b/src/libexecline/el_pushenv.c
@@ -1,18 +1,19 @@
/* ISC license. */
+#include <sys/types.h>
#include <errno.h>
#include <skalibs/bytestr.h>
#include <skalibs/stralloc.h>
#include <skalibs/uint.h>
#include <execline/execline.h>
-int el_pushenv (stralloc *sa, char const *const *envp, unsigned int envlen, char const *const *list, unsigned int listlen)
+int el_pushenv (stralloc *sa, char const *const *envp, size_t envlen, char const *const *list, size_t listlen)
{
- unsigned int i = 0, salen = sa->len, count = 0 ;
+ size_t i = 0, salen = sa->len ;
+ int count = 0 ;
for (; i < envlen ; i++)
{
- unsigned int equal, colon ;
- unsigned int j = 0 ;
+ size_t equal, colon, j = 0 ;
for (; j < listlen ; j++) if (str_start(envp[i], list[j])) break ;
if (j == listlen) goto copyit ;
count++ ;
@@ -27,8 +28,8 @@ int el_pushenv (stralloc *sa, char const *const *envp, unsigned int envlen, char
}
else
{
+ size_t n ;
char fmt[UINT_FMT+1] = ":" ;
- unsigned int n ;
if (colon + 1 + uint_scan(envp[i] + colon + 1, &n) != equal) goto copyit ;
n = 1 + uint_fmt(fmt+1, n+1) ;
if (!stralloc_catb(sa, envp[i], colon)) goto err ;
@@ -39,7 +40,7 @@ int el_pushenv (stralloc *sa, char const *const *envp, unsigned int envlen, char
copyit:
if (!stralloc_catb(sa, envp[i], str_len(envp[i]) + 1)) goto err ;
}
- return (int)count ;
+ return count ;
badenv :
errno = EINVAL ;
diff --git a/src/libexecline/el_spawn1.c b/src/libexecline/el_spawn1.c
index f84b10a..f434d70 100644
--- a/src/libexecline/el_spawn1.c
+++ b/src/libexecline/el_spawn1.c
@@ -2,13 +2,14 @@
#include <sys/types.h>
#include <skalibs/djbunix.h>
+#include <execline/config.h>
#include <execline/execline.h>
pid_t el_spawn1 (char const *prog, char const *const *argv, char const *const *envp, int *fd, int w)
{
if (!argv[0])
{
- static char const *const newargv[2] = { "/bin/true", 0 } ;
+ static char const *const newargv[3] = { EXECLINE_BINPREFIX "exit", "0", 0 } ;
return child_spawn1_pipe(newargv[0], newargv, 0, fd, w) ;
}
else return child_spawn1_pipe(prog, argv, envp, fd, w) ;
diff --git a/src/libexecline/el_substandrun.c b/src/libexecline/el_substandrun.c
index 11502ea..8b8084a 100644
--- a/src/libexecline/el_substandrun.c
+++ b/src/libexecline/el_substandrun.c
@@ -1,5 +1,6 @@
/* ISC license. */
+#include <sys/types.h>
#include <skalibs/env.h>
#include <skalibs/strerr2.h>
#include <skalibs/skamisc.h>
@@ -8,6 +9,6 @@
void el_substandrun (int argc, char const *const *argv, char const *const *envp, exlsn_t const *info)
{
satmp.len = 0 ;
- if (!env_string(&satmp, argv, (unsigned int)argc)) strerr_diefu1sys(111, "env_string") ;
+ if (!env_string(&satmp, argv, (size_t)argc)) strerr_diefu1sys(111, "env_string") ;
el_substandrun_str(&satmp, 0, envp, info) ;
}
diff --git a/src/libexecline/el_substandrun_str.c b/src/libexecline/el_substandrun_str.c
index 8168287..a935b82 100644
--- a/src/libexecline/el_substandrun_str.c
+++ b/src/libexecline/el_substandrun_str.c
@@ -1,5 +1,6 @@
/* ISC license. */
+#include <sys/types.h>
#include <unistd.h>
#include <skalibs/djbunix.h>
#include <skalibs/env.h>
@@ -9,7 +10,7 @@
#include <execline/execline.h>
#include "exlsn.h"
-void el_substandrun_str (stralloc *src, unsigned int srcbase, char const *const *envp, exlsn_t const *info)
+void el_substandrun_str (stralloc *src, size_t srcbase, char const *const *envp, exlsn_t const *info)
{
stralloc dst = STRALLOC_ZERO ;
register int r = el_substitute(&dst, src->s + srcbase, src->len, info->vars.s, info->values.s, genalloc_s(elsubst_t const, &info->data), genalloc_len(elsubst_t const, &info->data)) ;
diff --git a/src/libexecline/el_substitute.c b/src/libexecline/el_substitute.c
index a94c16d..9fa2f70 100644
--- a/src/libexecline/el_substitute.c
+++ b/src/libexecline/el_substitute.c
@@ -1,5 +1,6 @@
/* ISC license. */
+#include <sys/types.h>
#include <skalibs/bytestr.h>
#include <skalibs/stralloc.h>
#include <skalibs/genalloc.h>
@@ -9,7 +10,7 @@ typedef struct elsubsu_s elsubsu_t, *elsubsu_t_ref ;
struct elsubsu_s
{
elsubst_t const *subst ;
- unsigned int pos ;
+ size_t pos ;
} ;
typedef struct subsuinfo_s subsuinfo_t, *subsuinfo_t_ref ;
@@ -36,7 +37,7 @@ struct subsuinfo_s
#define INVARBR 0x04
#define ACCEPT 0x05
-static int parseword (stralloc *sa, genalloc *list, char const *s, char const *vars, elsubst_t const *substs, unsigned int nsubst)
+static ssize_t parseword (stralloc *sa, genalloc *list, char const *s, char const *vars, elsubst_t const *substs, unsigned int nsubst)
{
static char const class[5] = "\0\\${}" ;
static unsigned char const table[6][5] =
@@ -49,7 +50,8 @@ static int parseword (stralloc *sa, genalloc *list, char const *s, char const *v
{ INWORD, INVAR | MARK | KEEPESC, INVARBR | MARK | KEEPESC, INVAR | KEEPESC, INVARBR | KEEPESC }
} ;
- unsigned int mark = 0, pos = 0, offset = 0, esc = 0, salen = sa->len, listlen = genalloc_len(elsubsu_t, list) ;
+ size_t mark = 0, offset = 0, esc = 0, salen = sa->len, listlen = genalloc_len(elsubsu_t, list) ;
+ ssize_t pos = 0 ;
unsigned char state = INWORD ;
while (state != ACCEPT)
@@ -93,7 +95,7 @@ static int parseword (stralloc *sa, genalloc *list, char const *s, char const *v
state = c & STATE ; pos++ ;
}
sa->len-- ;
- return (int)pos ;
+ return pos ;
err:
sa->len = salen ;
@@ -101,23 +103,23 @@ err:
return -1 ;
}
-static int substword (subsuinfo_t *info, unsigned int wordstart, unsigned int wordlen, unsigned int n, unsigned int offset)
+static int substword (subsuinfo_t *info, size_t wordstart, size_t wordlen, unsigned int n, size_t offset)
{
if (n < genalloc_len(elsubsu_t, &info->list))
{
elsubsu_t *list = genalloc_s(elsubsu_t, &info->list) ;
char const *p = info->values + list[n].subst->value ;
- unsigned int l = list[n].pos + offset ;
- unsigned int dstbase = info->dst.len ;
- unsigned int sabase = info->sa.len ;
+ size_t l = list[n].pos + offset ;
+ size_t dstbase = info->dst.len ;
+ size_t sabase = info->sa.len ;
unsigned int i = 0 ;
int nc = 0 ;
if (!stralloc_readyplus(&info->sa, l)) return -1 ;
stralloc_catb(&info->sa, info->sa.s + wordstart, l) ;
- for ( ; i < list[n].subst->n ; i++)
+ for (; i < list[n].subst->n ; i++)
{
+ size_t plen = str_len(p) ;
int r ;
- unsigned int plen = str_len(p) ;
info->sa.len = sabase + l ;
if (!stralloc_readyplus(&info->sa, plen + wordlen - l)) goto err ;
stralloc_catb(&info->sa, p, plen) ;
@@ -142,33 +144,37 @@ static int substword (subsuinfo_t *info, unsigned int wordstart, unsigned int wo
}
}
-int el_substitute (stralloc *dst, char const *src, unsigned int len, char const *vars, char const *values, elsubst_t const *substs, unsigned int nsubst)
+int el_substitute (stralloc *dst, char const *src, size_t len, char const *vars, char const *values, elsubst_t const *substs, unsigned int nsubst)
{
subsuinfo_t info = SUBSUINFO_ZERO ;
- unsigned int nc = 0 ;
- unsigned int i = 0 ;
- unsigned int dstbase = dst->len ;
+ size_t i = 0 ;
+ size_t dstbase = dst->len ;
+ int nc = 0 ;
int wasnull = !dst->s ;
+
info.dst = *dst ;
info.values = values ;
while (i < len)
{
- int r ;
genalloc_setlen(elsubsu_t, &info.list, 0) ;
info.sa.len = 0 ;
- r = parseword(&info.sa, &info.list, src + i, vars, substs, nsubst) ;
- if (r < 0) goto err ;
- i += r ;
- r = substword(&info, 0, info.sa.len, 0, 0) ;
- if (r < 0) goto err ;
- nc += r ;
+ {
+ ssize_t r = parseword(&info.sa, &info.list, src + i, vars, substs, nsubst) ;
+ if (r < 0) goto err ;
+ i += r ;
+ }
+ {
+ int r = substword(&info, 0, info.sa.len, 0, 0) ;
+ if (r < 0) goto err ;
+ nc += r ;
+ }
}
genalloc_free(elsubsu_t, &info.list) ;
stralloc_free(&info.sa) ;
if (!wasnull) stralloc_free(dst) ;
*dst = info.dst ;
- return (int)nc ;
+ return nc ;
err :
genalloc_free(elsubsu_t, &info.list) ;
diff --git a/src/libexecline/el_transform.c b/src/libexecline/el_transform.c
index ac84d1d..210cbdf 100644
--- a/src/libexecline/el_transform.c
+++ b/src/libexecline/el_transform.c
@@ -1,14 +1,15 @@
/* ISC license. */
+#include <sys/types.h>
#include <skalibs/bytestr.h>
#include <skalibs/netstring.h>
#include <skalibs/skamisc.h>
#include <skalibs/stralloc.h>
#include <execline/execline.h>
-static void el_crunch (stralloc *sa, unsigned int base, char const *delim)
+static void el_crunch (stralloc *sa, size_t base, char const *delim)
{
- register unsigned int i = base, j = base ;
+ register size_t i = base, j = base ;
register int crunching = 0 ;
for (; i < sa->len ; i++)
{
@@ -23,10 +24,10 @@ static void el_crunch (stralloc *sa, unsigned int base, char const *delim)
sa->len = j ;
}
-static int el_split (stralloc *sa, unsigned int base, eltransforminfo_t const *si, int chomped)
+static int el_split (stralloc *sa, size_t base, eltransforminfo_t const *si, int chomped)
{
- unsigned int n = 0 ;
- register unsigned int i = base ;
+ int n = 0 ;
+ register size_t i = base ;
for (; i < sa->len ; i++)
if (si->delim[str_chr(si->delim, sa->s[i])])
{
@@ -44,13 +45,13 @@ static int el_split (stralloc *sa, unsigned int base, eltransforminfo_t const *s
return n ;
}
-static int el_splitnetstring (stralloc *sa, unsigned int base)
+static int el_splitnetstring (stralloc *sa, size_t base)
{
- unsigned int tmpbase = satmp.len ;
- unsigned int n = 0, i = base ;
+ size_t tmpbase = satmp.len, i = base ;
+ int n = 0 ;
while (i < sa->len)
{
- register int r = netstring_decode(&satmp, sa->s + i, sa->len - i) ;
+ register ssize_t r = netstring_decode(&satmp, sa->s + i, sa->len - i) ;
if (r < 0) goto err ;
if (!stralloc_0(&satmp)) goto err ;
i += r ; n++ ;
@@ -69,7 +70,7 @@ err:
return -1 ;
}
-int el_transform (stralloc *sa, unsigned int i, eltransforminfo_t const *si)
+int el_transform (stralloc *sa, size_t i, eltransforminfo_t const *si)
{
int chomped = 0 ;
if (si->crunch && *si->delim) el_crunch(sa, i, si->delim) ;
diff --git a/src/libexecline/el_vardupl.c b/src/libexecline/el_vardupl.c
index 7583669..279e79d 100644
--- a/src/libexecline/el_vardupl.c
+++ b/src/libexecline/el_vardupl.c
@@ -1,11 +1,12 @@
/* ISC license. */
+#include <sys/types.h>
#include <skalibs/bytestr.h>
#include <execline/execline.h>
-int el_vardupl (char const *key, char const *s, unsigned int len)
+int el_vardupl (char const *key, char const *s, size_t len)
{
- register unsigned int i = 0 ;
+ register size_t i = 0 ;
for (; i < len ; i += str_len(s + i) + 1)
if (!str_diff(key, s + i)) return 1 ;
return 0 ;
diff --git a/src/libexecline/exlp.c b/src/libexecline/exlp.c
index 060eb68..1ba37c0 100644
--- a/src/libexecline/exlp.c
+++ b/src/libexecline/exlp.c
@@ -1,5 +1,6 @@
/* ISC license. */
+#include <sys/types.h>
#include <skalibs/bytestr.h>
#include <skalibs/env.h>
#include <skalibs/strerr2.h>
@@ -11,13 +12,14 @@
int exlp (unsigned int nmin, char const *const *envp, exlsn_t *info)
{
- unsigned int varbase = info->vars.len ;
- unsigned int valbase = info->values.len ;
- unsigned int datbase = genalloc_len(elsubst_t, &info->data) ;
- unsigned int i = 0 ;
- char const *x = env_get2(envp, "#") ;
+ size_t varbase = info->vars.len ;
+ size_t valbase = info->values.len ;
+ size_t datbase = genalloc_len(elsubst_t, &info->data) ;
+ size_t poszero ;
elsubst_t blah ;
- unsigned int n, ntot, poszero ;
+ char const *x = env_get2(envp, "#") ;
+ unsigned int n, ntot, i = 0 ;
+
if (!x) return -2 ;
if (!uint0_scan(x, &n)) return -2 ;
if (el_vardupl("#", info->vars.s, info->vars.len)) return -2 ;
@@ -47,7 +49,7 @@ int exlp (unsigned int nmin, char const *const *envp, exlsn_t *info)
for (; i <= ntot ; i++)
{
char fmt[UINT_FMT] ;
- unsigned int l = uint_fmt(fmt, i) ;
+ size_t l = uint_fmt(fmt, i) ;
fmt[l] = 0 ;
if (el_vardupl(fmt, info->vars.s, info->vars.len)) goto err2 ;
x = (i <= n) ? env_get2(envp, fmt) : "" ;
diff --git a/src/libexecline/exlsn_multidefine.c b/src/libexecline/exlsn_multidefine.c
index e64cbfd..9c5e248 100644
--- a/src/libexecline/exlsn_multidefine.c
+++ b/src/libexecline/exlsn_multidefine.c
@@ -1,5 +1,6 @@
/* ISC license. */
+#include <sys/types.h>
#include <skalibs/sgetopt.h>
#include <skalibs/bytestr.h>
#include <skalibs/stralloc.h>
@@ -11,9 +12,9 @@ int exlsn_multidefine (int argc, char const **argv, char const *const *envp, exl
{
eltransforminfo_t si = ELTRANSFORMINFO_ZERO ;
subgetopt_t localopt = SUBGETOPT_ZERO ;
- unsigned int varbase = info->vars.len ;
- unsigned int valbase = info->values.len ;
- unsigned int pos = valbase ;
+ size_t varbase = info->vars.len ;
+ size_t valbase = info->values.len ;
+ size_t pos = valbase ;
unsigned int i = 0 ;
unsigned int max ;
char const *x ;