/MirOS/dist/jupp/joe-3.1jupp30.tgz jupp-3_1_30
authormirabilos <m@mirbsd.org>
Wed, 11 Jan 2017 23:46:51 +0000 (00:46 +0100)
committermirabilos <m@mirbsd.org>
Wed, 11 Jan 2017 23:46:51 +0000 (00:46 +0100)
26 files changed:
HINTS
Make-w32.sh
Makefile.am
Makefile.in
NEWS
README
TODO
builtins.c
charmap.c
configure
configure.ac
joe.1.in
joe.txt
main.c
pw.c
pw.h
rc.c
syntax.c
termcap.c
types.h
uedit.c
usearch.c
utf8.c
w.c
w.h
win32.c

diff --git a/HINTS b/HINTS
index ebaa5d9..ea1eecb 100644 (file)
--- a/HINTS
+++ b/HINTS
@@ -57,7 +57,7 @@ The character set will UTF-8.
 
 Hit ^T E to change the coding for the file.  Hit <tab> <tab> at this prompt
 to get a list of available codings.  There are a number of built-in
-character sets, plus you can install character sets in the ~/.joe/charmaps
+character sets, plus you can install character sets in the ~/.jupp/charmaps
 and /usr/local/etc/joe/charmaps directories.
 
 Check: /usr/share/i18n/charmaps for example character set files.  Only
@@ -134,5 +134,5 @@ will not insert.
 
 - Search, incremental search, and search & replace all operate as usual.
 
-__________________________________________________________________
-$MirOS: contrib/code/jupp/HINTS,v 1.9 2016/10/30 00:19:42 tg Exp $
+___________________________________________________________________
+$MirOS: contrib/code/jupp/HINTS,v 1.10 2017/01/11 22:04:31 tg Exp $
index 1ce5edb..74a2d79 100644 (file)
@@ -1,15 +1,24 @@
 #!/bin/mksh
-# $MirOS: contrib/code/jupp/Make-w32.sh,v 1.12 2017/01/10 20:23:23 tg Exp $
+# $MirOS: contrib/code/jupp/Make-w32.sh,v 1.14 2017/01/11 21:23:52 tg Exp $
+
+usage() {
+       print -ru2 "Usage: $0 [-bCgn]"
+       print -ru2 '    Builds jupp32 (with debugging if -g): clean (unless -n),'
+       print -ru2 '    configure (unless -n), make, package (unless -b), clean (unless -C)'
+       exit 1
+}
 
 nopkg=0
+nocln=0
 debug=0
 contb=0
-while getopts "bgn" c; do
+while getopts "bCgn" c; do
        case $c {
        (b)     nopkg=1 ;;
+       (C)     nocln=1 ;;
        (g)     debug=1 ;;
        (n)     contb=1 ;;
-       (*)     exit 1 ;;
+       (*)     usage ;;
        }
 done
 
@@ -95,4 +104,4 @@ cd ..
 zip -D -X -9 -k ../JWIN31$jWIN.ZIP $jtop/*
 cd ..
 ls -l JWIN31$jWIN.ZIP
-rm -rf mkw32
+(( nocln )) || rm -rf mkw32
index be05e77..f8b33c8 100644 (file)
@@ -1,4 +1,4 @@
-# $MirOS: contrib/code/jupp/Makefile.am,v 1.15 2016/10/30 02:21:05 tg Exp $
+# $MirOS: contrib/code/jupp/Makefile.am,v 1.16 2017/01/11 21:48:57 tg Exp $
 
 AUTOMAKE_OPTIONS = foreign
 
@@ -46,24 +46,20 @@ bin_PROGRAMS += termidx
 endif
 
 if JUPP_WIN32RELOC
-joe_WIN32_SRCS = win32.c
 joe_WIN32_DEFS = -DJUPP_WIN32RELOC=1 -UJOERC
 else
-joe_WIN32_SRCS = # nothing
 joe_WIN32_DEFS = -DJUPP_WIN32RELOC=0 -DJOERC="\"$(sysconf_joedir)/\""
 endif
 
 INCLUDES = $(joe_WIN32_DEFS)
 
-# joe_LDADD = @REQRD_LIBS@
-
 joe_SOURCES = \
        b.c blocks.c builtin.c builtins.c bw.c charmap.c cmd.c compat.c \
        hash.c help.c i18n.c kbd.c macro.c main.c menu.c path.c \
        poshist.c pw.c queue.c qw.c rc.c regex.c scrn.c selinux.c \
        syntax.c tab.c termcap.c tty.c tw.c ublock.c uedit.c uerror.c \
        ufile.c uformat.c uisrch.c umath.c undo.c usearch.c ushell.c \
-       utag.c utf8.c utils.c va.c vfile.c vs.c w.c $(joe_WIN32_SRCS)
+       utag.c utf8.c utils.c va.c vfile.c vs.c w.c win32.c
 
 termidx_SOURCES = termidx.c
 
index b3bcd71..4c75be7 100644 (file)
@@ -14,8 +14,8 @@
 
 @SET_MAKE@
 
-# $MirOS: contrib/code/jupp/Makefile.in,v 1.15 2016/10/30 02:50:04 tg Exp $
-# $miros: contrib/code/jupp/Makefile.am,v 1.15 2016/10/30 02:21:05 tg Exp $
+# $MirOS: contrib/code/jupp/Makefile.in,v 1.16 2017/01/11 22:23:44 tg Exp $
+# $miros: contrib/code/jupp/Makefile.am,v 1.16 2017/01/11 21:48:57 tg Exp $
 
 
 
@@ -94,14 +94,6 @@ am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" \
        "$(DESTDIR)$(sysconf_joedir)" "$(DESTDIR)$(sysconf_syntaxdir)"
 binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 PROGRAMS = $(bin_PROGRAMS)
-am__joe_SOURCES_DIST = b.c blocks.c builtin.c builtins.c bw.c \
-       charmap.c cmd.c compat.c hash.c help.c i18n.c kbd.c macro.c \
-       main.c menu.c path.c poshist.c pw.c queue.c qw.c rc.c regex.c \
-       scrn.c selinux.c syntax.c tab.c termcap.c tty.c tw.c ublock.c \
-       uedit.c uerror.c ufile.c uformat.c uisrch.c umath.c undo.c \
-       usearch.c ushell.c utag.c utf8.c utils.c va.c vfile.c vs.c w.c \
-       win32.c
-@JUPP_WIN32RELOC_TRUE@am__objects_1 = win32.$(OBJEXT)
 am_joe_OBJECTS = b.$(OBJEXT) blocks.$(OBJEXT) builtin.$(OBJEXT) \
        builtins.$(OBJEXT) bw.$(OBJEXT) charmap.$(OBJEXT) \
        cmd.$(OBJEXT) compat.$(OBJEXT) hash.$(OBJEXT) help.$(OBJEXT) \
@@ -115,7 +107,7 @@ am_joe_OBJECTS = b.$(OBJEXT) blocks.$(OBJEXT) builtin.$(OBJEXT) \
        umath.$(OBJEXT) undo.$(OBJEXT) usearch.$(OBJEXT) \
        ushell.$(OBJEXT) utag.$(OBJEXT) utf8.$(OBJEXT) utils.$(OBJEXT) \
        va.$(OBJEXT) vfile.$(OBJEXT) vs.$(OBJEXT) w.$(OBJEXT) \
-       $(am__objects_1)
+       win32.$(OBJEXT)
 joe_OBJECTS = $(am_joe_OBJECTS)
 joe_LDADD = $(LDADD)
 am_termidx_OBJECTS = termidx.$(OBJEXT)
@@ -129,7 +121,7 @@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 CCLD = $(CC)
 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 SOURCES = $(joe_SOURCES) $(termidx_SOURCES)
-DIST_SOURCES = $(am__joe_SOURCES_DIST) $(termidx_SOURCES)
+DIST_SOURCES = $(joe_SOURCES) $(termidx_SOURCES)
 man1dir = $(mandir)/man1
 INSTALL_MAN_AM = install-man
 NROFF = nroff
@@ -298,20 +290,16 @@ noinst_HEADERS = b.h blocks.h bw.h cmd.h config.h hash.h help.h kbd.h \
        ufile.h uformat.h uisrch.h umath.h undo.h usearch.h ushell.h utag.h \
        utils.h va.h vfile.h vs.h w.h utf8.h syntax.h i18n.h charmap.h builtin.h
 
-@JUPP_WIN32RELOC_FALSE@joe_WIN32_SRCS = # nothing
-@JUPP_WIN32RELOC_TRUE@joe_WIN32_SRCS = win32.c
 @JUPP_WIN32RELOC_FALSE@joe_WIN32_DEFS = -DJUPP_WIN32RELOC=0 -DJOERC="\"$(sysconf_joedir)/\""
 @JUPP_WIN32RELOC_TRUE@joe_WIN32_DEFS = -DJUPP_WIN32RELOC=1 -UJOERC
 INCLUDES = $(joe_WIN32_DEFS)
-
-# joe_LDADD = @REQRD_LIBS@
 joe_SOURCES = \
        b.c blocks.c builtin.c builtins.c bw.c charmap.c cmd.c compat.c \
        hash.c help.c i18n.c kbd.c macro.c main.c menu.c path.c \
        poshist.c pw.c queue.c qw.c rc.c regex.c scrn.c selinux.c \
        syntax.c tab.c termcap.c tty.c tw.c ublock.c uedit.c uerror.c \
        ufile.c uformat.c uisrch.c umath.c undo.c usearch.c ushell.c \
-       utag.c utf8.c utils.c va.c vfile.c vs.c w.c $(joe_WIN32_SRCS)
+       utag.c utf8.c utils.c va.c vfile.c vs.c w.c win32.c
 
 termidx_SOURCES = termidx.c
 man_joeinitfile = @joeinitfile@
diff --git a/NEWS b/NEWS
index e1be451..cd9f758 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,28 @@
-$MirOS: contrib/code/jupp/NEWS,v 1.104 2016/10/30 00:19:42 tg Exp $
+$MirOS: contrib/code/jupp/NEWS,v 1.105 2017/01/11 22:36:43 tg Exp $
 -------------------------------------------------------------------
 
+JOE 3.1jupp30
+
+- Fix spelling mistakes, some found by lintian (thanks!)
+- Silence a GCC 6 warning about content of a comment (WTF‽)
+- Fix segfault trying to fnext a block-restricted search when
+  no block is active
+- Make Freedroidz macro (^KF) more reliable, simpler, run parserr
+- Apply several bugfixes and optimisations to the code
+- Improve the jupp32 build script
+- Fix a few places where allocated memory was not properly zero’d out
+- Unbreak syntax highlighting for nōn-UTF8 locales (tty I/O charmaps)
+- For systems without setlocale, remove optional @modifier part from
+  LC_ALL/LC_CTYPE/LANG (if present) before testing for valid charmap
+- Disable setlocale for old cygwin32; use the current codepage instead
+- Add JOECHARMAP override for locale/codepage-detected I/O charmap
+- Display codes 128–159 in the CharTable help card properly
+– Avoid the Win32 console beeping on • by making it non-printable (WTF)
+- Improve some documentation façets
+- Add “-CYGhack” command line option; use it in right-click menu (WTF²)
+- Do not force use of /usr/local in configure on Solaris
+- Use ~/.jupp/, not ~/.joe/, as basepath for user charmap/syntax files
+
 JOE 3.1jupp29
 
 - Update internationalisation data to Unicode 9.0.0
diff --git a/README b/README
index fdb5790..78021af 100644 (file)
--- a/README
+++ b/README
@@ -22,9 +22,9 @@ However, you need to copy a few files into your home directory first:
        cp joerc ~/.joerc
 
        # The following are needed if you want syntax highlighting to work:
-       mkdir ~/.joe
-       mkdir ~/.joe/syntax
-       cp syntax/*.jsf ~/.joe/syntax
+       mkdir ~/.jupp
+       mkdir ~/.jupp/syntax
+       cp syntax/*.jsf ~/.jupp/syntax/
 
 Otherwise you need to do a real install, which generally requires root
 privileges:
@@ -430,4 +430,4 @@ joe's stdin/stdout to /dev/tty:
        joe filename  </dev/tty >/dev/tty
 
 ___________________________________________________________________
-$MirOS: contrib/code/jupp/README,v 1.5 2013/08/19 23:05:08 tg Exp $
+$MirOS: contrib/code/jupp/README,v 1.6 2017/01/11 22:04:31 tg Exp $
diff --git a/TODO b/TODO
index 7f65ec4..c75dfc1 100644 (file)
--- a/TODO
+++ b/TODO
@@ -452,6 +452,10 @@ Fix for next release highlight:
 Watch loaded file for changes
 
 Save all history buffers and keyboard macros in ~/.joe_state file?
+Although, if merged, it must be disabled by default like mksh’s HISTFILE is:
+  18:48⎜«asarch» That would be for a wish list then: to keep the
+       ⎜    list of all opened files with their last position
+  Natureshadow agrees with me that this is a JOE antifeature  
 
   Update documentation.
 
@@ -470,7 +474,7 @@ regex: character classes? a-z matches any letter?
 New features:
 -----------------------
 
-  move *rc files to .etc/joe directory? Or XDG, see below.
+  move *rc files to .etc/jupp directory? Or XDG, see below.
 
   check all instances of 'chars': use unicode to locale symbols instead.
   EBCDIC ?
@@ -663,22 +667,16 @@ Other requests:
   updating the status line, …(?) ⇐ implemented using a “paste”
   labeled ftype that is switched to using the UI (command)
 • switch from autoconf to mirtoconf2
-• asarch requests merging the .joe_state file code, although
-  it must be disabled by default like mksh’s HISTFILE is:
-  18:48⎜«asarch» That would be for a wish list then: to keep the
-       ⎜    list of all opened files with their last position
-  Natureshadow agrees with me that this is a JOE antifeature
 • ANSI syntax highlighting; auto-turn it on in shell windows (‽)
 • proper redraw for lines that had combining characters in them
 • add a soft line break flag: display as line-wrapped, do not
   save any newlines introduced by that
-• put all configuration files into /usr/share, allow the user
-  to override all of them (not just the rc files) from their
-  home directory (XDG config dirs)
+• put all configuration files into /usr/share; use XDG dirs for
+  overriding (HOME, maybe site?)
 • rc.c: struct glopts.set (int*) violates the strict aliasing
   rule as it’s treated as (unsigned char *) for type 2 (global
   option string), consider a union instead (check local types!)
 • …
 
 __________________________________________________________________
-$MirOS: contrib/code/jupp/TODO,v 1.29 2016/10/30 02:46:25 tg Exp $
+$MirOS: contrib/code/jupp/TODO,v 1.30 2017/01/11 22:04:31 tg Exp $
index b8b00fe..bc3a8eb 100644 (file)
@@ -16,7 +16,6 @@
 
 const unsigned char * const builtins[] = {
        US JUPPRC_BUILTIN_NAME, US
-               "-asis\n"
                "-assume_color\n"
                "-dopadding\n"
                "--force\n"
@@ -149,15 +148,15 @@ const unsigned char * const builtins[] = {
                "\\i \\i go to \\uhttp://sf.net/projects/joe-editor/\\u for upstream bug reports. JUPP 2.8 \\i \\i\n"
                "\\i \\i for DOS compiled by A. Totlis, packed with LHarc 2.13; JUPP 3.x for UNIX\\d(R)\\d \\i \\i\n"
                "\\i \\i at \\uhttp://mirbsd.de/jupp\\u and by \\bThorsten \"\\dmirabilos\\d\" Glaser <\\utg@mirbsd.org\\u>\\b \\i \\i\n"
-               "\\i \\i @(#) blt_in 2016-10-08; 3.1; autoCR-LF; UTF-8 via locale; per-file encoding \\i \\i\n"
+               "\\i \\i @(#) blt_in 2017-01-11; 3.1; autoCR-LF; UTF-8 via locale; per-file encoding \\i \\i\n"
                "}\n"
                "\n"
                "{CharTable\n"
                "\\i   Help Screen    turn off with ^J     prev. screen ^[,    \\uCharacter Map\\u       \\i\n"
                "\\i \\i Dec Hex  \\u 0123 4567  89AB CDEF    0123 4567  89AB CDEF \\u  Hex Dec            \\i \\i\n"
                "\\i \\i         |                                              |                    \\i \\i\n"
-               "\\i \\i   0  00 | \\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 | 80  128            \\i \\i\n"
-               "\\i \\i  16  10 | \\uPQRS\\u \\uTUVW\\u  \\uXYZ[\\u \\u\\\\]^_\\u    \\i\\uPQRS\\u\\i \\i\\uTUVW\\u\\i  \\i\\uXYZ[\\u\\i \\i\\u\\\\]^_\\u\\i | 90  144            \\i \\i\n"
+               "\\i \\i   0  00 | \\u@ABC\\u \\uDEFG\\u  \\uHIJK\\u \\uLMNO\\u    \x80\x81\x82\x83 \x84\x85\x86\x87  \x88\x89\x8A\x8B \x8C\x8D\x8E\x8F | 80  128            \\i \\i\n"
+               "\\i \\i  16  10 | \\uPQRS\\u \\uTUVW\\u  \\uXYZ[\\u \\u\\\\]^_\\u    \x90\x91\x92\x93 \x94\x95\x96\x97  \x98\x99\x9A\x9B \x9C\x9D\x9E\x9F | 90  144            \\i \\i\n"
                "\\i \\i  32  20 |  !\"# $%&'  ()*+ ,-./    \xA0\xA1\xA2\xA3 \xA4\xA5\xA6\xA7  \xA8\xA9\xAA\xAB \xAC\xAD\xAE\xAF | A0  160            \\i \\i\n"
                "\\i \\i  48  30 | 0123 4567  89:; <=>?    \xB0\xB1\xB2\xB3 \xB4\xB5\xB6\xB7  \xB8\xB9\xBA\xBB \xBC\xBD\xBE\xBF | B0  176            \\i \\i\n"
                "\\i \\i  64  40 | @ABC DEFG  HIJK LMNO    \xC0\xC1\xC2\xC3 \xC4\xC5\xC6\xC7  \xC8\xC9\xCA\xCB \xCC\xCD\xCE\xCF | C0  192            \\i \\i\n"
@@ -233,17 +232,10 @@ const unsigned char * const builtins[] = {
                "\n"
                ":main\n"
                ":inherit windows\n"
+               ":def freedroidz splitw,prevw,scratch,\"nbc-Output\",rtn,nextw,save,markk,bol,markb,prevw,prevw,blkcpy,nextw,nextw,rtn,prevw,eol,\"'\",bol,qrepl,\"'\",rtn,rtn,\"'\\\\\\\\''\",rtn,\"r\",backs,backs,backs,bol,\"LC_ALL=C; export LC_ALL; fn='\",eol,rtn,\"p=--posix; sed $p -e q </dev/null >/dev/null 2>&1 || p=; fns=$(echo \\\"$fn\\\" | sed $p -e 's\ 1[^^]\ 1[&]\ 1g; s\ 1\\\\^\ 1\\\\\\\\^\ 1g'); (case $fn in\",rtn,\"*.nxc) ;;\",rtn,\"*) echo '==> Error: filename not *.nxc'; exit ;;\",rtn,\"esac\",rtn,\"echo \\\"Compiling $fn\\\"\",rtn,\"nbc -sm- -d \\\"$fn\\\" 2>&1; x=$?\",rtn,\"if test $x = 0; then echo '==> OK'; else echo '==> Error code:' $x; fi\",rtn,\") | tr '\\\\n' '\ 1' | sed $p -e 's!\ 1# *\\\\([^\ 1]*\\\\)\ 1File \\\"[^\\\"]*/\\\\('\\\"$fns\\\"'\\\\)\\\" ; line \\\\([0-9]*\\\\)\ 1!\ 1\\\\2:\\\\3: \\\\1\ 1!g' -e 's!\ 1#\\\\([^\ 1]*\\\\)\ 1File \\\"\\\\([^\\\"]*\\\\)\\\" ; line \\\\([0-9]*\\\\)\ 1!\ 1\\\\2:\\\\3: \\\\1\ 1!g' | tr '\ 1' '\\\\n'\",rtn,nmark,filt,\"sh\",rtn,rtn,\"Press ^KQ to close this window!\",rtn,parserr\n"
+               ":def docompile edit,rtn,filt,query,parserr\n"
                "bof,qrepl,\"\\\\[\",quote,\"i\",quote,\"k\",quote,\"l\",quote,\"m ]\\\\+\\\\[\",quote,\"i\",quote,\"k\",quote,\"l\",quote,\"m ]\\\\$\",rtn,rtn,rtn,\"r\",eof   ^K ]\n"
                "ffirst,\"\\\\^\\\\[<>=]\\\\[<>=]\\\\[<>=]\\\\[<>=]\\\\[<>=]\\\\[<>=]\\\\[<>=]\\\\[ \\\\n]\",rtn,rtn,ltarw                                                      ^Q =\n"
-               "splitw,prevw,scratch,\"nbc-Output\",rtn,nextw,save,markk,bol,markb,prevw,prevw,blkcpy,nextw,nextw,rtn,prevw,eol,\"'\",bol,qrepl,\"'\",rtn,rtn,\"'\\\\\\\\''\",rtn,\"r\",backs,backs,backs,bol,\"fn='\",eol,rtn,\"case $fn in\",rtn,\"*.nxc) ;;\",rtn,\"*) echo '==> Error: filename not *.nxc'; exit ;;\",rtn,\"esac\",rtn,\"nbc -d \\\"$fn\\\"; x=$?\",rtn,\"if test $x = 0; then echo '==> OK'; else echo '==> Error code:' $x; fi\",rtn,nmark,filt,\"sh\",rtn,rtn,\"Press ^KQ to close this window!\",rtn   ^K F\n"
-               "splitw,prevw,scratch,\"nbc-Output\",rtn,nextw,save,markk,bol,markb,prevw,prevw,blkcpy,nextw,nextw,rtn,prevw,eol,\"'\",bol,qrepl,\"'\",rtn,rtn,\"'\\\\\\\\''\",rtn,\"r\",backs,backs,backs,bol,\"fn='\",eol,rtn,\"case $fn in\",rtn,\"*.nxc) ;;\",rtn,\"*) echo '==> Error: filename not *.nxc'; exit ;;\",rtn,\"esac\",rtn,\"nbc -d \\\"$fn\\\"; x=$?\",rtn,\"if test $x = 0; then echo '==> OK'; else echo '==> Error code:' $x; fi\",rtn,nmark,filt,\"sh\",rtn,rtn,\"Press ^KQ to close this window!\",rtn   ^K f\n"
-               "splitw,prevw,scratch,\"nbc-Output\",rtn,nextw,save,markk,bol,markb,prevw,prevw,blkcpy,nextw,nextw,rtn,prevw,eol,\"'\",bol,qrepl,\"'\",rtn,rtn,\"'\\\\\\\\''\",rtn,\"r\",backs,backs,backs,bol,\"fn='\",eol,rtn,\"case $fn in\",rtn,\"*.nxc) ;;\",rtn,\"*) echo '==> Error: filename not *.nxc'; exit ;;\",rtn,\"esac\",rtn,\"nbc -d \\\"$fn\\\"; x=$?\",rtn,\"if test $x = 0; then echo '==> OK'; else echo '==> Error code:' $x; fi\",rtn,nmark,filt,\"sh\",rtn,rtn,\"Press ^KQ to close this window!\",rtn   ^K ^F\n"
-               "edit,rtn,filt,query,parserr    ^[ C\n"
-               "edit,rtn,filt,query,parserr    ^[ c\n"
-               "helpcard,\"Paste\",rtn,keymap,\"Paste\",rtn    ^[ P\n"
-               "helpcard,\"Paste\",rtn,keymap,\"Paste\",rtn    ^[ p\n"
-               "helpcard,\"Paste\",rtn,keymap,\"Paste\",rtn    ^[ [ 2 0 0 ~\n"
-               "nop                                    ^[ [ 2 0 1 ~\n"
                "begin_marking,uparw,toggle_marking     ^[ [ 1 ; 2 A\n"
                "begin_marking,dnarw,toggle_marking     ^[ [ 1 ; 2 B\n"
                "begin_marking,rtarw,toggle_marking     ^[ [ 1 ; 2 C\n"
@@ -252,6 +244,11 @@ const unsigned char * const builtins[] = {
                "begin_marking,eol,toggle_marking       ^[ [ 1 ; 2 F\n"
                "begin_marking,bof,toggle_marking       ^[ [ 1 ; 6 H\n"
                "begin_marking,eof,toggle_marking       ^[ [ 1 ; 6 F\n"
+               ":def pastemain helpcard,\"Paste\",rtn,keymap,\"Paste\",rtn\n"
+               "pastemain      ^[ P\n"
+               "pastemain      ^[ p\n"
+               "pastemain      ^[ [ 2 0 0 ~\n"
+               "nop            ^[ [ 2 0 1 ~\n"
                "backs          ^?\n"
                "backs          ^H\n"
                "backw          ^[ o\n"
@@ -399,8 +396,13 @@ const unsigned char * const builtins[] = {
                "nxterr         ^[ M\n"
                "nxterr         ^[ m\n"
                "open           ^[ b\n"
+               "docompile      ^[ C\n"
+               "docompile      ^[ c\n"
                "parserr                ^[ E\n"
                "parserr                ^[ e\n"
+               "freedroidz     ^K F\n"
+               "freedroidz     ^K ^F\n"
+               "freedroidz     ^K f\n"
                "pgdn           .kN\n"
                "pgdn           ^C\n"
                "pgdn           ^[ [ 6 ~\n"
@@ -473,12 +475,13 @@ const unsigned char * const builtins[] = {
                "\n"
                ":prompt\n"
                ":inherit main\n"
+               ":def pasteprompt keymap,\"Pasteprompt\",rtn,msg,\"Entered bracketed paste mode\",rtn\n"
                "abort          ^C\n"
                "complete       ^I\n"
                "nop            ^L\n"
-               "keymap,\"Pasteprompt\",rtn,msg,\"Entered bracketed paste mode\",rtn    ^[ P\n"
-               "keymap,\"Pasteprompt\",rtn,msg,\"Entered bracketed paste mode\",rtn    ^[ p\n"
-               "keymap,\"Pasteprompt\",rtn,msg,\"Entered bracketed paste mode\",rtn    ^[ [ 2 0 0 ~\n"
+               "pasteprompt    ^[ P\n"
+               "pasteprompt    ^[ p\n"
+               "pasteprompt    ^[ [ 2 0 0 ~\n"
                "\n"
                ":menu\n"
                ":inherit windows\n"
@@ -542,5 +545,5 @@ const unsigned char * const builtins[] = {
                ":querysr\n"
                "type           ^@ TO \xFF\n"
 ,      NULL
-,      "@(#) $MirOS: contrib/code/jupp/builtins.c,v 1.23 2016/10/29 21:42:56 tg Exp $"
+,      "@(#) $MirOS: contrib/code/jupp/builtins.c,v 1.24 2017/01/11 22:23:45 tg Exp $"
 };
index 75fe16e..32abf80 100644 (file)
--- a/charmap.c
+++ b/charmap.c
@@ -1,7 +1,7 @@
 #if 0
 .if "0" == "1"
 #endif
-/* $MirOS: contrib/code/jupp/charmap.c,v 1.18 2017/01/10 22:38:33 tg Exp $ */
+/* $MirOS: contrib/code/jupp/charmap.c,v 1.19 2017/01/11 22:04:31 tg Exp $ */
 /*
  *     UNICODE/ISO-10646 conversion utilities
  *     Copyright
@@ -1384,11 +1384,11 @@ find_charmap(const unsigned char *name)
                if (!map_name_cmp(m->name, name))
                        return (m);
 
-       /* Check ~/.joe/charmaps */
+       /* Check ~/.jupp/charmaps */
        p = (unsigned char *)getenv("HOME");
        if (p) {
                joe_snprintf_2((char *)buf, sizeof(buf),
-                   "%s/.joe/charmaps/%s", p, name);
+                   "%s/.jupp/charmaps/%s", p, name);
                f = fopen((char *)buf, "r");
        }
 
@@ -1465,7 +1465,7 @@ get_encodings(void)
        /* External maps */
 
        if ((p = (unsigned char *)getenv("HOME"))) {
-               joe_snprintf_1((char *)buf, sizeof(buf), "%s/.joe/charmaps", p);
+               joe_snprintf_1((char *)buf, sizeof(buf), "%s/.jupp/charmaps", p);
                if (!chpwd(buf) && (t = rexpnd(US "*"))) {
                        for (x = 0; x != aLEN(t); ++x)
                                if (strcmp(t[x], "..")) {
index ed75ec9..9e09506 100644 (file)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61-MirPorts-1 for joe 3.1jupp29.
+# Generated by GNU Autoconf 2.61-MirPorts-1 for joe 3.1jupp30.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
@@ -572,8 +572,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='joe'
 PACKAGE_TARNAME='joe'
-PACKAGE_VERSION='3.1jupp29'
-PACKAGE_STRING='joe 3.1jupp29'
+PACKAGE_VERSION='3.1jupp30'
+PACKAGE_STRING='joe 3.1jupp30'
 PACKAGE_BUGREPORT=''
 
 ac_unique_file="b.c"
@@ -1231,7 +1231,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures joe 3.1jupp29 to adapt to many kinds of systems.
+\`configure' configures joe 3.1jupp30 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1302,7 +1302,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of joe 3.1jupp29:";;
+     short | recursive ) echo "Configuration of joe 3.1jupp30:";;
    esac
   cat <<\_ACEOF
 
@@ -1395,7 +1395,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-joe configure 3.1jupp29
+joe configure 3.1jupp30
 generated by GNU Autoconf 2.61-MirPorts-1
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1409,7 +1409,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by joe $as_me 3.1jupp29, which was
+It was created by joe $as_me 3.1jupp30, which was
 generated by GNU Autoconf 2.61-MirPorts-1.  Invocation command line was
 
   $ $0 $@
@@ -2210,7 +2210,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='joe'
- VERSION='3.1jupp29'
+ VERSION='3.1jupp30'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3965,10 +3965,6 @@ case $host in
 *-*-minix*)
        CPPFLAGS="$CPPFLAGS -D_POSIX_SOURCE -D_POSIX_1_SOURCE=2 -D_MINIX"
        ;;
-*-*-solaris*)
-       CPPFLAGS="$CPPFLAGS -I/usr/local/include"
-       LDFLAGS="$LDFLAGS -L/usr/local/lib -R/usr/local/lib"
-       ;;
 *-gnu*)
        CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
        ;;
@@ -10981,7 +10977,7 @@ exec 6>&1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by joe $as_me 3.1jupp29, which was
+This file was extended by joe $as_me 3.1jupp30, which was
 generated by GNU Autoconf 2.61-MirPorts-1.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -11034,7 +11030,7 @@ Report bugs to <bug-autoconf@gnu.org>."
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-joe config.status 3.1jupp29
+joe config.status 3.1jupp30
 configured by $0, generated by GNU Autoconf 2.61-MirPorts-1,
   with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
index a1da563..eba0ae9 100644 (file)
@@ -1,4 +1,4 @@
-# $MirOS: contrib/code/jupp/configure.ac,v 1.52 2016/10/30 02:47:28 tg Exp $
+# $MirOS: contrib/code/jupp/configure.ac,v 1.54 2017/01/11 22:09:19 tg Exp $
 #-
 # Process this file with autoconf to produce a configure script.
 
@@ -6,7 +6,7 @@
 AC_PREREQ(2.54)
 
 #### Here's the only place where to change version number ####
-AC_INIT(joe, 3.1jupp29)
+AC_INIT(joe, 3.1jupp30)
 #### But see main.c for the Copyright (c) owner and year! ####
 AC_CONFIG_SRCDIR([b.c])
 
@@ -30,10 +30,6 @@ case $host in
 *-*-minix*)
        CPPFLAGS="$CPPFLAGS -D_POSIX_SOURCE -D_POSIX_1_SOURCE=2 -D_MINIX"
        ;;
-*-*-solaris*)
-       CPPFLAGS="$CPPFLAGS -I/usr/local/include"
-       LDFLAGS="$LDFLAGS -L/usr/local/lib -R/usr/local/lib"
-       ;;
 *-gnu*)
        CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
        ;;
index 1204557..cfdf394 100644 (file)
--- a/joe.1.in
+++ b/joe.1.in
@@ -1,4 +1,4 @@
-.\" $MirOS: contrib/code/jupp/joe.1.in,v 1.23 2017/01/11 19:26:53 tg Exp $
+.\" $MirOS: contrib/code/jupp/joe.1.in,v 1.24 2017/01/11 22:04:32 tg Exp $
 .\"-
 .TH JOE 1
 .SH Name
@@ -96,8 +96,8 @@ See the section \fBjoerc\fR below.
 The filename is actually \fB.\fIname\fBrc\fR where \fIname\fR is the
 \fBargv[0]\fR the editor is called with.
 
-Custom syntax files are loaded from \fB.joe/syntax/\fIname\fB.jsf\fR
-in your home directory and \fB.joe/charmaps/\fIname\fR holds custom
+Custom syntax files are loaded from \fB.jupp/syntax/\fIname\fB.jsf\fR
+in your home directory and \fB.jupp/charmaps/\fIname\fR holds custom
 charmaps (\fIname\fR here is the name of the syntax or charmap).
 
 To have JOE used as your default editor for e-mail and News, you need to set
diff --git a/joe.txt b/joe.txt
index 5cea0c7..9f39fb5 100644 (file)
--- a/joe.txt
+++ b/joe.txt
@@ -35,13 +35,13 @@ Description
      Although JOE is actually six different editors, it still\r
      requires only one executable, but one with six different\r
      names.  The name of the editor with an "rc" appended gives\r
-     the name of JOE's initialization file, which determines the\r
+     the name of JOE's initialisation file, which determines the\r
      personality of the editor.\r
 \r
      JUPP is free software; you can distribute it and/or modify\r
      it under the terms of the GNU General Public License, Ver-\r
      sion 1, as published by the Free Software Foundation.\r
-     (main.c contains more detailled exceptions.) I have no plans\r
+     (main.c contains more detailed exceptions.) I have no plans\r
      for turning JOE into a commercial or share-ware product. See\r
      the source code for exact authorship and licencing informa-\r
      tion. JOE is available over the Internet from http://joe-\r
@@ -61,6 +61,12 @@ Usage
      sections of files or devices.  See the section Filenames\r
      below for details.\r
 \r
+     On cygwin32 systems, the special option -CYGhack is replaced\r
+     by anything that comes past it (and separating whitespace)\r
+     on the command line as one option (to work around a Cygwin\r
+     bug as it cannot correctly be passed a UNC pathname with\r
+     spaces as one argument from Explorer at all).\r
+\r
      Once you are in the editor, you can type in text and use\r
      special control-character sequences to perform other editing\r
      tasks.  To find out what the control-character sequences\r
@@ -92,17 +98,23 @@ Usage
      topics, hit ^[, and ^[. (that is, ESC , and ESC .).  Use ^K\r
      H to dismiss the help window.\r
 \r
-     You can customize the keyboard layout, the help screens and\r
+     You can customise the keyboard layout, the help screens and\r
      a number of behavior defaults by copying JOE's initialisa-\r
      tion file (joerc in the same directory as the binary resides\r
      in) to .joerc in your home directory and then by modifying\r
-     it. See the section joerc below.\r
+     it. See the section joerc below. The filename is actually\r
+     .namerc where name is the argv[0] the editor is called with.\r
+\r
+     Custom syntax files are loaded from .jupp/syntax/name.jsf in\r
+     your home directory and .jupp/charmaps/name holds custom\r
+     charmaps (name here is the name of the syntax or charmap).\r
 \r
      To have JOE used as your default editor for e-mail and News,\r
      you need to set the EDITOR and VISUAL environment variables\r
-     in your shell initialization file (.cshrc or .profile) to\r
+     in your shell initialisation file (.cshrc or .profile) to\r
      refer to JOE (the joe binary usually resides as\r
      C:\Programme\jupp32\joe.exe).\r
+\r
      There are a number of other obscure invocation parameters\r
      which may have to be set, particularly if your terminal\r
      screen is not updating as you think it should.  See the sec-\r
@@ -125,7 +137,7 @@ Command Line Options
 \r
      -baud nnn\r
           Set the baud rate for the purposes of terminal screen\r
-          optimization.  Joe inserts delays for baud rates below\r
+          optimisation.  Joe inserts delays for baud rates below\r
           19200, which bypasses tty buffering so that typeahead\r
           will interrupt the screen output.  Scrolling commands\r
           will not be used for 38400 baud.  This is useful for\r
@@ -190,6 +202,7 @@ Command Line Options
 \r
      -nobackups\r
           This option prevents backup files.\r
+\r
      -nonotice\r
           This option prevent the copyright notice from being\r
           displayed when the editor starts.\r
@@ -221,12 +234,7 @@ Command Line Options
      Each of these options may be specified in the joerc file as\r
      well.  In addition, the NOXON, BAUD, LINES, COLUMNS and\r
      DOPADDING options may be specified with environment vari-\r
-     ables.\r
-\r
-     The JOETERM environment variable may be set to override the\r
-     regular TERM environment variable for specifying your termi-\r
-     nal type.\r
-\r
+     ables. See the section Environment variables below.\r
      The following options may be specified before each filename\r
      on the command line:\r
 \r
@@ -384,7 +392,7 @@ Editing Tasks
      .c, .h or .p), JOE will automatically wrap the last word\r
      onto the next line so that you don't have to hit Return.\r
      This is called word-wrap mode.  Word-wrap can be turned on\r
-     or off with the ^T W command.  JOE's initialization file is\r
+     or off with the ^T W command.  JOE's initialisation file is\r
      usually set up so that this mode is automatically turned on\r
      for all non-program files.  See the section below on the\r
      joerc file to change this and other defaults.\r
@@ -414,7 +422,7 @@ Editing Tasks
      position of the right side of the table. When this occurs,\r
      you can put the editor in over-type mode with ^T T. When the\r
      editor is in this mode, the characters you type in replace\r
-     existing characters, in the way an idealized typewriter\r
+     existing characters, in the way an idealised typewriter\r
      would.  Also, Backspace simply moves left instead of delet-\r
      ing the character to the left, when it's not at the end or\r
      beginning of a line.  Over-type mode is not the natural way\r
@@ -748,7 +756,6 @@ Editing Tasks
      fied number of times.  Hit ^K \, type in the number of times\r
      you want the command repeated and press Return.  The next\r
      edit command you now give will be repeated that many times.\r
-\r
      For example, to delete the next 20 lines of text, type:\r
 \r
      ^K  20<return>^Y\r
@@ -838,6 +845,27 @@ Environment variables
      The xterm-xfree86 terminal allows automatic entering and\r
      leaving of the bracketed paste mode.\r
 \r
+     The JOETERM environment variable may be set to override the\r
+     regular TERM environment variable for specifying your termi-\r
+     nal type.\r
+\r
+     JOE uses two character maps for its operation: the terminal\r
+     I/O character map, which determines how characters are sent\r
+     to the terminal and whether the %a/%A message specifiers use\r
+     Unicode, and the file encoding, which can be specified per\r
+     file using the -encoding option and changed with the ^T E\r
+     command, and which defaults to the terminal I/O character\r
+     map, which, in turn, is determined from the current locale,\r
+     if the system supports such, otherwise the LC_ALL, LC_CTYPE\r
+     and LANG environment variables (if they contain a period,\r
+     only the part after it and before an optional "at sign" is\r
+     used); on cygwin32 before 1.7.2, the codepage is used\r
+     instead if the POSIX locale environment variables are empty;\r
+     the environment variable JOECHARMAP can be used to manually\r
+     force one overriding all methods described above, and can be\r
+     used together with -encoding to specify a different default\r
+     file character map.\r
+\r
      JOE normally expects that flow control between the computer\r
      and your terminal to use ^S/^Q handshaking (I.E., if the\r
      computer is sending characters too fast for your terminal,\r
@@ -876,7 +904,6 @@ Filenames
           octal (ex.: 0777) or hexadecimal (ex.: 0xFF).  For\r
           example, use joe /dev/fd0,508,2 to edit bytes 508 and\r
           509 of the first floppy drive in Linux.\r
-\r
      -    Use this to get input from the standard input or to\r
           write output to the standard output.  For example, you\r
           can put joe in a pipe of commands: quota -v | joe - |\r
@@ -885,11 +912,11 @@ Filenames
 \r
 The joerc file\r
      ^T options, the help screens and the key-sequence to editor\r
-     command bindings are all defined in JOE's initialization\r
+     command bindings are all defined in JOE's initialisation\r
      file. If you make a copy of this file (which resides in the\r
      same directory as the binary) to $HOME/.joerc, you can cus-\r
      tomise these settings to your liking. The syntax of the ini-\r
-     tialization file should be fairly obvious, and there are\r
+     tialisation file should be fairly obvious, and there are\r
      further instruction in it.\r
 \r
 Acknowledgments\r
diff --git a/main.c b/main.c
index 2c46a41..ae1914b 100644 (file)
--- a/main.c
+++ b/main.c
@@ -1,4 +1,4 @@
-/* $MirOS: contrib/code/jupp/main.c,v 1.27 2017/01/11 19:26:54 tg Exp $ */
+/* $MirOS: contrib/code/jupp/main.c,v 1.28 2017/01/11 21:48:58 tg Exp $ */
 
 #define JUPP_IS_COPYRIGHT_C_BY "2017 mirabilos"
 
@@ -70,7 +70,7 @@ SCREEN *maint;                        /* Main edit screen */
 const char null[] = "";
 
 #ifdef __CYGWIN__
-static unsigned char *cygwin32_cmdline(void);
+extern unsigned char *cygwin32_cmdline(void);
 #endif
 
 /* Make windows follow cursor */
@@ -418,19 +418,3 @@ int main(int argc, char **argv, char **envp)
                fprintf(stderr, "\n%s\n", exmsg);
        return 0;
 }
-
-#ifdef __CYGWIN__
-#include <windows.h>
-
-/* return command line as passed to the .EXE (just like cygwin32’s dcrt0.cc) */
-static unsigned char *
-cygwin32_cmdline(void)
-{
-       char *cp;
-
-       cp = strdup(GetCommandLineA());
-       if (!AreFileApisANSI())
-               CharToOemA(cp, cp);
-       return ((unsigned char *)cp);
-}
-#endif
diff --git a/pw.c b/pw.c
index fb5dc58..9498014 100644 (file)
--- a/pw.c
+++ b/pw.c
@@ -1,4 +1,4 @@
-/* $MirOS: contrib/code/jupp/pw.c,v 1.7 2017/01/10 19:16:27 tg Exp $ */
+/* $MirOS: contrib/code/jupp/pw.c,v 1.8 2017/01/11 22:56:48 tg Exp $ */
 /*
  *     Prompt windows
  *     Copyright
@@ -199,7 +199,7 @@ WATOM watompw = {
 
 /* Create a prompt window */
 
-BW *wmkpw(W *w, unsigned char *prompt, B **history, int (*func) (), unsigned char *huh, int (*abrt) (), int (*tab) (), void *object, int *notify, struct charmap *map)
+BW *wmkpw(W *w, unsigned char *prompt, B **history, int (*func) (), const unsigned char *huh, int (*abrt) (), int (*tab) (), void *object, int *notify, struct charmap *map)
 {
        W *new;
        PW *pw;
diff --git a/pw.h b/pw.h
index 6ee75b0..f003845 100644 (file)
--- a/pw.h
+++ b/pw.h
@@ -1,4 +1,4 @@
-/* $MirOS: contrib/code/jupp/pw.h,v 1.3 2009/10/18 14:52:56 tg Exp $ */
+/* $MirOS: contrib/code/jupp/pw.h,v 1.4 2017/01/11 22:56:49 tg Exp $ */
 /*
  *     Prompt windows
  *     Copyright
@@ -16,7 +16,7 @@
              int (*tab)(),void *object,int *notify);
  * Create a prompt window for the given window
  */
-BW *wmkpw PARAMS((W *w, unsigned char *prompt, B **history, int (*func) (), unsigned char *huh, int (*abrt) (), int (*tab) (), void *object, int *notify, struct charmap *map));
+BW *wmkpw PARAMS((W *w, unsigned char *prompt, B **history, int (*func) (), const unsigned char *huh, int (*abrt) (), int (*tab) (), void *object, int *notify, struct charmap *map));
 
 int ucmplt PARAMS((BW *bw, int k));
 
diff --git a/rc.c b/rc.c
index a57e53b..3f38aba 100644 (file)
--- a/rc.c
+++ b/rc.c
@@ -1,4 +1,4 @@
-/* $MirOS: contrib/code/jupp/rc.c,v 1.21 2016/10/29 23:44:45 tg Exp $ */
+/* $MirOS: contrib/code/jupp/rc.c,v 1.22 2017/01/11 22:04:32 tg Exp $ */
 /*
  *     *rc file parser
  *     Copyright
@@ -631,7 +631,7 @@ static int syntaxcmplt(BW *bw)
                p = (unsigned char *)getenv("HOME");
                if (p) {
                        unsigned char buf[1024];
-                       joe_snprintf_1((char *)buf,sizeof(buf),"%s/.joe/syntax",p);
+                       joe_snprintf_1((char *)buf,sizeof(buf),"%s/.jupp/syntax",p);
                        if (!chpwd(buf) && (t = rexpnd(US "*.jsf"))) {
                                for (x = 0; x != aLEN(t); ++x)
                                        *strrchr((char *)t[x],'.') = 0;
index 0ecc799..8a56eb8 100644 (file)
--- a/syntax.c
+++ b/syntax.c
@@ -1,4 +1,4 @@
-/* $MirOS: contrib/code/jupp/syntax.c,v 1.15 2017/01/10 20:55:03 tg Exp $ */
+/* $MirOS: contrib/code/jupp/syntax.c,v 1.16 2017/01/11 22:04:33 tg Exp $ */
 /*
  *     Syntax highlighting DFA interpreter
  *     Copyright
@@ -265,7 +265,7 @@ struct high_syntax *load_dfa(const unsigned char *name)
        /* Load it */
        p = (unsigned char *)getenv("HOME");
        if (p) {
-               joe_snprintf_2((char *)buf,sizeof(buf),"%s/.joe/syntax/%s.jsf",p,name);
+               joe_snprintf_2((char *)buf,sizeof(buf),"%s/.jupp/syntax/%s.jsf",p,name);
                f = fopen((char *)buf,"r");
        }
 
index fc1a199..faf3d6a 100644 (file)
--- a/termcap.c
+++ b/termcap.c
@@ -1,4 +1,4 @@
-/* $MirOS: contrib/code/jupp/termcap.c,v 1.11 2016/10/29 23:44:46 tg Exp $ */
+/* $MirOS: contrib/code/jupp/termcap.c,v 1.12 2017/01/11 22:41:19 tg Exp $ */
 /*
  *     TERMCAP/TERMINFO database interface
  *     Copyright
@@ -36,7 +36,7 @@ unsigned char *joeterm = NULL;
 
 /* Default termcap entry */
 
-unsigned char defentry[] = "\
+static const unsigned char defentry[] = "\
 :co#80:li#25:am:\
 :ho=\\E[H:cm=\\E[%i%d;%dH:cV=\\E[%i%dH:\
 :up=\\E[A:UP=\\E[%dA:DO=\\E[%dB:nd=\\E[C:RI=\\E[%dC:LE=\\E[%dD:\
diff --git a/types.h b/types.h
index a968ff3..7bfc98e 100644 (file)
--- a/types.h
+++ b/types.h
@@ -1,4 +1,4 @@
-/* $MirOS: contrib/code/jupp/types.h,v 1.14 2014/10/23 15:30:52 tg Exp $ */
+/* $MirOS: contrib/code/jupp/types.h,v 1.15 2017/01/11 22:56:49 tg Exp $ */
 
 #ifndef _JOE_TYPES_H
 #define _JOE_TYPES_H
@@ -300,7 +300,7 @@ struct window {
 
        const unsigned char *msgt;      /* Message at top of window */
        const unsigned char *msgb;      /* Message at bottom of window */
-       unsigned char   *huh;           /* Name of window for context sensitive hlp */
+       const unsigned char *huh;       /* Name of window for context sensitive hlp */
        int     *notify;        /* Address of kill notification flag */
 };
 
diff --git a/uedit.c b/uedit.c
index 673e428..4b9542b 100644 (file)
--- a/uedit.c
+++ b/uedit.c
@@ -1,4 +1,4 @@
-/* $MirOS: contrib/code/jupp/uedit.c,v 1.14 2016/10/07 20:36:41 tg Exp $ */
+/* $MirOS: contrib/code/jupp/uedit.c,v 1.15 2017/01/11 22:56:49 tg Exp $ */
 /*
  *     Basic user edit functions
  *     Copyright
@@ -1405,7 +1405,7 @@ int uquote8(BW *bw)
                return -1;
 }
 
-extern unsigned char srchstr[];
+extern const unsigned char srchstr[];
 
 static int doctrl(BW *bw, int c, void *object, int *notify)
 {
index bf80339..29e216d 100644 (file)
--- a/usearch.c
+++ b/usearch.c
@@ -1,4 +1,4 @@
-/* $MirOS: contrib/code/jupp/usearch.c,v 1.9 2017/01/10 19:16:28 tg Exp $ */
+/* $MirOS: contrib/code/jupp/usearch.c,v 1.10 2017/01/11 22:56:50 tg Exp $ */
 /*
  *     Search & Replace system
  *     Copyright
@@ -475,7 +475,8 @@ static P *insert(SRCH *srch, P *p, unsigned char *s, int len)
 /* Query for search string, search options, possible replacement string,
  * and execute first search */
 
-unsigned char srchstr[] = "Search";    /* Context sensitive help identifier */
+/* Context sensitive help identifier */
+const unsigned char srchstr[] = "Search";
 
 static int pfabort(BW *bw, SRCH *srch)
 {
diff --git a/utf8.c b/utf8.c
index 88f9806..c180947 100644 (file)
--- a/utf8.c
+++ b/utf8.c
@@ -1,4 +1,4 @@
-/* $MirOS: contrib/code/jupp/utf8.c,v 1.18 2017/01/10 23:21:56 tg Exp $ */
+/* $MirOS: contrib/code/jupp/utf8.c,v 1.19 2017/01/11 21:48:58 tg Exp $ */
 /*
  *     UTF-8 Utilities
  *     Copyright
@@ -230,7 +230,7 @@ int utf8_decode_fwrd(unsigned char **p,int *plen)
 /* Initialize locale for JOE */
 
 #ifdef USE_CODEPAGE
-static unsigned int cygwin32_get_cp(void);
+extern unsigned int cygwin32_get_cp(void);
 #endif
 
 struct charmap *locale_map;
@@ -319,17 +319,3 @@ int from_utf8(struct charmap *map,unsigned char *s)
        else
                return c;
 }
-
-#ifdef USE_CODEPAGE
-#include <windows.h>
-
-/*
- * Mirror get_cp() in winsup/cygwin/miscfuncs.cc as used by
- * dev_console::str_to_con() in winsup/cygwin/fhandler_console.cc
- */
-static unsigned int
-cygwin32_get_cp(void)
-{
-       return (AreFileApisANSI() ? GetACP() : GetOEMCP());
-}
-#endif
diff --git a/w.c b/w.c
index 4bbb664..ec52a48 100644 (file)
--- a/w.c
+++ b/w.c
@@ -1,4 +1,4 @@
-/* $MirOS: contrib/code/jupp/w.c,v 1.6 2014/07/25 21:26:45 tg Exp $ */
+/* $MirOS: contrib/code/jupp/w.c,v 1.7 2017/01/11 22:56:50 tg Exp $ */
 /*
  *     Window system
  *     Copyright
@@ -568,7 +568,7 @@ void wshowone(W *w)
 
 /* Create a window */
 
-W *wcreate(SCREEN *t, WATOM *watom, W *where, W *target, W *original, int height, unsigned char *huh, int *notify)
+W *wcreate(SCREEN *t, WATOM *watom, W *where, W *target, W *original, int height, const unsigned char *huh, int *notify)
 {
        W *new;
 
diff --git a/w.h b/w.h
index f8eb09f..72ce395 100644 (file)
--- a/w.h
+++ b/w.h
@@ -1,4 +1,4 @@
-/* $MirOS: contrib/code/jupp/w.h,v 1.3 2012/12/30 17:10:59 tg Exp $ */
+/* $MirOS: contrib/code/jupp/w.h,v 1.4 2017/01/11 22:56:50 tg Exp $ */
 /*
  *     Window management
  *     Copyright
@@ -88,7 +88,7 @@ void chsize PARAMS(());
  * Returns the new window or returns 0 if there was not enough space to
  * create the window and maintain family integrity.
  */
-W *wcreate PARAMS((SCREEN *t, WATOM *watom, W *where, W *target, W *original, int height, unsigned char *huh, int *notify));
+W *wcreate PARAMS((SCREEN *t, WATOM *watom, W *where, W *target, W *original, int height, const unsigned char *huh, int *notify));
 
 /* int wabort(W *w);
  *
diff --git a/win32.c b/win32.c
index ec775da..4c69689 100644 (file)
--- a/win32.c
+++ b/win32.c
@@ -1,7 +1,7 @@
-/* $MirOS: contrib/code/jupp/win32.c,v 1.2 2016/10/30 02:38:35 tg Exp $ */
+/* $MirOS: contrib/code/jupp/win32.c,v 1.3 2017/01/11 21:48:58 tg Exp $ */
 
 /*-
- * Copyright (c) 2016
+ * Copyright (c) 2016, 2017
  *     mirabilos <m@mirbsd.org>
  *
  * Provided that these terms and disclaimer and all copyright notices
  * of dealing in the work, even if advised of the possibility of such
  * damage or existence of a defect, except proven that it results out
  * of said person's immediate fault when using the work as intended.
- *-
- * Retrieve the realpath of the program (what could be argv[0] if the
- * Unix designers had wanted it).
  */
 
+#ifdef __CYGWIN__
+
+#include <cygwin/version.h>
 #include <windows.h>
 
+#if JUPP_WIN32RELOC
+/*
+ * Retrieve the realpath of the program (what could be argv[0] if the
+ * Unix designers had wanted it).
+ */
 char *
 cygwin32_argv0(void)
 {
@@ -38,3 +43,32 @@ cygwin32_argv0(void)
        buf[res] = '\0';
        return (strdup(buf));
 }
+#endif
+
+/* return command line as passed to the .EXE (just like cygwin32’s dcrt0.cc) */
+unsigned char *
+cygwin32_cmdline(void)
+{
+       char *cp;
+
+       cp = strdup(GetCommandLineA());
+       if (!AreFileApisANSI())
+               CharToOemA(cp, cp);
+       return ((unsigned char *)cp);
+}
+
+/* Cygwin before 1.7.2 did not have locale support */
+#if defined(CYGWIN_VERSION_API_MAJOR) && (CYGWIN_VERSION_API_MAJOR < 1) && \
+    defined(CYGWIN_VERSION_API_MINOR) && (CYGWIN_VERSION_API_MINOR < 222)
+/*
+ * Mirror get_cp() in winsup/cygwin/miscfuncs.cc as used by
+ * dev_console::str_to_con() in winsup/cygwin/fhandler_console.cc
+ */
+unsigned int
+cygwin32_get_cp(void)
+{
+       return (AreFileApisANSI() ? GetACP() : GetOEMCP());
+}
+#endif
+
+#endif /* __CYGWIN__ */