static void show_items(char* result, deck& source, const char* title) { if(!source.count) return; szprint(result, "%1: ", title); result = zend(result); for(auto e : source) { if(result[0]) zcat(result, ", "); szprint(zend(result), getstr(e)); } zcat(result, ".\n"); }
static unsigned char *getpty(int *ptyfd) { int x, fd; unsigned char *orgpwd = pwd(); static unsigned char **ptys = NULL; static unsigned char *ttydir; static unsigned char *ptydir; static unsigned char ttyname[32]; if (!ptys) { ttydir = USTR "/dev/pty/"; ptydir = USTR "/dev/ptym/"; /* HPUX systems */ if (chpwd(ptydir) || !(ptys = rexpnd(USTR "pty*"))) if (!ptys) { ttydir = ptydir = USTR "/dev/"; /* Everyone else */ if (!chpwd(ptydir)) ptys = rexpnd(USTR "pty*"); } } chpwd(orgpwd); if (ptys) for (fd = 0; ptys[fd]; ++fd) { zcpy(ttyname, ptydir); zcat(ttyname, ptys[fd]); if ((*ptyfd = open((char *)ttyname, O_RDWR)) >= 0) { ptys[fd][0] = 't'; zcpy(ttyname, ttydir); zcat(ttyname, ptys[fd]); ptys[fd][0] = 'p'; x = open((char *)ttyname, O_RDWR); if (x >= 0) { close(x); close(*ptyfd); zcpy(ttyname, ptydir); zcat(ttyname, ptys[fd]); *ptyfd = open((char *)ttyname, O_RDWR); ptys[fd][0] = 't'; zcpy(ttyname, ttydir); zcat(ttyname, ptys[fd]); ptys[fd][0] = 'p'; return ttyname; } else close(*ptyfd); } } return NULL; }
static char* add_filter(char* result, const char* name, const char* filter) { if(!filter) return result; szprint(result, "%1 (%2)", name, filter); szupper(result, 1); result += zlen(result); *result++ = 0; *result = 0; zcat(result, filter); result += zlen(result); *result++ = 0; *result = 0; return result; }
void logs::driver::parseidentifier(char* result, const char* result_max, const char* identifier) { if(strcmp(identifier, "герой") == 0) zcpy(result, name); else if(strcmp(identifier, "героя") == 0) grammar::of(result, name); else if(strcmp(identifier, "оппонент") == 0) zcpy(result, opponent_name); else if(strcmp(identifier, "оппонента") == 0) grammar::of(result, opponent_name); else if(strcmp(identifier, "ась") == 0) msg(gender, result, "ся", identifier, "ись"); else if(strcmp(identifier, "а") == 0) msg(gender, result, "", identifier, "и"); else if(strcmp(identifier, "А") == 0) msg(opponent_gender, result, "", "а", "и"); else if(strcmp(identifier, "ла") == 0) msg(gender, result, "", identifier, "ли"); else if(strcmp(identifier, "ЛА") == 0) msg(opponent_gender, result, "", "ла", "ли"); else if(strcmp(identifier, "она") == 0) msg(gender, result, "он", identifier, "они"); else if(strcmp(identifier, "ОНА") == 0) msg(opponent_gender, result, "он", "она", "они"); else if(strcmp(identifier, "ее") == 0) msg(gender, result, "его", identifier, "их"); else if(strcmp(identifier, "ЕЕ") == 0) msg(opponent_gender, result, "его", "ее", "их"); else if(strcmp(identifier, "ей") == 0) msg(gender, result, "ему", identifier, "им"); else if(strcmp(identifier, "нее") == 0) msg(gender, result, "него", identifier, "них"); else { zcat(result, "[-"); zcat(result, identifier); zcat(result, "]"); } }