VirtualBox

Changeset 1217 in kBuild for trunk/src/kash


Ignore:
Timestamp:
Oct 7, 2007 9:47:15 PM (17 years ago)
Author:
bird
Message:

make more build...

Location:
trunk/src/kash
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kash/arith.y

    r809 r1217  
    3434 */
    3535
    36 #ifdef HAVE_SYS_CDEFS_H
    37 #include <sys/cdefs.h>
    38 #endif
     36#if 0
    3937#ifndef lint
    40 #if 0
    4138static char sccsid[] = "@(#)arith.y     8.3 (Berkeley) 5/4/95";
    4239#else
    4340__RCSID("$NetBSD: arith.y,v 1.17 2003/09/17 17:33:36 jmmv Exp $");
     41#endif /* not lint */
    4442#endif
    45 #endif /* not lint */
    4643
    4744#include <stdlib.h>
     
    5148#include "output.h"
    5249#include "memalloc.h"
    53 
     50#include "shinstance.h"
     51
     52shinstance *arith_psh;
    5453const char *arith_buf, *arith_startbuf;
    5554
     
    117116%%
    118117int
    119 arith(s)
    120         const char *s;
     118arith(shinstance *psh, const char *s)
    121119{
    122120        long result;
    123121
     122        INTOFF;
     123/* todo lock */
     124   arith_psh = psh;
    124125        arith_buf = arith_startbuf = s;
    125 
    126         INTOFF;
    127126        result = yyparse();
    128127        arith_lex_reset();      /* reprime lex */
     128   arith_psh = NULL;
     129/* todo unlock */
    129130        INTON;
    130131
     
    137138 */
    138139int
    139 expcmd(argc, argv)
    140         int argc;
    141         char **argv;
     140expcmd(shinstance *psh, int argc, char **argv)
    142141{
    143142        const char *p;
     
    152151                         * concatenate arguments
    153152                         */
    154                         STARTSTACKSTR(concat);
     153                        STARTSTACKSTR(psh, concat);
    155154                        ap = argv + 2;
    156155                        for (;;) {
    157156                                while (*p)
    158                                         STPUTC(*p++, concat);
     157                                        STPUTC(psh, *p++, concat);
    159158                                if ((p = *ap++) == NULL)
    160159                                        break;
    161                                 STPUTC(' ', concat);
     160                                STPUTC(psh, ' ', concat);
    162161                        }
    163                         STPUTC('\0', concat);
    164                         p = grabstackstr(concat);
     162                        STPUTC(psh, '\0', concat);
     163                        p = grabstackstr(psh, concat);
    165164                }
    166165        } else
    167166                p = "";
    168167
    169         i = arith(p);
    170 
    171         out1fmt("%ld\n", i);
     168        i = arith(psh, p);
     169
     170        out1fmt(psh, "%ld\n", i);
    172171        return (! i);
    173172}
     
    190189
    191190void
    192 yyerror(s)
    193         const char *s;
    194 {
    195 
     191yyerror(const char *s)
     192{
     193   shinstance *psh = arith_psh;
    196194        yyerrok;
    197195        yyclearin;
    198196        arith_lex_reset();      /* reprime lex */
    199         error("arithmetic expression: %s: \"%s\"", s, arith_startbuf);
     197/** @todo unlock */
     198        error(psh, "arithmetic expression: %s: \"%s\"", s, arith_startbuf);
    200199        /* NOTREACHED */
    201200}
  • trunk/src/kash/arith_lex.l

    r809 r1217  
    3535 */
    3636
    37 #ifdef HAVE_SYS_CDEFS_H
    38 #include <sys/cdefs.h>
    39 #endif
     37#if 0
    4038#ifndef lint
    41 #if 0
    4239static char sccsid[] = "@(#)arith_lex.l 8.3 (Berkeley) 5/4/95";
    4340#else
    4441__RCSID("$NetBSD: arith_lex.l,v 1.13 2005/03/21 22:37:09 dsl Exp $");
     42#endif /* not lint */
    4543#endif
    46 #endif /* not lint */
    4744
    48 #include <unistd.h>
    4945#include "arith.h"
    5046#include "error.h"
    5147#include "expand.h"
    5248#include "var.h"
     49#include "shinstance.h"
    5350
    5451extern int yylval;
     52extern shinstance *arith_psh;
    5553extern char *arith_buf, *arith_startbuf;
    5654#undef YY_INPUT
     
    65630[0-7]*         { yylval = strtol(yytext, 0, 0); return(ARITH_NUM); }
    6664[1-9][0-9]*     { yylval = strtol(yytext, 0, 0); return(ARITH_NUM); }
    67 [A-Za-z_][A-Za-z_0-9]*  { char *v = lookupvar(yytext);
     65[A-Za-z_][A-Za-z_0-9]*  { char *v = lookupvar(arith_psh, yytext);
    6866                        if (v) {
    6967                                yylval = strtol(v, &v, 0);
     
    7169                                        return ARITH_NUM;
    7270                        }
    73                         error("arith: syntax error: \"%s\"", arith_startbuf);
     71                        error(arith_psh, "arith: syntax error: \"%s\"", arith_startbuf);
    7472                }
    7573"("     { return(ARITH_LPAREN); }
     
    9593"~"     { return(ARITH_BNOT); }
    9694"!"     { return(ARITH_NOT); }
    97 .       { error("arith: syntax error: \"%s\"", arith_startbuf); }
     95.       { error(arith_psh, "arith: syntax error: \"%s\"", arith_startbuf); }
    9896%%
    9997
  • trunk/src/kash/bltin/test.c

    r1214 r1217  
    2525#include <stdarg.h>
    2626
     27#include "shell.h"
    2728#include "error.h"
    2829#include "shinstance.h"
  • trunk/src/kash/error.h

    r1214 r1217  
    3838#define ___error_h
    3939
     40#include "shtypes.h"
    4041#include <stdarg.h>
    4142
  • trunk/src/kash/expand.c

    r1214 r1217  
    388388        if (quotes)
    389389                rmescapes(psh, p+2);
    390         result = arith(p+2);
     390        result = arith(psh, p+2);
    391391        fmtstr(p, 12, "%d", result);
    392392
  • trunk/src/kash/expand.h

    r1203 r1217  
    3838#define ___expand_h
    3939
     40#include "shtypes.h"
     41
    4042struct strlist {
    4143        struct strlist *next;
     
    7072
    7173/* From arith.y */
    72 int arith(const char *);
     74int arith(struct shinstance *, const char *);
    7375int expcmd(struct shinstance *, int , char **);
    7476void arith_lex_reset(void);
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette