Changeset 3438 for trunk/src/kash/alias.c
- Timestamp:
- Sep 9, 2020, 10:01:39 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kash/alias.c
r2290 r3438 61 61 STATIC struct alias **hashalias(shinstance *, char *); 62 62 63 #ifndef SH_FORKED_MODE 64 void 65 subshellinitalias(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 63 99 STATIC 64 100 void … … 111 147 ap->next = *app; 112 148 *app = ap; 149 psh->aliases++; 113 150 INTON; 114 151 } … … 138 175 ckfree(psh, ap->val); 139 176 ckfree(psh, ap); 177 psh->aliases--; 140 178 INTON; 141 179 }
Note:
See TracChangeset
for help on using the changeset viewer.