~mirabilos/jupp/trunk

1 by tg
Initial revision
1
This documentation should go elsewhere, but I haven't gotten around to it
2
yet.
3
44 by tg
sync a few files with upstream; bump to 3.1jupp6; mention gcc glitch
4
GCC
5
---
6
176 by tg
fixes from packages.debian.org/joe are merged; now do a warning cleanup
7
Disable the following warnings; the code doesn't cope with it:
684 by tg
major overhaul of charmap handling + quelling of lots of warnings
8
-Wno-pointer-sign
9
-Wno-unused-parameter
530 by tg
unfortunately, the polymorphic problems are not yet solved
10
-Wno-strict-prototypes
176 by tg
fixes from packages.debian.org/joe are merged; now do a warning cleanup
11
1 by tg
Initial revision
12
UTF-8
13
-----
14
520 by tg
update
15
Do note that the joerc files must be written using the 8-bit encoding,
16
not in UTF-8. Syntax files, on the other hand, absolutely must be
17
written in UTF-8 since jupp29.
313 by tg
bump
18
1 by tg
Initial revision
19
JOE now handles two classes of character sets: UTF-8 and byte coded (like
20
ISO-8859-1).  It can not yet handle other major classes such as UTF-16 or
21
GB2312. There are other restrictions: character sets must use LF (0x0A) or
22
CR-LF (0x0D - 0x0A) as line terminators, space must be 0x20 and tab must be
23
0x09. Basically, the files must be UNIX or MS-DOS compatible text files.
24
25
This means EBCDIC will not work properly (but you would need to handle fixed
26
record length lines anyway) and character sets which use CR terminated lines
27
(MACs) will not yet work.
28
29
The terminal and the file can have different encodings.  JOE will translate
30
between the two.  Currently, one of the two must be UTF-8 for translation to
31
work.
32
33
The character set for the terminal and the default character set assumed for
34
files is determined by the 'LC_ALL' environment variable (and if that's not
520 by tg
update
35
set, LC_CTYPE and LANG are also checked). 'JOECHARMAP' overrides this value.
1 by tg
Initial revision
36
37
For example, if LC_ALL is set to:
38
39
	de_DE
40
41
Then the character set will be ISO-8859-1.
42
43
If LC_ALL is set to:
44
45
	de_DE.UTF-8
46
47
The character set will UTF-8.
48
49
Hit ^T E to change the coding for the file.  Hit <tab> <tab> at this prompt
50
to get a list of available codings.  There are a number of built-in
412 by tg
use ~/.jupp/ (for now) not ~/.joe/ to not conflict with joe 4.x
51
character sets, plus you can install character sets in the ~/.jupp/charmaps
1 by tg
Initial revision
52
and /usr/local/etc/joe/charmaps directories.
53
54
Check: /usr/share/i18n/charmaps for example character set files.  Only
55
byte oriented character sets will work.  Also, the file should not be
56
gzipped (all of the charmap file in /usr/share/i18n/charmaps on my computer
57
were compressed).  The parser is very bad, so basically the file has to look
58
exactly like the example one in /usr/local/etc/joe/charmaps.
59
60
You can hit ^K <space> to see the current character set.
61
649 by tg
same as in commitid 1005B6CF36E3932B560, plus assorted cleanup
62
You can hit ` x to enter a UCS character if the file coding is UTF-8.
1 by tg
Initial revision
63
64
Programming
65
-----------
66
67
	Try ^K , and ^K .  These keys select the current block (based on
68
indentation) and shift it left or right by the -istep and -indentc.
69
70
Selecting blocks
71
----------------
72
73
	The "classic" way is to hit ^K B at the beginning and ^K K at the
74
end.  These set pointers called markb and markk.  Once these are set you
75
can jump to markb with ^[ b and jump to markk with ^[ k.
76
77
	New way no.1: hit Ctrl-space to start selecting, move the cursor,
78
then hit Ctrl-space to complete the block.  Hit Ctrl-space in the block to
79
cancel it.  Hit Ctrl-space outside of the block to start selecting a new
80
one.  This uses the "toggle_marking" function.  Also any block command will
191 by tg
release this as joe 3.1jupp18
81
complete the block. (joe flavour only)
1 by tg
Initial revision
82
83
	New way no.2: hit Ctrl-rtarw to start selecting rightward.  Each
84
time you hit Ctrl-rtarw, the block is extended one more to the right.  This
85
uses a simple macro: "begin_marking,rtarw,toggle_marking".  Unfortunately,
86
there is no standard way to get the keysequence given by the terminal
87
emulator when you hit Ctrl-rtarw.  Instead you have to determine this
88
sequence yourself and enter it directly in the joerc file.  Some examples
89
are given for xterm and gnome-terminal.  Hit ` rtarw to have the sequence
90
shown on your screen.  Note that Putty uses ^[ ^[ [ C which will not appear
91
with ` rtarw (also ^[ ^[ is set book mark, so you need to unbind it to do
191 by tg
release this as joe 3.1jupp18
92
this in Putty). (joe flavour only)
1 by tg
Initial revision
93
94
	Also you can hit Ctrl-delete to cut and Ctrl-insert to paste if the
191 by tg
release this as joe 3.1jupp18
95
sequence for these keys are known. (joe flavour only)
96
97
	New way No.3: press down shift, then move the cursor with the
98
arrow keys or, optionally with ctrl, the Home and End keys; release the
99
shift key when done and remember that the cursor indicator on screen is
100
not part of the selection. (all flavours)
101
102
	Also, you can pass "-keymap cua" on the command line to change
103
the key bindings for ^Z (Undo), ^X (Cut), ^C (Copy), ^V (Paste) as in
104
contemporary GUI editors. (joe, rjoe, jstar, jupp flavours only)
105
106
	Using Picture mode and Rectangle mode may help with that.
78 by tg
RCS IDs to the remaining few (non-autogen'd) files
107
121 by tg
backport hex editing mode from joe 3.7 for waga as late birthday present
108
Hex edit mode
109
-------------
110
111
When this mode is selected (either put -hex on the command line, or look for
112
"Hex edit mode" after hitting ^T), the buffer is displayed as a hex dump,
113
but all of the editing commands operate the same way.  It is most useful to
114
select overtype mode in conjunction with hex dump (hit ^T T).  Then typing
115
will not insert.
116
117
- To enter the hex byte 0xF8 type ` x F 8
118
119
- You can use ^KC to copy a block as usual.  If overtype mode is selected,
120
  the block will overwrite the destination data without changing the size of
522 by tg
whitespace at EOL annoys me
121
  the file.  Otherwise it inserts.
121 by tg
backport hex editing mode from joe 3.7 for waga as late birthday present
122
123
- Hit ESC x byte <Enter>, to jump to a particular byte offset.  Hex values
124
  can be entered into this prompt like this: 0x2000.
125
126
- Search, incremental search, and search & replace all operate as usual.
127
689 by tg
add © hints for the binary package
128
Licences (binary package summary)
129
---------------------------------
130
131
joe is Copyright
132
 © 1992, 2004 Joseph H. Allen
133
 © 2001 Marek 'Marx' Grac
134
 © 2004, 2006, 2011, 2013, 2014, 2017, 2018, 2020 mirabilos
135
jupp is Copyright
136
 © 1997–2020 Thorsten Glaser
137
138
 * jupp is free software; you can redistribute and/or modify it, deal
139
 * in the work, etc. under the terms of the GNU General Public Licen-
140
 * se, version 1 (of February 1989) as published by the Free Software
141
 * Foundation, reproduced in the file COPYING in the jupp source code
142
 * distribution. If jupp is combined with other independent work, for
143
 * example libraries or when using crunchgen, into a combined binary,
144
 * that may be conveyed under any version of the GPL, as published by
145
 * the Free Software Foundation, and any compatible licence permitted
146
 * by any version of the GPL, as above.
147
148
jupp is also:
149
 * Copyright © 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012,
150
 *	       2013, 2014, 2016, 2017, 2018, 2020
151
 *	mirabilos <m@mirbsd.org>
152
 *
153
 * Provided that these terms and disclaimer and all copyright notices
154
 * are retained or reproduced in an accompanying document, permission
155
 * is granted to deal in this work without restriction, including un‐
156
 * limited rights to use, publicly perform, distribute, sell, modify,
157
 * merge, give away, or sublicence.
158
 *
159
 * This work is provided “AS IS” and WITHOUT WARRANTY of any kind, to
160
 * the utmost extent permitted by applicable law, neither express nor
161
 * implied; without malicious intent or gross negligence. In no event
162
 * may a licensor, author or contributor be held liable for indirect,
163
 * direct, other damage, loss, or other issues arising in any way out
164
 * of dealing in the work, even if advised of the possibility of such
165
 * damage or existence of a defect, except proven that it results out
166
 * of said person’s immediate fault when using the work as intended.
167
168
strlfun.inc (optional) additionally is:
169
 * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
170
 *
171
 * Permission to use, copy, modify, and distribute this software for any
172
 * purpose with or without fee is hereby granted, provided that the above
173
 * copyright notice and this permission notice appear in all copies.
174
 *
175
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
176
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
177
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
178
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
179
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
180
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
181
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
182
183
I18N data is:
184
 * Parts Copyright © 1991–2020 Unicode, Inc. All rights reserved.
185
 * Distributed under the Terms of Use in
186
 *     https://www.unicode.org/copyright.html.
187
 *
188
 * Permission is hereby granted, free of charge, to any person obtaining
189
 * a copy of the Unicode data files and any associated documentation
190
 * (the "Data Files") or Unicode software and any associated documentation
191
 * (the "Software") to deal in the Data Files or Software
192
 * without restriction, including without limitation the rights to use,
193
 * copy, modify, merge, publish, distribute, and/or sell copies of
194
 * the Data Files or Software, and to permit persons to whom the Data Files
195
 * or Software are furnished to do so, provided that either
196
 * (a) this copyright and permission notice appear with all copies
197
 * of the Data Files or Software, or
198
 * (b) this copyright and permission notice appear in associated
199
 * Documentation.
200
 *
201
 * THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
202
 * ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
203
 * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
204
 * NONINFRINGEMENT OF THIRD PARTY RIGHTS.
205
 * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
206
 * NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
207
 * DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
208
 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
209
 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
210
 * PERFORMANCE OF THE DATA FILES OR SOFTWARE.
211
 *
212
 * Except as contained in this notice, the name of a copyright holder
213
 * shall not be used in advertising or otherwise to promote the sale,
214
 * use or other dealings in these Data Files or Software without prior
215
 * written authorization of the copyright holder.
216
217
popen.inc (optional) is:
218
 * Copyright (c) 1988, 1993
219
 *	The Regents of the University of California.  All rights reserved.
220
 *
221
 * This code is derived from software written by Ken Arnold and
222
 * published in UNIX Review, Vol. 6, No. 8.
223
 *
224
 * Redistribution and use in source and binary forms, with or without
225
 * modification, are permitted provided that the following conditions
226
 * are met:
227
 * 1. Redistributions of source code must retain the above copyright
228
 *    notice, this list of conditions and the following disclaimer.
229
 * 2. Redistributions in binary form must reproduce the above copyright
230
 *    notice, this list of conditions and the following disclaimer in the
231
 *    documentation and/or other materials provided with the distribution.
232
 * 3. Neither the name of the University nor the names of its contributors
233
 *    may be used to endorse or promote products derived from this software
234
 *    without specific prior written permission.
235
 *
236
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
237
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
238
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
239
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
240
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
241
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
242
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
243
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
244
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
245
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
246
 * SUCH DAMAGE.
247
412 by tg
use ~/.jupp/ (for now) not ~/.joe/ to not conflict with joe 4.x
248
___________________________________________________________________
689 by tg
add © hints for the binary package
249
$MirOS: contrib/code/jupp/HINTS,v 1.19 2020/03/27 08:28:53 tg Exp $