Line data Source code
1 : #ifndef COMMAND_MACRO_H 2 : #define COMMAND_MACRO_H 3 : 4 : #include <stdbool.h> 5 : #include <stddef.h> 6 : #include "util/macros.h" 7 : #include "util/ptr-array.h" 8 : #include "util/string.h" 9 : #include "util/unicode.h" 10 : 11 : typedef struct { 12 : PointerArray macro; 13 : PointerArray prev_macro; 14 : String insert_buffer; 15 : bool recording; 16 : } CommandMacroState; 17 : 18 10 : static inline bool macro_is_recording(const CommandMacroState *m) 19 : { 20 10 : return m->recording; 21 : } 22 : 23 : bool macro_record(CommandMacroState *m) WARN_UNUSED_RESULT NONNULL_ARGS; 24 : bool macro_stop(CommandMacroState *m) WARN_UNUSED_RESULT NONNULL_ARGS; 25 : bool macro_cancel(CommandMacroState *m) WARN_UNUSED_RESULT NONNULL_ARGS; 26 : void macro_command_hook(CommandMacroState *m, const char *cmd_name, char **args) NONNULL_ARGS; 27 : void macro_insert_char_hook(CommandMacroState *m, CodePoint c) NONNULL_ARGS; 28 : void macro_insert_text_hook(CommandMacroState *m, const char *text, size_t size) NONNULL_ARG(1); 29 : String dump_macro(const CommandMacroState *m) WARN_UNUSED_RESULT NONNULL_ARGS; 30 : void free_macro(CommandMacroState *m) NONNULL_ARGS; 31 : 32 : #endif