aboutsummaryrefslogtreecommitdiffhomepage
path: root/parser.h
diff options
context:
space:
mode:
authorGravatar axel <axel@liljencrantz.se>2006-02-02 01:49:11 +1000
committerGravatar axel <axel@liljencrantz.se>2006-02-02 01:49:11 +1000
commitfeabc032f62cc2a2dd4c2626b1c6806a22d5988d (patch)
tree88773f269100dad40fff31376f81470d7f62a2cc /parser.h
parent9f9f7bf95aa56f266994647b008116721f95132a (diff)
Generalize the stack tracing code, add support for showing events and command substitutions in stack traces
darcs-hash:20060201154911-ac50b-707358ea50231661c05a92b40ca109ec801081e6.gz
Diffstat (limited to 'parser.h')
-rw-r--r--parser.h17
1 files changed, 14 insertions, 3 deletions
diff --git a/parser.h b/parser.h
index f8660ba8..4ad0162f 100644
--- a/parser.h
+++ b/parser.h
@@ -10,6 +10,7 @@
#include "proc.h"
#include "util.h"
#include "parser.h"
+#include "event.h"
/**
event_block_t represents a block on events of the specified type
@@ -65,6 +66,7 @@ typedef struct block
wchar_t *switch_value; /**< The value to test in a switch block */
wchar_t *function_name; /**< The name of the function to define or the function called*/
wchar_t *source_dest; /**< The name of the file to source*/
+ event_t *event; /**<The event that triggered this block */
} param1;
/**
@@ -75,7 +77,7 @@ typedef struct block
array_list_t for_vars; /**< List of values for a for block */
int switch_taken; /**< Whether a switch match has already been found */
wchar_t *function_description; /**< The description of the function to define */
- array_list_t function_vars; /**< List of arguments for a function call */
+ process_t *function_call_process; /**< The process representing this function call */
} param2;
/**
@@ -84,7 +86,6 @@ typedef struct block
union
{
int function_is_binding; /**< Whether a function is a keybinding */
- int call_lineno; /**< Function invocation line number */
} param3;
/**
@@ -93,8 +94,17 @@ typedef struct block
union
{
array_list_t *function_events;
- wchar_t *call_filename;
} param4;
+
+ /**
+ Name of file that created this block
+ */
+ wchar_t *src_filename;
+
+ /**
+ Line number where this block was created
+ */
+ int src_lineno;
/**
Some naming confusion. This is a pointer to the first element in the list of all event blocks.
@@ -123,6 +133,7 @@ enum block_type
TOP, /**< Outermost block */
BEGIN, /**< Unconditional block */
SOURCE, /**< Block created by the . (source) builtin */
+ EVENT, /**< Block created on event notifier invocation */
}
;