commit dfcba2843549d32bcb70bb8936ace98f3f47d908
parent 643d419a8ad91f2aa19bc282598be68d869d7f20
Author: Alexander Burger <abu@software-lab.de>
Date: Thu, 29 Nov 2012 18:02:17 +0100
Emacs support with 'em', 'edit' and line editor
Diffstat:
11 files changed, 370 insertions(+), 104 deletions(-)
diff --git a/doc/ref.html b/doc/ref.html
@@ -2530,6 +2530,7 @@ abbreviations:
<a href="refU.html#unbug">unbug</a>
<a href="refU.html#u">u</a>
<a href="refV.html#vi">vi</a>
+ <a href="refE.html#em">em</a>
<a href="refL.html#ld">ld</a>
<a href="refT.html#trace">trace</a>
<a href="refU.html#untrace">untrace</a>
diff --git a/doc/refE.html b/doc/refE.html
@@ -164,8 +164,9 @@ href="ref_.html#!">!</a></code> breakpoints at arbitrary code locations, or
doing other temporary changes to the code for debugging purposes.
<p>See also <code><a href="refU.html#update">update</a></code>, <code><a
-href="refS.html#show">show</a></code> and <code><a
-href="refV.html#vi">vi</a></code>.
+href="refS.html#show">show</a></code>, <code><a
+href="refV.html#vi">vi</a></code> and <code><a
+href="refE.html#em">em</a></code>.
<pre><code>
: (edit (db 'nr '+Item 1)) # Edit a database symbol
@@ -205,6 +206,28 @@ href="refV.html#vi">vi</a></code>.
-> NIL
</code></pre>
+<dt><a name="em"><code>(em 'sym) -> sym</code></a>
+<dt><code>(em 'sym 'cls) -> sym</code>
+<dt><code>(em '(sym . cls)) -> sym</code>
+<dt><code>(em) -> NIL</code>
+<dd>(Debug mode only) Opens the "emacs" editor on the function or method
+definition of <code>sym</code>. A call to <code><a
+href="refL.html#ld">ld</a></code> thereafter will <code><a
+href="refL.html#load">load</a></code> the modified file. A call without
+arguments permanently switches the REPL line editor and the <code><a
+href="refE.html#edit">edit</a></code> function to "emacs" mode. See also
+<code><a href="refD.html#doc">doc</a></code>, <code><a
+href="refE.html#edit">edit</a></code>, <code><a
+href="refV.html#vi">vi</a></code>, <code><a
+href="refD.html#*Dbg">*Dbg</a></code>, <code><a
+href="refD.html#debug">debug</a></code> and <code><a
+href="refP.html#pp">pp</a></code>.
+
+<pre><code>
+: (em 'url> '+CuSu) # Edit the method's source code, then exit from 'emacs'
+-> T
+</code></pre>
+
<dt><a name="env"><code>(env ['lst] | ['sym 'val] ..) -> lst</code></a>
<dd>Return a list of symbol-value pairs of all dynamically bound symbols if
called without arguments, or of the symbols or symbol-value pairs in
diff --git a/doc/refL.html b/doc/refL.html
@@ -71,7 +71,8 @@ href="refP.html#pipe">pipe</a></code>'ed child process. The return value of
<dt><a name="ld"><code>(ld) -> any</code></a>
<dd>(Debug mode only) <code><a href="refL.html#load">load</a></code>s the last
-file edited with <code><a href="refV.html#vi">vi</a></code>.
+file edited with <code><a href="refV.html#vi">vi</a></code> or <code><a
+href="refE.html#em">em</a></code>.
<pre><code>
: (vi 'main)
diff --git a/doc/refV.html b/doc/refV.html
@@ -108,8 +108,11 @@ $ pil -version
<dd>(Debug mode only) Opens the "vi" editor on the function or method definition
of <code>sym</code>. A call to <code><a href="refL.html#ld">ld</a></code>
thereafter will <code><a href="refL.html#load">load</a></code> the modified
-file. See also <code><a href="refD.html#doc">doc</a></code>, <code><a
+file. A call without arguments permanently switches the REPL line editor and the
+<code><a href="refE.html#edit">edit</a></code> function to "vi" mode. See also
+<code><a href="refD.html#doc">doc</a></code>, <code><a
href="refE.html#edit">edit</a></code>, <code><a
+href="refE.html#em">em</a></code>, <code><a
href="refD.html#*Dbg">*Dbg</a></code>, <code><a
href="refD.html#debug">debug</a></code> and <code><a
href="refP.html#pp">pp</a></code>.
diff --git a/ersatz/picolisp.jar b/ersatz/picolisp.jar
Binary files differ.
diff --git a/lib/debug.l b/lib/debug.l
@@ -1,4 +1,4 @@
-# 20nov12abu
+# 29nov12tj
# (c) Software Lab. Alexander Burger
# Prompt
@@ -200,10 +200,32 @@
(pack "+" (car "*Ed"))
(path (cdr "*Ed")) ) ) )
+# Emacs interface (Thorsten Jolitz)
+# Note:
+# As 'tags-table-list' is set here, do not also set `tags-file-name'
+# make sure, tsm.el and picolisp.el are loaded (in that order) and put
+# the edited .l file in picolisp mode (M-x picolisp-mode)
(de em ("X" C)
(_ed
'("@lib/eled.l" "@lib/eedit.l")
(call "emacsclient"
+ "-a" NIL
+ "-e"
+ (pack
+ "(let ((tmp-tags \"" (tmp "tags") "\")"
+ "(src-tags (expand-file-name \"" (path "@src64/tags")
+ "\")))"
+ "(setq tags-table-list "
+ "(append `(,tmp-tags) `(,src-tags) tags-table-list))"
+ "(mapc (lambda (F)"
+ "(unless (file-exists-p (expand-file-name F))"
+ "(setq tags-table-list (delete F tags-table-list))))"
+ "tags-table-list)"
+ "(delete-dups tags-table-list)"
+ "(setq tags-table-list (delete \"\" tags-table-list))"
+ "(setq tags-file-name nil)"
+ " )" ) )
+ (call "emacsclient"
"-c"
(pack "+" (car "*Ed"))
(path (cdr "*Ed")) ) ) )
diff --git a/lib/eedit.l b/lib/eedit.l
@@ -1,4 +1,5 @@
-# 12nov12abu
+# 29nov12tj
+# Authors Alexander Burger, Thorsten Joltiz
# (c) Software Lab. Alexander Burger
# "*F" "*Lst" "*X" "*K"
@@ -65,7 +66,28 @@ C-c":
| only these files will be asked to be saved.
`---------------------------------------------------------------------
-}#
+** Put the edited buffer into PicoLisp Mode
+
+The PicoLisp distribution contains a PicoLisp major mode for Emacs,
+'picolisp.el' in the 'lib/el/' folder. Make sure that you load this
+file on Emacs startup and automatically put '.l' files into
+picolisp-mode, e.g. with the following code in you .emacs:
+
+,------------------------------------------------------------
+| (add-to-list 'load-path "~/path/to/picolisp/lib/el/")
+| (require 'picolisp)
+| (add-to-list 'auto-mode-alist '("\\.l\\'" . picolisp-mode))
+`------------------------------------------------------------
+
+** Add and remove symbols from the 'edit' buffer
+
+With point on a symbol (or with a symbol marked as region in transient
+mark mode), 'C-c C-v' (picolisp-edit-K) adds this symbol on top of the
+editing buffer. A subsequent 'C-c C-c' (picolisp-edit-Q) removes it
+again and puts point back to its previous line. Using 'C-c C-c' when
+only one symbol is left exits the 'edit' buffer.
+
+ }#
(de edit @
diff --git a/lib/eled.l b/lib/eled.l
@@ -1,5 +1,5 @@
-# 19nov12tj
-# Authors Alexander Burger, Thorsten Jolitz
+# 29nov12tj
+# Authors Thorsten Jolitz, Alexander Burger
# (c) Software Lab. Alexander Burger
# Line editor
@@ -9,24 +9,24 @@
'(*Led fkey revise) )
(setq
- "Line" NIL # Holds current input line
- "LPos" 1 # Position in line (1 .. length)
- "HPos" 1 # Position in history
- "UndoLine" NIL # Undo
- "UndoPos" 0
- "Line1" NIL # Initial line
- "Insert" T # Insert mode flag
- "FKey" NIL # Function key bindings
- "Clip" NIL # Cut/Copy/Paste buffer
- "Item" NIL # Item to find
- "Found" NIL # Find stack
- "Mark" NIL # Position of mark
- "Register" NIL # (Named) storage for text-snippets
- "Complete" NIL # Input completion
-
- "HistMax" 1000 # History limit
-
- "History" # History of input lines
+ "Line" NIL # Holds current input line
+ "LPos" 1 # Position in line (1 .. length)
+ "HPos" 1 # Position in history
+ "UndoLine" NIL # Undo
+ "UndoPos" 0
+ "Line1" NIL # Initial line
+ "Insert" T # Insert mode flag
+ "FKey" NIL # Function key bindings
+ "Clip" NIL # Cut/Copy/Paste buffer
+ "Item" NIL # Item to find
+ "Found" NIL # Find stack
+ "Complete" NIL # Input completion
+ "Mark" NIL # Position of the mark
+ "Register" NIL # Storage for text snippets
+
+ "HistMax" 1000 # History limit
+
+ "History" # History of input lines
(in (pack "+" (pil "history"))
(ctl NIL
(make (until (eof) (link (line T)))) ) )
@@ -49,19 +49,19 @@
# (call 'stty "intr" "^A")
(raw T)
-(call 'stty "intr" "")
+(call 'stty "intr" "^R") # ^R as replacement for ^C
# Basic editing routine
(de chgLine (L N)
- (let (D (length "Line") Tsm)
- (for (P (dec "LPos") (>= P 1) (dec P)) # To start of old line
+ (let (D (length "Line") Tsm)
+ (for (P (dec "LPos") (>= P 1) (dec P)) # To start of old line
(unless
(and
*Tsm
(= "\"" (get "Line" P))
(skipQ "LPos" P "Line") )
(prin "^H") ) )
- (for (P . C) (setq "Line" L) # Output new line
+ (for (P . C) (setq "Line" L) # Output new line
(cond
((> " " C)
(dec 'D)
@@ -77,10 +77,10 @@
C )
(and (onOff Tsm) (car *Tsm)) ) ) ) )
(and Tsm (prin (cdr *Tsm)))
- (space D) # Clear rest of old line
+ (space D) # Clear rest of old line
(do D (prin "^H"))
(setq "LPos" (inc (length L)))
- (until (= N "LPos") # To new position
+ (until (= N "LPos") # To new position
(unless
(and
*Tsm
@@ -106,7 +106,7 @@
# Check for delimiter
(de delim? (C)
- (member C '`(chop '" ^I^J^M\"'()[]`~")) )
+ (member C '`(chop '" ^I^J^M\"'()[]`~-")) ) # dash added for emacs-style
# Move left
(de lMove ()
@@ -117,11 +117,13 @@
(chgLine "Line" 1) )
# Move right
-(de rMove ()
+(de rMove (F)
(chgLine "Line"
- (if (>= "LPos" (length "Line"))
- "LPos"
- (inc "LPos") ) ) )
+ (min
+ (inc "LPos")
+ (if F
+ (inc (length "Line"))
+ (length "Line") ) ) ) )
# Move to end of line
(de eMove ()
@@ -131,6 +133,16 @@
(de xMove ()
(chgLine "Line" (inc (length "Line"))) )
+# Move up
+(de uMove ()
+ (when (< "HPos" (length "History"))
+ (setHist (inc "HPos")) ) )
+
+# Move down
+(de dMove ()
+ (unless (=0 "HPos")
+ (setHist (dec "HPos")) ) )
+
# Move word left
(de lWord ()
(use (N L)
@@ -144,28 +156,18 @@
N ) ) ) ) ) )
# Move word right
+# M (Line-lenght) N (Line-positon) L (Line-tail)
(de rWord ()
(use (M N L)
(setq M (length "Line"))
(chgLine "Line"
(if (<= M (setq N "LPos"))
- M
+ (inc M)
(loop
- (T (= M (inc 'N)) M)
+ (T (= M (inc 'N))
+ (if (delim? (get "Line" N)) M (inc M)) )
(setq L (nth "Line" (dec N)))
- (T (and (delim? (car L)) (not (delim? (cadr L))))
- N ) ) ) ) ) )
-
-(de vi-rWord ()
- (use (M N L)
- (setq M (length "Line"))
- (chgLine "Line"
- (if (<= M (setq N "LPos"))
- M
- (loop
- (T (= M (inc 'N)) M)
- (setq L (nth "Line" (dec N)))
- (T (and (delim? (car L)) (not (delim? (cadr L))))
+ (T (and (delim? (cadr L)) (not (delim? (car L))))
N ) ) ) ) ) )
# Match left parenthesis
@@ -215,22 +217,49 @@
(setq L (del1 "Line"))
(max 1 (min "LPos" (length L))) ) ) )
-# Delete a word (F: with trailing blank)
-(de delWord (F)
+# Delete a sexp
+(de delSexp ()
(let L "Line"
(off "Clip")
- (ifn (= "(" (get L "LPos"))
- (while (and (nth L "LPos") (not (delim? (get L "LPos"))))
- (setq L (del1 L)) )
+ (if (= "(" (get L "LPos"))
(for (N 1 (and (setq L (del1 L)) (< 0 N)))
(case (get L "LPos")
("(" (inc 'N))
(")" (dec 'N)) ) ) )
+ (chgLine L (max 1 (min "LPos" (length L)))) ) )
+
+# Delete a word (F: with trailing blank)
+(de delWord (F)
+ (let L "Line"
+ ## (off "Clip")
+ (and (delim? (get L "LPos"))
+ (while (and (nth L "LPos") (delim? (get L "LPos")))
+ (setq L (del1 L)) ) )
+ (unless (delim? (get L "LPos"))
+ (while (and (nth L "LPos") (not (delim? (get L "LPos"))))
+ (setq L (del1 L)) ) )
(and
F
(sp? (get L "LPos"))
(setq L (del1 L)) )
- (chgLine L (max 1 (min "LPos" (length L)))) ) )
+ (chgLine L (max 1 (min "LPos" (length L))))
+ (and (= "LPos" (length L) (rMove T))) ) )
+
+## (de vi-delWord (F)
+## (let L "Line"
+## (off "Clip")
+## (ifn (= "(" (get L "LPos"))
+## (while (and (nth L "LPos") (not (delim? (get L "LPos"))))
+## (setq L (del1 L)) )
+## (for (N 1 (and (setq L (del1 L)) (< 0 N)))
+## (case (get L "LPos")
+## ("(" (inc 'N))
+## (")" (dec 'N)) ) ) )
+## (and
+## F
+## (sp? (get L "LPos"))
+## (setq L (del1 L)) )
+## (chgLine L (max 1 (min "LPos" (length L)))) ) )
# Replace char
(de rplChar (C)
@@ -309,7 +338,7 @@
(expandTab)
(off "Complete")
(case "C"
- (("^H" "^?")
+ ("^?"
(when (> "LPos" 1)
(chgLine (remove (dec "LPos") "Line") (dec "LPos")) ) )
## ("^V" (insChar (key)))
@@ -317,6 +346,14 @@
# 'M-<char>' (Meta or Alt) keymap, implemented with ESC prefix
("^[" (and (key 500)
(case @
+ ("[" (when (sys "TERM")
+ (and (key 500)
+ (case @
+ # arrow keys
+ ("A" (uMove) (xMove))
+ ("B" (dMove) (xMove))
+ ("C" (rMove T))
+ ("D" (lMove)) ) ) ) )
# forward-word
# TODO: emacs (goto end of word!)
("f" (rWord))
@@ -332,7 +369,7 @@
((if
(low? (setq "C" (get "Line" "LPos")))
uppc lowc ) "C" ) )
- (rMove) )
+ (rMove T) )
# forward-sexp
("^f"
(case (get "Line" "LPos")
@@ -344,7 +381,9 @@
(")" (lPar))
(T (beep)) ) )
# show present working directory (pwd)
+ # delete sexp
("^d" (prinl (pwd)) (quit))
+ ("^k" (delSexp))
# goto/find char
("g"
(ifn (setq "C" (index (key) (nth "Line" (inc "LPos"))))
@@ -391,13 +430,19 @@
# 'C-u (Ctrl-u) keymap (functions with arguments)
("^u" (and (key 1000)
(case @
- # list directory files
- # (including those starting with .)
("^x" (and (key 500)
(case @
+ # list directory files with dotfiles
("^d"
(printsp (dir (pwd) T))
- (prinl) (quit) ) ) ) ) ) ) )
+ (prinl) (quit) )
+ # dired-style directory listing with dotfiles
+ ("d" (call 'ls "-al") (quit)) ) ) )
+ ("^h" (and (key 500)
+ (case @
+ # unbug
+ ("d" (prin "(unbug) ")
+ (unbug (any (line T))) (quit) ) ) ) ) ) ) )
# 'C-x' (Ctrl-x) keymap
("^x" (and (key 500)
@@ -409,14 +454,30 @@
(setq "UndoLine" "L" "UndoPos" "P") ) )
# list directory files
("^d" (printsp (dir (pwd))) (prinl) (quit))
+ # dired-style directory listing (ls -l)
+ ("d" (call 'ls "-l") (quit))
+ # find file (with EMACSCLIENT)
+ ("^f"
+ (prog
+ (prinl "[(pwd) " (pwd) "]")
+ (prin "(emacsclient -c) ")
+ (call 'emacsclient "-c" (line T)) (quit) ) )
# find-file (with ZILE)
("f"
- (use X
+ (prog
(prinl "[(pwd) " (pwd) "]")
(prin "(zile) ")
- (call 'zile (read)) (quit) ) )
- # edit file (with EMACSCLIENT)
- ## ("^f" (edit ) )
+ (call 'zile (line T)) (quit) ) )
+ # return (a list with) the number of lines of file(s)
+ ("l"
+ (prinl "[(pwd) " (pwd) "]")
+ (prin "(lines) ")
+ (println
+ (mapcar lines
+ (mapcar pack
+ (split (chop (line T)) " ") ) ) )
+ (quit) )
+
) ) )
## (case @
## ((call 'test "-f" X)
@@ -434,12 +495,36 @@
## (out (basename X)) ) ) ) ) ) ) ) ) ) )
# 'C-h' (Ctrl-h) keymap (info/help functionality)
- ("^h" (and (key 500)
+ ("^h" (and (key 1000)
(case @
- # display current contents of
- # kill-ring (cut buffer)
- ("r" (prinl) (println "Clip")) ) ) )
-
+ # current contents of kill-ring (cut buffer)
+ ("r" (prinl) (println "Clip")(quit))
+ # info
+ ("i" (prin "(info) ")
+ (let Info (info (any (line T)))
+ (printsp
+ (car Info)
+ (stamp (cadr Info) (cddr Info)) ) )
+ (prinl) (quit) )
+ # doc
+ ("f" (prin "(doc) ")
+ (doc (line T)) (quit) )
+ # show
+ ("s" (prin "(show) ")
+ (pp (show (any (line T)))) (quit) )
+ # debug
+ ("d" (prin "(debug) ")
+ (debug (any (line T))) (quit) )
+ # pretty print
+ ("p" (and (key 500)
+ (case @
+ # (pp)
+ ("p" (prin "(pp) ")
+ (pp (any (line T))) (quit) )
+ # (pretty)
+ ("r" (prin "(pretty) ")
+ (pretty (any (line T)))
+ (prinl) (quit) ) ) ) ) ) ) )
# 'C-v' (Ctrl-v) keymap
## ("^v" (and (key 500)
## (case @
@@ -460,21 +545,26 @@
# backward-char
("^b" (lMove))
# forward-char
- ("^f" (and (= "LPos" (length "Line"))(xMove))(rMove))
+ ("^f" (and (= "LPos" (length "Line")))(rMove T))
# next-line
- ("^n" (unless (=0 "HPos") (setHist (dec "HPos"))))
+ ("^n" (dMove))
# previous-line
- ("^p" (when (< "HPos" (length "History")) (setHist (inc "HPos"))))
+ ("^p" (uMove))
# yank
("^y" (doUndo) (doPaste))
# delete-char
- ("^D" (doUndo) (delChar))
+ ("^d" (doUndo) (delChar))
+ # clear-screen
+ ("^l" (call 'tput 'clear) (quit))
# self-insertion
(T
(when (= "C" ")")
(chgLine "Line" (prog1 "LPos" (lPar) (wait 200))) )
(insChar "C") ) ) ) )
+#### TODO: delete, once all functionality ####
+#### has been transferred to Insert Mode ####
+
# Command mode
## (de cmdMode ("C")
## (case "C"
@@ -494,7 +584,7 @@
## (off "Insert") ) ) )
## ("0" (bMove))
## ("A" (doUndo) (xMove) (on "Insert"))
-## ("a" (doUndo) ((if (= "LPos" (length "Line")) xMove rMove)) (on "Insert"))
+## ("a" (doUndo) ((if (= "LPos" (length "Line")) xMove rMove T)) (on "Insert"))
## ("b" (lWord))
## ("c" (doUndo) (delWord NIL) (on "Insert"))
## ("C" (doUndo) (clrEol) (xMove) (on "Insert"))
@@ -509,10 +599,10 @@
## ("I" (doUndo) (bMove) (on "Insert"))
## ("j" (unless (=0 "HPos") (setHist (dec "HPos"))))
## ("k" (when (< "HPos" (length "History")) (setHist (inc "HPos"))))
-## ("l" (rMove))
+## ("l" (rMove T))
## ("n" (ledSearch "Line"))
## ("N" (if "Found" (setHist (pop '"Found")) (beep)))
-## ("p" (doUndo) ((if (= "LPos" (length "Line")) xMove rMove)) (doPaste))
+## ("p" (doUndo) ((if (= "LPos" (length "Line")) xMove rMove T)) (doPaste))
## ("P" (doUndo) (doPaste))
## ("r" (ifn "Line" (beep) (doUndo) (rplChar (key))))
## ("s" (doUndo) (delChar) (on "Insert"))
@@ -529,7 +619,7 @@
## (doUndo)
## (rplChar
## ((if (low? (setq "C" (get "Line" "LPos"))) uppc lowc) "C") )
-## (rMove) )
+## (rMove T) )
## (T (beep)) ) )
# Get a line from console
@@ -565,7 +655,7 @@
(default "tabFun"
'((S)
(conc
- (filter '((X) (pre? S (sym X))) (all))
+ (filter '((X) (pre? S X)) (all))
(let P (rot (split (chop S) "/"))
(setq
S (pack (car P))
@@ -611,20 +701,10 @@
(and (nth "History" "HistMax") (con @))
L ) ) )
-### new Key codes (additional to lib/term.l) ###
-## (setq
-## *XtMf (in '("tput" "\033") (line T))
-## *XtMb (in '("tput" "\b") (line T))
-## *XtMd (in '("tput" "\d") (line T)) )
-
-## (fkey *XtMf (rWord))
-## (fkey *XtMb (lWord))
-## (fkey *XtMd (doUndo) (delWord T))
-
(mapc zap
(quote
- chgLine skipQ escQ delim? lMove bMove rMove eMove xMove lWord rWord lPar rPar
- clrEol insChar del1 delChar delWord rplChar doUndo doPaste
- setHist ledSearch expandTab insMode _getLine _led saveHistory ) )
+ chgLine skipQ escQ delim? lMove bMove rMove eMove xMove uMove dMove lWord
+ rWord lPar rPar clrEol insChar del1 delChar delWord rplChar doUndo doPaste
+ setHist ledSearch expandTab insMode cmdMode _getLine _led saveHistory ) )
# vi:et:ts=3:sw=3
diff --git a/src/vers.h b/src/vers.h
@@ -1 +1 @@
-static byte Version[4] = {3,1,0,14};
+static byte Version[4] = {3,1,0,15};
diff --git a/src64/tags b/src64/tags
@@ -48,6 +48,120 @@
CHAR_LETTER63,1499
CHAR_DIGIT64,1520
+sys/x86-64.linux.defs.l,1959
+ENOENT5,59
+EINTR6,108
+EBADF7,155
+EAGAIN8,194
+EACCES9,227
+EPIPE10,268
+ECONNRESET11,303
+O_RDONLY14,365
+O_WRONLY15,382
+O_RDWR16,399
+O_CREAT17,414
+O_EXCL18,431
+O_TRUNC19,448
+O_APPEND20,466
+F_GETFD21,486
+F_SETFD22,502
+FD_CLOEXEC23,518
+BUFSIZ26,546
+PIPE_BUF27,564
+MAXPATHLEN29,585
+RTLD_LAZY32,613
+RTLD_GLOBAL33,631
+FLOCK36,662
+L_TYPE37,702
+L_WHENCE38,722
+L_START39,744
+L_LEN40,760
+L_PID41,775
+SEEK_SET42,790
+SEEK_CUR43,807
+F_RDLCK44,824
+F_WRLCK45,840
+F_UNLCK46,856
+F_GETFL47,872
+F_SETFL48,888
+F_GETLK49,904
+F_SETLK50,920
+F_SETLKW51,936
+F_SETOWN52,953
+O_NONBLOCK53,970
+O_ASYNC54,992
+STAT57,1019
+ST_MODE58,1061
+ST_SIZE59,1083
+ST_MTIME60,1100
+S_IFMT61,1118
+S_IFDIR62,1144
+TMS65,1180
+TMS_UTIME66,1214
+TMS_STIME67,1232
+TERMIOS70,1261
+C_IFLAG71,1304
+C_LFLAG72,1320
+C_CC73,1337
+ISIG74,1351
+VMIN75,1364
+VTIME76,1377
+TCSADRAIN77,1391
+SIGACTION80,1419
+SIGSET_T81,1462
+SA_HANDLER82,1481
+SA_MASK83,1500
+SA_FLAGS84,1516
+SIG_DFL86,1536
+SIG_IGN87,1552
+SIG_UNBLOCK88,1568
+SIGHUP90,1589
+SIGINT91,1615
+SIGUSR192,1630
+SIGUSR293,1647
+SIGPIPE94,1664
+SIGALRM95,1681
+SIGTERM96,1698
+SIGCHLD97,1715
+SIGCONT98,1732
+SIGSTOP99,1749
+SIGTSTP100,1766
+SIGTTIN101,1783
+SIGTTOU102,1800
+SIGIO103,1817
+SIGNALS104,1832
+WNOHANG107,1894
+WUNTRACED108,1910
+FD_SET111,1938
+TM_SEC114,1975
+TM_MIN115,1990
+TM_HOUR116,2005
+TM_MDAY117,2021
+TM_MON118,2038
+TM_YEAR119,2054
+D_NAME122,2078
+SOCK_STREAM125,2105
+SOCK_DGRAM126,2125
+AF_UNSPEC127,2144
+AF_INET6128,2162
+SOL_SOCKET129,2180
+SO_REUSEADDR130,2199
+IPPROTO_IPV6131,2220
+IPV6_V6ONLY132,2242
+INET6_ADDRSTRLEN133,2263
+NI_MAXHOST135,2290
+NI_NAMEREQD136,2312
+SOCKADDR_IN6138,2333
+SIN6_FAMILY139,2355
+SIN6_PORT140,2375
+SIN6_ADDR141,2393
+ADDRINFO143,2412
+AI_FAMILY144,2430
+AI_SOCKTYPE145,2448
+AI_ADDRLEN146,2468
+AI_ADDR147,2488
+AI_NEXT148,2505
+
./glob.l,4297
Data4,51
AV7,77
@@ -1137,9 +1251,9 @@
getUdpZ_FB370,9724
putUdpBZ377,9869
-sys/emu.code.l,95
-errno_A8,134
-errnoC16,260
-wifstoppedS_F24,409
-wifsignaledS_F32,570
-wtermsigS_A40,725
+sys/x86-64.linux.code.l,94
+errno_A5,67
+errnoC10,169
+wifstoppedS_F16,287
+wifsignaledS_F21,413
+wtermsigS_A28,568
diff --git a/src64/version.l b/src64/version.l
@@ -1,6 +1,6 @@
-# 17nov12abu
+# 29nov12abu
# (c) Software Lab. Alexander Burger
-(de *Version 3 1 0 14)
+(de *Version 3 1 0 15)
# vi:et:ts=3:sw=3