int ecMkB(const char * const name) { unsigned idFName; char buf[EC_LENGTH_B]; int rv; if((rv = ecMkS()) != E_None) return rv; assert(name); if((idFName = ecPushString(name)) == 0) return E_NoMem; /* Make "buf" the largest possible buffer size */ /* The '|' ensures to update the two last values later on */ sprintf(buf, "%c%u|%lu %lu|", EC_TAG_BATCH, idFName, -1L, -1L); assert(strlen(buf) < sizeof(buf)); /* reset position & line number to zero */ memcpy(strchr(buf, '|'), "|0 0|", sizeof("|0 0|") - 1); if((rv = ctxtPush(CTXT_TAG_EXEC, buf)) == E_None && ++gflag_batchlevel == 1) { /* First batch level */ gflag_echo = gflag_echoBatch; } return rv; }
static mk(ecTag_t tag) { char buf[2 + CTXT_LENGTH_ID]; sprintf(buf, "%c%u" , tag, CTXT_INFO(CTXT_TAG_STRING, nummax)); return ctxtPush(CTXT_TAG_EXEC, buf); }
int cmd_pushd(char *param) { char *curdir; if((curdir = cwd(0)) != 0) { int rc; rc = ctxtPush(CTXT_TAG_DIRSTACK, curdir); free(curdir); if(rc == E_None) { /* Change to directory specified on command line */ if(param && *param) return cmd_cdd(param); return 0; } } return 1; }
int cmd_pushd(char *param) { char *curdir; int rc; if((curdir = cwd(0)) == 0) { error_out_of_memory(); return 1; } rc = ctxtPush(CTXT_TAG_DIRSTACK, curdir); myfree(curdir); if(rc == E_None) { /* Change to directory specified on command line */ if(param && *param) return cmd_cdd(param); return 0; } return 1; }
int ecMkI_S(const byte tag) { char buf[2 + CTXT_LENGTH_ID]; sprintf(buf, "%c%u" , tag, CTXT_INFO(CTXT_TAG_STRING, nummax)); return ctxtPush(CTXT_TAG_EXEC, buf); }