Ignore:
Timestamp:
Sep 9, 2020, 10:01:39 PM (5 years ago)
Author:
bird
Message:

kash: Hammering on threaded mode.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kash/alias.c

    r2290 r3438  
    6161STATIC struct alias **hashalias(shinstance *, char *);
    6262
     63#ifndef SH_FORKED_MODE
     64void
     65subshellinitalias(shinstance *psh, shinstance *inherit)
     66{
     67    unsigned i;
     68    unsigned left = inherit->aliases;
     69    if (left == 0)
     70        return;
     71    for (i = 0; i < K_ELEMENTS(inherit->atab); i++)
     72    {
     73        struct alias const *asrc = inherit->atab[i];
     74        if (asrc)
     75        {
     76            struct alias **ppdst = &psh->atab[i];
     77            do
     78            {
     79                if (*asrc->name)
     80                {
     81                    struct alias *dst = (struct alias *)ckmalloc(psh, sizeof(*dst));
     82                    dst->name = savestr(psh, asrc->name);
     83                    dst->val = savestr(psh, asrc->val);
     84                    dst->flag = asrc->flag;
     85                    *ppdst = dst;
     86                    ppdst = &dst->next;
     87                }
     88                left--;
     89                asrc = asrc->next;
     90            } while (asrc);
     91            *ppdst = NULL;
     92            if (left == 0)
     93                break;
     94        }
     95    }
     96}
     97#endif /* !SH_FORKED_MODE */
     98
    6399STATIC
    64100void
     
    111147        ap->next = *app;
    112148        *app = ap;
     149        psh->aliases++;
    113150        INTON;
    114151}
     
    138175                                ckfree(psh, ap->val);
    139176                                ckfree(psh, ap);
     177                                psh->aliases--;
    140178                                INTON;
    141179                        }
Note: See TracChangeset for help on using the changeset viewer.