Lines Matching refs:xp

1216 varsub(Expand *xp, const char *sp, const char *word,
1236 xp->var = NULL;
1311 xp->var = global(sp);
1313 xp->str = p ? shf_smprintf("%s[%lu]", xp->var->name,
1314 arrayindex(xp->var)) : xp->var->name;
1371 xp->str = shf_smprintf(Tf_d, sc);
1430 xp->var = global(sp);
1431 xp->str = str_val(xp->var);
1434 !*xp->str && ctype(*sp, C_VAR1 | C_DIGIT))
1471 xp->u.strv = (const char **)XPptrv(wv);
1475 xp->var = global(sp);
1477 xp->u.strv = (const char **)e->loc->argv + 1;
1484 xp->str = null;
1488 xp->str = *xp->u.strv++;
1490 xp->split = tobool(sc & 4);
1498 (((stype & STYPE_DBL) ? *xp->str == '\0' : xp->str == null) &&
1499 (state != XARG || (ifs0 || xp->split ?
1500 (xp->u.strv[0] == NULL) : !hasnonempty(xp->u.strv))) ?
1508 if (Flag(FNOUNSET) && xp->str == null && !zero_ok &&
1520 comsub(Expand *xp, const char *cp, int fn)
1551 xp->split = false;
1570 xp->str = name;
1573 while (name > xp->str && name[-1] == '\n')
1614 xp->str = valsub(t, ATEMP);
1631 xp->split = true;
1634 xp->u.shf = shf;
1736 char *xp;
1738 Xinit(xs, xp, 256, ATEMP);
1739 globit(&xs, &xp, cp, wp, markdirs ? GF_MARKDIR : GF_NONE);
1740 Xfree(xs, xp);
1753 char *xp = *xpp;
1772 stat(Xstring(*xs, xp), &statb) < 0 ? -1 : 1))
1777 if (mksh_lstat(Xstring(*xs, xp), &lstatb) < 0)
1784 if ((check & GF_EXCHECK) && xp > Xstring(*xs, xp) &&
1785 mksh_cdirsep(xp[-1]) && !S_ISDIR(lstatb.st_mode) &&
1795 xp > Xstring(*xs, xp) && !mksh_cdirsep(xp[-1]) &&
1799 *xp++ = '/';
1800 *xp = '\0';
1803 strndupx(np, Xstring(*xs, xp), Xlength(*xs, xp), ATEMP);
1808 if (xp > Xstring(*xs, xp))
1809 *xp++ = '/';
1811 Xcheck(*xs, xp);
1812 *xp++ = *sp++;
1834 XcheckN(*xs, xp, se - sp + 1);
1835 debunk(xp, sp, Xnleft(*xs, xp));
1836 xp = strnul(xp);
1837 *xpp = xp;
1845 /* xp = *xpp; copy_non_glob() may have re-alloc'd xs */
1846 *xp = '\0';
1847 prefix_len = Xlength(*xs, xp);
1848 dirp = opendir(prefix_len ? Xstring(*xs, xp) : Tdot);
1862 XcheckN(*xs, xp, len);
1863 memcpy(xp, name, len);
1864 *xpp = xp + len - 1;
1867 xp = Xstring(*xs, xp) + prefix_len;