address latest Debian gcc-snapshot’s warnings (some actual bugs!)
This commit is contained in:
parent
e8d6b5c2a3
commit
cb0604767f
6
check.t
6
check.t
@ -1,4 +1,4 @@
|
||||
# $MirOS: src/bin/mksh/check.t,v 1.726 2016/03/01 18:30:01 tg Exp $
|
||||
# $MirOS: src/bin/mksh/check.t,v 1.727 2016/03/04 14:26:09 tg Exp $
|
||||
# -*- mode: sh -*-
|
||||
#-
|
||||
# Copyright © 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
|
||||
@ -30,7 +30,7 @@
|
||||
# (2013/12/02 20:39:44) http://openbsd.cs.toronto.edu/cgi-bin/cvsweb/src/regress/bin/ksh/?sortby=date
|
||||
|
||||
expected-stdout:
|
||||
@(#)MIRBSD KSH R52 2016/03/01
|
||||
@(#)MIRBSD KSH R52 2016/03/04
|
||||
description:
|
||||
Check version of shell.
|
||||
stdin:
|
||||
@ -39,7 +39,7 @@ name: KSH_VERSION
|
||||
category: shell:legacy-no
|
||||
---
|
||||
expected-stdout:
|
||||
@(#)LEGACY KSH R52 2016/03/01
|
||||
@(#)LEGACY KSH R52 2016/03/04
|
||||
description:
|
||||
Check version of legacy shell.
|
||||
stdin:
|
||||
|
6
edit.c
6
edit.c
@ -28,7 +28,7 @@
|
||||
|
||||
#ifndef MKSH_NO_CMDLINE_EDITING
|
||||
|
||||
__RCSID("$MirOS: src/bin/mksh/edit.c,v 1.293 2016/01/21 18:24:37 tg Exp $");
|
||||
__RCSID("$MirOS: src/bin/mksh/edit.c,v 1.294 2016/03/04 14:26:12 tg Exp $");
|
||||
|
||||
/*
|
||||
* in later versions we might use libtermcap for this, but since external
|
||||
@ -4597,8 +4597,8 @@ vi_cmd(int argcnt, const char *cmd)
|
||||
static int
|
||||
domove(int argcnt, const char *cmd, int sub)
|
||||
{
|
||||
int bcount, i = 0, t;
|
||||
int ncursor = 0;
|
||||
int ncursor = 0, i = 0, t;
|
||||
unsigned int bcount;
|
||||
|
||||
switch (*cmd) {
|
||||
case 'b':
|
||||
|
@ -27,7 +27,7 @@
|
||||
#include <sys/file.h>
|
||||
#endif
|
||||
|
||||
__RCSID("$MirOS: src/bin/mksh/histrap.c,v 1.155 2016/03/01 18:29:48 tg Exp $");
|
||||
__RCSID("$MirOS: src/bin/mksh/histrap.c,v 1.156 2016/03/04 14:26:13 tg Exp $");
|
||||
|
||||
Trap sigtraps[ksh_NSIG + 1];
|
||||
static struct sigaction Sigact_ign;
|
||||
@ -1017,16 +1017,19 @@ inittraps(void)
|
||||
{
|
||||
int i;
|
||||
const char *cs;
|
||||
#if !HAVE_SYS_SIGNAME
|
||||
const struct mksh_sigpair *pair;
|
||||
#endif
|
||||
|
||||
trap_exstat = -1;
|
||||
|
||||
/* Populate sigtraps based on sys_signame and sys_siglist. */
|
||||
/* populate sigtraps based on sys_signame and sys_siglist */
|
||||
for (i = 1; i < ksh_NSIG; i++) {
|
||||
sigtraps[i].signal = i;
|
||||
#if HAVE_SYS_SIGNAME
|
||||
cs = sys_signame[i];
|
||||
#else
|
||||
const struct mksh_sigpair *pair = mksh_sigpairs;
|
||||
pair = mksh_sigpairs;
|
||||
while ((pair->nr != i) && (pair->name != NULL))
|
||||
++pair;
|
||||
cs = pair->name;
|
||||
|
6
jobs.c
6
jobs.c
@ -23,7 +23,7 @@
|
||||
|
||||
#include "sh.h"
|
||||
|
||||
__RCSID("$MirOS: src/bin/mksh/jobs.c,v 1.119 2016/02/24 01:44:45 tg Exp $");
|
||||
__RCSID("$MirOS: src/bin/mksh/jobs.c,v 1.120 2016/03/04 14:26:13 tg Exp $");
|
||||
|
||||
#if HAVE_KILLPG
|
||||
#define mksh_killpg killpg
|
||||
@ -1425,8 +1425,8 @@ check_job(Job *j)
|
||||
|
||||
/* XXX debugging (nasty - interrupt routine using shl_out) */
|
||||
if (!(j->flags & JF_STARTED)) {
|
||||
internal_warningf("check_job: job started (flags 0x%x)",
|
||||
j->flags);
|
||||
internal_warningf("check_job: job started (flags 0x%X)",
|
||||
(unsigned int)j->flags);
|
||||
return;
|
||||
}
|
||||
|
||||
|
4
misc.c
4
misc.c
@ -30,7 +30,7 @@
|
||||
#include <grp.h>
|
||||
#endif
|
||||
|
||||
__RCSID("$MirOS: src/bin/mksh/misc.c,v 1.241 2016/01/21 18:24:43 tg Exp $");
|
||||
__RCSID("$MirOS: src/bin/mksh/misc.c,v 1.242 2016/03/04 14:26:13 tg Exp $");
|
||||
|
||||
#define KSH_CHVT_FLAG
|
||||
#ifdef MKSH_SMALL
|
||||
@ -1291,7 +1291,7 @@ print_columns(struct shf *shf, unsigned int n,
|
||||
shf_puts(str, shf);
|
||||
else
|
||||
shf_fprintf(shf, "%*s%*s",
|
||||
max_col, str, nspace, null);
|
||||
(int)max_col, str, (int)nspace, null);
|
||||
}
|
||||
shf_putchar('\n', shf);
|
||||
}
|
||||
|
12
sh.h
12
sh.h
@ -175,9 +175,9 @@
|
||||
#endif
|
||||
|
||||
#ifdef EXTERN
|
||||
__RCSID("$MirOS: src/bin/mksh/sh.h,v 1.766 2016/03/01 18:30:05 tg Exp $");
|
||||
__RCSID("$MirOS: src/bin/mksh/sh.h,v 1.767 2016/03/04 14:26:14 tg Exp $");
|
||||
#endif
|
||||
#define MKSH_VERSION "R52 2016/03/01"
|
||||
#define MKSH_VERSION "R52 2016/03/04"
|
||||
|
||||
/* arithmetic types: C implementation */
|
||||
#if !HAVE_CAN_INTTYPES
|
||||
@ -850,11 +850,13 @@ EXTERN struct {
|
||||
/* null value for variable; comparison pointer for unset */
|
||||
EXTERN char null[] E_INIT("");
|
||||
/* helpers for string pooling */
|
||||
EXTERN const char Tintovfl[] E_INIT("integer overflow %zu %c %zu prevented");
|
||||
EXTERN const char Toomem[] E_INIT("can't allocate %zu data bytes");
|
||||
#if defined(__GNUC__)
|
||||
#define Tsynerr "syntax error"
|
||||
#define Tintovfl "integer overflow %zu %c %zu prevented"
|
||||
#define Toomem "can't allocate %zu data bytes"
|
||||
#else
|
||||
EXTERN const char Tintovfl[] E_INIT("integer overflow %zu %c %zu prevented");
|
||||
EXTERN const char Toomem[] E_INIT("can't allocate %zu data bytes");
|
||||
EXTERN const char Tsynerr[] E_INIT("syntax error");
|
||||
#endif
|
||||
EXTERN const char Tselect[] E_INIT("select");
|
||||
@ -2011,7 +2013,7 @@ char *shf_smprintf(const char *, ...)
|
||||
ssize_t shf_vfprintf(struct shf *, const char *, va_list)
|
||||
MKSH_A_FORMAT(__printf__, 2, 0);
|
||||
/* syn.c */
|
||||
int assign_command(const char *, bool);
|
||||
int assign_command(const char *, bool) MKSH_A_PURE;
|
||||
void initkeywords(void);
|
||||
struct op *compile(Source *, bool);
|
||||
bool parse_usec(const char *, struct timeval *);
|
||||
|
85
shf.c
85
shf.c
@ -2,7 +2,7 @@
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2011,
|
||||
* 2012, 2013, 2015
|
||||
* 2012, 2013, 2015, 2016
|
||||
* mirabilos <m@mirbsd.org>
|
||||
*
|
||||
* Provided that these terms and disclaimer and all copyright notices
|
||||
@ -25,7 +25,7 @@
|
||||
|
||||
#include "sh.h"
|
||||
|
||||
__RCSID("$MirOS: src/bin/mksh/shf.c,v 1.69 2015/12/31 20:38:59 tg Exp $");
|
||||
__RCSID("$MirOS: src/bin/mksh/shf.c,v 1.70 2016/03/04 14:26:16 tg Exp $");
|
||||
|
||||
/* flags to shf_emptybuf() */
|
||||
#define EB_READSW 0x01 /* about to switch to reading */
|
||||
@ -197,7 +197,8 @@ shf_sopen(char *buf, ssize_t bsize, int sflags, struct shf *shf)
|
||||
{
|
||||
/* can't have a read+write string */
|
||||
if (!(!(sflags & SHF_RD) ^ !(sflags & SHF_WR)))
|
||||
internal_errorf("%s: flags 0x%X", "shf_sopen", sflags);
|
||||
internal_errorf("%s: flags 0x%X", "shf_sopen",
|
||||
(unsigned int)sflags);
|
||||
|
||||
if (!shf) {
|
||||
shf = alloc(sizeof(struct shf), ATEMP);
|
||||
@ -452,7 +453,8 @@ shf_read(char *buf, ssize_t bsize, struct shf *shf)
|
||||
ssize_t ncopy, orig_bsize = bsize;
|
||||
|
||||
if (!(shf->flags & SHF_RD))
|
||||
internal_errorf("%s: flags 0x%X", "shf_read", shf->flags);
|
||||
internal_errorf("%s: flags 0x%X", "shf_read",
|
||||
(unsigned int)shf->flags);
|
||||
|
||||
if (bsize <= 0)
|
||||
internal_errorf("%s: %s %zd", "shf_write", "bsize", bsize);
|
||||
@ -489,7 +491,8 @@ shf_getse(char *buf, ssize_t bsize, struct shf *shf)
|
||||
char *orig_buf = buf;
|
||||
|
||||
if (!(shf->flags & SHF_RD))
|
||||
internal_errorf("%s: flags 0x%X", "shf_getse", shf->flags);
|
||||
internal_errorf("%s: flags 0x%X", "shf_getse",
|
||||
(unsigned int)shf->flags);
|
||||
|
||||
if (bsize <= 0)
|
||||
return (NULL);
|
||||
@ -525,7 +528,8 @@ int
|
||||
shf_getchar(struct shf *shf)
|
||||
{
|
||||
if (!(shf->flags & SHF_RD))
|
||||
internal_errorf("%s: flags 0x%X", "shf_getchar", shf->flags);
|
||||
internal_errorf("%s: flags 0x%X", "shf_getchar",
|
||||
(unsigned int)shf->flags);
|
||||
|
||||
if (shf->rnleft == 0 && (shf_fillbuf(shf) == -1 || shf->rnleft == 0))
|
||||
return (-1);
|
||||
@ -541,7 +545,8 @@ int
|
||||
shf_ungetc(int c, struct shf *shf)
|
||||
{
|
||||
if (!(shf->flags & SHF_RD))
|
||||
internal_errorf("%s: flags 0x%X", "shf_ungetc", shf->flags);
|
||||
internal_errorf("%s: flags 0x%X", "shf_ungetc",
|
||||
(unsigned int)shf->flags);
|
||||
|
||||
if ((shf->flags & SHF_ERROR) || c == -1 ||
|
||||
(shf->rp == shf->buf && shf->rnleft))
|
||||
@ -578,7 +583,8 @@ int
|
||||
shf_putchar(int c, struct shf *shf)
|
||||
{
|
||||
if (!(shf->flags & SHF_WR))
|
||||
internal_errorf("%s: flags 0x%X", "shf_putchar", shf->flags);
|
||||
internal_errorf("%s: flags 0x%X", "shf_putchar",
|
||||
(unsigned int)shf->flags);
|
||||
|
||||
if (c == -1)
|
||||
return (-1);
|
||||
@ -633,7 +639,8 @@ shf_write(const char *buf, ssize_t nbytes, struct shf *shf)
|
||||
ssize_t n, ncopy, orig_nbytes = nbytes;
|
||||
|
||||
if (!(shf->flags & SHF_WR))
|
||||
internal_errorf("%s: flags 0x%X", "shf_write", shf->flags);
|
||||
internal_errorf("%s: flags 0x%X", "shf_write",
|
||||
(unsigned int)shf->flags);
|
||||
|
||||
if (nbytes < 0)
|
||||
internal_errorf("%s: %s %zd", "shf_write", "nbytes", nbytes);
|
||||
@ -764,7 +771,7 @@ shf_vfprintf(struct shf *shf, const char *fmt, va_list args)
|
||||
const char *s;
|
||||
char c, *cp;
|
||||
int tmp = 0, flags;
|
||||
ssize_t field, precision, len;
|
||||
size_t field, precision, len;
|
||||
unsigned long lnum;
|
||||
/* %#o produces the longest output */
|
||||
char numbuf[(8 * sizeof(long) + 2) / 3 + 1];
|
||||
@ -791,7 +798,7 @@ shf_vfprintf(struct shf *shf, const char *fmt, va_list args)
|
||||
*/
|
||||
flags = 0;
|
||||
field = precision = 0;
|
||||
for ( ; (c = *fmt++) ; ) {
|
||||
while ((c = *fmt++)) {
|
||||
switch (c) {
|
||||
case '#':
|
||||
flags |= FL_HASH;
|
||||
@ -821,12 +828,17 @@ shf_vfprintf(struct shf *shf, const char *fmt, va_list args)
|
||||
|
||||
case '*':
|
||||
tmp = VA(int);
|
||||
if (flags & FL_DOT)
|
||||
precision = tmp;
|
||||
else if ((field = tmp) < 0) {
|
||||
field = -field;
|
||||
flags |= FL_RIGHT;
|
||||
}
|
||||
if (tmp < 0) {
|
||||
if (flags & FL_DOT)
|
||||
precision = 0;
|
||||
else {
|
||||
field = (unsigned int)-tmp;
|
||||
flags |= FL_RIGHT;
|
||||
}
|
||||
} else if (flags & FL_DOT)
|
||||
precision = (unsigned int)tmp;
|
||||
else
|
||||
field = (unsigned int)tmp;
|
||||
continue;
|
||||
|
||||
case 'l':
|
||||
@ -848,26 +860,23 @@ shf_vfprintf(struct shf *shf, const char *fmt, va_list args)
|
||||
bool overflowed = false;
|
||||
|
||||
tmp = ksh_numdig(c);
|
||||
while (c = *fmt++, ksh_isdigit(c)) {
|
||||
while (c = *fmt++, ksh_isdigit(c))
|
||||
if (notok2mul(2147483647, tmp, 10))
|
||||
overflowed = true;
|
||||
tmp = tmp * 10 + ksh_numdig(c);
|
||||
}
|
||||
else
|
||||
tmp = tmp * 10 + ksh_numdig(c);
|
||||
--fmt;
|
||||
if (overflowed)
|
||||
tmp = 0;
|
||||
if (flags & FL_DOT)
|
||||
precision = tmp;
|
||||
precision = (unsigned int)tmp;
|
||||
else
|
||||
field = tmp;
|
||||
field = (unsigned int)tmp;
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (precision < 0)
|
||||
precision = 0;
|
||||
|
||||
if (!c)
|
||||
/* nasty format */
|
||||
break;
|
||||
@ -953,7 +962,7 @@ shf_vfprintf(struct shf *shf, const char *fmt, va_list args)
|
||||
*--cp = (flags & FL_UPPER) ? 'X' : 'x';
|
||||
*--cp = '0';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
len = numbuf + sizeof(numbuf) - (s = cp);
|
||||
if (flags & FL_DOT) {
|
||||
@ -999,7 +1008,6 @@ shf_vfprintf(struct shf *shf, const char *fmt, va_list args)
|
||||
if (field > precision) {
|
||||
field -= precision;
|
||||
if (!(flags & FL_RIGHT)) {
|
||||
field = -field;
|
||||
/* skip past sign or 0x when padding with 0 */
|
||||
if ((flags & FL_ZERO) && (flags & FL_NUMBER)) {
|
||||
if (*s == '+' || *s == '-' ||
|
||||
@ -1012,7 +1020,7 @@ shf_vfprintf(struct shf *shf, const char *fmt, va_list args)
|
||||
shf_putc(*s, shf);
|
||||
s++;
|
||||
nwritten++;
|
||||
if (--precision > 0 &&
|
||||
if (--precision &&
|
||||
ksh_eq(*s, 'X', 'x')) {
|
||||
shf_putc(*s, shf);
|
||||
s++;
|
||||
@ -1023,19 +1031,16 @@ shf_vfprintf(struct shf *shf, const char *fmt, va_list args)
|
||||
c = '0';
|
||||
} else
|
||||
c = flags & FL_ZERO ? '0' : ' ';
|
||||
if (field < 0) {
|
||||
nwritten += -field;
|
||||
while (field < 0) {
|
||||
shf_putc(c, shf);
|
||||
++field;
|
||||
}
|
||||
}
|
||||
nwritten += field;
|
||||
while (field--)
|
||||
shf_putc(c, shf);
|
||||
field = 0;
|
||||
} else
|
||||
c = ' ';
|
||||
} else
|
||||
field = 0;
|
||||
|
||||
if (precision > 0) {
|
||||
if (precision) {
|
||||
const char *q;
|
||||
|
||||
nwritten += precision;
|
||||
@ -1044,11 +1049,9 @@ shf_vfprintf(struct shf *shf, const char *fmt, va_list args)
|
||||
shf_putc(*s, shf);
|
||||
} while (++s < q);
|
||||
}
|
||||
if (field > 0) {
|
||||
nwritten += field;
|
||||
for ( ; field > 0 ; --field)
|
||||
shf_putc(c, shf);
|
||||
}
|
||||
nwritten += field;
|
||||
while (field--)
|
||||
shf_putc(c, shf);
|
||||
}
|
||||
|
||||
return (shf_error(shf) ? -1 : nwritten);
|
||||
|
6
tree.c
6
tree.c
@ -23,7 +23,7 @@
|
||||
|
||||
#include "sh.h"
|
||||
|
||||
__RCSID("$MirOS: src/bin/mksh/tree.c,v 1.82 2016/02/26 17:58:30 tg Exp $");
|
||||
__RCSID("$MirOS: src/bin/mksh/tree.c,v 1.83 2016/03/04 14:26:16 tg Exp $");
|
||||
|
||||
#define INDENT 8
|
||||
|
||||
@ -631,8 +631,8 @@ wdscan(const char *wp, int c)
|
||||
break;
|
||||
default:
|
||||
internal_warningf(
|
||||
"wdscan: unknown char 0x%x (carrying on)",
|
||||
wp[-1]);
|
||||
"wdscan: unknown char 0x%X (carrying on)",
|
||||
(unsigned char)wp[-1]);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user