int main () { char **initialEnv = environ; g_cgi_cfg = new CCgiCfg("/data/server/cgi-bin/sh/cgi_cfg.txt"); while (FCGI_Accept() >= 0) { CIfBase* ifobj = CIfFactory::getIfObj(); if(ifobj == NULL) { LogError("error_env_platform", ""); continue; } ifobj->SetServName(my_getenv("SERVER_NAME")); char* pszReq = my_getenv("QUERY_STRING"); ifobj->login(pszReq); delete ifobj; } delete (CWorldBase*)g_pTheWorld; return 0; }
int set_pwd(char ***env, char *path) { char *final_pwd; char **command; int i; i = (strncmp(path, "~/", 2) == 0) ? 1 : 0; if (i == 1 || (strncmp(path, "~\0", 2) == 0)) { if (!(final_pwd = my_strdog(my_getenv(*env, "HOME"), "/"))) return (1); } else if (path[0] == '/') { if (!(final_pwd = strdup("/"))) return (-1); } else if (!(final_pwd = my_strdog(my_getenv(*env, "PWD"), "/"))) return (1); if (!(command = my_str_to_wordtab2(path, "/"))) return (1); final_pwd = set_pwd_loop(command, final_pwd, i); builtin_setenv(env, "PWD", final_pwd); free(final_pwd); return (1); }
static char *my_cd_back(char *path, char **env) { char *tmp; char *home; char *pwd; char *oldpwd; tmp = NULL; oldpwd = my_getenv(env, "OLDPWD"); if (my_strcmp(path, "-") == 0) { tmp = my_strdup(oldpwd); my_putpath(env, my_realpath(tmp), 1); } else if (my_strcmp(path, "--") == 0) { pwd = my_getenv(env, "PWD"); home = my_getenv(env, "HOME"); if (my_strncmp(pwd, home, my_strlen(home)) == 0) tmp = my_strdup(home); else tmp = my_strdup("/"); } return (tmp); }
static void put_prompt(char **env, t_uchar ret) { char *user; char *pwd; char pwd_prefix[2]; char *home; pwd_prefix[0] = '\0'; pwd_prefix[1] = '\0'; user = my_getenv(env, "USER="******"USERNAME="******"PWD="); home = my_getenv(env, "HOME="); if (my_strncmp(pwd, home, my_strlen(home)) == 0 && my_strlen(pwd) > 1) { pwd_prefix[0] = '~'; pwd += my_strlen(home); } my_printf(GREEN "%s" RESET ":" YELLOW "%s%s\n" RESET, user, pwd_prefix, pwd); if (ret == 0) my_printf("[" GREEN ":)" RESET "]"); else my_printf("[" RED ":(" RESET "]"); my_printf(" $> "); return ; }
int unsetenv_manager(t_manage *man, char *cmd) { int pos; char **d_cmd; char **d_all; int i; int nb_of_args; int j; i = -1; j = 1; d_all = my_str_to_wordtab(cmd, ' '); while (d_all[++i]) { pos = 0; if ((nb_of_args = wordtab_count(d_all)) == 1) { err_report(3, "NULL"); return (-1); } d_cmd = get_args(cmd); if ((pos = my_getenv(man->all_env->my_env, d_cmd[j])) == -1) return (-1); man->all_env->my_env = d_tab_unset_doc(man->all_env->my_env, pos - 1); j = j + 1; } return (0); }
int check_cd(t_mysh *ptr, int flag) { DIR *dir; char *line; if (my_getenv("PWD", ptr) == 0) return (3); if ((line = my_strcat_three(ptr->recup_getenv, "/", ptr->param[1])) == NULL) return (3); if (flag == 1) if (access(line, X_OK)) dir = opendir(line); if (flag == 0) if (access(line, X_OK)) { free(line); if ((dir = opendir(ptr->param[1])) == NULL) { my_printf("Error with opendir, please check your directory\n"); return (3); } else return (1); } free(line); return (1); }
int THD_ok_overwrite(void) /* Jan 2008 */ { char *ppp=my_getenv("AFNI_DECONFLICT"); if( force_ok_overwrite ) return 1 ; if (ppp && strcmp(ppp,"OVERWRITE")==0) return 1; return 0; }
void execution(char **tabb, t_env *chaine_env) { int j; char **path; char *str; char **env; char *value_path; j = 0; env = tab_env(chaine_env); if ((tabb[0][0] == '.' || tabb[0][0] == '/') && access(tabb[0], R_OK) == 0) execve(tabb[0], tabb, env); else if ((value_path = my_getenv("PATH", chaine_env)) != NULL) { path = my_str_to_wordtab(value_path, ':'); while (path[j] != NULL) { str = my_complete_str(path[j], tabb[0]); if (access(str, R_OK) == 0) execve(str, tabb, env); j++; xfree(str); } } printf("42sh: command not found : %s\n", tabb[0]); exit(-1); }
int AFNI_noenv( char *ename ) /* 21 Jun 2000 */ { char *ept ; if( ename == NULL ) return 0 ; ept = my_getenv(ename) ; return NOISH(ept) ; }
int my_cd(t_datas *datas, char **cmd) { int res; char *path; char *pwd; res = 0; if (my_cd_usage(cmd) < 0) return (-1); path = my_cd_realpath(cmd[1], datas->env); if (path == NULL && my_strncmp(cmd[1], "~", 1) == 0) return (my_error(cmd[0], "no such file or directory", cmd[1])); if (path == NULL) return (my_error(cmd[0], "memory allocation failed.", NULL)); res = my_cd_check(path); if (res == 0) { pwd = my_getenv(datas->env, "PWD"); res = my_sys_setenv(datas, "cd", "OLDPWD", pwd); } if (res == 0) res = my_sys_setenv(datas, "cd", "PWD", path); free((char *)path); return (res); }
int to_pwd(char *dir, char *line, t_sllist *myenv) { strcpy(dir, my_getenv("PWD", myenv)); strcat(dir, "/"); strcat(dir, line); return (0); }
static void mri_warp3D_align_edging_default( int nx , int ny , int nz , int *xfade, int *yfade, int *zfade ) { char *ef=my_getenv("AFNI_VOLREG_EDGING") , *eq ; if( ef == NULL ){ /* the 5% solution */ *xfade = (int)(0.05*nx+0.5) ; *yfade = (int)(0.05*ny+0.5) ; *zfade = (int)(0.05*nz+0.5) ; } else { float ff = strtod(ef,&eq) ; if( ff < 0 ){ /* again, 5% */ *xfade = (int)(0.05*nx+0.5) ; *yfade = (int)(0.05*ny+0.5) ; *zfade = (int)(0.05*nz+0.5) ; } else { if( *eq == '%' ){ /* the whatever % solution */ *xfade = (int)(0.01*ff*nx+0.5) ; *yfade = (int)(0.01*ff*ny+0.5) ; *zfade = (int)(0.01*ff*nz+0.5) ; } else { /* the fixed value solution */ *xfade = (int)( MIN(0.25*nx,ff) ) ; *yfade = (int)( MIN(0.25*ny,ff) ) ; *zfade = (int)( MIN(0.25*nz,ff) ) ; } } } }
void AFNI_coord_filer_setup( Three_D_View *im3d ) { char ename[32] , *eval ; int ic ; ENTRY("AFNI_coord_filer_setup") ; if( !IM3D_OPEN(im3d) ) EXRETURN ; ic = AFNI_controller_index(im3d) ; if( ic < 0 || ic >= MAX_CONTROLLERS || fpc[ic] != NULL ) EXRETURN ; sprintf(ename,"AFNI_FILE_COORDS_%c",abet[ic]) ; eval = my_getenv(ename) ; if( eval == NULL || *eval == '\0' ){ fpc[ic] = NULL ; EXRETURN ; } if( strcmp(eval,"-") == 0 || strncmp(eval,"stdout",6) == 0 ) fpc[ic] = stdout ; else { fpc[ic] = fopen( eval , "w" ) ; if( fpc[ic] == NULL ){ ERROR_message("Unable to open file %s from %s",eval,ename) ; EXRETURN ; } } AFNI_receive_init( im3d , RECEIVE_VIEWPOINT_MASK , AFNI_filer_viewpoint_CB , im3d , "AFNI_filer_viewpoint_CB" ) ; INFO_message("Logging [%c] viewpoint changes to '%s'",abet[ic],eval) ; EXRETURN ; }
int find_full_path(t_info *info) { char *path; int i; char *line; char *tp; i = 0; path = my_getenv(info, "PATH"); if (path == NULL) return (error_int("Variable PATH doesn't exist", 1)); tp = strtok(path, ":"); check_line(tp, info); while ((tp = strtok(NULL, ":"))) { if (check_line(tp, info) == RETURN_SUCCESS) { free(path); return (RETURN_SUCCESS); } memset(tp, '\0', strlen(tp)); } free(tp); free(path); return (RETURN_ERROR); }
int previous_dir(t_mysh *ptr) { char *tmp; if (ptr->previous == 0) { my_putstr(": No such file or directory\n"); return (0); } if ((tmp = my_strdup(ptr->previous)) == NULL) return (0); if (chdir(tmp) == 0) { if (my_getenv("PWD", ptr) == 0) return (0); free(ptr->previous); if ((ptr->previous = my_strdup(ptr->recup_getenv)) == 0) return (0); modif_path(ptr, "PWD", tmp); free(tmp); return (1); } my_putstr("Error with chdir\n"); return (0); }
int main() { t_mysh mysh; my_printf(GREEN "\t\t\t\t\tWelcome to mysh v_1\n\n" DEFAULT_COLOR); if (signal(SIGINT, SIG_IGN) == SIG_ERR) exit(0); recup_env(&mysh); if (my_getenv("PWD", &mysh) != 0) { if ((mysh.previous = my_strdup(mysh.recup_getenv)) == NULL) return (0); } else mysh.previous = NULL; while (42) { prompt(&mysh); if ((mysh.command = get_next_line(0, &mysh)) == NULL) { my_putchar('\n'); my_exit(&mysh); } else init_command(&mysh); } return (0); }
int unsetenv_for_setenv(t_manage *man, char *cmd, int pos) { pos = 0; if ((pos = my_getenv(man->all_env->my_env, cmd)) == -1) return (-1); man->all_env->my_env = d_tab_unset_doc(man->all_env->my_env, pos - 1); return (0); }
double AFNI_numenv_def( char *ename, double dd ) /* 18 Sep 2007 */ { char *ept,*ccc ; double val=dd ; if( ename == NULL ) return val ; ept = my_getenv(ename) ; if( ept == NULL ) return val ; val = strtod(ept,&ccc) ; if( ccc == ept ) val = dd ; return val ; }
void THD_enviro_write_order(void) { char *hh = my_getenv("AFNI_BYTEORDER") ; if( hh == NULL ){ output_order = -1 ; return ; } if( strcmp(hh,LSB_FIRST_STRING) == 0 ){ output_order = LSB_FIRST; return; } if( strcmp(hh,MSB_FIRST_STRING) == 0 ){ output_order = MSB_FIRST; return; } output_order = -1 ; return ; }
void conv_set_ref( int num , float * ref ) { if( num > 0 && ref != NULL ){ /*** if have inputs, make space & copy in ***/ int ii ; /* get rid of old data */ if(refts != NULL){ free(refts); refts = NULL; free(refin); refin = NULL; } refnum = num ; refts = (float *) malloc( sizeof(float) * num ) ; refin = (int *) malloc( sizeof(int) * num ) ; memcpy( refts , ref , sizeof(float) * num ) ; for( ii=0,refnz=0 ; ii < num ; ii++ ) /* build list of nonzero */ if( refts[ii] != 0 ) refin[refnz++] = ii ; /* points in refts */ if( refnz == 0 ) ERREX("model_conv_diffgamma: All zero reference timeseries!") ; if( g_debug ) { fprintf(stderr,"+d conv_set_ref: num=%d nonzero=%d\n",num,refnz) ; if( g_debug > 1 ) { fprintf(stderr," TR locked stimuli :"); for( ii = 0; ii < refnz; ii++ ) fprintf(stderr," %d", refin[ii]); fputc('\n',stderr); } } return ; } else { /*** if no inputs, read it from AFNI_CONVMODEL_REF 1D file ***/ char * cp ; MRI_IMAGE * flim ; float one = 1.0 ; cp = my_getenv("AFNI_CONVMODEL_REF") ; /* get name of reference file */ if( cp == NULL ) ERREX("model_conv_diffgamma: need ref file as AFNI_CONVMODEL_REF") ; flim = mri_read_1D(cp) ; /* 16 Nov 1999: replaces mri_read_ascii */ if( flim == NULL ){ char buf[256] ; sprintf(buf,"model_conv_diffgamma: Can't read timeseries file %s",cp) ; ERREX(buf) ; } if( g_debug ) fprintf(stderr,"+d conv_set_ref: refts=%s nx=%d\n",cp,flim->ny) ; conv_set_ref( flim->nx , MRI_FLOAT_PTR(flim) ) ; /* recursion! */ mri_free(flim) ; } return ; }
void prompt(t_main *env) { char *str; if ((str = my_getenv(env, "PWD")) != NULL) printf("(%s)", str); else printf("$>"); fflush(stdout); free(str); }
int reset_getent() { char *term; if ((term = my_getenv("TERM")) == NULL || tgetent(0, term) != 1) { my_putstr_error("Error on tgetent, only support xterm\n"); return (0); } return (1); }
char * THD_find_regular_file( char *ename, char *thispath ) { char *fullname , *str ; int id , ii ; char *epath; ENTRY("THD_find_regular_file") ; if (!thispath) epath = my_getenv( "PATH" ) ; else epath = thispath; if( epath != NULL ){ int epos =0 , ll = strlen(epath) ; char *elocal ; char dirname[THD_MAX_NAME] ; /* copy path list into local memory */ elocal = (char *) malloc( sizeof(char) * (ll+2) ) ; strcpy( elocal , epath ) ; elocal[ll] = ' ' ; elocal[ll+1] = '\0' ; fullname = (char *) malloc( sizeof(char) * THD_MAX_NAME); /* replace colons with blanks */ for( ii=0 ; ii < ll ; ii++ ) if( elocal[ii] == ':' ) elocal[ii] = ' ' ; /* extract blank delimited strings, use as directory names to get timeseries files */ do{ ii = sscanf( elocal+epos , "%s%n" , dirname , &id ) ; if( ii < 1 ) break ; /* no read ==> end of work */ epos += id ; /* epos = char after last one scanned */ ii = strlen(dirname) ; /* make sure name has */ if( dirname[ii-1] != '/' ){ /* a trailing '/' on it */ dirname[ii] = '/' ; dirname[ii+1] = '\0' ; } if( !THD_is_directory(dirname) ) continue ; /* 25 Feb 2002 */ sprintf(fullname, "%s%s",dirname,ename); if( THD_is_file(fullname) ) { /* found the file in the current directory */ free(elocal) ; RETURN(fullname); } } while( epos < ll ) ; /* scan until 'epos' is after end of epath */ free(elocal) ; free(fullname); } RETURN(NULL) ; }
double AFNI_numenv( char *ename ) /* 23 Aug 2003 */ { char *ept,*ccc ; double val ; if( ename == NULL ) return 0.0 ; ept = my_getenv(ename) ; if( ept == NULL ) return 0.0 ; val = strtod(ept,&ccc) ; if( *ccc == 'k' || *ccc == 'K' ) val *= 1024.0 ; else if( *ccc == 'm' || *ccc == 'M' ) val *= 1024.0*1024.0 ; else if( *ccc == 'g' || *ccc == 'G' ) val *= 1024.0*1024.0*1024.0 ; return val ; }
int setenv_void(t_manage *man, char **d_cmd) { int ret; ret = 0; if ((ret = my_getenv(man->all_env->my_env, d_cmd[1])) != -1) unsetenv_for_setenv(man, d_cmd[1], 1); man->all_env->my_env = d_tab_cpy_doc(man->all_env->my_env, separator(d_cmd[1], " ", '=')); wordtab_end(d_cmd); return (0); }
int builtin_cd(size_t argc, char **argv) { char *dir; char pwd[1024]; char oldpwd[1024]; getcwd(oldpwd, 1023); if (argc <= 0) dir = my_getenv("HOME"); else if (strcmp(argv[0], "-") == 0) dir = my_getenv("OLDPWD"); else dir = argv[0]; if (dir == NULL) return (-1); if (chdir(dir) != 0) my_perror(); my_setenv("OLDPWD", oldpwd); my_setenv("PWD", getcwd(pwd, 1023)); return (0); }
void prompt(t_mysh *ptr) { if (ptr->env == NULL) my_putstr(YELLOW "where is my env ?"); else { my_printf(BLUE); if (my_getenv("USER", ptr) != 0) my_printf("%s", ptr->recup_getenv); else if (my_getenv("HOST", ptr) != 0) my_printf("%s", ptr->recup_getenv); else if (my_getenv("USERNAME", ptr) != 0) my_printf("%s", ptr->recup_getenv); else if (my_getenv("LOGNAME", ptr) != 0) my_printf("%s", ptr->recup_getenv); else my_putstr(GREEN "where is my name ?"); } my_printf(DEFAULT_COLOR); my_putchar('>'); }
int home_dir(t_mysh *ptr) { if (my_getenv("HOME", ptr) == 0) { my_putstr("HOME not found, please check the environnement\n"); return (0); } if (my_getenv("PWD", ptr) == 0) return (0); free(ptr->previous); if ((ptr->previous = my_strdup(ptr->recup_getenv)) == 0) return (0); my_getenv("HOME", ptr); if (chdir(ptr->recup_getenv) == 0) modif_path(ptr, "PWD", ptr->recup_getenv); else { my_putstr("Error with chdir\n"); return (0); } return (1); }
static char *my_cd_realpath(char *path, char **env) { char *tmp; tmp = NULL; if (my_strcmp(path, "-") == 0 || my_strcmp(path, "--") == 0) tmp = my_cd_back(path, env); else if (my_strcmp(path, "~") == 0) tmp = my_strdup(my_getenv(env, "HOME")); else if (my_strichr(path, '~') == 0 && my_strichr(path, '/') == 1) tmp = my_strjoin(my_getenv(env, "HOME"), my_strchr(path, '/')); else if (my_strichr(path, '/') == 0) tmp = my_strdup(path); else { tmp = my_strjoin(my_getenv(env, "PWD"), "/"); tmp = my_strfjoin(tmp, my_strdup(path)); } if (tmp != NULL) tmp = my_realpath(tmp); return (tmp); }
int echo_$(char **s, char **env) { char *str; char *str2; if ((str = malloc(sizeof(char) * my_strlen(s[1]))) == NULL) return (1); str = exec_echo$(s, str); if ((str2 = my_getenv(env, str)) == NULL) return (1); my_putstr(str2); my_putchar('\n'); return (0); }