Changeset a999d9e
- Timestamp:
- Jan 7, 2010, 6:54:14 PM (14 years ago)
- Branches:
- master, release-1.10, release-1.6, release-1.7, release-1.8, release-1.9
- Children:
- 2a17b63
- Parents:
- 8a2815b
- git-author:
- Nelson Elhage <nelhage@mit.edu> (12/30/09 17:21:54)
- git-committer:
- Nelson Elhage <nelhage@mit.edu> (01/07/10 18:54:14)
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
global.c
rb752f1e ra999d9e 29 29 } 30 30 31 owl_context_init(&g->ctx); 32 owl_context_set_startup(&g->ctx); 31 g->context_stack = NULL; 32 owl_global_push_context(g, OWL_CTX_STARTUP, NULL, NULL); 33 33 34 g->curmsg=0; 34 35 g->topmsg=0; … … 167 168 168 169 owl_context *owl_global_get_context(owl_global *g) { 169 return(&g->ctx); 170 } 171 170 if (!g->context_stack) 171 return NULL; 172 return g->context_stack->data; 173 } 174 175 static void owl_global_lookup_keymap(owl_global *g) { 176 owl_context *c = owl_global_get_context(g); 177 if (!c || !c->keymap) 178 return; 179 180 if (!owl_keyhandler_activate(owl_global_get_keyhandler(g), c->keymap)) { 181 owl_function_error("Unable to activate keymap '%s'", c->keymap); 182 } 183 } 184 185 void owl_global_push_context(owl_global *g, int mode, void *data, const char *keymap) { 186 owl_context *c; 187 if (!(mode & OWL_CTX_MODE_BITS)) 188 mode |= OWL_CTX_INTERACTIVE; 189 c = owl_malloc(sizeof *c); 190 c->mode = mode; 191 c->data = data; 192 c->keymap = owl_strdup(keymap); 193 g->context_stack = g_list_prepend(g->context_stack, c); 194 owl_global_lookup_keymap(g); 195 } 196 197 void owl_global_pop_context(owl_global *g) { 198 owl_context *c; 199 if (!g->context_stack) 200 return; 201 c = owl_global_get_context(g); 202 g->context_stack = g_list_delete_link(g->context_stack, 203 g->context_stack); 204 owl_free(c->keymap); 205 owl_free(c); 206 owl_global_lookup_keymap(g); 207 } 208 172 209 int owl_global_get_lines(const owl_global *g) { 173 210 return(g->lines); -
owl.h
rb752f1e ra999d9e 290 290 int mode; 291 291 void *data; /* determined by mode */ 292 char *keymap; 292 293 } owl_context; 293 294 … … 544 545 owl_vardict vars; 545 546 owl_cmddict cmds; 546 owl_context ctx;547 GList *context_stack; 547 548 owl_errqueue errqueue; 548 549 int lines, cols; -
tester.c
rf0f2eec ra999d9e 18 18 owl_errqueue_init(owl_global_get_errqueue(&g)); 19 19 owl_obarray_init(&(g.obarray)); 20 g.context_stack = NULL; 21 owl_global_push_context(&g, OWL_CTX_STARTUP, NULL, NULL); 20 22 21 23 numtests = 0;
Note: See TracChangeset
for help on using the changeset viewer.