|
| 1 | +I almost have version 2.1.1 ready. I'm probably about 4 weekends away. |
| 2 | +You can download a copy of the source code from... |
| 3 | + |
| 4 | + ftp://ftp.cs.pdx.edu/pub/elvis/unreleased/almost-2.2_1.tar.gz |
| 5 | + |
| 6 | + |
| 7 | +The following bugs have been fixed: |
| 8 | + |
| 9 | + :andale was using Luxi Mono fonts |
| 10 | + The :andale alias (used in the "x11" user interface) was |
| 11 | + actually using Luxi Mono fonts instead of Andale fonts. |
| 12 | + |
| 13 | + filenamerules broke newline handling |
| 14 | + When I implemented the filenamerules option in 2.2.0, I |
| 15 | + accidentally broke the way it parses newlines. This is important |
| 16 | + if you remove the spaces keyword from filenamerules, and then do |
| 17 | + something like ":n `grep foo *.txt`" to sets the args list to |
| 18 | + all files containing "foo". |
| 19 | + |
| 20 | + HTTP User-agent: header line |
| 21 | + When sending HTTP requests, Elvis should send a User-agent: |
| 22 | + header line. Some web sites demand this. |
| 23 | + |
| 24 | + Default button names |
| 25 | + In the "html" display mode, the <input type=submit> and <input |
| 26 | + type=reset> tags should have the default values "Submit" and |
| 27 | + "Reset" respectively. In 2.2.0, they have no default. |
| 28 | + |
| 29 | + <hr/> shows ------------> |
| 30 | + The "html" display mode had trouble with tags that end with |
| 31 | + "/>". Elvis would display the > on the screen instead of hiding |
| 32 | + it. |
| 33 | + |
| 34 | + <Esc> |
| 35 | + The <Esc> key should beep when pressed in visual command mode. |
| 36 | + |
| 37 | + Delayed screen updates in "x11" user interface |
| 38 | + When a map times out, Elvis wasn't updating the screens |
| 39 | + immediately in the "x11" user interface, which made it hard to |
| 40 | + detect that the map had indeed timed out. |
| 41 | + |
| 42 | + "d)" could crash |
| 43 | + In a file full of blank lines, "d)" caused 2.2.0 to dump core. |
| 44 | + |
| 45 | + :put from a cut buffer |
| 46 | + The :put command wasn't accepting a cut buffer name argument. |
| 47 | + |
| 48 | + :dict didn't handle single words |
| 49 | + The :dict alias (after ":load dict") didn't handle single-word |
| 50 | + queries correctly. |
| 51 | + |
| 52 | + The directory editor's links were relative to the wrong directory. |
| 53 | + If you used ":e dirname" to edit the directory "dirname", then |
| 54 | + the links in the generated HTML weren't interpreted as being |
| 55 | + relative to "dirname". They were treated as being relative to |
| 56 | + the current directory. |
| 57 | + |
| 58 | + "x11" converts <b> to ^K0062. |
| 59 | + The "x11" user interface is too aggressive when trying to |
| 60 | + convert key names from angle-bracket notation to raw characters. |
| 61 | + If a map contains an HTML tag such as <b>, and the tag name |
| 62 | + happens to match the name of a key such as the "b" key, then |
| 63 | + Elvis was trying to convert that keystroke into a raw control |
| 64 | + sequence. |
| 65 | + |
| 66 | + ":normal cwFOO^[" didn't work |
| 67 | + The c operator was implemented in a way that didn't work in the |
| 68 | + :normal command. |
| 69 | + |
| 70 | + ".IP \(bu 4" had too large of an indent. |
| 71 | + This is apparently due to the fact that "4" has no explicit |
| 72 | + scaling suffix, and .IP was using the wrong default scaling |
| 73 | + factor. |
| 74 | + |
| 75 | + Hard to enter ^ in WinElvis on a Norwegian keyboard |
| 76 | + WinElvis has always had a hard time with "dead keys", but now |
| 77 | + I'm hopeful that it should work. The ^ key works in Norway now, |
| 78 | + at least. |
| 79 | + |
| 80 | + ":e +cmd file" didn't work |
| 81 | + For the :e command and a few others, the "+" flag could only |
| 82 | + handle a line number parameter, not a full ex command line. |
| 83 | + |
| 84 | + Typos in manual. |
| 85 | + Many found and fixed. Still many more to be found, I'm sure. |
| 86 | + |
| 87 | + :chregion always changes the comment |
| 88 | + The :chregion shouldn't change the comment of an existing region |
| 89 | + unless you give a new comment explicitly, or the old comment was |
| 90 | + merely the old font name. |
| 91 | + |
| 92 | + ":set show=spell" doesn't work very well. |
| 93 | + You need to load the whole dictionary to get good suggestions |
| 94 | + from the spell checker. In 2.2.0 you had to turn on the |
| 95 | + "spellautoload" option, but in 2.2.1 that option is on by |
| 96 | + default. |
| 97 | + |
| 98 | + :map doesn't list all user-defined maps. |
| 99 | + 2.2.0 assumed that any map tied to a symbolic key was defined by |
| 100 | + the system, so it wouldn't list it unless you said ":map all". |
| 101 | + This means you couldn't see actions mapped to function keys. |
| 102 | + 2.2.1 is smarter about this -- it adds a flag to indicate |
| 103 | + whether the map was added by the user or created automatically |
| 104 | + by the GUI. |
| 105 | + |
| 106 | + Command names were truncated in error messages. |
| 107 | + When displaying a "bad command name" error message, 2.2.0 would |
| 108 | + truncate the name at the first character that prevented it from |
| 109 | + being recognized as a command. 2.2.1 displays the full name of |
| 110 | + the bad command, exactly as you typed it. |
| 111 | + |
| 112 | + :man doesn't display backslashes correctly |
| 113 | + The :man alias didn't handle backslashes very well, so pages |
| 114 | + which use a lot of backslashes such as ":man groff_man" looked |
| 115 | + bad. |
| 116 | + |
| 117 | + :%unr doesn't always remove all regions. |
| 118 | + This mostly occured when running autocmds. It also affected the |
| 119 | + :chregion command. |
| 120 | + |
| 121 | + :%j only joined two lines |
| 122 | + The command ":1,%j" joins all lines but ":%j" only joined two. |
| 123 | + |
| 124 | + elvis.ini maps too much |
| 125 | + The default "elvis.ini" file contained maps without the nosave |
| 126 | + flag, so if you ran :mkexrc in an xterm, your ~/.elvisrc file |
| 127 | + would contain maps that are present in all user interfaces and |
| 128 | + for all termcap terminal types. |
| 129 | + |
| 130 | + :mkexrc can lose GUI-specific options |
| 131 | + The :mkexrc command only saved GUI-specific options for the |
| 132 | + current GUI. This means that running :mkexrc in the "termcap" |
| 133 | + interface could clobber your default font for the "x11" |
| 134 | + interface. 2.2.1 gets around this by storing all GUI-specific |
| 135 | + options, even those for other GUIs or unknown GUIs, just so it |
| 136 | + can save them in the ~/.elvisrc file. |
| 137 | + |
| 138 | + <li><p> looks ugly |
| 139 | + Many HTML documents use this sequence of tags to generate lists |
| 140 | + that have a bit of vertical whitespace between items. But 2.2.0 |
| 141 | + was drawing the list item marker (bullet or number) on the blank |
| 142 | + line, instead of the line where the paragraph's text starts. |
| 143 | + 2.2.1 treats this as a special case -- it ignores the <p> in |
| 144 | + this context. |
| 145 | + |
| 146 | + security=safer is too strict |
| 147 | + The "security=safer" setting didn't allow some command that it |
| 148 | + should have allowed. This prevented some harmless and useful |
| 149 | + commands such as "elvis -client foo" from working. To get this |
| 150 | + working right, I had to overhaul the behavior of |
| 151 | + "security=safer". It is no longer a more lenient superset of |
| 152 | + "security=restricted". See ":help set security" for details. |
| 153 | + |
| 154 | + One consequence of this is that the "-S" flag now sets |
| 155 | + security=restricted. |
| 156 | + |
| 157 | + :wq didn't work when security=safer or security=restricted. |
| 158 | + The manual said it should. The new version of security=safer |
| 159 | + doesn't allow any writing, but you can now :wq when |
| 160 | + security=restricted. |
| 161 | + |
| 162 | + The "ax" text object didn't support tag names with hyphens |
| 163 | + I've extended it to allow single hyphens but not double hyphens |
| 164 | + (since double hyphens mark comments). It also allows colons, for |
| 165 | + namespace control. |
| 166 | + |
| 167 | + dirperm(".") returns readonly |
| 168 | + The dirperm() function didn't recognize directories correctly. |
| 169 | + This was a bug in the way the "dir:" pseudo-protocol was |
| 170 | + implemented. |
| 171 | + |
| 172 | + hlobject didn't allow commas |
| 173 | + An increasing number of options in elvis store multiple values |
| 174 | + in comma-delimited lists. The "hlobject" option can store |
| 175 | + multiple values, but required them to be either crammed together |
| 176 | + or delimited by spaces. Now it supports commas. |
| 177 | + |
| 178 | + rcssince didn't work |
| 179 | + The rcssince alias (part of ":load since") is supposed to be |
| 180 | + executed when a buffer is loaded, but it used some commands |
| 181 | + which are illegal during initialization. Most of the commands |
| 182 | + that are illegal during initialization are only illegal because |
| 183 | + they're useless until the first file is loaded into a buffer. |
| 184 | + The rcssince alias was actually running after the file was |
| 185 | + loaded, so it should be allowed, but Elvis had a rather weak |
| 186 | + idea of when "initialization" ends. |
| 187 | + |
| 188 | + :suspend didn't work |
| 189 | + It wasn't in Elvis' internal command list correctly. The :stop |
| 190 | + equivalent has always worked though. |
| 191 | + |
| 192 | + Backslashes aren't handled right in "simpler syntax" |
| 193 | + If a "simpler syntax" expression started with \( or \$ then |
| 194 | + Elvis should convert that to a literal ( or $ character. |
| 195 | + Instead, 2.2.0 was leaving it as a literal \ followed by an |
| 196 | + parenthesized subexpression, or $ variable substitution. (This |
| 197 | + arose from trying to make an initial \\ remain unchanged so |
| 198 | + Windows users could five UNC names such as \\machine\dir\file.) |
| 199 | + |
| 200 | + AliasLeave events |
| 201 | + At the end of an alias, 2.2.0 generated an AliasEnter event when |
| 202 | + it should have generated an AliasLeave event. |
| 203 | + |
| 204 | + :eval does not compute |
| 205 | + The :eval command could get confused if the command that it runs |
| 206 | + needs to evaluate an expression. This was because a static |
| 207 | + buffer is used to return the results of evaluations, and :eval |
| 208 | + didn't copy the result into a local buffer before trying to |
| 209 | + execute it. |
| 210 | + |
| 211 | + Trouble with gzipped files |
| 212 | + The ":load gzip" command (formerly ":load augz") sets up elvis |
| 213 | + to automatically handle gzipped files. It has some problems, but |
| 214 | + the two biggest problems are now fixed. |
| 215 | + |
| 216 | + One problem was that filtering commands always wrote out the |
| 217 | + final newline to gunzip, even though that newline wasn't part of |
| 218 | + the gzipped data. This caused gunzip to output an error message. |
| 219 | + 2.2.1 doesn't write out the final newline when the |
| 220 | + "partiallastline" option is set. |
| 221 | + |
| 222 | + The other main problem was that the file was initially displayed |
| 223 | + in hex mode, even after the file had been gunzipped into text. |
| 224 | + To get around this, elvis will now temporarily remove ".gz" from |
| 225 | + the end of the file name, then rerun the "elvis.arf" script, and |
| 226 | + then slap the ".gz" back on the file name again so the file can |
| 227 | + be saved correctly. |
| 228 | + |
| 229 | + "x11" could generate a BadMatch error while exiting |
| 230 | + This would occur if you start Elvis from an xterm, and then |
| 231 | + exited the xterm before Elvis. Elvis will now ignore that |
| 232 | + particular error. |
| 233 | + |
| 234 | + |
| 235 | + |
| 236 | +The following new features have been added: |
| 237 | + |
| 238 | + :nofold |
| 239 | + Wipes out folds. This differs from :unfold in that :unfold |
| 240 | + leaves some information behind to allow the region to be easily |
| 241 | + refolded. :nofold leaves nothing behind. |
| 242 | + |
| 243 | + Persistent information |
| 244 | + Elvis can store cursor positions and some other things between |
| 245 | + invocations. See the "persistfile" and "persist" options. |
| 246 | + |
| 247 | + %< and #< in filenames |
| 248 | + When giving file name arguments, you can use %< and #< to get |
| 249 | + the name of the current or alternate file, with its extension |
| 250 | + removed. For example, if you're editing "database_interface.c", |
| 251 | + then you can get to "database_interface.h" by typing ":e %<.h". |
| 252 | + |
| 253 | + :phelp command |
| 254 | + Like :help except that :phelp doesn't split the screen. Instead, |
| 255 | + it saves your old cursor position on the tag stack and then |
| 256 | + shows the help page in your current screen. |
| 257 | + |
| 258 | + X11 buttons can simulate keystrokes |
| 259 | + The :gui command accepts a new notation for defining toolbar |
| 260 | + buttons that simulate keystrokes instead of invoking an ex |
| 261 | + command. This is useful when you want to do something with a |
| 262 | + character selection; ex commands treat all selections as line |
| 263 | + selections. |
| 264 | + |
| 265 | + The notation uses square brackets around the name. You can put |
| 266 | + the characters to simulate after the closing square bracket. If |
| 267 | + you omit those characters, then Elvis will simulate keystrokes |
| 268 | + that spell out the button name, with the brackets included. You |
| 269 | + can then set up a :map to convert that to something else. That |
| 270 | + can be nice because elvis allows maps to be somewhat context |
| 271 | + sensitive. |
| 272 | + |
| 273 | + Computed line addresses |
| 274 | + In ex command lines, you can now use =option to pull a line |
| 275 | + address from an option, or =(expression) for more complex |
| 276 | + expressions. This is often handy in aliases. |
| 277 | + |
| 278 | + GDB interface |
| 279 | + The core of a simple GDB interface is provided, to allow Elvis |
| 280 | + and GDB to work together. This depends on Elvis' "x11" user |
| 281 | + interface; you can't use it with the termcap interface. It is |
| 282 | + implemented partly as a C program that acts as a "wrapper" |
| 283 | + around GDB and parses its output for things that Elvis needs to |
| 284 | + know, and partly as a set of aliases which receive that |
| 285 | + information and act on it (e.g., by moving the cursor, or |
| 286 | + changing the highlight of breakpoint lines). |
| 287 | + |
| 288 | + Generic "state" display |
| 289 | + A new "state" option has been created. If the "show" option |
| 290 | + contains the keyword "state", then the value of the "state" |
| 291 | + option will be displayed at the bottom of the window. This can |
| 292 | + be handy in complex alias packages. The GDB interface uses it to |
| 293 | + indicate the debugged program's status. |
| 294 | + |
| 295 | + More function keys |
| 296 | + The <F11> and <F12> function keys are now supported on most |
| 297 | + platforms. I also tried to support shift and control function |
| 298 | + keys, with some success on Linux. |
| 299 | + |
| 300 | + :map noselect ... |
| 301 | + The :map command now supports a noselect flag. This is short for |
| 302 | + "every context except select". |
| 303 | + |
| 304 | + :load scripts described |
| 305 | + I've added a section to the "Tips" chapter describing the |
| 306 | + scripts in Elvis' library. (These may be loaded via the :load |
| 307 | + alias.) |
| 308 | + |
| 309 | + :source can read from a program |
| 310 | + The :source command has been extended to allow it to read the |
| 311 | + output of a program, and interpret that output as a series of ex |
| 312 | + commands. For example, you could create a program that scans an |
| 313 | + HTML document and outputs a series of :fold commands to allow |
| 314 | + you to selective hide sections of it. |
| 315 | + |
| 316 | + incsearch partially supports history |
| 317 | + When using incremental search, the final search expression is |
| 318 | + stored in the search history. You can use arrow keys or ^Ok and |
| 319 | + ^Oj to retrieve a previous search. Full editing is still only |
| 320 | + supported for non-incremental searches, though. |
| 321 | + |
0 commit comments