sda4: commit the Glaze developer hard-drive dump
Un-ignored: the dev drive is the ground truth the restoration and emulator work constantly reference (DPL3/LIBDPL + VRENDER i860 renderer source, BT/RP live+dev game trees, VGL_LABS pod boot, scene/audio content). Kept in-repo for the pod-owner community. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
;**
|
||||
;** BRIEF -- Basic Reconfigurable Interactive Editing Facility
|
||||
;**
|
||||
;** Written by Dave Nanian and Michael Strickman.
|
||||
;**
|
||||
|
||||
;** brace.m:
|
||||
;**
|
||||
;** This macro is an attempt at a "locate the unmatched brace" utility.
|
||||
;** Although it attempts to be fairly smart about things, it has an IQ of
|
||||
;** 4 or 5, so be careful before taking its word for something.
|
||||
;**
|
||||
;** It DOES NOT WORK if there are braces inside quotes, apostrophes, or
|
||||
;** comments. The macro can, however, be modified to ignore everything
|
||||
;** inside these structures (and check for the appropriate mismatches).
|
||||
;**
|
||||
;** Revision history:
|
||||
;** -----------------
|
||||
|
||||
#define TRUE 1
|
||||
#define BACK 1
|
||||
#define DONE 2
|
||||
|
||||
(macro brace
|
||||
(
|
||||
(int tot_count
|
||||
start_line
|
||||
start_col
|
||||
mismatch
|
||||
char_we_got
|
||||
backward
|
||||
)
|
||||
(string msg_pattern
|
||||
msg_text)
|
||||
|
||||
(= msg_pattern "Checking braces, %d unmatched {s.")
|
||||
(inq_position start_line start_col)
|
||||
(top_of_buffer)
|
||||
|
||||
(while (< backward DONE)
|
||||
(
|
||||
(while (&& (char_search backward) (! mismatch))
|
||||
(
|
||||
(sprintf msg_text msg_pattern tot_count)
|
||||
(message msg_text)
|
||||
|
||||
(if backward
|
||||
(= char_we_got (index "}{" (read 1)))
|
||||
;else
|
||||
(= char_we_got (index "{}" (read 1)))
|
||||
)
|
||||
(if (== char_we_got 1)
|
||||
(++ tot_count)
|
||||
;else
|
||||
(if (== char_we_got 2)
|
||||
(if tot_count
|
||||
(-- tot_count)
|
||||
;else
|
||||
(
|
||||
(if backward
|
||||
(message "Mismatched opening brace.")
|
||||
;else
|
||||
(message "Mismatched closing brace.")
|
||||
)
|
||||
(= mismatch TRUE)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (! mismatch)
|
||||
(
|
||||
(if backward
|
||||
(prev_char)
|
||||
;else
|
||||
(next_char)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (! mismatch)
|
||||
(if tot_count
|
||||
(
|
||||
(end_of_buffer)
|
||||
(= tot_count 0)
|
||||
(= backward BACK)
|
||||
(= msg_pattern "Locating mismatch, %d unmatched }s.")
|
||||
)
|
||||
;else
|
||||
(= backward DONE)
|
||||
)
|
||||
;else
|
||||
(= backward DONE)
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (! mismatch)
|
||||
(
|
||||
(message "All braces match.")
|
||||
(move_abs start_line start_col)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(macro char_search
|
||||
(
|
||||
(int backward)
|
||||
|
||||
(get_parm 0 backward)
|
||||
|
||||
(if backward
|
||||
(returns (search_back "[\\{\\}]"))
|
||||
;else
|
||||
(returns (search_fwd "[\\{\\}]"))
|
||||
)
|
||||
)
|
||||
)
|
||||
Reference in New Issue
Block a user