home *** CD-ROM | disk | FTP | other *** search
/ Piper's Pit BBS/FTP: ibm 0040 - 0049 / ibm0040-0049 / ibm0040.tar / ibm0040 / DBRIEF.ZIP / SOURCE / DISPLAY.M < prev    next >
Encoding:
Text File  |  1991-03-21  |  9.1 KB  |  301 lines

  1. ;dBRIEF Display - v3.10
  2. ;Copyright (c) 1991 - Global Technologies Corporation
  3. ;ALL RIGHTS RESERVED
  4. #include "dbrief.h"
  5. (macro disp
  6.     (
  7.         (string        _dbr_parm1
  8.                         _dbr_parm2
  9.                         _dbr_parm3
  10.         )
  11.         (if (get_parm 0 temp_str "Display [stat,stru,dial,grap,apx]: ")
  12.             (
  13.                 (if (< (strlen temp_str) 4)
  14.                     (+= temp_str " ")
  15.                 )
  16.                 (switch (substr (upper temp_str) 1 4)
  17.                     "APX "
  18.                         (_display_apx_file)
  19.                     "GRAP"
  20.                         (_display_graphics_mode dbr_graphics)
  21.                     "LIBR"
  22.                         (_display_library)
  23.                     "DIAL"
  24.                         (_display_dialect)
  25.                     "STAT"
  26.                         (_status)
  27.                     "TABL"    NULL
  28.                     "STRU"
  29.                         (if (_get_dialect_info dbr_dialect 6)
  30.                             (
  31.                                 (if (get_parm 3 _dbr_parm3)
  32.                                     (
  33.                                         (get_parm 1 _dbr_parm1)
  34.                                         (get_parm 2 _dbr_parm2)
  35.                                         (_structure NULL _dbr_parm1 _dbr_parm2 _dbr_parm3)
  36.                                     )
  37.                                 ;else
  38.                                     (if (get_parm 2 _dbr_parm2)
  39.                                         (
  40.                                             (get_parm 1 _dbr_parm1)
  41.                                             (_structure NULL _dbr_parm1 _dbr_parm2)
  42.                                         )
  43.                                     ;else
  44.                                         (if (get_parm 1 _dbr_parm1)
  45.                                             (_structure NULL _dbr_parm1 NULL)
  46.                                         ;else
  47.                                             (_structure NULL NULL NULL)
  48.                                         )
  49.                                     )
  50.                                 )
  51.                             )
  52.                         ;else
  53.                             (_display_popup_message "DISPLAY STRUCTURE not supported in %s!" (_get_dialect_info dbr_dialect 1) 1)
  54.                         )
  55.                     NULL
  56.                         (if (strlen (trim temp_str))
  57.                             (_display_popup_message "%s is not a valid DISPLAY argument!" (upper temp_str) 1)
  58.                         ;else
  59.                             (_display_popup_message "DISPLAY command requires an argument!" "" 1)
  60.                         )
  61.                 )
  62.             )
  63.         )
  64.     )
  65. )
  66. (macro _display_graphics_mode
  67.     (
  68.         (int                graphics_mode
  69.         )
  70.         (get_parm 0 graphics_mode)
  71.         (switch graphics_mode
  72.             1
  73.                 (_display_popup_message "Graphics mode is NORMAL." "" 0)
  74.             2
  75.                 (_display_popup_message "Graphics mode is DOUBLE." "" 0)
  76.             3
  77.                 (_display_popup_message "Graphics mode is COMBINATION." "" 0)
  78.             4
  79.                 (_display_popup_message "Graphics mode is SPECIAL." "" 0)
  80.         )
  81.         (return graphics_mode)
  82.     )
  83. )
  84. (macro _display_library
  85.     (_display_popup_message "SourceView library is %s." (upper dbr_library) 0)
  86. )
  87. (macro _display_dialect
  88.     (_display_popup_message "Dialect is %s." (_get_dialect_info dbr_dialect 1) 0)
  89. )
  90. (macro _status
  91.     (
  92.         (int            setcmds_buffer
  93.         )
  94.         (= dbr_current_buffer (inq_buffer))
  95.         (= setcmds_buffer (create_buffer "Status" NULL 1))
  96.         (set_buffer setcmds_buffer)
  97.         (if (>= (version) 310)
  98.             (execute_macro "db_hide 1")
  99.         )
  100.         (create_window 8 21 72 1 "SET Command Status  -  [press any key]")
  101.         (if (>= (version) 310)
  102.             (execute_macro "db_show 1")
  103.         )
  104.         (attach_buffer setcmds_buffer)
  105.         (insert      "Current Status                            Set Commands\n")
  106.         (insert      "───────────────────────────────  ──────────────────────────────\n")
  107.         (if (== dbr_auto_indent 1)
  108.             (insert "        Auto indent: ON                set indent [on,off]\n")
  109.         ;else
  110.             (insert "        Auto indent: OFF                set indent [on,off]\n")
  111.         )
  112.         (if (== dbr_auto_header 1)
  113.             (insert "        Auto header: ON                set header [on,off]\n")
  114.         ;else
  115.             (insert "        Auto header: OFF                set header [on,off]\n")
  116.         )
  117.         (if (== dbr_set_ext 1)
  118.             (insert "        Default Ext: ON                set extension [on,off]\n")
  119.         ;else
  120.             (insert "        Default Ext: OFF                set extension [on,off]\n")
  121.         )
  122.         (if (== dbr_template 1)
  123.             (insert " Template editing: ON                set template [on,off]\n")
  124.         ;else
  125.             (insert " Template editing: OFF                set template [on,off]\n")
  126.         )
  127.         (sprintf temp_str " Language Dialect: %s  set dialect to ...\n" (substr (+ (_get_dialect_info dbr_dialect 1) "                  ") 1 12))
  128.         (insert temp_str)
  129.         (switch dbr_graphics
  130.             1
  131.                 (insert "     Graphics mode: NORMAL            set graphics to <spec>\n")
  132.             2
  133.                 (insert "     Graphics mode: DOUBLE            set graphics to <spec>\n")
  134.             3
  135.                 (insert "     Graphics mode: COMBINATION    set graphics to <spec>\n")
  136.             4
  137.                 (insert "     Graphics mode: SPECIAL            set graphics to <spec>\n")
  138.         )
  139.         (sprintf temp_str "        Indent level: %d                  set indent to ...\n" dbr_indent_level)
  140.         (insert temp_str)
  141.         (sprintf temp_str "         Comment tab: %d                 set comment to ...\n" dbr_comment_tab)
  142.         (insert temp_str)
  143.         (sprintf temp_str "              Library: %s  set library to ...\n" (substr dbr_library 1 12))
  144.         (insert temp_str)
  145.         (if (== dbr_comment_lines 1)
  146.             (insert " Comment line #'s: ON                set comment lines [on,off]\n")
  147.         ;else
  148.             (insert " Comment line #'s: OFF                set comment lines [on,off]\n")
  149.         )
  150.         (if (== dbr_proc_indent 1)
  151.             (insert " Procedure indent: ON                set procedure indent [on,off]\n")
  152.         ;else
  153.             (insert " Procedure indent: OFF                set procedure indent [on,off]\n")
  154.         )
  155.         (insert "───────────────────────── Constants ───────────────────────────\n")
  156.         (sprintf temp_str "                Author: %s\n" dbr_author)
  157.         (insert temp_str)
  158.         (sprintf temp_str "            Copyright: %s\n" dbr_copyright)
  159.         (insert temp_str)
  160.         (sprintf temp_str " Memvar lead char: %s\n" dbr_mem_lead)
  161.         (insert temp_str)
  162.         (sprintf temp_str "Memvar trail char: %s\n" dbr_mem_trail)
  163.         (insert temp_str)
  164.         (sprintf temp_str "Default extension: %s\n" (_get_dialect_info dbr_dialect 3))
  165.         (insert temp_str)
  166.         (top_of_buffer)
  167.         (refresh)
  168.         (_pause_for_seconds dbr_scr_seconds)
  169.         (delete_window)
  170.         (delete_buffer setcmds_buffer)
  171.         (set_buffer dbr_current_buffer)
  172.         (attach_buffer dbr_current_buffer)
  173.     )
  174. )
  175. (macro _display_procedure
  176.     (
  177.         (int                    pop_current_buffer
  178.                                 pop_display_buffer
  179.                                 line_position
  180.                                 col_position
  181.                                 proc_line
  182.         )
  183.         (string                program_name
  184.                                 procedure_name
  185.                                 procedure_parms
  186.                                 private_parms
  187.                                 public_parms
  188.                                 routine_type
  189.                                 pop_display_prompt
  190.                                 pop_temp_str
  191.                                 select_area
  192.                                 use_dbf
  193.                                 filter
  194.         )
  195.         (inq_position line_position col_position)
  196.         (inq_names NULL NULL program_name)
  197.         (if (search_back (+ "<\\c" (+ (_beg_of_rout_scan) "*{ @}|{\\t@}")) 1 0)
  198.             (
  199.                 (inq_position proc_line NULL)
  200.                 (= procedure_name (trim (upper (read))))
  201.                 (if (index (_beg_of_proc_scan) (upper (substr procedure_name 1 4)))
  202.                     (= routine_type "  Procedure")
  203.                 ;else
  204.                     (= routine_type "      Function")
  205.                 )
  206.                 (= procedure_name (substr procedure_name (+ (index procedure_name " ") 1)))
  207.             )
  208.         ;else
  209.             (
  210.                 (= routine_type "  Procedure")
  211.                 (= procedure_name (upper program_name))
  212.                 (= proc_line 1)
  213.             )
  214.         )
  215.         (= procedure_parms (_seek_keyword "PARA" proc_line line_position "PARA"))
  216.         (= private_parms (_seek_keyword "PRIV" proc_line line_position "PRIV"))
  217.         (= public_parms (_seek_keyword "PUBL" proc_line line_position "PUBL"))
  218.         (= select_area (_seek_keyword "SELE" proc_line line_position "SELE"))
  219.         (= use_dbf (_seek_keyword "USE " proc_line line_position "USE "))
  220.         (= filter (_seek_keyword "SET FILT" proc_line line_position " TO "))
  221.         (sprintf pop_display_prompt "Program: %s  [press any key]" (upper program_name))
  222.         (= pop_current_buffer (inq_buffer))
  223.         (= pop_display_buffer (create_buffer "Stats" NULL 1))
  224.         (if (>= (version) 310)
  225.             (execute_macro "db_hide 1")
  226.         )
  227.         (create_window 16 21 76 09 pop_display_prompt)
  228.         (if (>= (version) 310)
  229.             (execute_macro "db_show 1")
  230.         )
  231.         (set_buffer pop_display_buffer)
  232.         (attach_buffer pop_display_buffer)
  233.         (sprintf pop_temp_str "Program Status At Line %d." line_position)
  234.         (move_abs 2 3)
  235.         (insert pop_temp_str)
  236.         (move_abs 3 3)
  237.         (insert "───────────────────────────────────────────────────────")
  238.         (sprintf pop_temp_str "%s: %s  at line # %d" routine_type procedure_name proc_line)
  239.         (move_abs 4 3)
  240.         (insert pop_temp_str)
  241.         (sprintf pop_temp_str " Parameters: %s " procedure_parms)
  242.         (move_abs 5 3)
  243.         (insert pop_temp_str)
  244.         (sprintf pop_temp_str "        Publics: %s " public_parms)
  245.         (move_abs 6 3)
  246.         (insert pop_temp_str)
  247.         (sprintf pop_temp_str "      Privates: %s " private_parms)
  248.         (move_abs 7 3)
  249.         (insert pop_temp_str)
  250.         (sprintf pop_temp_str "Select area: %s " select_area)
  251.         (move_abs 8 3)
  252.         (insert pop_temp_str)
  253.         (sprintf pop_temp_str "      Database: %s " use_dbf)
  254.         (move_abs 9 3)
  255.         (insert pop_temp_str)
  256.         (sprintf pop_temp_str "         Filter: %s " filter)
  257.         (move_abs 10 3)
  258.         (insert pop_temp_str)
  259.         (refresh)
  260.         (_pause_for_seconds dbr_scr_seconds)
  261.         (delete_window)
  262.         (set_buffer pop_current_buffer)
  263.         (attach_buffer pop_current_buffer)
  264.         (delete_buffer pop_display_buffer)
  265.         (move_abs line_position col_position)
  266.     )
  267. )
  268. (macro _seek_keyword
  269.     (
  270.         (int                key_start_line
  271.                             key_end_line
  272.         )
  273.         (string            key_string
  274.                             key_temp_string
  275.                             key_beg_string
  276.         )
  277.         (get_parm 0 key_string)
  278.         (get_parm 1 key_start_line)
  279.         (get_parm 2 key_end_line)
  280.         (get_parm 3 key_beg_string)
  281.         (move_abs key_start_line 1)
  282.         (drop_anchor)
  283.         (move_abs key_end_line 0)
  284.         (end_of_line)
  285.         (if (search_back (+ (+ "<{ @}|{\\t@}{" key_string) "}*{ @}|{\\t@}") 1 0 1)
  286.             (
  287.                 (search_fwd key_beg_string 1 0)
  288.                 (= key_temp_string (trim (ltrim (read))))
  289.                 (= key_temp_string (substr key_temp_string (+ (index key_temp_string " ") 1)))
  290.             )
  291.         ;else
  292.             (= key_temp_string "Unknown.")
  293.         )
  294.         (raise_anchor)
  295.         (if (index key_temp_string "&&")
  296.             (= key_temp_string (trim (substr key_temp_string 1 (- (index key_temp_string "&&") 1))))
  297.         )
  298.         (return (substr key_temp_string 1 42))
  299.     )
  300. )
  301.