.#,*ü! 3 # str+ . get_last_macro°# str*ü! 4 $ file+*ü! 5 * macro_name+ýü! 7/ Macro filename:þ 3 read_file_from_mini°$ fileýü! 8 $ fileþ & strlen.w/býü" 10. Name of macro: + Null_String + Null_Stringþ ) read_mini°* macro_nameýü" 11 * macro_nameþ & strle n.w/býü" 13$= %%%%%%MACRO NAME: %s\n@%s\n\n * macro_name # strþ ' sprintf°# strü" 15" -1ý # str $ fileþ 5 append_string_to_fileA.ýü" 17= Error appending macro to fileþ % error/cü! 1y0 macro_save_macro,*ü" 23 % macro+ . get_last_macro°% macro*ü" 24 ! i $ imax " ch # num+*ü" 25 / last_was_insert+! 0°/ last_was_insert* ! f % ftype+ýü" 27' *macro*þ ' pop2bufü" 28 # eobü" 30 ' newlineýü" 31$/ \ndefine macro_þ & insertü" 32 ) push_spotýü" 33$. EDITME ()\n{\nþ & insertýü" 35 % macroþ & strlen°$ imaxü" 36! 0°# numü" 37! 0°! i.ü" 39 ! i $ imax=/.ýü" 41 ! i % macro!°" chü" 42 " ch" 92A.ü" 44·! iýü" 45 ! i % macro!°" ch/.ü" 47 " ch" 94A.ü" 49·! iýü" 50 ! i % macro!°" chü" 51" 64²" ch/c/dü" 54 " chü" 55·# numü" 56·! i/f.ü" 59 # num/.ü" 61¹# numýþü" 62 ( un getkey/f.ýü" 65! 0þ - input_pending/.ü" 67 / get_key_binding°! f°% ftypeýü" 69 ! fþ & typeof ( Ref_TypeA.ýü" 71$S (@%S)(); %%<--- Ref may be to a private function\n ! fþ ' vinsertü" 72! 0°/ last_was_insertu/cü" 76 ! f/ self_insert_cmdA.ü" 78 / last_w as_insert.ýü" 80$D insert (""); % insert text here\nþ & insertü" 81! 1°/ last_was_insert/bu/cü" 86 % ftype.ýýü" 88$0 call ("%s");\n ! fþ ' sprintfþ & insert/.ýýü" 90$* %s ();\n ! fþ ' sprintfþ & insert/dü" 92! 0°/ last_was_insert/fýü" 95$# }\nþ & insertü" 96 ( pop_spotü" 21y1 macro_to_function,*ü# 101 # key+ + Null_String°# key*ü# 102 " ch+! 0°" chýü# 103= Press key to assign macro to:þ % flush.ü# 107 & getkey°" chü# 108 " ch! 0A." ^@°" ch/.ý " chþ $ char°" ch/dýü# 109 # key " chþ & strcat° # key/.ýü# 111! 5þ - input_pending/kýýü# 113! @ . get_last_macroþ & strcat # keyþ , local_setkeyýýü# 114- Macro set to ý # keyþ 0 expand_keystringþ & strcatþ ' messageü" 99y9 macro_assign_macro_to_key