OSDN Git Service

Upgrade to mksh R56c.
[android-x86/external-mksh.git] / src / tree.c
index 1062feb..5e7326b 100644 (file)
@@ -23,7 +23,7 @@
 
 #include "sh.h"
 
-__RCSID("$MirOS: src/bin/mksh/tree.c,v 1.93 2017/05/05 22:53:32 tg Exp $");
+__RCSID("$MirOS: src/bin/mksh/tree.c,v 1.95 2018/01/14 00:03:05 tg Exp $");
 
 #define INDENT 8
 
@@ -329,7 +329,7 @@ wdvarput(struct shf *shf, const char *wp, int quotelevel, int opmode)
                case EOS:
                        return (--wp);
                case ADELIM:
-                       if (ord(*wp) == ord(/*{*/ '}')) {
+                       if (ord(*wp) == ORD(/*{*/ '}')) {
                                ++wp;
                                goto wdvarput_csubst;
                        }
@@ -342,21 +342,21 @@ wdvarput(struct shf *shf, const char *wp, int quotelevel, int opmode)
                        c = ord(*wp++);
                        if (opmode & WDS_TPUTS)
                                switch (c) {
-                               case ord('\n'):
+                               case ORD('\n'):
                                        if (quotelevel == 0) {
-                                               c = ord('\'');
+                                               c = ORD('\'');
                                                shf_putc(c, shf);
-                                               shf_putc(ord('\n'), shf);
+                                               shf_putc(ORD('\n'), shf);
                                        }
                                        break;
                                default:
                                        if (quotelevel == 0)
                                                /* FALLTHROUGH */
-                               case ord('"'):
-                               case ord('`'):
-                               case ord('$'):
-                               case ord('\\'):
-                                         shf_putc(ord('\\'), shf);
+                               case ORD('"'):
+                               case ORD('`'):
+                               case ORD('$'):
+                               case ORD('\\'):
+                                         shf_putc(ORD('\\'), shf);
                                        break;
                                }
                        shf_putc(c, shf);
@@ -365,7 +365,7 @@ wdvarput(struct shf *shf, const char *wp, int quotelevel, int opmode)
                case COMSUB:
                        shf_puts("$(", shf);
                        cs = ")";
-                       if (ord(*wp) == ord('(' /*)*/))
+                       if (ord(*wp) == ORD('(' /*)*/))
                                shf_putc(' ', shf);
  pSUB:
                        while ((c = *wp++) != 0)
@@ -374,11 +374,11 @@ wdvarput(struct shf *shf, const char *wp, int quotelevel, int opmode)
                        break;
                case FUNASUB:
                case FUNSUB:
-                       c = ord(' ');
+                       c = ORD(' ');
                        if (0)
                                /* FALLTHROUGH */
                case VALSUB:
-                         c = ord('|');
+                         c = ORD('|');
                        shf_putc('$', shf);
                        shf_putc('{', shf);
                        shf_putc(c, shf);
@@ -403,14 +403,14 @@ wdvarput(struct shf *shf, const char *wp, int quotelevel, int opmode)
                        break;
                case OSUBST:
                        shf_putc('$', shf);
-                       if (ord(*wp++) == ord('{'))
+                       if (ord(*wp++) == ORD('{'))
                                shf_putc('{', shf);
                        while ((c = *wp++) != 0)
                                shf_putc(c, shf);
                        wp = wdvarput(shf, wp, 0, opmode);
                        break;
                case CSUBST:
-                       if (ord(*wp++) == ord('}')) {
+                       if (ord(*wp++) == ORD('}')) {
  wdvarput_csubst:
                                shf_putc('}', shf);
                        }
@@ -420,11 +420,11 @@ wdvarput(struct shf *shf, const char *wp, int quotelevel, int opmode)
                        shf_putc('(', shf);
                        break;
                case SPAT:
-                       c = ord('|');
+                       c = ORD('|');
                        if (0)
                                /* FALLTHROUGH */
                case CPAT:
-                         c = ord(/*(*/ ')');
+                         c = ORD(/*(*/ ')');
                        shf_putc(c, shf);
                        break;
                }
@@ -470,36 +470,37 @@ vfptreef(struct shf *shf, int indent, const char *fmt, va_list va)
        while ((c = ord(*fmt++))) {
                if (c == '%') {
                        switch ((c = ord(*fmt++))) {
-                       case ord('c'):
+                       case ORD('c'):
                                /* character (octet, probably) */
                                shf_putchar(va_arg(va, int), shf);
                                break;
-                       case ord('s'):
+                       case ORD('s'):
                                /* string */
                                shf_puts(va_arg(va, char *), shf);
                                break;
-                       case ord('S'):
+                       case ORD('S'):
                                /* word */
                                wdvarput(shf, va_arg(va, char *), 0, WDS_TPUTS);
                                break;
-                       case ord('d'):
+                       case ORD('d'):
                                /* signed decimal */
                                shf_fprintf(shf, Tf_d, va_arg(va, int));
                                break;
-                       case ord('u'):
+                       case ORD('u'):
                                /* unsigned decimal */
                                shf_fprintf(shf, "%u", va_arg(va, unsigned int));
                                break;
-                       case ord('T'):
+                       case ORD('T'):
                                /* format tree */
                                ptree(va_arg(va, struct op *), indent, shf);
                                goto dont_trash_prevent_semicolon;
-                       case ord(';'):
+                       case ORD(';'):
                                /* newline or ; */
-                       case ord('N'):
+                       case ORD('N'):
                                /* newline or space */
                                if (shf->flags & SHF_STRING) {
-                                       if (c == ord(';') && !prevent_semicolon)
+                                       if ((unsigned int)c == ORD(';') &&
+                                           !prevent_semicolon)
                                                shf_putc(';', shf);
                                        shf_putc(' ', shf);
                                } else {
@@ -515,7 +516,7 @@ vfptreef(struct shf *shf, int indent, const char *fmt, va_list va)
                                                shf_putc(' ', shf);
                                }
                                break;
-                       case ord('R'):
+                       case ORD('R'):
                                /* I/O redirection */
                                pioact(shf, va_arg(va, struct ioword *));
                                break;
@@ -613,7 +614,7 @@ wdscan(const char *wp, int c)
                case ADELIM:
                        if (c == ADELIM && nest == 0)
                                return (wp + 1);
-                       if (ord(*wp) == ord(/*{*/ '}'))
+                       if (ord(*wp) == ORD(/*{*/ '}'))
                                goto wdscan_csubst;
                        /* FALLTHROUGH */
                case CHAR:
@@ -808,7 +809,7 @@ vistree(char *dst, size_t sz, struct op *t)
        } else if (UTFMODE && rtt2asc(c) > 0x7F) {
                /* better not try to display broken multibyte chars */
                /* also go easy on the Unicode: no U+FFFD here */
-               c = ord('?');
+               c = ORD('?');
        }
        *dst++ = c;
        goto vist_loop;
@@ -842,7 +843,7 @@ dumpwdvar_i(struct shf *shf, const char *wp, int quotelevel)
                        shf_puts("EOS", shf);
                        return (--wp);
                case ADELIM:
-                       if (ord(*wp) == ord(/*{*/ '}')) {
+                       if (ord(*wp) == ORD(/*{*/ '}')) {
                                shf_puts(/*{*/ "]ADELIM(})", shf);
                                return (wp + 1);
                        }
@@ -856,8 +857,8 @@ dumpwdvar_i(struct shf *shf, const char *wp, int quotelevel)
                case QCHAR:
                        shf_puts("QCHAR<", shf);
                        c = ord(*wp++);
-                       if (quotelevel == 0 || c == ord('"') ||
-                           c == ord('\\') || ctype(c, C_DOLAR | C_GRAVE))
+                       if (quotelevel == 0 || c == ORD('"') ||
+                           c == ORD('\\') || ctype(c, C_DOLAR | C_GRAVE))
                                shf_putc('\\', shf);
                        dumpchar(shf, c);
                        goto closeandout;