;;;Dialog to display/print/save list or load/edit lisp files. ;;; ;;; Author: ;;; Henry C. Francis ;;; 425 N. Ashe St. ;;; Southern Pines, NC 28387 ;;; ;;; http://www.pinehurst.net/~pfrancis ;;; e-mail hfrancis@pinehurst.net ;;; All rights reserved. ;;; ;;; (DEFUN c:llsp (/) (IF (AND lsp_spec (NOT (FINDFILE (STRCAT lsp_spec "lsp_file.dat"))) ) ;_ end of and (make_lsp_list lsp_spec) ) ;_ end of IF (SETQ num (LOAD_DIALOG "llsp")) (set_file_list) (NEW_DIALOG "llsp" num) (MODE_TILE "file_list" 2) (ACTION_TILE "lisp_drvdir" "(chg_drvdir)") (ACTION_TILE "gen_list" "(regen_list)") (ACTION_TILE "file_list" "(get_tile \"file_list\")") (ACTION_TILE "load_files" "(setq lf_ndx(get_tile\"file_list\") do_load T do_edit nil)(done_dialog)" ) ;_ end of action_tile (ACTION_TILE "edit_file" "(setq lf_ndx(get_tile\"file_list\") do_load nil do_edit T)(done_dialog)" ) ;_ end of action_tile (ACTION_TILE "print_list" "(print_list box_list)") (ACTION_TILE "save_list" "(save_list box_list)") (ACTION_TILE "load_cancel" "(setq do_load nil do_edit nil)(done_dialog 0)" ) ;_ end of action_tile (START_LIST "file_list") (MAPCAR 'ADD_LIST box_list) (END_LIST) (COND (lsp_spec (SET_TILE "cur_fspec" lsp_spec)) (new_drvdir (SET_TILE "cur_fspec" new_drvdir)) (get_drvdir (SET_TILE "cur_fspec" get_drvdir)) (T (SET_TILE "cur_fspec" "W:\\UTIL\\LSP\\LSP_FILE.DAT")) ) ;_ end of COND (START_DIALOG) (IF do_load (load_file) ) ;_ end of if (IF do_edit (edit_file) ) ;_ end of if ) ;_ end of DEFUN (DEFUN make_lsp_list (lsp_spec /) (SETQ dir_str (STRCAT "dir " lsp_spec "*.lsp /b > " lsp_spec "lsp_file.dat" ) ;_ end of strcat ) ;_ end of setq (COMMAND "_sh" dir_str) (GRAPHSCR) ) ;_ end of DEFUN (DEFUN regen_list () (SETQ lsp_file_list nil lsp_data_list nil box_list nil count 0 llst_file nil ) ;_ end of setq (SETQ get_newspec (GETFILED "Change Lisp Drive\\Directory" (IF new_drvdir new_drvdir "W:\\UTIL\\LSP\\LSP_FILE.DAT" ) ;_ end of if "" 1 ) ;_ end of getfiled ) ;_ end of setq (SETQ new_drvdir (IF get_newspec get_newspec (IF new_drvdir new_drvdir "W:\\UTIL\\LSP\\LSP_FILE.DAT" ) ;_ end of if ) ;_ end of if ) ;_ end of setq (SET_TILE "cur_fspec" new_drvdir) (IF get_newspec (PROGN (SETQ count (STRLEN get_newspec)) (WHILE (NOT (EQ "\\" (SUBSTR get_newspec count 1))) (SETQ count (1- count)) ) ;_ end of WHILE (SETQ lsp_spec (SUBSTR get_newspec 1 count)) (SETQ llst_file (FINDFILE get_newspec)) ) ;_ end of PROGN (PROGN (SETQ lsp_spec "W:\\UTIL\\LSP\\" get_newspec lsp_spec ) ;_ end of setq (SETQ llst_file (FINDFILE "W:\\UTIL\\LSP\\LSP_FILE.DAT")) ) ;_ end of PROGN ) ;_ end of IF (IF llst_file (SETQ llst_file (OPEN llst_file "r")) ) ;_ end of IF (set_file_list) (START_LIST "file_list") (MAPCAR 'ADD_LIST box_list) (END_LIST) ) ;_ end of DEFUN (DEFUN set_file_list (/) (IF box_list nil (PROGN (IF lsp_spec (SETQ ff_name (FINDFILE (STRCAT lsp_spec "LSP_FILE.DAT"))) (SETQ ff_name (FINDFILE "W:\\UTIL\\LSP\\LSP_FILE.DAT")) ) ;_ end of IF (IF ff_name (SETQ llst_file (OPEN ff_name "r")) ) ;_ end of IF (SETQ lsp_file_list nil) (IF llst_file (PROGN (WHILE (SETQ fs_str (READ-LINE llst_file)) (SETQ lsp_file_list (IF lsp_file_list (APPEND lsp_file_list (LIST fs_str)) (LIST fs_str) ) ;_ end of if ) ;_ end of setq (princ "\n") (princ fs_str) ) ;_ end of WHILE (CLOSE llst_file) (FOREACH n lsp_file_list (IF (SETQ found_file (FINDFILE n)) (PROGN (PRINC (STRCAT "\nGetting description for " found_file)) (SETQ lsp_file (OPEN found_file "r")) (SETQ lsp_desc (READ-LINE lsp_file)) (IF (EQ (SUBSTR lsp_desc 1 1) ";") (SETQ lsp_desc (SUBSTR lsp_desc 2)) ) ;_ end of if (SETQ lsp_data_list (IF lsp_data_list (APPEND lsp_data_list (LIST n) (LIST lsp_desc)) (APPEND (LIST n) (LIST lsp_desc)) ) ;_ end of if ) ;_ end of setq (SETQ box_list (IF box_list (APPEND box_list (LIST (STRCAT n "\011" lsp_desc))) (APPEND (LIST (STRCAT n "\011" lsp_desc))) ) ;_ end of if ) ;_ end of setq (CLOSE lsp_file) ) ;_ end of PROGN (PROGN (PRINC "\n") (PRINC "\nLisp file ") (PRINC n) (PRINC " not found! ") ) ) ;_ end of IF ) ;_ end of FOREACH ) ;_ end of PROGN (SETQ box_list (LIST "No Lisp Data File Found!")) ) ;_ end of IF (SETQ box_list (ACAD_STRLSORT box_list)) ) ;_ end of PROGN ) ;_ end of IF ) ;_ end of DEFUN (DEFUN load_file () (SETQ count 1 lf_name (NTH (ATOI lf_ndx) box_list) ) ;_ end of SETQ (WHILE (NOT (OR (EQ count 13) (EQ (SUBSTR lf_name count 1) "\t"))) (SETQ count (1+ count)) ) ;_ end of WHILE (SETQ ff_name (FINDFILE (SUBSTR lf_name 1 (1- count)))) (LOAD ff_name) (EVAL (READ (STRCAT "(c:" (SUBSTR lf_name 1 (- count 5)) ")")) ) ;_ end of eval ) ;_ end of defun (DEFUN edit_file () (SETQ count 1 lf_name (NTH (ATOI lf_ndx) box_list) ) ;_ end of SETQ (WHILE (NOT (OR (EQ count 13) (EQ (SUBSTR lf_name count 1) "\t"))) (SETQ count (1+ count)) ) ;_ end of WHILE (SETQ ff_name (FINDFILE (SUBSTR lf_name 1 (1- count)))) (SETQ edstr (STRCAT "NE " ff_name)) (COMMAND ".sh" edstr) (GRAPHSCR) ) ;_ end of defun (DEFUN print_list (BOX_LIST /) (SETQ print_out (OPEN "LPT1" "w")) (FOREACH n box_list (WRITE-LINE n print_out) ) ;_ end of foreach (CLOSE print_out) ) ;_ end of defun (DEFUN save_list (BOX_LIST /) (SETQ get_fname (GETFILED "Save Lisp File List" "" "" 1)) (IF get_fname (PROGN (SETQ save_fname (OPEN get_fname "w")) (FOREACH n box_list (WRITE-LINE n save_fname) ) ;_ end of foreach (CLOSE save_fname) ) ;_ end of PROGN (PRINC "\nInvalid Filename specified. ") ) ;_ end of IF ) ;_ end of defun (DEFUN chg_drvdir () (SETQ get_newspec (GETFILED "Change Lisp Drive\\Directory" (IF new_drvdir new_drvdir "W:\\UTIL\\LSP_FILE.DAT" ) ;_ end of if "" 1 ) ;_ end of getfiled ) ;_ end of setq (SETQ new_drvdir (IF get_newspec get_newspec (IF new_drvdir new_drvdir "W:\\UTIL\\LSP\\LSP_FILE.DAT" ) ;_ end of if ) ;_ end of if ) ;_ end of setq (SET_TILE "cur_fspec" new_drvdir) ) ;_ end of defun ;|«Visual LISP© Format Options» (72 2 40 2 T "end of " 60 9 2 0 0 T T nil T) ***Don't add text below the comment!***|;