joe: bump to upstream v 4.2 2613/head
authoraTanW <villy@sft.ru>
Tue, 19 Apr 2016 15:12:49 +0000 (18:12 +0300)
committeraTanW <villy@sft.ru>
Tue, 19 Apr 2016 15:12:49 +0000 (18:12 +0300)
Signed-off-by: Vitaly Protsko <villy@sft.ru>
---
 Makefile    |    4
 files/joerc |  494 ++++++++++++++++++++++++++++++++++++++----------------------
 2 files changed, 318 insertions(+), 180 deletions(-)

utils/joe/Makefile
utils/joe/files/joerc

index fb02cabd205b0b936e74a1e88d80ad973dd5e8ab..e79bd3df272207d6b2552c44a042d939564f1b3c 100644 (file)
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=joe
-PKG_VERSION:=4.1
+PKG_VERSION:=4.2
 PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=@SF/joe-editor
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_MD5SUM:=b8c9ab4295e3208ddbbaa9c1141564f9
+PKG_MD5SUM:=0a70057cc4493320f9838822451857ef
 PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_MAINTAINER:=Vitaly Protsko <villy@sft.ru>
 PKG_LICENCE:=GPL-2.0
index db1429793f48e7717f76298c0b14beb1326815c4..cfd57258cdcb45d6d911951d96140ff15e4d23a4 100644 (file)
@@ -1,4 +1,3 @@
-
 -asis
 -nobackups
 -nonotice
@@ -7,46 +6,55 @@
 -assume_color
 -assume_256color
 -guess_non_utf8
+-guess_utf16
 -guess_crlf
 -guess_indent
 -menu_above
 -transpose
--joe_state
--restore
--mouse
+ -joe_state
 -joexterm
+-brpaste
+-pastehack
+-restore
 -search_prompting
 -lmsg \i%k%T%W%I%X %n %m%y%R %M %x
--rmsg  %S Row %r Col %c %t  Ctrl-K H for help
+-rmsg  %S Row %4r Col %3c 
+-smsg ** Line %r Col %c Offset %o(0x%O) %e %a(0x%A) Width %w ** 
+-zmsg ** Line %r Col %c Offset %o(0x%O) ** 
+-xmsg \i Joe's Own Editor %v (%b) ** Type \bCtrl-K Q\b to exit or \bCtrl-K H\b for help **\i
+-aborthint ^C
+-helphint ^K H
 -highlight
--istep 2
+-istep 4
 
- :include ftyperc
+:include ftyperc
 
 :defmenu root
 mode,"overwrite",rtn   T Overtype %Zoverwrite%
-mode,"hex",rtn % % Hex edit mode
+mode,"hex",rtn ' Hex edit mode
 mode,"autoindent",rtn  I Autoindent %Zautoindent%
 mode,"wordwrap",rtn    W Word wrap %Zwordwrap%
 mode,"tab",rtn D Tab width %Ztab%
 mode,"lmargin",rtn     L Left margin %Zlmargin%
 mode,"rmargin",rtn     R Right margin %Zrmargin%
-mode,"square",rtn      X Rectangle mode %Zsquare%
+mode,"square",rtn      X Column mode %Zsquare%
 mode,"indentc",rtn     % % Indent char %Zindentc%
 mode,"istep",rtn       % % Indent step %Zistep%
+menu,"indent",rtn      = Indent select
 mode,"highlight",rtn   H Highlighting %Zhighlight%
-mode,"crlf",rtn        Z CR-LF (MS-DOS) %Zcrlf%
+mode,"crlf",rtn        Z CR-LF/MS-DOS %Zcrlf%
 mode,"linums",rtn      N Line numbers %Zlinums%
 mode,"beep",rtn        B Beep %Zbeep%
 mode,"rdonly",rtn      O Read only %Zrdonly%
- mode,"syntax",rtn     Y Syntax
+mode,"syntax",rtn      Y Syntax
 mode,"encoding",rtn    E Encoding
 mode,"asis",rtn        % % Meta chars as-is
 mode,"language",rtn    V Language
 mode,"picture",rtn     P picture %Zpicture%
+mode,"type",rtn                F File type [%Ztype%]
 menu,"more-options",rtn          % % More options...
 
-:defmenu more-options
+:defmenu more-options menu,"root",rtn
 menu,"^G",rtn  % % ^G options
 menu,"search",rtn      % % search options
 menu,"paragraph",rtn   % % paragraph options
@@ -57,13 +65,24 @@ menu,"cursor",rtn   % % cursor options
 menu,"marking",rtn     % % marking options
 menu,"tab",rtn % % tab/indent options
 
-:defmenu menu
+:defmenu indent menu,"root",rtn
+mode,"istep",rtn,"1",rtn,mode,"indentc",rtn,"32",rtn,msg,"Indent step = 1, Indent character = 32",rtn  1 Space
+mode,"istep",rtn,"2",rtn,mode,"indentc",rtn,"32",rtn,msg,"Indent step = 2, Indent character = 32",rtn  2 Spaces
+mode,"istep",rtn,"3",rtn,mode,"indentc",rtn,"32",rtn,msg,"Indent step = 3, Indent character = 32",rtn  3 Spaces
+mode,"istep",rtn,"4",rtn,mode,"indentc",rtn,"32",rtn,msg,"Indent step = 4, Indent character = 32",rtn  4 Spaces
+mode,"istep",rtn,"5",rtn,mode,"indentc",rtn,"32",rtn,msg,"Indent step = 5, Indent character = 32",rtn  5 Spaces
+mode,"istep",rtn,"8",rtn,mode,"indentc",rtn,"32",rtn,msg,"Indent step = 8, Indent character = 32",rtn  8 Spaces
+mode,"istep",rtn,"10",rtn,mode,"indentc",rtn,"32",rtn,msg,"Indent step = 10, Indent character = 32",rtn        0 Ten
+mode,"istep",rtn,"1",rtn,mode,"indentc",rtn,"9",rtn,msg,"Indent step = 1, Indent character = 9",rtn    T Tab
+
+:defmenu menu menu,"more-options",rtn
 mode,"menu_explorer",rtn       % % Menu explorer %Zmenu_explorer%
 mode,"menu_above",rtn  % % Menu position %Zmenu_above%
 mode,"menu_jump",rtn   % % Jump into menu %Zmenu_jump%
 mode,"transpose",rtn   % % Transpose menus %Ztranspose%
 
-:defmenu ^G
+:defmenu ^G menu,"more-options",rtn
+mode,"highlighter_context",rtn % % ^G uses highlighter context %Zhighlighter_context%
 mode,"single_quoted",rtn       % % ^G ignores '...' %Zsingle_quoted%
 mode,"no_double_quoted",rtn    % % ^G no ignore "..." %Zno_double_quoted%
 mode,"c_comment",rtn   % % ^G ignores /*...*/ %Zc_comment%
@@ -71,32 +90,35 @@ mode,"cpp_comment",rtn      % % ^G ignores //... %Zcpp_comment%
 mode,"pound_comment",rtn       % % ^G ignores #... %Zpound_comment%
 mode,"vhdl_comment",rtn        % % ^G ignores --... %Zvhdl_comment%
 mode,"semi_comment",rtn        % % ^G ignores ;... %Zsemi_comment%
-mode,"tex_comment",rtn % % ^G ignores %... %Ztex_comment%
+mode,"tex_comment",rtn % % ^G ignores %%... %Ztex_comment%
 mode,"text_delimiters",rtn % % Text delimiters %Ztext_delimiters%
 
-:defmenu search
+:defmenu search menu,"more-options",rtn
 mode,"icase",rtn       % % Case insensitivity %Zicase%
 mode,"wrap",rtn        % % Search wraps %Zwrap%
 mode,"search_prompting",rtn    % % Search prompting %Zsearch_prompting%
 mode,"csmode",rtn      % % Continued search %Zcsmode%
 
-:defmenu paragraph
+:defmenu paragraph menu,"more-options",rtn
 mode,"french",rtn      % % French spacing %Zfrench%
 mode,"flowed",rtn      % % Flowed text %Zflowed%
 mode,"cpara",rtn       % % Paragraph indent chars %Zcpara%
+mode,"cnotpara",rtn    % % Not-paragraph chars %Zcnotpara%
 
-:defmenu file
+:defmenu file menu,"more-options",rtn
 mode,"restore",rtn     % % Restore cursor %Zrestore%
 mode,"guess_crlf",rtn  % % Auto detect CR-LF %Zguess_crlf%
 mode,"guess_indent",rtn        % % Guess indent %Zguess_indent%
 mode,"guess_non_utf8",rtn      % % Guess non-UTF-8 %Zguess_non_utf8%
 mode,"guess_utf8",rtn  % % Guess UTF-8 %Zguess_utf8%
+mode,"guess_utf16",rtn % % Guess UTF-16 %Zguess_utf16%
 mode,"force",rtn       % % Force last NL %Zforce%
 mode,"nobackup",rtn    % % No backup %Znobackup%
 
-:defmenu global
+:defmenu global menu,"more-options",rtn
 mode,"nolocks",rtn     % % Disable locks %Znolocks%
 mode,"nobackups",rtn   % % Disable backups %Znobackups%
+mode,"nodeadjoe",rtn   % % Disable DEADJOE %Znodeadjoe%
 mode,"nomodcheck",rtn  % % Disable mtime check %Znomodcheck%
 mode,"nocurdir",rtn    % % Disable current dir %Znocurdir%
 mode,"exask",rtn       % % Exit ask %Zexask%
@@ -108,18 +130,20 @@ mode,"joe_state",rtn      % % Joe_state file %Zjoe_state%
 mode,"undo_keep",rtn   % % No. undo records %Zundo_keep%
 mode,"backpath",rtn    % % Path to backup files %Zbackpath%
 
-:defmenu cursor
+:defmenu cursor menu,"more-options",rtn
 mode,"pg",rtn  % % No. PgUp/PgDn lines %Zpg%
 mode,"mid",rtn C Center on scroll %Zmid%
+mode,"left",rtn        L Columns to scroll left %Zleft%
+mode,"right",rtn R Columns to scroll right %Zright%
 mode,"floatmouse",rtn  % % Click past end %Zfloatmouse%
 mode,"rtbutton",rtn    % % Right button %Zrtbutton%
 
-:defmenu marking
+:defmenu marking menu,"more-options",rtn
 mode,"autoswap",rtn    % % Autoswap mode %Zautoswap%
 mode,"marking",rtn     % % Marking %Zmarking%
 mode,"lightoff",rtn    % % Auto unmask %Zlightoff%
 
-:defmenu tab
+:defmenu tab menu,"more-options",rtn
 mode,"smarthome",rtn   % % Smart home key %Zsmarthome%
 mode,"smartbacks",rtn  % % Smart backspace %Zsmartbacks%
 mode,"indentfirst",rtn % % To indent first %Zindentfirst%
@@ -127,129 +151,172 @@ mode,"purify",rtn       % % Clean up indents %Zpurify%
 mode,"spaces",rtn      % % No tabs %Zspaces%
 
 {Basic
-\i   Help Screen    \|turn off with ^KH    more help with ESC . (^[.)              \i
-\i \i\|\uCURSOR\u           \|\uGO TO\u            \|\uBLOCK\u      \|\uDELETE\u   \|\uMISC\u         \|\uEXIT\u      \|\i \i
-\i \i\|^B left ^F right \|^U  prev. screen \|^KB begin  \|^D char. \|^KJ reformat \|^KX save  \|\i \i
-\i \i\|^P up   ^N down  \|^V  next screen  \|^KK end    \|^Y line  \|^KA center   \|^C  abort \|\i \i
-\i \i\|^Z previous word \|^A  beg. of line \|^KM move   \|^W >word \|^T  options  \|^KZ shell \|\i \i
-\i \i\|^X next word     \|^E  end of line  \|^KC copy   \|^O word< \|^R  refresh  \|\uFILE\u      \|\i \i
-\i \i\|\uSEARCH\u           \|^KU top of file  \|^KW file   \|^J >line \|\uSPELL\u        \|^KE edit  \|\i \i
-\i \i\|^KF find text    \|^KV end of file  \|^KY delete \|^_ undo  \|^[N word     \|^KR insert\|\i \i
-\i \i\|^L  find next    \|^KL to line No.  \|^K/ filter \|^^ redo  \|^[L file     \|^KD save  \|\i \i
-}
-
-{Windows
-\i   Help Screen    \|turn off with ^KH    prev. screen ^[,    next screen ^[.     \i
-\i \i\|^KO Split the window in half           \|^KE Load file into window             \|\i \i
-\i \i\|^KG Make current window bigger         \|^KT Make current window smaller       \|\i \i
-\i \i\|^KN Go to the window below             \|^KP Go to the window above            \|\i \i
-\i \i\|^[V Switch to next buffer              \|^[U Switch to previous buffer         \|\i \i
-\i \i\|^C  Eliminate the current window       \|^KI Show all windows / Show one window\|\i \i
+ \|\uREGION\u        \|\uGO TO\u           \|\uGO TO\u           \|\uDELETE\u    \|\uEXIT\u       \|\uSEARCH\u    \| 
+ \|\b^Arrow\b Select \|\b^Z\b Prev. word   \|\b^U/^V\b PgUp/PgDn \|\b^D\b Char.  \|\b^KX\b Save   \|\b^KF\b Find  \| 
+ \|\b^KB\b Begin     \|\b^X\b Next word    \|\uMISC\u            \|\b^Y\b Line   \|\b^C\b  Abort  \|\b^L\b  Next  \| 
+ \|\b^KK\b End       \|\b^KU\b Top of file \|\b^KJ\b Paragraph   \|\b^W\b >Word  \|\b^KQ\b All    \|\uHELP\u      \| 
+ \|\b^KC\b Copy      \|\b^KV\b End of file \|\b^KA\b Center line \|\b^O\b Word<  \|\uFILE\u       \|\bEsc .\b Next\| 
+ \|\b^KM\b Move      \|\b^A\b Beg. of line \|\b^K Space\b Status \|\b^J\b >Line  \|\b^KE\b Edit   \|\bEsc ,\b Prev\| 
+ \|\b^KW\b File      \|\b^E\b End of line  \|\uSPELL\u           \|\b^[O\b Line< \|\b^KR\b Insert \|\b^KH\b Off   \| 
+ \|\b^KY\b Delete    \|\b^KL\b To line no. \|\bEsc N\b Word      \|\b^_\b Undo   \|\b^KD\b Save   \|\b^T\b  Menu  \| 
+ \|\b^K/\b Filter    \|\b^G\b  Matching (  \|\bEsc L\b File      \|\b^^\b Redo   \|\b^K`\b Revert \|\b\b          \| 
 }
 
 {Advanced
-\i   Help Screen    \|turn off with ^KH    prev. screen ^[,    next screen ^[.     \i
-\i \i\|\uMACROS\u         \|\uMISC\u            \|\uSCROLL\u    \|\uSHELL\u       \|\uGOTO\u       \|\uI-SEARCH\u     \|\i \i
-\i \i\|^K[ 0-9 Record \|^K SPACE status \|^[W Up    \|^K' Window  \|^[B To ^KB \|^[R Backwards\|\i \i
-\i \i\|^K]     Stop   \|^K\\ Repeat      \|^[Z Down  \|^[! Command \|^[K To ^KK \|^[S Forwards \|\i \i
-\i \i\|^K 0-9  Play   \|\uINSERT\u          \|^K< Left  \|\uQUOTE\u       \|\uDELETE\u     \|\uBOOKMARKS\u    \|\i \i
-\i \i\|^K?     Query  \|^] split line   \|^K> Right \|^[' Ctrl-   \|^[Y yank   \|^[ 0-9 Goto  \|\i \i
-\i \i\|^[D     Dump   \|^SPACE ins space\|          \|^\\ Meta-    \|^[O line<  \|^[^[   Set   \|\i \i
+ \|\uMACROS\u         \|\uSCROLL\u           \|\uWINDOW\u               \|\uGO TO\u      \|\uI-SEARCH\u     \| 
+ \|\b^K[ 0-9\b Record \|\bEsc W\b Up         \|\b^KO\b Open  \b^C\b  Close  \|\bEsc B\b / \bK\b  \|\b^R\b Backwards \| 
+ \|\b^K]\b     Stop   \|\bEsc Z\b Down       \|\b^KG\b Grow  \b^KT\b Shrink \|to \b^KB\b/\b^KK \b\|\b^S\b Forwards  \| 
+ \|\bEsc I\b   Text   \|\bEsc <\b Left       \|\b^KN\b Next  \b^KP\b Prev.  \|\b^P\b  Up     \|\uBOOKMARKS\u    \| 
+ \|\b^K?\b     Pause  \|\bEsc >\b Right      \|\b^KI\b Show one / All   \|\b^N\b  Down   \|\bEsc 0-9\b Goto \| 
+ \|   for prompt  \|\uINSERT\u           \|\uSHELL\u                \|\b^B\b  Left   \|\bEsc Esc\b Set  \| 
+ \|\b^K 0-9\b  Play   \|\b^]\b Line  \b^Q\b Ctrl \|\bF1-F4\b Term emulator  \|\b^F\b  Right  \|\b^K-\b Auto prev\| 
+ \|\b^K\\\b     Repeat \|\b^@\b Space \b^\\\b Meta \|\b^K'\b In buffer        \|           \|\b^K=\b Auto next\| 
+ \|\bEsc D\b   Dump   \|\bEsc Y\b Paste      \|\b^KZ\b Suspend  \bEsc !\b Append \|      \|             \| 
 }
 
 {Programs
-\i   Help Screen    \|turn off with ^KH    prev. screen ^[,    next screen ^[.     \i
-\i \i\|\uGOTO\u                 \|\uINDENT\u   \|\uCOMPILING\u          \uQUICK\u                       \|\i \i
-\i \i\|^G  Matching ( [ {   \|^K, less \|^[C Compile & parse ^G  find word under cursor \|\i \i
-\i \i\|^K- Previous place   \|^K. more \|^[G Grep & parse    ^[ENTER complete word      \|\i \i
-\i \i\|^K= Next place       \|\uFILE\u     \|^[= To next error   ^[Y paste deleted text     \|\i \i
-\i \i\|^K; Tags file search \|^K `     \|^[- To prev. error  ^[^Y cycle through deleted \|\i \i
-\i \i\|                     \| revert  \|^[ SP Jump to error                            \|\i \i
+ \|\uCOMMANDS\u            \|\uCOMPILING\u                  \|\uQUICK\u                       \| 
+ \|\bEsc X\b Command prompt\|\bEsc C\b Save modified compile\|\b^G\b  Find word under cursor  \| 
+ \|\bEsc M\b Calculator    \|\bEsc G\b Grep                 \|\b^K;\b Tags file search        \| 
+ \|\bshowlog\b Startup log \|\bEsc =\b To next error        \|\bEsc Enter\b Complete word     \| 
+ \|\bupper\b   Change case \|\bEsc -\b To prev. error       \|\uBUFFER\u                      \| 
+ \|\blower\b   Change case \|\bEsc Space\b Jump to error    \|\bEsc U\b Next                  \| 
+ \|\bcd\b      Change dir  \|\uINDENT\u                     \|\bEsc V\b Previous              \| 
+ \|\bkeymap\b  Change map  \|\b^K,\b Less                   \|\bEsc X bufed\b Switch          \| 
+ \|                    \|\b^K.\b More                   \|                            \| 
 }
 
 {Search
-\i   Help Screen    \|turn off with ^KH    prev. screen ^[,    next screen ^[.     \i
-\i \iSpecial search sequences:                                                    \|\i \i
-\i \i    \\^  \\$  matches beg./end of line      \\?     match any single char       \|\i \i
-\i \i    \\<  \\>  matches beg./end of word      \\*     match 0 or more chars       \|\i \i
-\i \i    \\c      matches balanced C expression \\\\     matches a \\                 \|\i \i
-\i \i    \\[..]   matches one of a set          \\n     matches a newline           \|\i \i
-\i \i    \\+      matches 0 or more of the character which follows the \\+          \|\i \i
-\i \iSpecial replace sequences:                                                   \|\i \i
-\i \i    \\&      replaced with text which matched search string                   \|\i \i
-\i \i    \\0 - 9  replaced with text which matched Nth \\*, \\?, \\c, \\+, or \\[..]    \|\i \i
-\i \i    \\\\      replaced with \\               \\n     replaced with newline       \|\i \i
+ Search sequences:                                                            \| 
+     \b\\^  \\$\b  matches beg./end of line       \b\\.\b     match any single char      \| 
+     \b\\<  \\>\b  matches beg./end of word       \b\\!\b     match char or expression   \| 
+     \b\\(  \\)\b  grouping                       \b\\|\b     match left or right         \| 
+     \b\\[a-z]\b  matches one of a set           \b\\y \\Y\b  short for (.*) / (!*)       \| 
+     \b\\{1,3}\b  match 1 - 3 occurrences        \b\\?\b     match 0 or 1 occurrence     \| 
+     \b\\+\b      match 1 or more occurrences    \b\\*\b     match 0 or more occurrences \| 
+                                                                               \|
+ \b^C\b    to abort                             \bEsc .\b  to list of escape sequences \|
+}
+
+{Escape sequences
+ Escape sequences: \| 
+    \b\\x{10fff}\b Unicode code point    \b\\p{Ll}\b  Unicode category \| 
+    \b\\i\b / \b\\I\b   Identifier start      \b\\t\b  tab          \b\\e\b  escape               \| 
+    \b\\c\b / \b\\C\b   Identifier continue   \b\\n\b  newline      \b\\r\b  carriage return      \| 
+    \b\\d\b / \b\\D\b   Digit / Not a digit   \b\\b\b  backspace  \b\\xFF\b  hex character        \| 
+    \b\\w\b / \b\\W\b   Word / Not a word     \b\\a\b  alert      \b\\377\b  octal character      \| 
+    \b\\s\b / \b\\S\b   Space / Not a space   \b\\f\b  formfeed     \b\\\\\b  backslash            \| 
+  \|
+  \|
+}
+
+{Replace
+ Replace sequences:                                                           \| 
+     \b\\&\b      replaced with entire match     \b\\1\b - \b9\b replaced with Nth group   \| 
+     \b\\u \\l\b   convert next to upper/lower    \b\\U \\L\b  case convert until \b\\E\b     \| 
+                                                                              \|
+                                                                              \|
+ \|
+ \|
+ \|
+ \b^C\b    to abort                             \bEsc ,\b to list of escape sequences \|
 }
 
 {SearchOptions
-\i   Help Screen    \|turn off with ^KH    prev. screen ^[,    next screen ^[.     \i
-\i \iSearch options:                                                              \|\i \i
-\i \i   r Replace                                                                 \|\i \i
-\i \i   k Restrict search to highlighted block, which can be rectangular          \|\i \i
-\i \i   b Search backward instead of forward                                      \|\i \i
-\i \i   i Ignore case                                                             \|\i \i
-\i \i   a Search across all loaded files                                          \|\i \i
-\i \i   e Search across all files in Grep or Compile error list                   \|\i \i
-\i \i   w Wrap to beginning of file for this search                               \|\i \i
-\i \i   n Do not wrap to beginning of file for this search                        \|\i \i
-\i \i   nnn Perform exaclty nnn replacements                                      \|\i \i
+ Search options:                                                              \| 
+      \br\b Replace      \bk\b Restrict search to highlighted block                   \| 
+      \bi\b Ignore case  \bb\b Search backwards instead of forwards                   \| 
+                     \ba\b Search across all loaded files                         \| 
+                     \be\b Search across all files in Grep or Compile error list  \| 
+  \bw\b / \bn\b  Allow / prevent wrap to start of file                                \| 
+  \bx\b / \by\b  Search text is standard format / JOE format regular expression       \| 
+    \bnnn\b  Perform exactly nnn replacements                                     \| 
+ \b^C\b    to abort
 }
 
 {Math
-\i   Help Screen    \|turn off with ^KH    prev. screen ^[,    next screen ^[.     \i
-\i \i \uCOMMANDS\u (hit ESC m for math)  \uFUNCTIONS\u                                    \|\i \i
-\i \i     hex hex display mode       sin cos tab asin acos atan                   \|\i \i
-\i \i     dec decimal mode           sinh cosh tanh asinh acosh atanh             \|\i \i
-\i \i     ins type result into file  sqrt cbrt exp ln log                         \|\i \i
-\i \i    eval evaluate block         int floor ceil abs erg ergc                  \|\i \i
-\i \i    0xff enter number in hex    joe(..macro..) - runs an editor macro        \|\i \i
-\i \i    3e-4 floating point decimal \uBLOCK\u                                        \|\i \i
-\i \i    a=10 assign a variable      sum cnt  Sum, count                          \|\i \i
-\i \i 2+3:ins multiple commands      avg dev  Average, std. deviation             \|\i \i
-\i \i    e pi constants              \uOPERATORS\u                                    \|\i \i
-\i \i     ans previous result        ! ^  * / %  + -  < <= > >= == !=  &&  ||  ? :\|\i \i
+  \uMATH COMMANDS\u                  \uCONSTANTS\u                                \| 
+  \bhex oct bin\b display mode       \b0xff\b hex entry                           \| 
+  \beng dec\b engineering / normal   \b0o77\b octal entry                         \| 
+      \bins\b type result into file  \b0b11\b binary entry                        \| 
+     \beval\b evaluate block         \b3e-4\b floating point entry                \| 
+  2+3\b:\bins multiple commands      \uVARIABLES\u                                \| 
+  \uOPERATORS\u                      \bans\b  Previous result                     \| 
+  \b! ^  * / %  + -\b                \ba=10\b Assign a variable                   \| 
+  \b< <= > >= == !=  &&  ||  ? :\b   \bEsc .\b for list of functions              \| 
 }
 
-{Names
-\i   Help Screen    \|turn off with ^KH    prev. screen ^[,    next screen ^[.     \i
-\i \i Hit TAB at file name prompts to generate menu of file names                 \|\i \i
-\i \i Or use up/down keys to access history of previously entered names           \|\i \i
-\i \i Special file names:                                                         \|\i \i
-\i \i      !command                 Pipe in/out of a shell command                \|\i \i
-\i \i      >>filename               Append to a file                              \|\i \i
-\i \i      -                        Read/Write to/from standard I/O               \|\i \i
-\i \i      filename,START,SIZE      Read/Write a part of a file/device            \|\i \i
-\i \i          Give START/SIZE in decimal (255), octal (0377) or hex (0xFF)       \|\i \i
+{Functions
+  \uFUNCTIONS\u                      \uCONSTANTS\u                                \| 
+  \bsin cos tab asin acos atan\b     \be pi\b                                     \| 
+  \bsinh cosh tanh asinh acosh atanh\b                                        \| 
+  \bsqrt cbrt exp ln log\b                                                    \| 
+  \bint floor ceil abs\b                                                      \| 
+  \berf erfc j0 j1 y0 y1\b                                                    \| 
+  \bjoe(..macro..)\b - runs an editor macro                                   \| 
+                                                                              \| 
+                                 \bEsc .\b for statistics                     \| 
 }
 
-{Joe
-\i   Help Screen    \|turn off with ^KH    prev. screen ^[,    next screen ^[.     \i
-\i \i Send bug reports to: http://sourceforge.net/projects/joe-editor \|\i \i
-\i \i \|\i \i
-\i \i  default joerc file is here /etc/joe/joerc \|\i \i
-\i \i  default syntax and i18n files are here /usr/share/joe \|\i \i
-\i \i  additional documentation can be found here /usr/share/doc/joe \|\i \i
+{Statistics 
+  \uMATH COMMANDS\u                                                               \| 
+  Statistics on region of numbers  Linear regression on region of x y pairs   \| 
+  \bsum\b  Sum                         \blr(x)\b  Estimate y given x     y=m*x+b      \| 
+  \bcnt\b  Count                       \brlr(y)\b Estimate x given y                  \| 
+  \bavg\b  Mean                        \bLr rLr\b Logarithmic regression y=m*ln(x)+b  \| 
+    Standard deviation:            \blR rlR\b Exponential regression y=e^(m*x)+b  \| 
+  \bdev\b  all data present            \bLR rLR\b Power regression       y=b*x^m      \| 
+  \bsamp\b sample of data present      Side effects: \bb\b, \bm\b: regression coef.       \| 
+                                       \br\b: correlation coef., \bcov\b: covariance  \| 
+}
+
+{Names
+  Hit TAB to complete names.  Use up / down arrow keys to traverse history.   \| 
+  Special file names:                                                         \| 
+       \b!\bcommand                 Pipe in/out of a shell command                \| 
+       \b>>\bfilename               Append to a file                              \| 
+       \b-\b                        Read/Write to/from standard I/O               \|
+       filename\b,START,SIZE\b      Read/Write a part of a file/device            \| 
+           Give START/SIZE in decimal (255), octal (0377) or hex (0xFF)       \| 
+       \b\\,\b                       Use backslash to quote special characters     \|
+ \b^C\b    to abort
 }
 
 {CharTable
-\i   Help Screen    \|turn off with ^KH    prev. screen ^[,                        \i
-\i \i\| Dec  \u 0123 4567  8901 2345    0123 4567  8901 2345 \u  Dec \|\i \i
-\i \i\|     |                                              |     \|\i \i
-\i \i\|   0 | \u@ABC\u \uDEFG\u  \uHIJK\u \uLMNO\u    \i\u@ABC\u\i \i\uDEFG\u\i  \i\uHIJK\u\i \i\uLMNO\u\i | 128 \|\i \i
-\i \i\|  16 | \uPQRS\u \uTUVW\u  \uXYZ[\u \u\\]^_\u    \i\uPQRS\u\i \i\uTUVW\u\i  \i\uXYZ[\u\i \i\u\\]^_\u\i | 144 \|\i \i
-\i \i\|  32 |  !"# $%&'  ()*+ ,-./     ¡¢£ ¤¥¦§  ¨©ª« ¬­®¯ | 160 \|\i \i
-\i \i\|  48 | 0123 4567  89:; <=>?    °±²³ ´µ¶·  ¸¹º» ¼½¾¿ | 176 \|\i \i
-\i \i\|  64 | @ABC DEFG  HIJK LMNO    ÀÁÂàÄÅÆÇ  ÈÉÊË ÌÍÎÏ | 192 \|\i \i
-\i \i\|  80 | PQRS TUVW  XYZ[ \\]^_    ÐÑÒÓ ÔÕÖ×  ØÙÚÛ ÜÝÞß | 208 \|\i \i
-\i \i\|  96 | `abc defg  hijk lmno    àáâã äåæç  èéêë ìíîï | 224 \|\i \i
-\i \i\| 112 | pqrs tuvw  xyz{ |}~\7f    ðñòó ôõö÷  øùúû üýþÿ | 240 \|\i \i
+ \| Dec  \u 0123 4567  8901 2345    0123 4567  8901 2345 \u  Dec \| 
+ \|   0 | \u@ABC\u \uDEFG\u  \uHIJK\u \uLMNO\u    \i\u@ABC\u\i \i\uDEFG\u\i  \i\uHIJK\u\i \i\uLMNO\u\i | 128 \| 
+ \|  16 | \uPQRS\u \uTUVW\u  \uXYZ[\u \u\\]^_\u    \i\uPQRS\u\i \i\uTUVW\u\i  \i\uXYZ[\u\i \i\u\\]^_\u\i | 144 \| 
+ \|  32 |  !"# $%&'  ()*+ ,-./     ¡¢£ ¤¥¦§  ¨©ª« ¬X®¯ | 160 \| 
+ \|  48 | 0123 4567  89:; <=>?    °±²³ ´µ¶·  ¸¹º» ¼½¾¿ | 176 \| 
+ \|  64 | @ABC DEFG  HIJK LMNO    ÀÁÂàÄÅÆÇ  ÈÉÊË ÌÍÎÏ | 192 \| 
+ \|  80 | PQRS TUVW  XYZ[ \\]^_    ÐÑÒÓ ÔÕÖ×  ØÙÚÛ ÜÝÞß | 208 \| 
+ \|  96 | `abc defg  hijk lmno    àáâã äåæç  èéêë ìíîï | 224 \| 
+ \| 112 | pqrs tuvw  xyz{ |}~\7f    ðñòó ôõö÷  øùúû üýþÿ | 240 \| 
+}
+
+{Joe
+  Send bug reports to: http://sourceforge.net/projects/joe-editor \| 
+  \| 
+   default joerc file is here @JOERC@/joerc \| 
+   default syntax and i18n files are here @JOEDATA@ \| 
+   additional documentation can be found here @JOEDOC@ \| 
+  \| 
+  \| 
+  \| 
+  \| 
 }
 
-:windows               Bindings common to all windows
+:def recenter retype,arg,"top+height/2-line",rtn,upslide
+
+:windows
+type           U+0 TO U+10FFFF
 abort          ^C
-abort          ^K Q
-abort          ^K ^Q
-abort          ^K q
+ abort         ^K Q
+ abort         ^K ^Q
+ abort         ^K q
+querysave,query,killjoe        ^K Q
+querysave,query,killjoe        ^K ^Q
+querysave,query,killjoe        ^K q
 arg            ^K \
 explode                ^K I
 explode                ^K ^I
@@ -261,6 +328,7 @@ hnext               ^[ .
 hprev          ^[ ,
 math           ^[ m
 math           ^[ M
+ math          ^[ ^M
 msg            ^[ h
 msg            ^[ H
 msg            ^[ ^H
@@ -270,22 +338,25 @@ nextw             ^K n
 pgdn           .kN
 pgdn           ^V
 pgdn           ^[ [ 6 ~
+ pgdn      ^# S
 pgup           .kP
 pgup           ^U
 pgup           ^[ [ 5 ~
+ pgup      ^# T
 play           ^K 0 TO 9
 prevw          ^K P
 prevw          ^K ^P
 prevw          ^K p
 query          ^K ?
 record         ^K [
-retype         ^R
+ retype                ^R
+ recenter      ^R
 rtn            ^M
 shell          ^K Z
 shell          ^K ^Z
 shell          ^K z
 stop           ^K ]
-
+ Mouse handling
 defmdown       MDOWN
 defmup         MUP
 defmdrag       MDRAG
@@ -297,62 +368,66 @@ defm3up           M3UP
 defm3drag      M3DRAG
 
 xtmouse                ^[ [ M
-
-if,"char==65",then,"it's an A",else,"it's not an a",endif      ^[ q
+extmouse       ^[ [ <
 
 :main                  Text editing window
 :inherit windows
 
-:def ispellfile filt,"cat >ispell.tmp;ispell ispell.tmp </dev/tty >/dev/tty;cat ispell.tmp;/bin/rm ispell.tmp",rtn,retype
-:def ispellword psh,nextword,markk,prevword,markb,filt,"cat >ispell.tmp;ispell ispell.tmp </dev/tty >/dev/tty;tr -d <ispell.tmp '\\012';/bin/rm ispell.tmp",rtn,retype,nextword
-
-:def aspellfile filt,"SPLTMP=ispell.tmp;cat >$SPLTMP;aspell --lang=",language,".",charset," -x -c $SPLTMP </dev/tty >/dev/tty;cat $SPLTMP;/bin/rm $SPLTMP",rtn,retype
-:def aspellword psh,nextword,markk,prevword,markb,filt,"SPLTMP=ispell.tmp;cat >$SPLTMP;aspell --lang=",language,".",charset," -x -c $SPLTMP </dev/tty >/dev/tty;tr -d <$SPLTMP '\\012';/bin/rm $SPLTMP",rtn,retype,nextword
-
-aspellfile     ^[ l
-aspellword     ^[ n
-
 :def compile mwind!,mfit!,querysave,query,scratch,"* Build Log *",rtn,bof,markb,eof," ",markk,blkdel,build
-
 :def grep_find mwind!,mfit!,scratch,"* Grep Log *",rtn,bof,markb,eof," ",markk,blkdel,grep
 
-:def man scratch,"* Man Page *",rtn,bof,markb,eof," ",markk,blkdel," ",ltarw,run,"man -P cat -S 2:3 "
+:def shell1 scratch_push,"* Startup Log *",rtn,scratch_push,"* Shell 1 *",rtn,vtbknd!,eof
+:def shell2 scratch_push,"* Startup Log *",rtn,scratch_push,"* Shell 2 *",rtn,vtbknd!,eof
+:def shell3 scratch_push,"* Startup Log *",rtn,scratch_push,"* Shell 3 *",rtn,vtbknd!,eof
+:def shell4 scratch_push,"* Startup Log *",rtn,scratch_push,"* Shell 4 *",rtn,vtbknd!,eof
+:def shell_clear psh,bof,markb,eof,markk,blkdel
+:def shell_parse parserr
+:def shell_gparse gparse
+:def shell_release release
+:def shell_math maths
+:def shell_abort abort
+:def shell_typemath txt,maths,"ins",rtn,rtn,txt,"\r",rtn,txt,quote,"d",rtn
+:def shell_rtn rtn
+:def shell_edit edit
+:def shell_dellin dellin
+:def shell_cd cd
+:def shell_pop popabort
+:def shell_markb markb
+:def shell_markk markk
 
 paste                  ^[ ] 5 2 ;
-
+brpaste                        ^[ [ 2 0 0 ~
+brpaste_done           ^[ [ 2 0 1 ~
 insc                   ^[ [ 2 ~
 insc                   ^[ [ L
-
 delch                  ^[ [ 3 ~
-
 pgup                   ^[ [ I
-
 pgdn                   ^[ [ G
-
 home                   ^[ [ 1 ~
 home                   ^[ [ H
 home                   ^[ O H
 home                   ^[ [ 7 ~
-
+ home                  ^# SP A
 eol                    ^[ [ 4 ~
 eol                    ^[ [ F
 eol                    ^[ O F
 eol                    ^[ [ 8 ~
+ eol                   ^# SP @
 
 rtarw,ltarw,begin_marking,rtarw,toggle_marking ^[ [ 1 ; 5 C
 rtarw,ltarw,begin_marking,rtarw,toggle_marking ^[ [ 5 C
 rtarw,ltarw,begin_marking,rtarw,toggle_marking ^[ O c
-
 ltarw,rtarw,begin_marking,ltarw,toggle_marking ^[ [ 1 ; 5 D
 ltarw,rtarw,begin_marking,ltarw,toggle_marking ^[ [ 5 D
+ ltarw,rtarw,begin_marking,ltarw,toggle_marking        ^[ O D
 ltarw,rtarw,begin_marking,ltarw,toggle_marking ^[ O d
-
 uparw,dnarw,begin_marking,uparw,toggle_marking ^[ [ 1 ; 5 A
 uparw,dnarw,begin_marking,uparw,toggle_marking ^[ [ 5 A
+ uparw,dnarw,begin_marking,uparw,toggle_marking        ^[ O A
 uparw,dnarw,begin_marking,uparw,toggle_marking ^[ O a
-
 dnarw,uparw,begin_marking,dnarw,toggle_marking ^[ [ 1 ; 5 B
 dnarw,uparw,begin_marking,dnarw,toggle_marking ^[ [ 5 B
+ dnarw,uparw,begin_marking,dnarw,toggle_marking        ^[ O B
 dnarw,uparw,begin_marking,dnarw,toggle_marking ^[ O b
 
 blkdel,nmark   ^[ [ 3 ; 5 -
@@ -360,7 +435,6 @@ blkdel,nmark   ^[ [ 3 ; 5 ~
 
 yank           ^[ [ 2 ; 5 -
 yank           ^[ [ 2 ; 5 ~
-
 delbol         ^[ o
 delbol         ^[ ^O
 dnslide                ^[ z
@@ -378,10 +452,11 @@ execmd            ^[ X
 execmd         ^[ ^X
 finish         ^[ ^I
 finish         ^[ ^M
-mwind,mfit,jump,bol            ^[ SP
+mwind!,mfit,jump,bol           ^[ SP
 isrch          ^[ s
 isrch          ^[ S
 isrch          ^[ ^S
+isrch          ^S
 notmod         ^[ ~
 mwind,mfit,prevw,nxterr                ^[ =
 parserr                ^[ e
@@ -391,6 +466,7 @@ mwind,mfit,prevw,prverr             ^[ -
 rsrch          ^[ r
 rsrch          ^[ R
 rsrch          ^[ ^R
+retype,rsrch   ^R
 run            ^[ !
 tomarkb                ^[ b
 tomarkb                ^[ ^B
@@ -406,20 +482,41 @@ upslide,upslide,upslide,upslide           MWUP
 yank           ^[ y
 yankpop                ^[ ^Y
 yank           ^[ Y
-
 insc           ^@
-
+ bufed         ^[ d
 nbuf           ^[ v
 nbuf           ^[ V
 nbuf           ^[ ^V
 pbuf           ^[ u
 pbuf           ^[ U
 pbuf           ^[ ^U
-
+ query         ^[ q
+ byte          ^[ n
+ col           ^[ c
+ abortbuf      ^[ k
+ ask           ^[ a
+ bop           ^[ p
+ bos           ^[ x
+ copy          ^[ ^W
+ dupw          ^[ \
+ eop           ^[ n
+ format                ^[ j
+ markl         ^[ l
+ nmark         ^[ @
+ pop           ^[ >
+ psh           ^[ <
+ swap          ^[ x
+ tomarkbk      ^[ g
+ tos           ^[ e
+ tw0           ^[ 0
+ tw1           ^[ 1
+ uarg          ^[ u
+ yank          ^[ ^Y
+ yapp          ^[ w
 quote8         ^\
+ quote         `
 quote          ^[ '
 quote          ^Q
-
 backs          ^?
 backs          ^H
 backw          ^O
@@ -439,13 +536,18 @@ blksave           ^K w
 bof            ^K U
 bof            ^K ^U
 bof            ^K u
+ bol           .kh
+ bol           ^A
+ bol      ^# SP A
 home           .kh
 home           ^A
 center         ^K A
 center         ^K ^A
 center         ^K a
 crawll         ^K <
+crawll         ^[ <
 crawlr         ^K >
+crawlr         ^[ >
 delch          .kD
 delch          ^D
 deleol         ^J
@@ -455,6 +557,7 @@ dnarw               .kd
 dnarw          ^N
 dnarw          ^[ O B
 dnarw          ^[ [ B
+ dnarw         ^# B
 edit           ^K E
 edit           ^K ^E
 edit           ^K e
@@ -471,6 +574,7 @@ ffirst              ^K F
 ffirst         ^K ^F
 ffirst         ^K f
 filt           ^K /
+ finish                ^K ^M
 fnext          ^L
 fmtblk         ^K J
 fmtblk         ^K ^J
@@ -480,6 +584,7 @@ groww               ^K G
 groww          ^K ^G
 groww          ^K g
 insc           .kI
+ insc          ^@
 insf           ^K R
 insf           ^K ^R
 insf           ^K r
@@ -491,6 +596,7 @@ ltarw               .kl
 ltarw          ^B
 ltarw          ^[ O D
 ltarw          ^[ [ D
+ ltarw          ^# D
 macros         ^[ d
 macros         ^[ ^D
 markb          ^K B
@@ -499,6 +605,7 @@ markb               ^K b
 markk          ^K K
 markk          ^K ^K
 markk          ^K k
+ mode          ^T
 menu,"root",rtn        ^T
 nextpos                ^K =
 nextword       ^X
@@ -512,6 +619,7 @@ rtarw               .kr
 rtarw          ^F
 rtarw          ^[ O C
 rtarw          ^[ [ C
+ rtarw          ^# C
 run            ^K !
 save           ^K D
 save           ^K S
@@ -527,13 +635,31 @@ splitw            ^K O
 splitw         ^K ^O
 splitw         ^K o
 stat           ^K SP
+stat           ^K ^@
 tag            ^K ;
 tomatch                ^G
 undo           ^_
 uparw          .ku
+ uparw         ^# A
 uparw          ^P
 uparw          ^[ O A
 uparw          ^[ [ A
+shell1         ^[ [ 1 1 ~
+shell1         ^[ O P
+shell1         ^[ [ [ A
+shell1         .k1
+shell2         ^[ [ 1 2 ~
+shell2         ^[ O Q
+shell2         ^[ [ [ B
+shell2         .k2
+shell3         ^[ [ 1 3 ~
+shell3         ^[ O R
+shell3         ^[ [ [ C
+shell3         .k3
+shell4         ^[ [ 1 4 ~
+shell4         ^[ O S
+shell4         ^[ [ [ D
+shell4         .k4
 
 :prompt                        Prompt windows
 :inherit main
@@ -543,7 +669,9 @@ dnarw,eol   .kd
 dnarw,eol      ^N
 dnarw,eol      ^[ O B
 dnarw,eol      ^[ [ B
+ dnarw,eol     ^# B
 uparw,eol      .ku
+ uparw,eol     ^# A
 uparw,eol      ^P
 uparw,eol      ^[ O A
 uparw,eol      ^[ [ A
@@ -551,20 +679,18 @@ uparw,eol ^[ [ A
 :menu                  Selection menus
 :inherit windows
 
-pgupmenu       ^[ [ I
-
-pgdnmenu       ^[ [ G
-
-bolmenu                ^[ [ 1 ~
-bolmenu                ^[ [ H
-bolmenu                ^[ O H
-bolmenu                ^[ [ 7 ~
-
-eolmenu                ^[ [ 4 ~
-eolmenu                ^[ [ F
-eolmenu                ^[ O F
-eolmenu                ^[ [ 8 ~
-
+pgupmenu                       ^[ [ I
+pgdnmenu                       ^[ [ G
+bolmenu                        ^[ [ 1 ~
+bolmenu                        ^[ [ H
+bolmenu                        ^[ O H
+bolmenu                        ^[ [ 7 ~
+ bolmenu                       ^# SP A
+eolmenu                        ^[ [ 4 ~
+eolmenu                        ^[ [ F
+eolmenu                        ^[ O F
+eolmenu                        ^[ [ 8 ~
+ eolmenu                       ^# SP @
 abort          ^[ ^[
 backsmenu      ^?
 backsmenu      ^H
@@ -577,6 +703,7 @@ dnarwmenu   .kd
 dnarwmenu      ^N
 dnarwmenu      ^[ [ B
 dnarwmenu      ^[ O B
+ dnarwmenu ^# B
 dnarwmenu      MWDOWN
 eofmenu                ^K V
 eofmenu                ^K ^V
@@ -587,15 +714,19 @@ ltarwmenu .kl
 ltarwmenu      ^B
 ltarwmenu      ^[ [ D
 ltarwmenu      ^[ O D
+ ltarwmenu ^# D
 pgdnmenu       .kN
 pgdnmenu       ^V
 pgdnmenu       ^[ [ 6 ~
+ pgdnmenu  ^# S
 pgupmenu       .kP
 pgupmenu       ^U
 pgupmenu       ^[ [ 5 ~
+ pgupmenu  ^# T
 rtarwmenu      .kr
 rtarwmenu      ^F
 rtarwmenu      ^[ [ C
+ rtarwmenu ^# C
 rtarwmenu      ^[ O C
 rtn            SP
 rtn            ^I
@@ -607,20 +738,27 @@ uparwmenu .ku
 uparwmenu      ^P
 uparwmenu      ^[ [ A
 uparwmenu      ^[ O A
+ uparwmenu ^# A
 uparwmenu      MWUP
 defm2down      M2DOWN
 
 :query                 Single-key query window
 :inherit windows
 
+:querya                        Single-key query window for quoting
+type           U+0 TO U+10FFFF
+
+:querysr               Search & replace query window
+type           U+0 TO U+10FFFF
+
 :shell                 Input to shell windows
 :inherit main
-"\ 3"            ^C              Abort
-"\ 4"            ^D              Eof
-"      "       ^I              Tab
-"\b"            ^H              Backspace
-"\r"            ^M              Return
-"\7f"            ^?              Backspace
+"\ 3"            ^C
+"\ 4"            ^D
+"      "       ^I
+"\b"            ^H
+"\r"            ^M
+"\7f"            ^?
 
 :vtshell               Input to ANSI shell windows
 :inherit main
@@ -632,11 +770,11 @@ defm2down M2DOWN
 "\e[C"          .kr
 "\e[D"          \e [ D
 "\e[D"          .kl
-"\ 1"            ^A              BOL for bash
-"\ 3"            ^C              Abort
-"\ 4"            ^D              Eof
-"\ 5"            ^E              EOL for bash
-"      "       ^I              Tab
-"\b"            ^H              Backspace
-"\r"            ^M              Return
-"\7f"            ^?              Backspace
+"\ 1"            ^A
+"\ 3"            ^C
+"\ 4"            ^D
+"\ 5"            ^E
+"      "       ^I
+"\b"            ^H
+"\r"            ^M
+"\7f"            ^?