1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216
|
Tue Oct 5 18:32:29 1999 Dan Winship <danw@mit.edu>
* builtins.c (system_cmd): Make "system" work like it does
everywhere else in the universe. (pass everything off to sh -c).
Fixes some problems reported by Melissa Hao.
Wed Aug 18 16:04:45 1999 Dan Winship <danw@mit.edu>
* bindings.c (undo_bindings): Fix stupid bug so you don't lose
all your anymode bindings the first time you switch modes.
Sat Aug 14 19:25:08 1999 Dan Winship <danw@mit.edu>
* parser.y: xstrdup(yytext) when using a VAR, FUN, or CMD as a
symbol to avoid losing horribly later. Fixes a core dump reported
by Richard Tibbetts when you accidentally redefine a symbol.
* lexer.l (define): Fix "attempted to redefine" message to be more
correct and useful.
Tue Jun 1 00:30:56 1999 Dan Winship <danw@mit.edu>
* eval.c (eval_comp): Initialize some variables to 0 so comparing
windows against (Window)0 works.
Mon Apr 12 17:31:55 1999 Dan Winship <danw@mit.edu>
* cache.c: recheck parent window when remapping windows.
(find_window): make this spiffier, so lots of places can
use it as a generic routine to search the window cache.
Mon Apr 12 17:29:06 1999 Dan Winship <danw@mit.edu>
* lexer.l: Recognize "-" as meaning "read from stdin"
Sat Feb 27 14:27:45 1999 Dan Winship <danw@mit.edu>
* parser.y, array.c, eval.c: add support for array.size, to get
the number of elements in an array.
* builtins.c: add windows function, which returns an array of
windows, and mapped function, which tells if a window is mapped or
not.
Fri Feb 26 21:36:00 1999 Dan Winship <danw@mit.edu>
* cache.c (find_window): prefer mapped windows to unmapped ones
* cache.c: cache information about location, size, and visibility.
* builtins.c (at_fun): Add a function "at" to return the window at
a point.
* builtins.c: add setled/getled, setrepeat/getrepeat.
Mon Sep 14 02:05:14 1998 Dan Winship <danw@mit.edu>
* nawm.c (do_option): Add -o flag / "option" special declaration.
Currently the only supported option is "nocapslock", which makes
key and mouse bindings ignore the state of the caps lock key.
Sat Sep 12 09:58:36 1998 Dan Winship <danw@mit.edu>
* Add "for" command (two syntaxes) and "in" operator for arrays.
* eval.c (eval_cmd, eval_expr): A bunch more bugs relating to
memory allocation and garbage collection. Arrays and string
concatenation work again.
* parser.y: Added some additional type checking (if/while/do
predicates should be INTs, relational operators only work on
simple types).
* bindings.c (parse_key): Allow keysyms to be multiple keysyms
separated by | so you can do like "KP_Divide|KP_F2" to deal with
multiple keyboard types.
* builtins.c (typekey_cmd): typekey, for typing things other than
simple text.
Sat Aug 22 15:49:29 1998 Dan Winship <danw@mit.edu>
* nawm.c (main): Punt .nawm2rc in favor of .nawmrc
* lexer.l, parser.y (doadd): change string concatenation operator
from . to +. (We aren't using . for anything else yet, but I will
be later and I wanted to do all of the incompatible syntax changes
at once.)
* Add keypress, keyrelease, buttonpress, buttonrelease
events. (key is alias for keypress, button for buttonpress)
* redo parsing of key/button event bindings: they now take
a string such as "meta F1" instead of a series of magic
modifier tokens and a magic key/button token.
* builtins.c (mouseclick_cmd): change first arg to a
string, which can include modifiers as well as a button # or name.
Use set_modifier_state to hold down those modifiers when clicking.
Sat Aug 15 19:28:53 1998 Dan Winship <danw@mit.edu>
* keymap.c: add code to deal with watching the X keymap
and modifier map state.
* builtins.c (type_cmd): use type_key from keymap so it
actually works.
* builtins.c (mouseclick_cmd): use set_modifier_state from keymap
to unpress any modifier keys the user might happen to be holding
down as part of invoking the binding.
* lexer.l (process_string): parse C-style strings ("\n", etc)
Sun Jul 5 14:24:08 1998 Dan Winship <danw@mit.edu>
* nawm.c (main): Add -w flag / WINDOW_MANAGER env var
interpretation.
* builtins.c (moveto_cmd): If using vtwm.gamma, compensate for a
bug in its events.c:HandleConfigureEvent()
* cache.c (client_window, manager_window): simplify the case
where we aren't running another window manager.
* parser.y: add error productions to get slightly better errors
* add xmalloc, xrealloc, xstrdup, and change everything to use
them.
Sat Jul 4 12:19:00 1998 Dan Winship <danw@mit.edu>
* builtins.c (pick_fun): Add "pick" function.
* array.c, etc: Add array type, including the "del" special form.
* eval.c (eval_comp): Add explicit casts in integer compare code
so it works with negative numbers now.
Fri Jul 3 18:46:38 1998 Dan Winship <danw@mit.edu>
* Redo variable handling so function variables are now properly
local. Define functions in two parts so the name is visible from
within the function itself. Now you can call functions
recursively. (There's a bit of a kludge here which I'll fix
later.)
* builtins.c (itoa_fun): Add itoa now that we have garbage
collection.
Wed May 13 23:12:40 1998 Dan Winship <danw@mit.edu>
* cell.c: memory-management/garbage collection stuff. For now,
it's only used for strings (which are now fixed to not leak
memory).
Sun May 10 12:51:59 1998 Dan Winship <danw@mit.edu>
* Add enter and leave bindings
Sat May 9 13:57:05 1998 Dan Winship <danw@mit.edu>
* builtins.c: add width, height, dwidth, dheight, xloc, and yloc
functions.
(delete_cmd): add delete command.
(restart_cmd): implement restart command.
(refresh_cmd): implement refresh command.
* cache.c (find_window): rebuild cache on a cache miss
* px and py are now functions, not variables, so they're
always accurate.
* builtins.c (name_fun): deal with root window (from kcr)
Sat Apr 11 16:35:47 1998 Dan Winship <danw@mit.edu>
* builtins.c (system_cmd): Use fork/exec instead of system
so we don't have to wait for command to finish.
* nawm.c (main): handle SIGCHLD to avoid zombies
Sat Apr 4 14:08:12 1998 Dan Winship <danw@mit.edu>
* startup and shutdown are now begin and end, and they can occur
inside modes as well as at the top level. (The begin and end
bindings for a mode are run when the mode is entered or left.)
* User-defined functions and commands should work now... at least
more than they used to. (The `return' special form has been
added to support user-defined functions.)
* Fixed bugs such that (a) you can have single-letter variables
now, and (b) you can have variables that have the same names as
X keysyms. (Also, variables can shadow other variables now.)
Sun Mar 22 13:26:48 1998 Dan Winship <danw@mit.edu>
* Created this file
* builtins.c (warpto_cmd): do a find after a warptowindow
* Cache is mostly working now. It sometimes doesn't uncache
windows when they go away though. Also, at least once, I've seen
it not be able to `find' the "Console" window after it was
running for a while.
* Modes and variables are mostly working now.
* There's an undocumented `-d' (debug) flag that does whatever
I find convenient at any given time. Currently it makes it
dump the window cache on a SIGINT, and flame visibly about
BadWindow errors, and set yydebug.
* New functions: atoi(x) converts a string to an int,
env(x) looks up an environment variable, hasname(win, name) checks
if the given window has the given name as a name or class.
|