void ui_file_loadPatterns (Widget w, XtPointer button, caddr_t call_data) { char string [80+MAX_NAME_LENGTH+MAX_NAME_LENGTH]; char filename[4+MAX_NAME_LENGTH+MAX_NAME_LENGTH]; char filestring[30]; /* check now for errors and react ! */ if (strlen(ui_filenamePAT) == 0) { ui_confirmOk("No file specified !"); return; } if (ui_filenamePAT[0] == '/') sprintf(filename, "%s%s", ui_filenamePAT,ui_getExtension(UI_FILE_PAT)); else sprintf(filename, "%s/%s%s", ui_pathname, ui_filenamePAT, ui_getExtension(UI_FILE_PAT)); /* a filename is given */ if (NOT ui_fileExist(filename, 0)) { ui_confirmOk("No such pattern file exists!"); return; } /* a file exists */ ui_printMessage("Loading patterns ..."); ui_checkError(krui_loadNewPatterns(filename,&CURR_PATTERN_SET)); if (ui_kernelError < 0) { ui_confirmOk("Error during loading patterns!"); ui_noOfCurrentPattern = 0; ui_rem_displayPatternNumber(); } else { ui_noOfCurrentPattern = 1; CURR_PATTERN_SET = NO_OF_PATTERN_SETS; CURR_TEST_PATTERN_SET = NO_OF_PATTERN_SETS; NO_OF_PATTERN_SETS++; PATTERN_SET_FILE[CURR_PATTERN_SET] = (char *)malloc(strlen(filename)+1); if(strrchr(filename,'/') == NULL) strcpy(filestring,filename); else strcpy(filestring,strrchr(filename,'/')+1); strncpy(PATTERN_SET_FILE[CURR_PATTERN_SET],filestring, strlen(filestring)-4); PATTERN_SET_FILE[CURR_PATTERN_SET][strlen(filestring)-4] = '\0'; ui_rem_displayPatternNumber(); if(ui_controlIsCreated)ui_rem_updatePattList(); ui_rem_defSubPat((Widget) button,1,(caddr_t)1); sprintf(string, "Patterns loaded from file:\n %s\n", filename); ui_tw_printMessage(string); ui_printMessage("Patterns loaded."); strcpy(ui_filenameSLPAT, ui_filenamePAT); ui_file_updateShellLabels(); ui_classUpdatePanel(TRUE); } }
/************************************************** * snns_loadNewPatterns * * Loads patterns from a file using * krui_loadNewPatterns(). **************************************************/ int snns_loadNewPatterns(stEval *args, stEval *result, void *instance) { char *filename = STSTRING(&args[0]); int *set_no = (int*)STLIST(&args[1]); krui_err errCode; char *errMsg; errCode = krui_loadNewPatterns(filename, set_no); if (errCode == KRERR_NO_ERROR) { return EC_OK; } else { errMsg = krui_error(errCode); slMessage(0, "breveSNNS: loadNewPatterns failed with message %s (error code %d).", errMsg, errCode); return EC_ERROR; } }