/* * * Get editing string and call ged_red */ int f_red(ClientData UNUSED(clientData), Tcl_Interp *interpreter, int argc, const char *argv[]) { const char **av; struct bu_vls editstring = BU_VLS_INIT_ZERO; CHECK_DBI_NULL; if (argc != 2) { Tcl_Eval(interpreter, "help red"); return TCL_ERROR; } get_editor_string(&editstring); av = (const char **)bu_calloc(4, sizeof(char *), "f_red: av"); av[0] = argv[0]; av[1] = "-E"; av[2] = bu_vls_addr(&editstring); av[3] = argv[1]; if ( ged_red(gedp, 4, (const char **)av) == GED_ERROR ) { Tcl_AppendResult(interpreter, "Error: ", bu_vls_addr(gedp->ged_result_str), (char *)NULL); } else { Tcl_AppendResult(interpreter, bu_vls_addr(gedp->ged_result_str), (char *)NULL); } bu_vls_free(&editstring); bu_free((void *)av, "f_red: av"); return TCL_OK; }
/* * * control routine for editing mater information */ int f_edmater(ClientData UNUSED(clientData), Tcl_Interp *interpreter, int argc, const char *argv[]) { const char **av; struct bu_vls editstring = BU_VLS_INIT_ZERO; int i; CHECK_DBI_NULL; if (argc < 2) { Tcl_Eval(interpreter, "help edmater"); return TCL_ERROR; } get_editor_string(&editstring); av = (const char **)bu_malloc(sizeof(char *)*(argc + 3), "f_edmater: av"); av[0] = (const char *)argv[0]; av[1] = "-E"; av[2] = bu_vls_addr(&editstring); argc += 2; for (i = 3; i < argc; ++i) { av[i] = (const char *)argv[i-2]; } av[argc] = NULL; ged_edmater(gedp, argc + 1, (const char **)av); bu_vls_free(&editstring); bu_free((void *)av, "f_edmater: av"); return TCL_OK; }
void edit_bbs_message(char *directory, struct bbs_board_info *bbs_info, int *num_files, struct board_info *new_board) { int which_fl; char s[40]; char *data; if (!num_files) {print_str_cr("No messages to edit"); return;} sprintf(s,"Which mail message to edit: (1-%d): ",*num_files); print_cr(); print_string(s); get_editor_string(s,5); which_fl=str_to_num(s,&data); edit_a_bbs_message(directory,bbs_info,num_files,which_fl,new_board); };
void read_bbs_message(char *directory, struct bbs_board_info *bbs_info, int *num_files, struct board_info *new_board, int board_num, struct bbs_user_account *bbs_user) { int which_fl; char s[40]; char *data; if (!(*num_files)) {print_str_cr("No messages to read"); return; } sprintf(s,"Which mail message to read: (1-%d): ",*num_files); print_cr(); print_string(s); get_editor_string(s,5); which_fl=str_to_num(s,&data); if ((which_fl<1) || (which_fl>(*num_files))) return; /* which_fl--; */ read_a_bbs_message(directory,bbs_info,num_files,which_fl, new_board,board_num,bbs_user); };
/* * * No-frills edit - opens an editor on the supplied * file name. * */ int editit(const char *command, const char *tempfile) { int argc = 5; const char *av[6] = {NULL, NULL, NULL, NULL, NULL, NULL}; struct bu_vls editstring = BU_VLS_INIT_ZERO; CHECK_DBI_NULL; get_editor_string(&editstring); av[0] = command; av[1] = "-e"; av[2] = bu_vls_addr(&editstring); av[3] = "-f"; av[4] = tempfile; av[5] = NULL; ged_editit(gedp, argc, (const char **)av); bu_vls_free(&editstring); return TCL_OK; }