Compare commits

...

956 Commits

Author SHA1 Message Date
Chris Allegretta
8b75a78f6f GNU nano 1.1.9 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1211 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-05-13 00:09:30 +00:00
Jordi Mallach
193d77527b Swedish updates.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1210 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-05-12 22:57:27 +00:00
Jordi Mallach
a5e889b7cf Added autom4ate.cache, whatever that is.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1209 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-05-12 21:24:11 +00:00
Chris Allegretta
5e76fe9997 Add same regfree call to color.c:update_color()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1208 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-05-12 20:54:16 +00:00
Chris Allegretta
3674c1da71 - winio.c:edit_add() - Add in the necessary regfree() calls to stop nano from leaking memory like a sieve when using color syntax highlighting :-)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1207 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-05-12 20:43:49 +00:00
Chris Allegretta
6232d6659f DB's latest patch, minus one totsize--. Also fixed a < in help_init that should be <=
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1206 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-05-12 19:52:15 +00:00
Jordi Mallach
403f8dc0a3 Added nano.spec.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1205 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-05-11 16:02:31 +00:00
Chris Allegretta
4dc03d5733 DLR's latest patch
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1204 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-05-11 03:04:44 +00:00
Chris Allegretta
7c27be42d0 added an update_color, updated edit_add, i18ned a string and changed some getopt handlers in main to mallocstrcpy
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1203 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-05-05 23:03:54 +00:00
Jordi Mallach
ca76fa9b39 Swedish translation updates (Christian Rose).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1202 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-05-05 15:04:26 +00:00
Chris Allegretta
9dccc48a64 Update and space the nanorc.sample a bit better
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1201 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-05-04 04:27:06 +00:00
Chris Allegretta
21c433dca6 Global flag -Y, --syntax to specify the type on the command line, if there's no good filename regex to use. Global variable syntaxstr. Made some errors in the rc file less fatal
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1200 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-05-04 04:24:29 +00:00
Chris Allegretta
09900ff808 Global flag -Y, --syntax to specify the type on the command line, if there's no good filename regex to use. Global variable syntaxstr. Made some errors in the rc file less fatal
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1199 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-05-04 04:23:30 +00:00
Chris Allegretta
9189c1f258 Oops, get rid of the stupid debugging code
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1198 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-05-04 03:58:44 +00:00
Chris Allegretta
b6c5dc29ef - Added syntax command to .nanorc file, to allow multiple syntaxes. New function color.c:update_color(), calls in various files.c places, syntaxtype struct, global variables syntaxes, syntaxfile_regexp and synfilematches
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1197 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-05-04 03:47:33 +00:00
Jordi Mallach
42c6405572 s/Debian GNU/Linux/Debian GNU/g
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1196 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-04-30 02:33:14 +00:00
Jordi Mallach
934b76b0ed Indonesian translation updates (Tedi Heriyanto).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1195 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-04-25 22:24:48 +00:00
Chris Allegretta
dab017e786 - More cleanups with DISABLE flags, better free_shortcutage and free_toggle, and get rid of unnecessary variable decls with NANO_SMALL in shortcut_init() by David Benbennick
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1194 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-04-23 10:56:06 +00:00
Chris Allegretta
b275175bef Re-add O_CREAT since I botched the merge, some indentation fixes also, by DB
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1193 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-04-23 10:22:33 +00:00
Chris Allegretta
0547eb36c4 - General: - Change from read() and write() to file streams by Jay Carlson. Allows OS to implement read and write ahead rather than making us do it. Hopefully merged properly
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1192 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-04-22 23:52:34 +00:00
Chris Allegretta
2542274250 Prepend fixes for O_CREAT & append compatibililty by David Benbennick
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1191 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-04-21 23:15:36 +00:00
Jordi Mallach
0417a7b7f2 Russian and Ukrainian updates.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1189 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-04-19 21:59:35 +00:00
Chris Allegretta
0e9b7aa16d - General: - Preliminary prepend code. This may be a bad idea, but I've been wanting it for awhile now and we'll see how bad it messes everything up. Changes to files.c:do_writeout(), write_file()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1188 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-04-16 03:15:47 +00:00
Jordi Mallach
7f80e6639f Italian translation updates (Marco Colombo).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1185 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-04-13 16:31:03 +00:00
Jordi Mallach
d301e10372 Dutch translation updates (Guus Sliepen).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1184 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-04-13 14:46:26 +00:00
Jordi Mallach
b18bc69b88 Swedish updates.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1174 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-04-10 16:26:17 +00:00
Chris Allegretta
f2387fbdf7 - Change to openfilestruct for multibuffer mode by DLR. New functions nano.c:make_new_opennode(), free_openfilestruct(), delete_opennode(), unlink_opennode(), splice_opennode(), new struct openfilestruct in nano.h
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1173 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-04-10 02:31:20 +00:00
Chris Allegretta
70feb4f8e5 Back that out, as it braks Linux :(
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1172 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-04-08 17:48:15 +00:00
Chris Allegretta
108ff58956 - FreeBSD compat. Remove KEY_DC from the delete shortcut in global.c:shortcut_init(), add case for 330 under nano.c:main()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1171 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-04-08 17:44:10 +00:00
Chris Allegretta
7162e3d686 DB's latest patch
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1170 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-04-06 05:02:14 +00:00
Chris Allegretta
66f373f3e7 - nano.h: - NANO_ALT_COMMAND and NANO_ALT_PERIOD were reversed (lol) (David Benbennick)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1169 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-04-05 23:33:09 +00:00
Jordi Mallach
8349c92e09 gettext 0.11 writes to messages.mo by default.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1168 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-04-05 11:26:01 +00:00
Jordi Mallach
0ab011f54a ca, de, es, fr, gl updates.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1167 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-04-05 11:25:00 +00:00
Chris Allegretta
8902ebad43 - nano.spec.in: - Don't put Chris' name as the Packager in the distribution by default (Im an idiot)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1166 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-30 18:02:54 +00:00
Chris Allegretta
32b4c960ac Back to CVS ver
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1165 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-30 16:58:55 +00:00
Chris Allegretta
4ceb30cfe7 GNU nano 1.1.8 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1163 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-30 16:56:53 +00:00
Chris Allegretta
ec8c1bc79d Fix the formatting of the spec a leetle
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1162 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-30 16:52:42 +00:00
Chris Allegretta
06d62372dc - Added new nano.spec file from Brett <brett@bad-sports.com>, added because maintaining the spec file is getting to be a large
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1161 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-30 16:51:38 +00:00
Chris Allegretta
78f0fc61ff rcfile fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1160 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-29 19:41:57 +00:00
Chris Allegretta
77777d4c0d Add David Benbennick's changes to open_pipe() and move it to nano.c, and add his nperror function
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1159 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-29 16:31:29 +00:00
Chris Allegretta
9b4055c4da Bah, don't fix what isn't broken
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1158 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-29 16:00:59 +00:00
Chris Allegretta
6ca01b1cd8 - nano.c: - Move the termios things in main() up to signal_init(), where they should probably be anyway
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1157 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-29 15:38:17 +00:00
Chris Allegretta
8e207bf03f - nano.c: - Move the termios things in main() up to signal_init(), where they should probably be anyway
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1156 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-29 15:31:54 +00:00
Chris Allegretta
f3a07b2d7e - winio.c:do_cursorpos() - Make col numbering start from 1 (suggested by Andrew Ho)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1155 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-29 15:15:38 +00:00
Chris Allegretta
e373909037 - files.c:do_insertfile() - Handle cancel from ExtCmd properly (David Benbennick)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1154 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-29 15:06:05 +00:00
Jordi Mallach
465a0ffa15 Danish updates.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1153 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-29 00:46:05 +00:00
Chris Allegretta
2598c66d81 DLR's patch
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1152 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-28 01:59:34 +00:00
Jordi Mallach
7afc6d9468 Italian updates (Marco Colombo).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1151 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-27 16:34:46 +00:00
Chris Allegretta
d1c2c1ca76 - search.c:do_gotoline() - Set placewewant if we actually move to a different line
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1150 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-26 17:58:42 +00:00
Chris Allegretta
f6cba64376 David's fixes for read_file and the assert stuff for renumber
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1147 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-26 13:05:54 +00:00
Chris Allegretta
bb88ece93c Rocco's mods to open_pipe
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1145 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-25 13:40:39 +00:00
Chris Allegretta
f21f3fcc1e - nano.c:do_int_speller() - Fix zombie processes and spelling buffer issues (Rocco Corsi)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1143 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-25 03:26:27 +00:00
Jordi Mallach
9c20ab0d5e Indonesian translation updates.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1142 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-25 01:13:59 +00:00
Chris Allegretta
373bc2fa48 General - Added separate regex variable (color_regex and colormatches) so that color syntax and regex search/replace can coexist
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1141 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-24 23:20:32 +00:00
Chris Allegretta
3533a348fc General - Added separate regex variable (color_regex and colormatches) so that color syntax and regex search/replace can coexist
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1140 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-24 23:19:32 +00:00
Chris Allegretta
b23d14460e Redo open_pipe with just pipes and no FIFOs
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1138 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-21 23:39:56 +00:00
Chris Allegretta
cf1d812ccb - nano.c:do_justify() - More fixes for indented justify (David Benbennick)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1137 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-21 19:53:36 +00:00
Chris Allegretta
52c5a6ea48 External command code and fix for BUG #70
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1136 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-21 05:07:28 +00:00
Jordi Mallach
7fa082dc90 French translation updates (Jean-Philippe Guérard).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1133 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-17 00:35:41 +00:00
Chris Allegretta
dce44abec7 winio.c:do_credits() - Add Thomas Dickey
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1131 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-16 01:03:41 +00:00
Jordi Mallach
b83e61aea0 Polish translation updates (Wojciech Kotwica).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1130 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-15 15:15:13 +00:00
Jordi Mallach
286ee1faff Fix date.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1129 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-14 11:01:21 +00:00
Jordi Mallach
057c3c4aba Russian and Ukrainian translation updates (Sergey A. Ribalchenko).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1128 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-14 11:00:56 +00:00
Jordi Mallach
6e6a7ac493 Iberian translations update.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1127 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-12 17:23:07 +00:00
Jordi Mallach
5477e1028a Galician translatin updates (Jacobo Tarrio).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1126 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-12 16:15:50 +00:00
Jordi Mallach
558b5d8774 French translation updates (Jean-Philippe Guérard).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1125 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-11 13:23:33 +00:00
Chris Allegretta
45329a127a Rocco's fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1124 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-10 01:22:21 +00:00
Chris Allegretta
d1ec7b0287 Allow flags with args to be translatable
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1123 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-09 20:05:26 +00:00
Chris Allegretta
b479c89594 - nano.c:help_init() - Various fixes and string changes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1122 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-09 20:03:10 +00:00
Chris Allegretta
1f8394d4bc Add newlines to gotodir help text
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1121 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-09 19:58:18 +00:00
Jordi Mallach
f7277b8176 Header fixes.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1120 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-09 19:42:08 +00:00
Chris Allegretta
3fc5d5722c - nano.c:usage() - Rewritten to encompass systems with and without GETOPT_LONG. New function print1opt does most of the dirty work, stops duplication of effort and eases translator's jobs. Also breaks all the current translations ;-)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1119 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-09 18:51:58 +00:00
Jordi Mallach
4e803aa59b Catalan, Indonesian and Spanish translation updates.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1118 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-09 18:05:53 +00:00
Chris Allegretta
97e6fe6331 - nano.c:usage() - Add -N to short format (no GETOPT_LONG) strings (noticed by Jordi)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1117 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-09 17:38:47 +00:00
Jordi Mallach
4951c66adc German & Swedish translation updates.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1116 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-07 14:12:53 +00:00
Chris Allegretta
5902f9672d - nano.c:help_init() - Capitalize Meta altkeys
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1115 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-07 12:40:39 +00:00
Chris Allegretta
e8e10347a9 - rcfile.c:parse_rcfile() - Don't use i for both for loop and atoi(), fixes lots of potential crashes, 1st reported by Jean-Philippe Gue'rard
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1114 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-07 00:47:22 +00:00
Chris Allegretta
1596d38698 - rcfile.c:parse_rcfile() - Don't use i for both for loop and atoi(), fixes lots of potential crashes, 1st reported by Jean-Philippe Gue'rard
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1113 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-07 00:46:17 +00:00
Jordi Mallach
79dcc475a7 Groar. Kill it this time.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1112 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-06 16:17:49 +00:00
Chris Allegretta
564535a6f7 - files.c:check_writable_directory() - Stat full_path, not path (Steven Kneizys)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1111 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-06 15:32:17 +00:00
Chris Allegretta
40ecbad296 NANO_SMALL issues
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1110 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-06 15:27:44 +00:00
Jordi Mallach
ee91f71a66 shitstamp
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1109 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-06 10:58:52 +00:00
Chris Allegretta
bef1297c6d Type misalignments and mem leaks in renumber_all, do_justify and do_spell (Rocco & Steven Kneizys)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1108 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-06 03:30:40 +00:00
Chris Allegretta
26d59eae5f Back to CVS
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1107 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-05 23:49:14 +00:00
Chris Allegretta
97489d211f GNU nano 1.1.7 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1105 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-05 23:47:44 +00:00
Chris Allegretta
46c1b9e344 nano.c:do_justify() - Don't continue to justify string if it's indented more (quoting wise) than the beginning of the justification
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1104 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-05 19:58:45 +00:00
Chris Allegretta
d4fa0d3904 justify_format(), do_justify() - Various fixes for starting blank spaces, spaces after punctuation, & segfault with quoting strings (David Benbennick)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1103 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-05 19:55:55 +00:00
Jordi Mallach
46e3118e9d We actually need ac 2.52.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1102 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-05 18:59:56 +00:00
Jordi Mallach
87435d9223 Removed m4 stuff from topdir Makefile.am, again.
Added a small macro that tells configure.ac where to look for macros.
Removed cruftly stamp-h.in from rep.


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1101 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-05 17:58:34 +00:00
Jordi Mallach
a3322fd65d Polish translation updates (Wojciech Kotwica).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1100 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-05 11:23:17 +00:00
Chris Allegretta
459c03d3fc Ugh\! Re-readding the M4 stuff because I don't want to have to run autogen every time I touch configure.ac
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1099 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-04 22:29:19 +00:00
Chris Allegretta
6324530ec8 Minor fix for quote code, forgot to adjust null by qdepth
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1098 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-04 18:12:28 +00:00
Jordi Mallach
7a053fc431 Added -N, -Q.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1097 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-04 17:35:44 +00:00
Chris Allegretta
fd0fe7ef15 Prototype fix for get_full_path (DLR)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1096 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-04 16:30:17 +00:00
Chris Allegretta
40639ddc0c Fixed broken mouse handling with new shortcut setup
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1095 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-04 12:25:34 +00:00
Chris Allegretta
309aa50fda Fix typo and add man page
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1094 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-04 12:15:44 +00:00
Chris Allegretta
d76ca2bc9f Add rcfile support for quotestr and fix strcasestr
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1093 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-03 22:52:52 +00:00
Chris Allegretta
e4f940dbaa - Preliminary quoting support for justify. New arg -Q, --quotestr, changes to do_justify(), global variable quotestr()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1092 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-03 22:36:36 +00:00
Chris Allegretta
5f87021c08 Make do_cursorpos() use xpt() instead of just current_x which is inaccurate
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1091 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-01 02:25:35 +00:00
Chris Allegretta
6f746000c0 Back out M4 stuff in Makefile.am since it doesn't seem to be needed - wtf
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1090 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-03-01 00:34:49 +00:00
Chris Allegretta
99ed9dc9fe - utils.c:strcasestr(),revstrcasestr() - Renamed to stristr and revstristr since strcasestr has not been confirmed to be detected properly on various Linux systems
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1089 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-28 00:57:18 +00:00
Chris Allegretta
6235a7d6d5 Get rid of stupid uninitialized warnings and move nano_dos_msg and nano_mac_msg into NANO_SMALL check
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1087 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-27 04:38:32 +00:00
Chris Allegretta
2d698b7132 Makefile.am: - Re-added M4DIR & ACLOCAL_AMFLAGS, make seems to fail without it Jordi ;-)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1086 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-27 04:16:52 +00:00
Chris Allegretta
f5de33a6ef - Many malloc() cleanups and files.c tweaks by Steven Kneizys, new functions utils.c:free_shortcutage() (got to love that name\!) & free_toggles(), and big cleanup program thanks_for_all_the_fish() (originally thanks_for_the_memories()). Mods to shortcut_init() by Chris
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1085 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-27 04:14:16 +00:00
Jordi Mallach
bbcac936a0 I suck. Forgot to add m4 to SUBDIRS, and typoed m4/Makefile.am. All in the same commit!
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1084 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-26 23:18:49 +00:00
Jordi Mallach
f821db9b1f Argh. Now call autoheader after aclocal.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1083 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-26 22:49:02 +00:00
Jordi Mallach
3c5653d83e Move to autoconf 2.5.
configure.in moved to configure.ac, to make things completely obvious.
Removed m4/largefile.m4, which is provided by ac2.5, and add Makefile.am for that dir.
Updated README.CVS to reflect this.


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1082 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-23 18:23:43 +00:00
Chris Allegretta
48b06708ff Multiple unnamed buffers allowed, multiple filename extensions on die_save_file(), more DLR fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1081 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-22 04:30:50 +00:00
Chris Allegretta
3a6d70dfb6 Get rid of unneeded skip var
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1080 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-22 03:29:43 +00:00
Jordi Mallach
2ce9205823 Fix header.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1079 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-20 16:23:22 +00:00
Jordi Mallach
62d2171745 Dutch translation updates (Guus Sliepen).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1078 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-20 16:21:27 +00:00
Chris Allegretta
ff8a68c258 rcfile.c:do_rcfile() - Parse rcfile in as well (Dwayne Rightler)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1077 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-16 20:34:57 +00:00
Chris Allegretta
bc72e366d2 Added Ken's patch, DLR's latest fixes and a little cleanup to bottombars()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1076 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-16 20:03:44 +00:00
Chris Allegretta
7e65d2f5ad Get rid of unnecessary stuff in help_init() that was commented out
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1075 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-15 21:12:52 +00:00
Chris Allegretta
9caa193fe1 407 == ^z fix, get rid of unusaed variables
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1074 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-15 20:08:05 +00:00
Chris Allegretta
a8c225787b DLR's patch merged, Static toggles and shortcut gone, lots of stuff changed
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1073 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-15 19:17:02 +00:00
Jordi Mallach
025a42c67f Norwegian bokmål translation updates (Stig E Sandø).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1072 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-15 18:55:06 +00:00
Jordi Mallach
e46d43d299 Norwegian bokmål translation updates (Stig E Sandoe).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1070 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-15 17:13:11 +00:00
Jordi Mallach
507c361bcf Danish translation updates (Keld Simonsen).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1069 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-14 18:57:23 +00:00
Chris Allegretta
a824a9af9d Remove RELATIVECHARS from nano.h (DLR)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1068 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-14 01:29:07 +00:00
Chris Allegretta
f27c69703d - winio.c:do_cursorpos() - Rewritten to show col place as well as charcter place, without needing an entirely separate flag
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1067 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-12 01:57:24 +00:00
Jordi Mallach
7eccc7991c Hungarian translation updates (Gergely Nagy).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1065 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-09 23:15:44 +00:00
Chris Allegretta
40b85e7aca - Makefile.am: - Change localedir line to 1.0's version
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1064 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-09 21:56:09 +00:00
Jordi Mallach
b3b28c19b5 Russian and Ukrainian translation updates (Sergey A. Ribalchenko).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1062 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-07 13:51:00 +00:00
Jordi Mallach
8bfd3114be Hungarian translation updates (Gergely Nagy).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1061 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-06 20:53:04 +00:00
Jordi Mallach
94def068ef Partial Czech translation updates (Vaclav Haisman).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1060 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-06 12:14:25 +00:00
Chris Allegretta
3d8e759a4c Allow " symbol to be in regex without leading by checking for *ptr+1 is not the end of the regex
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1057 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-02 07:13:02 +00:00
Chris Allegretta
db3dc57a7e Update the Sourceforge lists to the GNU ones
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1056 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-02-01 13:40:34 +00:00
Jordi Mallach
a039b57d05 Oops, correct anonymous user name.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1055 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-31 09:53:57 +00:00
Jordi Mallach
02f3394917 Changed recommendation on automake to -p5, not -p4.
Moved to Savannah repositories.
Added a hint to download the stable branch.


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1054 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-30 16:29:31 +00:00
Chris Allegretta
8dbfb5c2ce Re-add the changes since the CVS tarball was made *argh*
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1052 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-28 15:56:15 +00:00
Jordi Mallach
8636f7b66a French, German and Norwegian nynorsk updates.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1051 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-26 19:23:37 +00:00
Chris Allegretta
3c597d0b91 - nanorc.sample - Mention unset in the sample nanorc
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1050 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-26 03:42:14 +00:00
Chris Allegretta
2440a5199c Mention unset in the sample nanorc
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1049 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-26 03:34:06 +00:00
Jordi Mallach
9c34a167d8 French and Swedish translation updates.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1048 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-26 00:46:47 +00:00
Chris Allegretta
14b3ca94b7 - General - New flag RELATIVECHARS to show column positino relative to the current line instead of the current file. New flag -C, --relative, changes to do_cursorpos()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1046 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-25 21:59:02 +00:00
Jordi Mallach
83ffefbfdd Catalan and Spanish updates.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1045 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-25 21:00:18 +00:00
Chris Allegretta
121b9b99f9 Back to CVS
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1043 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-25 17:04:18 +00:00
Chris Allegretta
491029ed8d GNU nano 1.1.6 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1041 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-25 17:02:32 +00:00
Chris Allegretta
915b680e6b Oops, add glib21.m4 to the m4 dir
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1040 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-24 22:00:50 +00:00
Chris Allegretta
54c7b16cf1 Oops, make that NANO_AM_GNU_GETTEXT
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1039 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-24 14:18:05 +00:00
Jordi Mallach
b9b9f5cf94 Added depcomp.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1038 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-23 13:32:55 +00:00
Jordi Mallach
380076ba55 Catalan & Spanish updates.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1037 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-23 13:24:38 +00:00
Jordi Mallach
9045319eb8 CVS usage documentation.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1036 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-23 13:20:20 +00:00
Chris Allegretta
4756de366e No Im not releasing 1.1.6 yet
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1035 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-23 02:38:52 +00:00
Chris Allegretta
05f4065960 Add the codeset.m4 and iconv.m4 entries to Makefile.am
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1034 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-23 02:37:36 +00:00
Chris Allegretta
28ab38ddad Add all of automake 1.4s .m4 files
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1033 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-23 02:27:19 +00:00
Chris Allegretta
bb7bbed753 Downgraded from automake 1.5, as there are severe security implications
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1032 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-23 01:17:23 +00:00
Chris Allegretta
24e48d8314 Downgraded from automake 1.5, as there are severe security implications
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1031 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-23 01:06:20 +00:00
Chris Allegretta
34f8098045 - rcfile.c:General - Added stdarg.h to includes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1030 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-22 20:09:20 +00:00
Chris Allegretta
1c2fddcb40 - search.c:do_search() - Check position of cursor and return value of findnextstr and tell user if search string only occurs once (Rocco & Chris)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1029 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-21 20:40:14 +00:00
Chris Allegretta
23b74b226e - nano.c:do_int_spell_fix() - Temporarily unset REVERSE_SEARCH if it's set (Rocco Corsi)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1028 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-21 20:32:22 +00:00
Chris Allegretta
b2cd10d57c - nano.c:do_char() - Run edit_refresh() if ENABLE_COLOR is defined so adding multi-liners will update (e.g. /* in C)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1027 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-20 00:54:42 +00:00
Chris Allegretta
9963b0e885 - .cvsignore - Added config.guess config.sub install-sh missing & mkinstalldirs
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1026 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-19 19:35:12 +00:00
Jordi Mallach
fef9d86fae autoheader should be called before.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1025 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-19 19:23:55 +00:00
Chris Allegretta
3351ce15a9 - Upgraded missing and installdirs scripts
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1024 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-19 19:23:21 +00:00
Jordi Mallach
a437e54b7a Oh, asty...
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1023 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-19 19:20:44 +00:00
Chris Allegretta
15b23f46c3 - Upgrade to gettext 0.10.40, probably broke everything again :)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1022 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-19 19:15:18 +00:00
Chris Allegretta
6c1e6612ad - General - Added multiple-line regex support. Format in .nanorc is start=regex end=regex. Cleaned up nanorc:parse_colors(), added parse_next_regex(), changes to edit_add in winio.c(), changes to colortype, cleaning up some old cruft
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1021 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-19 16:52:34 +00:00
Chris Allegretta
598106e55a re-indent winio.c
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1020 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-19 01:59:37 +00:00
Jordi Mallach
69bba322f5 Catalan and Spanish updates, sync with CVS.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1019 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-18 23:32:22 +00:00
Jordi Mallach
394797c15e Fix typo.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1018 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-18 23:16:33 +00:00
Jordi Mallach
3a23a55018 Danish translation update (Keld Simonsen).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1017 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-18 23:04:16 +00:00
Chris Allegretta
f478f8361e Latest color and regex fixes. Multi-line color doesn't work yet, just syncing in case of disaster
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1016 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-18 21:54:35 +00:00
Jordi Mallach
5285ca9d0a Show --enable-multibuffer independently of --enable-extra.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1015 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-17 12:40:33 +00:00
Jordi Mallach
78aad94851 Translation updates since 1.1.5.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1014 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-17 12:22:15 +00:00
Jordi Mallach
d6481e4fc1 Hm, fix entry.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1011 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-17 12:14:23 +00:00
Jordi Mallach
83d5cede73 Added new Norwegian translations, fixed THANKS.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1010 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-17 12:06:49 +00:00
Jordi Mallach
8a97efc2f8 Moved no.po to nn.po.
New Norwegian bokmål translation, by Stig E Sandoe <stig@ii.uib.no>.
Updated Norwegian nynorsk translation, by Kjetil Torgrim Homme <kjetilho@linpro.no>.


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1009 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-17 11:54:37 +00:00
Chris Allegretta
ea250e8b90 - color.c:do_colorinit() - Moved some comments and braces around so color can work w/slang (DLR)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1005 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-16 01:09:11 +00:00
Chris Allegretta
438f713b3f - nano.c:do_wrap() - Move right increment to part where new line is created, should change (fix?) some wrapping problems with autoindent
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1004 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-16 00:54:47 +00:00
Chris Allegretta
e29697d210 - search.c:findnextstr() - Fix off by one in check for wrap around (Rocco Corsi)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1002 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-14 03:31:10 +00:00
Rocco Corsi
562964dab3 Minor bracket alignment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1001 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-13 03:18:03 +00:00
Jordi Mallach
6f8222a8cc Typo fix.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@999 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-12 22:15:41 +00:00
Jordi Mallach
7ced6bf54b Yet another French translation update.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@998 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-12 02:31:38 +00:00
Chris Allegretta
5bbce6a847 Oops, make that Bug #68 :-)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@994 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-10 12:48:16 +00:00
Chris Allegretta
7b0667fa7a - nano.c:do_suspend() - Call tcsetattr() to restore the old terminal settings, so tcsh can use ^C after suspend for example (fixes BUG #67)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@992 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-10 12:44:21 +00:00
Chris Allegretta
967a1e28f6 - General - Add Alt-G (NANO_ALT_GOTO_KEY) as alternate for goto dir in browser
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@991 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-10 00:50:38 +00:00
Jordi Mallach
c2c9b64705 New French updates.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@990 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-09 23:54:24 +00:00
Chris Allegretta
1bc0c7e047 - Better partial word checking code. New function search.c:is_whole_word(), changes to findnextstr(), and nano.c:do_int_spell_fix() (Rocco Corsi)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@989 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-08 15:00:24 +00:00
Jordi Mallach
bf1a1e84e2 French, Russian and Ukrainian translation updates.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@988 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-08 14:07:39 +00:00
Chris Allegretta
044d1b1a6e - General - Add Meta-A as alternate keyystroke for ^^ for people with non-US keyboards, and fix one missed NANO_ALT_R that should be NANO_ALT_REPLACE_KEY
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@987 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-08 00:33:32 +00:00
Chris Allegretta
f7dee92189 main() alt val - 32 check fix, and shortcut_init() fix in global.c for hard coded values
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@986 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-07 16:43:25 +00:00
Jordi Mallach
d39698ff1f German translation update (Michael Piefel).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@985 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-07 15:16:26 +00:00
Jordi Mallach
e36a15209a Swedish translation update.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@984 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-07 15:12:48 +00:00
Chris Allegretta
3d0739c384 - winio.c:edit_refresh() - Rename lines to nlines to fix AIX breakage (reported by Dennis Cranston, re-reported by arh14@cornell.edu)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@983 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-07 14:41:32 +00:00
Jordi Mallach
3da9139159 Catalan and Spanish translation updates.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@982 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-07 11:50:13 +00:00
Jordi Mallach
345a8467ae Fixed --keypad description.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@981 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-07 11:35:16 +00:00
Chris Allegretta
d17519321e Back to CVS ver
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@980 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-05 20:01:53 +00:00
Chris Allegretta
110927bbc5 GNU nano 1.1.5 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@978 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-05 19:49:06 +00:00
Chris Allegretta
a16e4e96c0 - winio.c:statusq() - Initialize "list"
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@977 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-05 18:59:54 +00:00
Chris Allegretta
bdea41e2c1 Update TODO with -l and -g done, add NEWS for 1.1.5 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@976 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-05 18:54:43 +00:00
Chris Allegretta
d49ec07cae Update nano.1.html to match -K option
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@975 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-05 04:08:01 +00:00
Chris Allegretta
1bf8f5e9d2 - winio.c:edit_add() - Little fixes to let color highlights not bleed onto the next line
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@974 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-05 03:30:10 +00:00
Chris Allegretta
66577acae1 Slightly better version of the fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@973 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-05 02:03:29 +00:00
Chris Allegretta
e5b9eacd89 winio.c:bottombars() - Get rid of that annoying reversed line when color is on! :)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@972 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-05 01:52:02 +00:00
Jordi Mallach
6d6edd6fe0 Newer config.guess and config.sub
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@971 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-04 18:16:50 +00:00
Jordi Mallach
ae08077dfc Mark some items as [DONE].
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@970 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-04 18:09:07 +00:00
Jordi Mallach
2391bf499b DLR moved to AUTHORS.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@969 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-04 18:04:08 +00:00
Jordi Mallach
cb0cbcc058 Added -K item.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@968 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-04 18:00:24 +00:00
Jordi Mallach
8ae5789447 Updated copyright notices to 2002.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@967 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-04 17:57:40 +00:00
Jordi Mallach
65f3e42de3 Polish translation update (Wojciech Kotwica).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@966 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-04 17:48:58 +00:00
Chris Allegretta
fae0dce708 Add DLR to AUTHORS
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@965 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-04 13:30:42 +00:00
Chris Allegretta
48bd37812b - The keypad handling has changed (again). We now use the keypad() function by default. New flag -K, --keypad allows the old behavior for those using the keypad arrow keys and rxvt-based terminals
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@964 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-03 21:26:34 +00:00
Jordi Mallach
13f3017d0f French translation update (Jean-Philippe Guérard).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@962 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-02 18:45:58 +00:00
Chris Allegretta
32da456ab0 DLR's latest patch: view+multibuffer, die() fixes, insert key fixes in main()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@961 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-02 15:12:21 +00:00
Chris Allegretta
180a569fdb - nano.c:help_init() - Typo in file switch string (found by David Lawrence Ramsey). main() - Handle Alt prev/next file keys (,.), as well as normal ones (<>).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@960 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-02 14:30:33 +00:00
Chris Allegretta
13fd44bfe4 Get rid of \n in abort check of parse_next_word(), new var helplen in help_init()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@959 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2002-01-02 13:59:11 +00:00
Jordi Mallach
327939843d German translation update (Michael Piefel).
Ukrainian translation update (Sergey A. Ribalchenko).


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@957 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-12-28 16:35:28 +00:00
Jordi Mallach
78e2c9d844 Italian translation update (Marco Colombo).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@956 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-12-27 22:06:38 +00:00
Chris Allegretta
64dd95dd75 files.c:read_file() - Make conversion message less confusing (suggested by Jordi)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@955 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-12-27 20:53:54 +00:00
Jordi Mallach
05d8ce9adf Galician translation update (Jacobo Tarrío).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@954 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-12-27 20:34:42 +00:00
Jordi Mallach
1a58fb46f5 French translation update (Michel Robitaille).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@952 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-12-27 16:00:23 +00:00
Jordi Mallach
cf9f783d26 Faq fixes.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@949 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-12-26 12:33:01 +00:00
Jordi Mallach
a4ffccb321 New incomplete Polish translation, contributed by Cezary Sliwa <sliwa@cft.edu.pl>.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@947 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-12-26 00:31:17 +00:00
Jordi Mallach
f4e572919d Typo fix.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@944 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-12-26 00:16:40 +00:00
Jordi Mallach
414acab0ce Updated Catalan translation.
More Spanish fixes.


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@943 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-12-26 00:15:16 +00:00
Jordi Mallach
5b85366a50 Typo fix.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@942 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-12-25 20:39:59 +00:00
Jordi Mallach
11f39e7044 Updated Spanish translation.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@941 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-12-25 19:17:32 +00:00
Jordi Mallach
39d02c4796 Russian translation update (Sergey A. Ribalchenko).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@940 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-12-25 18:31:53 +00:00
Jordi Mallach
9335f91085 Made two strings translatable.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@939 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-12-23 00:03:18 +00:00
Jordi Mallach
77b12326c8 Swedish translation update (Christian Rose)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@938 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-12-22 23:23:40 +00:00
Chris Allegretta
3c57e50db8 - winio.c:update_line() - set realdata check to >= 1 && <= 31, lack of > 0 check screwed high ascii chars
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@937 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-12-19 16:20:43 +00:00
Chris Allegretta
cf6807100b m4/gettext.m4: - Back down to 1.1.3 version
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@936 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-12-18 14:59:20 +00:00
Chris Allegretta
52db7a2c3d - winio.c:update_line() - back out check for (realdata[i] < 32) as it will screw high ascii characters
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@932 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-12-17 23:39:36 +00:00
Chris Allegretta
0bb70dcda5 VDSUSP fix from 1.0 tree
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@931 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-12-17 04:34:23 +00:00
Chris Allegretta
5fd6cacfa5 Back to CVS
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@925 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-12-12 13:55:19 +00:00
Chris Allegretta
7bf2509a70 GNU nano 1.1.4 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@923 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-12-12 02:44:40 +00:00
Chris Allegretta
9c23a44907 Remove some debug code and update to mutt's gettext.m4
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@922 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-12-12 01:45:01 +00:00
Chris Allegretta
7dd7768bb6 Fix the ifdefs in winio.c
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@921 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-12-08 19:52:28 +00:00
Jordi Mallach
df59ae64e9 French update, by Michel Robitaille <robitail@IRO.UMontreal.CA>
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@920 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-12-07 14:00:56 +00:00
Jordi Mallach
b439622d3a Fixed typos.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@918 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-12-05 17:51:02 +00:00
Chris Allegretta
8083827088 do_spell() - Dont prompt for replace if we don't change the word in question (Rocco Corsi).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@917 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-12-02 06:03:22 +00:00
Chris Allegretta
db4c08e8f9 stoopid unused variable
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@916 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-12-02 05:13:34 +00:00
Chris Allegretta
2fa11b836d Two fixes, create new colorstrings array for each regex, allows proper order of highlighting, second make color work with the marker
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@915 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-12-02 04:55:44 +00:00
Chris Allegretta
86c9676f7a Fix leftover variable
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@914 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-11-29 03:52:21 +00:00
Chris Allegretta
81cbfad086 Comment out more debugging code
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@913 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-11-29 03:49:09 +00:00
Chris Allegretta
2084acc37d At LONG last committed David's patch
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@912 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-11-29 03:43:08 +00:00
Chris Allegretta
3795e5fc76 Damn newline code
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@911 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-11-29 03:03:18 +00:00
Chris Allegretta
08893e08e3 Preliminary syntax highlighting support. New functions colortoint() and parse_color() in rcfile.c, new code in edit_add() in winio.c to actually do the highlighting. It's not even close to pretty yet :P
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@910 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-11-29 02:42:27 +00:00
Jordi Mallach
feebeb90ea Danish and Spanish updates.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@909 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-11-19 12:09:51 +00:00
Chris Allegretta
9b8b370132 Put 1.0 Hurd fixes in 1.1 tree (function keys, SIGTSTP sigaction
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@908 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-11-19 05:09:15 +00:00
Jordi Mallach
8c9c572309 Updated German, Swedish and Russian translations.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@904 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-31 13:02:12 +00:00
Jordi Mallach
33088740da Added aclocal.m4, config.in.h.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@900 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-29 13:32:06 +00:00
Jordi Mallach
1fa00797ef Removing autogenerated files.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@899 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-29 13:29:19 +00:00
Jordi Mallach
6859079638 Added nano.info.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@898 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-29 13:27:12 +00:00
Jordi Mallach
773623c066 Typo fixes in help strings.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@896 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-28 21:00:49 +00:00
Chris Allegretta
0567bfe14c files.c:add_open_file() - Get rid of unsetting MARK_ISSET because otherwise writing marked text will automatically unset the marker with multibuffer enabled
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@894 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-28 14:42:18 +00:00
Chris Allegretta
8c8d370470 global.c: - Define currshortcut and currslen when either DISABLE_MOUSE or DISABLE_HELP or DISABLE_BROWSER is not defined (Silvan Minghetti)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@893 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-28 05:00:39 +00:00
Chris Allegretta
22ec59a073 global.c: - Define currshortcut and currslen when either DISABLE_MOUSE or DISABLE_BROWSER is not defined (Silvan Minghetti)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@892 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-28 04:56:08 +00:00
Chris Allegretta
f3e80adbe4 Oops, typo in dec there, it's Alt-[-whatever
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@891 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-28 04:49:10 +00:00
Chris Allegretta
7bf7274d9f nano.c:main() - Add Esc-[IGL] keys for FreeBSD Console (PgUp,PgDn,Insert)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@890 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-28 04:29:55 +00:00
Chris Allegretta
7b409bd6b6 Back to CVS
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@889 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-26 16:15:58 +00:00
Chris Allegretta
dc57bbab7a Nano 1.1.3 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@887 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-26 16:14:45 +00:00
Chris Allegretta
6d0aa9f3b7 More do_prev_word() fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@886 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-26 15:21:41 +00:00
Chris Allegretta
e59fc829d8 Okay, now fix do_prev_word so it doesn't crash when it hits a blank line, it's still not perfect =/
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@884 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-24 18:07:58 +00:00
Chris Allegretta
a1a6a7fda6 Oopos, wrote the test backwards :-)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@880 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-24 17:34:29 +00:00
Chris Allegretta
107864058b nano.h: Additional #define, SMALL_TOO to determine how long MAIN_LIST_LEN is. We need this because of the find matching bracket code
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@879 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-24 17:27:46 +00:00
Chris Allegretta
2cd72b6aa2 Back out off by one fix that's not actually off by one, it was a different bug :-)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@878 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-24 17:25:36 +00:00
Chris Allegretta
3a24f3f780 Changed header comments to say "version 2" instead of "version 1" as the COPYING file is actually version 2 of the GPL (bug noticed by Jordi Mallach)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@873 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-24 11:33:54 +00:00
Chris Allegretta
347c184b6f nano.c:main() - Moved #ifndef NANO_SMALL down past the case 0: line so control-space doesn't insert a \0 (ack!)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@872 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-24 01:37:13 +00:00
Chris Allegretta
48ebb81fb2 nano.c:main() - Fixed off by one when checking for MAIN_LIST_LEN. Ugh.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@871 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-24 01:34:15 +00:00
Chris Allegretta
abf22a8fb2 - nano.c: - Added the #ifdefs around do_prev_word the code in main()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@870 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-24 00:58:19 +00:00
Chris Allegretta
e7ee63f271 - cut.c: cut_marked_segment() - Fix off-by one in mem allocation
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@868 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-23 12:58:42 +00:00
Chris Allegretta
fa0c6963ce Fixed null_at to ACTUALLY DO SOMETHING with its arg. Again, this was causing nasty errors if the call to nrealloc moved where the data was located
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@866 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-22 23:22:19 +00:00
Chris Allegretta
878ced39bf - nano.c:do_prev_word() - Fixed goofy logic setting x pos to value of last line when hitting the beginning of first line, prog should simply abort.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@865 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-22 20:05:34 +00:00
Chris Allegretta
b3655b4c5e DLR's cut and miscellaneous fixes, my cut fixes, and context-sensitive help, woohoo
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@864 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-22 03:15:31 +00:00
Jordi Mallach
fac011a5e1 I mean add, not replace... duh.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@863 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-20 12:30:46 +00:00
Jordi Mallach
9f4e583e52 Added stamp-h1
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@862 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-20 12:30:12 +00:00
Chris Allegretta
beead28619 - faq.html - Removed nano-editor.org FTP site address [deprecated] and added the GNU one
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@860 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-18 14:15:28 +00:00
Jordi Mallach
eb94b9edcd Updated Ukrainian translation (Sergey A. Ribalchenko).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@859 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-15 14:26:48 +00:00
Chris Allegretta
76e291beee Added conversion messages for DOS and Mac files, and Alt-space as do-previous-word
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@858 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-14 19:05:10 +00:00
Jordi Mallach
ab23fbd019 Updated Russian translation (Sergey A. Ribalchenko).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@856 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-08 14:05:36 +00:00
Jordi Mallach
26f4603a89 Style updates for Spanish, by Santiago Vila.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@855 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-07 15:53:27 +00:00
Jordi Mallach
2476ebd31b Updated Danish translation (Keld Simonsen).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@854 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-07 00:26:26 +00:00
Jordi Mallach
482d165ab5 Updated Swedish translation (Christian Rose).
Updated gl.po from TP.


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@853 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-06 02:36:25 +00:00
Jordi Mallach
02a24525c5 Small typo fix.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@852 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-05 10:58:07 +00:00
Jordi Mallach
cdcac1ccc2 And what if I actually fix it?
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@851 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-05 03:26:52 +00:00
Jordi Mallach
633dab0340 Darn, that %s vs %d bug again.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@850 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-05 03:26:00 +00:00
Jordi Mallach
14a0e55bc9 Getting rid of Makefile.in too, autogenerated file.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@849 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-04 01:54:03 +00:00
Jordi Mallach
8fd15e2672 Oops, m4 stuff is in m4/ in nano 1.1.x...
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@848 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-04 01:44:06 +00:00
Jordi Mallach
19aad376ef Added script to get working configure, etc.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@845 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-04 01:37:36 +00:00
Jordi Mallach
c17aa63200 Bye bye you too. To the Attic! (replaced by autogen.sh)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@844 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-04 01:34:13 +00:00
Chris Allegretta
9a39789cb6 Back to CVS version
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@843 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-04 01:25:43 +00:00
Chris Allegretta
03260b40fa GNU nano 1.1.2 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@841 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-04 01:24:07 +00:00
Jordi Mallach
58a3353307 Have a nice day in the Attic, nano.info. We just need nano.texi.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@840 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-04 01:02:26 +00:00
Jordi Mallach
4c6438be6f Fixed the remaining fuzzy string in fi.po. Phear my Finnish :) (thanks Antti-Juhani Kaijanaho).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@835 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-03 21:57:00 +00:00
Jordi Mallach
780f3205f1 Finnish update for 1.1.2pre3, by Pauli Virtanen.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@834 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-03 20:47:47 +00:00
Jordi Mallach
8a9863736b Italian updates for 1.1.2 (Marco Colombo).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@832 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-03 19:04:38 +00:00
Jordi Mallach
cdbabfd4fc * Added more command line options that are currently ignored by nano (DLR).
* nano.1: Updated the statement about nano.save & multibuffers.


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@830 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-03 15:53:25 +00:00
Jordi Mallach
7d589ca5fa Fixed typos found by DLR and ispell.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@829 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-03 15:44:16 +00:00
Chris Allegretta
ca1a82ecab - rcfile.c: - Fix incorrect argument in fill and tabsize error message (Nathan Heagy)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@828 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-03 15:18:41 +00:00
Jordi Mallach
f57b886bed Documentation updates for nano 1.1.2 (texi and manpage).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@827 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-03 12:45:22 +00:00
Jordi Mallach
22262441c7 Galician translation brought up to date for 1.1.2 by Jacobo Tarrío.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@826 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-03 10:59:23 +00:00
Jordi Mallach
b97bedafe8 Updated ca & es for 1.1.2 release (tab size changes).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@825 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-03 10:12:37 +00:00
Chris Allegretta
31b2b81e53 Add filebot magic line bug as bug #66
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@823 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-03 01:51:33 +00:00
Chris Allegretta
5e4b1085b4 Add single line bug as Bug #65
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@822 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-03 00:45:06 +00:00
Chris Allegretta
b516d8e3f3 - nano.c:main() - Added var constcheck as a CRC-like check of whether cursor pos has changed and if so update the pos with -c
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@820 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-03 00:01:36 +00:00
Chris Allegretta
66c33b8731 Add tabsize support to rc file (Nathan Heagy)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@819 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-02 23:57:31 +00:00
Chris Allegretta
dc2ca88718 - cut.c:do_cut_text() - Don't recenter the line when cutting one line (DLR)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@818 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-02 23:55:09 +00:00
Jordi Mallach
a2d849bcd4 * Added notes about the Free Translation Project.
* Updated the ChangeLog, so it has some meaning :)


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@817 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-02 19:13:03 +00:00
Jordi Mallach
14b0accd81 * We can't live WITHOUT bells and whistles 8) (Nathan Heagy)
* Removed ftp.sourceforge.net from download sites as it'll go shortly.
* Added the `testing' distribution page for nano in the Debian section.
* Added a direct link to Debian's package pools too.
* Added --disable-operatingdir to "how make nano smaller?".
* Zsh advocacy :)


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@816 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-02 18:21:55 +00:00
Chris Allegretta
b26cb39296 Don't show non-positive shortcut keys in help_init()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@814 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-02 04:22:34 +00:00
Chris Allegretta
e10f389e9c Take out the unneeded case sensitive and reverse stuff from -tiny
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@813 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-02 03:54:40 +00:00
Chris Allegretta
ad3f478452 - Take control-space out of -tiny build, unneeded
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@812 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-02 03:54:13 +00:00
Chris Allegretta
59121a9aaf Change do_bracket ctrl shortcut to -9 (junk value) instead of 0 so control-space will work
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@811 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-02 03:14:43 +00:00
Chris Allegretta
92f5fdc230 Finally, do the ChangeLog
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@810 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-02 02:58:07 +00:00
Chris Allegretta
386e0518b5 winio.c:nanogetstr() - Don't be clever and wasteful, just repaint every iteration
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@809 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-02 02:57:26 +00:00
Chris Allegretta
1c27d3e875 nano.c:main() - Fix the KEY_IC being undefined when using slang
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@808 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-02 02:56:45 +00:00
Chris Allegretta
7fdbd05b41 Readded DISABLE_CURPOS cause we can't get away without it (Search Wrapped msgs) and Ken's findnextr fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@807 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-02 00:55:38 +00:00
Chris Allegretta
d948edc4f3 DLR's latest smooth scroll fix, case where there's not a full half page up from the cursor to fileage screws up the cursor position
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@806 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-02 00:38:56 +00:00
Chris Allegretta
222a0863fa cut.c:cut_marked_segment() - Add magic line when cutting a selection including filebot (discovered by DLR, fixed by DLR & Chris)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@805 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-02 00:24:37 +00:00
Jordi Mallach
1e36fd8f69 Italian updates for 1.1.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@804 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-01 17:24:24 +00:00
Chris Allegretta
f727da88b0 Add smooth scroll and the DOS/Mac file support to the README
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@803 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-10-01 14:42:27 +00:00
Jordi Mallach
73889487f0 Added Karl, fixed Hungarian translator address (blindly believing Google).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@802 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-30 05:03:15 +00:00
Jordi Mallach
200b27e33e Fixes from Karl Eichwalder to de.po, so Emacs doesn't barf.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@801 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-30 05:01:31 +00:00
Jordi Mallach
10398ade49 Corrected small spacing typo in --dos help.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@800 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-29 18:54:46 +00:00
Chris Allegretta
1b3381bee8 Initialize totsize in files.c:new_file() and let do_gotopos keep current position when invoking the alternate speller (DLR)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@799 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-28 21:59:01 +00:00
Chris Allegretta
2bef18210a Fixes to bracket_msg in global.c by DLR
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@798 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-28 19:53:11 +00:00
Chris Allegretta
352801cf4c Fix brace error with nano-tiny in do_writeout()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@797 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-28 19:42:41 +00:00
Jordi Mallach
c1917e7b66 Updated Catalan and Spanish translations to 1.1.2pre2.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@796 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-28 13:06:29 +00:00
Jordi Mallach
acf4b16b72 Header fixes for some old po files.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@795 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-28 12:58:07 +00:00
Jordi Mallach
475f96d0b3 Updated Catalan and Spanish translations.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@794 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-28 12:55:18 +00:00
Chris Allegretta
a951f21c59 - nano.c: do_mouse() - Change k based on currslen to allow the new widths in bottombars()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@793 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-27 21:07:39 +00:00
Chris Allegretta
26a86e350c Initialize bracket_msg (David Lawrence Ramsey
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@792 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-27 20:52:53 +00:00
Chris Allegretta
9519eb0c88 - files.c: do_writeout() - Expanded strings to not use %s and ?: to determine write/append string to be nice to translators
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@791 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-27 20:46:25 +00:00
Chris Allegretta
759d3523fc Search prompt changes, bracketed modifiers and to search at the front
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@790 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-27 13:04:10 +00:00
Chris Allegretta
56214c6aef DLR's fixes: arg for operatingdir's getopt_long text, changes to cases 2b and 2c in do_wrap for Pico compatibility, and new arg save_cutbuffer to global_init() to stop the cutbuffer from being lost with multiple buffers
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@789 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-27 02:46:53 +00:00
Chris Allegretta
5050d35e87 Fixes to paging (smooth scroll) by David Lawrence Ramsey
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@788 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-27 00:44:58 +00:00
Chris Allegretta
ecc1933c14 Off by one error in findnextstr?
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@787 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-25 01:49:38 +00:00
Jordi Mallach
c1968a0795 Updated Spanish to 1.1.2pre1
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@786 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-24 00:46:31 +00:00
Chris Allegretta
99e30e1bee Oops, we shoudn't let DOS_FILE and MAX_FILE be set at the same time
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@784 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-23 02:45:27 +00:00
Chris Allegretta
ce78c1eb88 DLR's latest fixes for the tabcomp code and keys
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@783 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-23 01:18:03 +00:00
Chris Allegretta
beb5497530 rcfile.c: - NUM_RCOPTS fix (DLR)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@782 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-22 23:54:45 +00:00
Chris Allegretta
96bd4e4ed8 Readd skipping Meta-A,B,E in do_toggle, oops I'm with it now :-)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@781 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-22 22:27:37 +00:00
Chris Allegretta
8d990b5e8b - Bracket (brace, parens, etc) matching code by Ken Tyler. New functions do_find_bracket(), changes to findnextstr(), command is Meta-] (hope you dont mind since I already sold off Meta-O to the MacOS file code Ken...)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@780 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-22 22:14:25 +00:00
Chris Allegretta
6f6aba0350 Move the smooth_msg up a tiny
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@779 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-22 19:03:01 +00:00
Chris Allegretta
3e3ae94084 - New smooth scroll code by Ken Tyler. New flag -S, --smooth, changes to page_up() and page_down()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@778 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-22 19:02:04 +00:00
Chris Allegretta
0319176f2d More Mac file fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@777 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-22 06:38:38 +00:00
Chris Allegretta
960a8635bc Oops, another Mac fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@776 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-22 05:08:12 +00:00
Chris Allegretta
995177f2d9 Add Mac toggle Meta-O for Mac format
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@775 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-22 04:34:23 +00:00
Chris Allegretta
8fa1e28681 Added mac file support too
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@774 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-22 04:20:25 +00:00
Chris Allegretta
7004c289f8 -D cmdline flag for DOS formatted files
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@773 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-22 00:42:10 +00:00
Chris Allegretta
6414b40d3d Make the Alt-key seqs work with the mouse
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@772 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-21 03:21:11 +00:00
Chris Allegretta
91841895e0 Code to read/write dos formatted files. Massive amounts of new code in read_line and write_file. New flag DOS_FILE
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@771 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-21 02:37:01 +00:00
Jordi Mallach
5d25f06e3b Catalan commit with no translation changes, just to avoid more conflicts.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@770 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-19 10:12:11 +00:00
Jordi Mallach
128e95ffdc Updated Spanish for chroot patch.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@769 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-19 10:07:50 +00:00
Chris Allegretta
e09cd1d4d1 Credit DLR for his code =-)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@768 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-19 03:22:52 +00:00
Chris Allegretta
e1f1452eb5 General: - New flag -o, --operatingdir, similar to Pico's -o mode. New function check_operating_dir(), changes to load_file (arg), open_file_dup_search (arg), new function do_gotopos for -F.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@767 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-19 03:19:43 +00:00
Chris Allegretta
b6c89eed9f Completely get rid of DISABLE_CURPOS
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@766 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-19 03:09:22 +00:00
Chris Allegretta
0357c4d552 - nano.c: main() - Added vars oldcurrent and oldcurrent_x to check whether cursor pos has changed and if so update the pos with -c
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@765 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-19 02:59:25 +00:00
Chris Allegretta
68532c37ef Fix unneeded vars with NANO_SMALL
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@764 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-17 13:49:33 +00:00
Chris Allegretta
ff98983602 Fix acconfig.h, NANO_SMALL leaves out Auto Indent
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@763 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-17 13:48:00 +00:00
Jordi Mallach
6c49b3f32c Updated Swedish translation (Christian Rose)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@762 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-15 22:47:05 +00:00
Jordi Mallach
4d69d4313f Added Keld Simonsen (Danish).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@761 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-15 22:46:21 +00:00
Jordi Mallach
90bbdd3c40 New Danish translation, by Keld Simonsen <keld@dkuug.dk>.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@760 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-12 19:06:59 +00:00
Jordi Mallach
d1625cdfe6 Updated Galician translation; thanks, Jacobo Tarrío.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@757 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-10 11:36:45 +00:00
Jordi Mallach
c6c35eafc8 Added recent translators to THANKS
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@756 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-09 11:04:43 +00:00
Jordi Mallach
b1aaa27c10 Updated Spanish translation.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@754 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-09 10:55:51 +00:00
Jordi Mallach
2cde0a24d4 Added Dutch translation, by Guus Sliepen <guus@nl.linux.org>.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@753 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-09-05 13:23:53 +00:00
Chris Allegretta
7dd1869713 Make the new bottombars not suck quite so badly
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@751 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-08-26 23:16:44 +00:00
Chris Allegretta
96eef7332b winio.c:bottombars() - Spread out the menu items, feedback definitely needed on this
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@750 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-08-25 16:41:37 +00:00
Chris Allegretta
9b3c7e8be7 winio.c: - Add David Lawrence Ramsey to credits
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@749 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-08-25 16:00:53 +00:00
Chris Allegretta
c2acb81782 Unset the flag chris you dolt
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@745 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-08-17 00:08:44 +00:00
Chris Allegretta
c1049aced1 Add and fix bugs #63 and 64
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@744 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-08-17 00:03:46 +00:00
Jordi Mallach
372b1a0939 Corrected the Mouse Toggle help in the texinfo manual.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@743 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-08-08 19:35:23 +00:00
Chris Allegretta
47a2686e41 Back to CVS version
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@742 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-07-29 01:17:38 +00:00
Chris Allegretta
0e8c8d8cdc GNU nano 1.1.1 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@740 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-07-29 01:16:27 +00:00
Chris Allegretta
41ed01632f do_mark() - Temporarily disable cursorpos when enabled to be able to see the mark (un)set message (Ken Tyler)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@739 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-07-24 00:21:03 +00:00
Chris Allegretta
4839d23b11 Spelling fixes by DLR
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@738 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-07-19 22:03:51 +00:00
Chris Allegretta
279aaa9bdb Deleted the old files we didn't need for old gettext
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@737 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-07-19 12:26:56 +00:00
Chris Allegretta
ef8f98d0c8 Reverted to gettext 0.10.35 in intl/ added m4/ directory to allow system independent rebuild of configure stuff
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@736 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-07-19 12:24:17 +00:00
Chris Allegretta
e642197ff7 new_file() and close_open_file() fixes by DLR
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@735 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-07-18 01:03:36 +00:00
Chris Allegretta
5cce53b5a8 do_writeout() - Check for open_files == NULL before using it (Ryan Krebs)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@734 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-07-17 10:42:50 +00:00
Chris Allegretta
5f36c3760f Fixes for the nano.h #defines, shortcut_init() lists and search.c reverse search stuff when NANO_SMALL is used
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@733 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-07-16 00:48:53 +00:00
Chris Allegretta
f372bd9f8c nano.h: - Fix type in INSERTFILE_LIST_LEN. && search_init() - add #ifdef NANO_SMALL around toggles code.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@732 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-07-15 22:24:24 +00:00
Chris Allegretta
307d4c8f6b Many multibuffer fixes by DLR
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@731 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-07-15 20:25:33 +00:00
Chris Allegretta
47f77b4715 Back to CVS
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@730 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-07-15 16:13:18 +00:00
Chris Allegretta
9a74860957 Nano 1.1.0 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@728 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-07-15 16:07:23 +00:00
Chris Allegretta
355fbe5770 Moved --loadoninsert to --multibuffer and -F, --enable-extra defines --enable-multibuffer
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@727 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-07-14 19:32:47 +00:00
Chris Allegretta
a212acf100 Oops, no need to translate %s
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@726 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-07-13 02:00:49 +00:00
Chris Allegretta
9cf9e06003 Put the #ifdef back, dope
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@725 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-07-11 12:06:13 +00:00
Chris Allegretta
802c6ef076 Updated README for some of the schnazzy 1.1 features
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@724 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-07-11 02:49:43 +00:00
Chris Allegretta
819e3db74d Move previous and next buffer code to main loop instead of do_toggles()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@723 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-07-11 02:37:19 +00:00
Chris Allegretta
2d7893d086 Added multi buffer (load on insert) code. This wont intoduce any bugs ;-)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@722 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-07-11 02:08:33 +00:00
Jordi Mallach
240998b25f New updates from the Swedish team.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@721 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-07-08 01:30:54 +00:00
Jordi Mallach
df7d8b2e57 Added Norwegian and Swedish to HEAD.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@720 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-07-05 23:16:05 +00:00
Chris Allegretta
b26ecb597e Oops, make that Alt-[-7.8
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@719 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-07-04 16:27:05 +00:00
Chris Allegretta
052f9d238e main() - Added Alt-[-[-7,8 support for home/end keys (Jeff Teunissen).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@718 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-07-04 16:06:21 +00:00
Chris Allegretta
049149f1da Make the THANKS file slightly less incomplete but far from perfect
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@711 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-07-02 01:57:44 +00:00
Chris Allegretta
a2c02e9c8d do_browser() - More Picoish keystrokes for the browser, ^P, ^N, etc, for up, down, etc, and add the consistent ^C to exit (Jim Knoble)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@710 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-07-02 01:31:44 +00:00
Chris Allegretta
df20e83412 Okay I guess the wnouterefresh()s aren't needed in the SIGCONT handler
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@706 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-07-01 04:28:45 +00:00
Chris Allegretta
33db9bf473 Silly typo in the faq
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@705 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-06-30 19:14:01 +00:00
Chris Allegretta
1a8b296adf write_file() - Increment lineswritten when the very last line isn't null. Fixes off by one count when writing selection to file.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@704 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-06-30 18:41:08 +00:00
Chris Allegretta
ac899e5f80 do_suspend() - Added _POSIX_VDISABLE macro to fully ignore suspend keystroke. Eliminates the possibility that nano can be suspended when it's not supposed to be
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@703 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-06-30 04:09:09 +00:00
Chris Allegretta
d173c15ce5 Add and close BUG #62
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@701 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-06-28 16:54:59 +00:00
Chris Allegretta
521e00d761 rewrote suspend handler, added sigfillset before setting up handler with sigaction, allows nano to suspend properly with mutt
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@699 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-06-28 16:52:52 +00:00
Jordi Mallach
7fde37f006 Added THANKS, listing nano's friends :)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@693 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-06-22 23:26:19 +00:00
Chris Allegretta
34319a1ff7 Okay, and now dont add extra blanks when at filebot
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@692 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-06-22 21:47:23 +00:00
Jordi Mallach
efd2236319 Updated Indonesian by Tedi Heriyanto
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@691 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-06-22 16:59:29 +00:00
Chris Allegretta
500b5e3539 do_cut_text(): Moved the case of current == mark_beginbuf into cut_marke segment, so do_writeout could call it when writing selection to file. Added some NANO_SMALL ifdefs
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@689 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-06-21 23:58:47 +00:00
Chris Allegretta
40f45c8689 Last fixes, add reset of cutbuffer when uncutting marked text and reset marked_cut when cutbuffer reset
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@688 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-06-21 15:07:40 +00:00
Jordi Mallach
68b3dfb431 Updated for Backwards search
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@687 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-06-14 17:41:27 +00:00
Chris Allegretta
658399aeb9 Moved extension functions to meta keys, new macro TOGGLE() for toggling flags
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@686 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-06-14 02:54:22 +00:00
Chris Allegretta
e4933a393a Reverse Search by Ken Tyler
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@685 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-06-13 02:35:44 +00:00
Chris Allegretta
a75bc41faf Better for for -k bug
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@683 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-06-12 23:22:26 +00:00
Chris Allegretta
1cde322359 Don't keep cutbufer on reset, fix -k cut on first line if blank
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@682 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-06-11 06:56:10 +00:00
Chris Allegretta
cf785632ed Add a message about --enable-color being severely broken so we can have a 1.1 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@681 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-06-11 02:49:50 +00:00
Chris Allegretta
3ba29535a3 do_cut_text() - If the next line is empty when using -k, create a dummy line and add it to the cutbuffer (fixes bug #61)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@680 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-06-10 20:41:20 +00:00
Chris Allegretta
0241d19e4c Ugh, sigh
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@678 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-06-05 23:45:54 +00:00
Chris Allegretta
ecc3d7f39e write_file() - New arg, nonamechange, means whether or not to update the current filename after writing the file out.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@677 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-06-05 23:24:55 +00:00
Chris Allegretta
d21195f882 Oops\! Don't automatically assume the current filename when writing a selection to file, very bad\!\!\!
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@676 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-06-05 22:57:43 +00:00
Jordi Mallach
34654ab41a UTF8 would be leet!
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@675 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-06-02 02:02:29 +00:00
Jordi Mallach
de3d800e67 Nifty script which we'll learn to love.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@674 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-06-02 02:02:08 +00:00
Chris Allegretta
c4e1a131d3 Oops, fix write_file calls in nano.c also
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@673 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-29 04:46:38 +00:00
Chris Allegretta
cc197ef0ea Added selection write to file and append codes, main changes to files.c stuff, new shortcut list for inserting files, new args to do_writeout and write_file
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@672 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-29 04:21:44 +00:00
Chris Allegretta
43fee64400 Sample file nanorc.sample added to dist (ad Makefile.am)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@671 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-26 04:18:54 +00:00
Jordi Mallach
b4d6ad0ef6 Added rcfile.c to the translated files, added gettext calls to some messages that didn't have it and updated Spanish. New po files for the rest.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@670 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-24 13:10:06 +00:00
Chris Allegretta
d46156258b do_browser() - Don't shift the size of the file is it's less than 1K. Fixed files less than 1K being displayed as 0B (Rocco)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@669 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-23 21:54:47 +00:00
Chris Allegretta
6fe61499e8 All the updates that I've been waiting all weekend to commit, no desc, tough
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@668 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-21 12:56:25 +00:00
Jordi Mallach
9a46f3cf56 Oops, translations of Prev. and Next Page were reversed
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@667 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-19 10:03:46 +00:00
Jordi Mallach
1e43a12b49 Added po/messages
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@666 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-19 00:40:06 +00:00
Chris Allegretta
dd0491380a Add -W to TODO
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@665 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-18 20:00:08 +00:00
Chris Allegretta
53ea9d162b Add BUG #60
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@664 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-18 19:58:33 +00:00
Chris Allegretta
3b41212d61 Changed charalloc's calloc() call to use sizeof (char) not sizeof(char *)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@663 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-18 04:53:45 +00:00
Chris Allegretta
8d848afb89 Changed ncalloc calls in rcfile.c to charalloc
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@662 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-18 04:44:16 +00:00
Chris Allegretta
88b091510b Changed all string allocations to charalloc(), new function designed to take nmalloc argument but call calloc based on (char *) size.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@661 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-17 11:35:43 +00:00
Chris Allegretta
9fe015cca3 cut_marked_segment() - Add bizarre copy of bot node, else *BSD goes ballistic.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@660 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-17 03:41:00 +00:00
Chris Allegretta
63ba2d63ff po/it.po - Updated Italian translation by Marco Colombo.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@659 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-16 12:16:28 +00:00
Jordi Mallach
92b3bd2de6 New Russian translation by Sergey A. Ribalchenko.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@658 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-16 09:10:31 +00:00
Chris Allegretta
611e98be29 typo
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@656 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-16 04:23:37 +00:00
Chris Allegretta
5c27385a16 I'm back to the older gettext, sync these files too
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@655 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-16 04:21:31 +00:00
Chris Allegretta
99afb85752 strcasestr() - Replaced by mutt's mutt_stristr function, because the thought of dynamically allocating memory and copying each line in a file to do a search or replace was causing me to lose sleep
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@654 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-16 04:20:57 +00:00
Jordi Mallach
64bacd20b5 gl.po status update (it's not new, it's been released already)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@652 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-14 13:55:30 +00:00
Jordi Mallach
3bf6bf45b7 Added Ukrainian translation by Sergey A. Ribalchenko.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@651 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-14 13:11:56 +00:00
Chris Allegretta
4cb991dda1 add_to_cutbuffer() - Remove useless statements (Rocco).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@644 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-10 22:55:16 +00:00
Chris Allegretta
b10283c4e8 Move down current shortcut assignment into loop in browser code to keep it updated
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@643 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-07 12:08:37 +00:00
Chris Allegretta
f3fde7c2fc Fix not being able to select last item in browser with mouse
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@642 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-06 03:02:21 +00:00
Chris Allegretta
5f07180e8a Okay, now let unjustify work with the mouse too :P
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@641 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-06 02:34:31 +00:00
Chris Allegretta
051fc6e05a Added file clicking ability in file browser
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@640 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-05 23:17:36 +00:00
Chris Allegretta
88520c93be Various spelling updates by David Lawrence Ramsey
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@639 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-05 17:45:54 +00:00
Chris Allegretta
a9434800df Add correct name to rcfile.c comments (thx Rocco)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@635 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-05 15:02:27 +00:00
Chris Allegretta
4e18b8f9ce I should actually add the file to the tree
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@634 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-05 15:01:42 +00:00
Jordi Mallach
725490495c Updated FAQ, updated Spanish and Catalan, added utils.c to translations and
little typo fixes here and there.


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@633 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-02 17:18:17 +00:00
Chris Allegretta
09898d99d4 Commit the rest of the stuff backing down gettext changed *shrug*
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@632 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-05-01 11:27:43 +00:00
Chris Allegretta
0bafa91096 Back to the 1.0 version of gettext, I can't figure this one out to save my life =(
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@631 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-30 14:04:44 +00:00
Chris Allegretta
b0bce4b429 Mention config.whatever files in ChangeLog
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@629 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-30 12:22:21 +00:00
Chris Allegretta
8ce2413feb Add color changes, undocumented and ugly, but hey maybe people want to see what chap I wrote so far
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@624 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-30 11:28:46 +00:00
Chris Allegretta
465f1e305d Update html man page too
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@623 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-30 11:23:33 +00:00
Jordi Mallach
3f8db49622 Hugo van der Merwe pointed out that -r was missing in the manpage.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@621 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-30 10:30:43 +00:00
Jordi Mallach
4be36bf1d4 Jacobo updated Galician to latest CVS.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@620 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-29 22:36:58 +00:00
Jordi Mallach
9634571dd6 Added Galician translation by Jacobo Tarrío <jtarrio@trasno.net>.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@619 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-29 10:38:07 +00:00
Chris Allegretta
6cb4e885f2 page_up() - Rewritten with a loop to make screen updates work when mark is set (fixes bug #59).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@618 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-29 02:26:17 +00:00
Chris Allegretta
6efda54a6c Move config.h up in include lists and remove actual_x inline tag
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@616 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-28 18:03:52 +00:00
Chris Allegretta
316e4d9a67 ABCD(), main() - Add Alt-whatever-[a-d] support as well as Alt-whatever-[A-D].
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@615 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-28 16:31:19 +00:00
Chris Allegretta
18d70f1478 added --enable-color and updated nanorc description in ChangeLog
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@613 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-28 15:53:28 +00:00
Chris Allegretta
5050aa6ae7 Addand fix bug #59
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@612 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-22 07:10:21 +00:00
Rocco Corsi
4dfaf93bcd Alt Speller returns to same line & do_gotoline optimizations
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@609 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-20 01:59:55 +00:00
Chris Allegretta
7a50009b1f Fix proto.h ifdef for do_nanorc()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@608 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-19 21:13:46 +00:00
Chris Allegretta
03bf98015d One more
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@607 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-19 03:20:07 +00:00
Chris Allegretta
bf521fabaa Newer config.guess and config.sub
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@606 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-19 02:49:57 +00:00
Chris Allegretta
2fe0ddeab4 *** empty log message ***
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@605 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-19 01:23:44 +00:00
Chris Allegretta
1f0ab55e6d Update configure
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@604 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-19 01:23:08 +00:00
Chris Allegretta
528310223b I guess we need these now?
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@603 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-18 22:10:52 +00:00
Chris Allegretta
cbee08f335 And the Makefile.in.in in po/ also
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@602 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-18 17:15:17 +00:00
Chris Allegretta
cc0da8ab53 Oops, add the new files too
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@601 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-18 14:03:21 +00:00
Chris Allegretta
819d46ac71 Upgrade libintl stuff to gettext 0.10.36
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@600 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-18 14:00:10 +00:00
Chris Allegretta
b881d3ea57 Add --enable-nanorc to version string in nano.c
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@599 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-18 04:34:43 +00:00
Chris Allegretta
8d8e01224b Added rcfile.c source code and basic .nanorc functionality
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@598 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-18 04:28:54 +00:00
Rocco Corsi
12f294c651 "Goto Directory" added and minor fixes in the browser
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@597 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-14 06:50:24 +00:00
Chris Allegretta
ea066c8413 Added --enable-nanorc to configure
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@596 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-13 02:32:06 +00:00
Chris Allegretta
84de552b28 Added --disable-mouse option
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@595 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-12 14:51:48 +00:00
Chris Allegretta
235ab192af Add yesno support to mouse
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@594 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-12 13:24:40 +00:00
Chris Allegretta
6b58acd377 More mouse integration, esp with the shortcut lists
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@593 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-12 03:01:53 +00:00
Chris Allegretta
ac840eb42b Added fork info to ChangeLog
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@592 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-07 18:21:47 +00:00
Chris Allegretta
6e2853705a 1.1 version and note added to README that this is the unstable branch
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@591 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-07 17:50:03 +00:00
Chris Allegretta
9afd119dd5 Back to CVS version
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@590 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-06 23:13:57 +00:00
Chris Allegretta
38068cd152 Nano 1.0.1 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@588 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-06 20:04:23 +00:00
Chris Allegretta
60c65424c3 Oops, stray parenthesis when PATH_MAX isn't defined
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@586 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-03 14:26:35 +00:00
Chris Allegretta
90d307413b More browser and misc fixes by Matthias Andree that Chris screwed around with
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@585 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-03 01:02:38 +00:00
Jordi Mallach
b2c4cbebab rm libintl.h on distclean so we don't get the stupid unresolved symbols anymore.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@584 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-02 13:47:17 +00:00
Chris Allegretta
cef7fbb41a Added --disable-wrapping configure flag
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@583 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-04-02 05:36:08 +00:00
Robert Siemborski
a0238ed022 minor spelling fixes in comments
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@582 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-03-31 21:46:43 +00:00
Chris Allegretta
1c9d7f9f5d Added -o to TODO
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@581 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-03-30 22:37:37 +00:00
Chris Allegretta
1bacd2f8c7 Updated TODO from user feedback
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@580 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-03-28 21:40:05 +00:00
Chris Allegretta
0876dc9860 Change some lstats to stats, check file via lstat first, then stat() if it's a link in the browser
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@579 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-03-28 13:04:08 +00:00
Chris Allegretta
49805175e3 files.c:diralphasort() - Changed stat calls to lstat to stop abort on symlinks, otherwise return 0. (Matthias Andree, fixes bug #58)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@578 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-03-28 02:14:28 +00:00
Chris Allegretta
4bf831ff39 faq.html: Fixed typo in section 6.1 (discovered by Bob Farmer)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@577 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-03-26 15:35:34 +00:00
Chris Allegretta
3948bae1e1 aclocal.m4: - Minor patch for intl check (really this time) (Albert Chin)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@576 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-03-25 00:46:40 +00:00
Chris Allegretta
2071207e84 Well, back to CVS again
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@575 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-03-23 03:51:48 +00:00
Chris Allegretta
2bfbda0fd7 GNU nano 1.0.0 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@574 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-03-23 03:50:44 +00:00
Chris Allegretta
7ab3e8fed7 nano.info - Added dir entry (Albert Chin), Added Albert to credits
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@572 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-03-22 23:12:22 +00:00
Jordi Mallach
0a24b595a6 Final tweaks in Catalan and Spanish for 1.0
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@571 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-03-21 22:57:56 +00:00
Chris Allegretta
35dac58a61 statusq() - Added NANO_BACK_KEY and NANO_FORWARD_KEY cases for left and right
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@570 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-03-21 15:07:20 +00:00
Chris Allegretta
10ae4f11e0 cs.po: Czech translation from Vaclav Haisman
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@569 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-03-20 15:51:43 +00:00
Chris Allegretta
55493c2052 Im an idiot, that could easily screw up --included-gettext. Rolled back libintl.h check
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@568 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-03-18 18:55:06 +00:00
Chris Allegretta
4aa302fe4a aclocal.m4 check change, added explicit check for libintl.h
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@567 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-03-18 18:50:04 +00:00
Chris Allegretta
e31677362b Added void to argless functions decls, changed new to newnode in functions with 'new' variable
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@566 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-03-18 16:59:34 +00:00
Chris Allegretta
a0323de1f7 Roll-back previous change, this way copies Pico's (strange) behavior
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@565 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-03-15 21:14:32 +00:00
Chris Allegretta
0d471de448 Add Ryan to credits
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@564 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-03-15 14:40:42 +00:00
Chris Allegretta
e76f06ba1c move.c: page_down() - Oops, check for <= editwinrows (Ryan Krebs)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@563 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-03-15 03:35:51 +00:00
Chris Allegretta
565f7d5558 Added and fixed BUG #57
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@562 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-03-15 02:02:20 +00:00
Chris Allegretta
2af3904099 Oops, missed one loop
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@561 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-03-14 10:19:10 +00:00
Chris Allegretta
0b33d8864a Oops, remove debugging crap and don't be so conservative in space/tab check loop
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@560 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-03-14 10:17:39 +00:00
Chris Allegretta
74bb31b15a Fix BUG #56 found on SourceForge
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@559 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-03-14 09:08:14 +00:00
Chris Allegretta
94a78b8fb3 Added check for samlinewrap case and cursor placement fixes, closing BUG #55 =-)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@558 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-03-14 08:28:48 +00:00
Adam Rogoyski
1e9183fe31 Add auto indenting of wrapped lines which should be indented. Also fix
total file size (totsize) when auto indenting.


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@557 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-03-13 18:36:03 +00:00
Chris Allegretta
46055b2543 Added string history to 1.1 TODO
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@556 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-03-09 16:19:50 +00:00
Chris Allegretta
53712748ec Oops, update info too :)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@555 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-25 21:14:17 +00:00
Chris Allegretta
67b14b1467 Updated POs for occurrence thang
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@554 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-23 03:16:25 +00:00
Chris Allegretta
203ce15247 nano.texi: - Meta-Z correction and grammar in --enable-tiny desc (Neil Parks)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@553 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-23 03:05:38 +00:00
Jordi Mallach
5b387d7527 Fixed two "occurence" typos.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@552 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-20 12:45:47 +00:00
Chris Allegretta
9c9c5dab4c Back to CVS
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@551 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-20 03:53:31 +00:00
Chris Allegretta
a4a222d1d7 Nano 0.9.99pre3 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@549 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-20 03:52:13 +00:00
Chris Allegretta
a18d7978e2 Fixed garbage in po, I hope this doesn't screw up anything Jordi
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@548 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-20 02:41:13 +00:00
Jordi Mallach
a7b2ed0cac Updated ca.po with changes from Miquel Vidal.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@547 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-20 02:04:43 +00:00
Chris Allegretta
78aac9113d Finnish update
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@546 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-19 19:37:05 +00:00
Chris Allegretta
f4a986465a NEWS for impending 0.9.99pre3 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@545 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-19 05:28:00 +00:00
Chris Allegretta
a57fcb044c Taking a wild guess with people's Y/N/A keys, sure to get me into trouble
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@544 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-18 05:55:47 +00:00
Chris Allegretta
ea620fe88b Yeah, so how about make the yes key == yes instead of no
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@543 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-18 05:39:41 +00:00
Chris Allegretta
0d9109acf6 Add ac to the actual configure script
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@542 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-18 05:26:18 +00:00
Chris Allegretta
2d6f1bc896 Slight update of FAQ for advocacy
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@541 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-17 02:42:03 +00:00
Jordi Mallach
6aec0d6363 Fixed some errors in Spanish
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@540 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-17 01:32:58 +00:00
Jordi Mallach
82b182986b Initial Catalan translation
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@539 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-17 01:31:32 +00:00
Jordi Mallach
8119765cbd Tiny es.po updates
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@538 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-16 20:00:03 +00:00
Chris Allegretta
618f5d788c configure.in: - Added separate check for resizeterm()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@537 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-16 04:48:30 +00:00
Chris Allegretta
4ce8e3b863 Internationalize yes, no and all *sigh*
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@536 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-16 01:49:31 +00:00
Chris Allegretta
35ac99d0d4 Use code instead of command in man page *shrug*. Add GNUish stuff
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@535 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-15 00:25:17 +00:00
Chris Allegretta
c46dd8123c Nano is now a GNU package
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@534 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-14 14:28:27 +00:00
Chris Allegretta
9560bb51ab Update status in README
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@533 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-13 05:18:57 +00:00
Chris Allegretta
882e145ebb Manual fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@532 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-12 06:52:50 +00:00
Chris Allegretta
fb9cffe268 Manual fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@531 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-12 06:42:43 +00:00
Chris Allegretta
8546fa016e Added Bug #55
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@530 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-12 05:01:05 +00:00
Chris Allegretta
7e7bcf8a46 Nano texi manual
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@529 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-12 03:48:53 +00:00
Chris Allegretta
4de7b95511 Delete commented out stuff that isn't going to happen now
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@528 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-12 03:26:10 +00:00
Chris Allegretta
1bf501c236 GNU compliance issues: - Added texinfo manual nano.texi. Added texi options to Makefile.am
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@527 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-12 03:24:46 +00:00
Chris Allegretta
af6414ac37 Reworked main menu list, added help to default list, aligned ^R with ^O, ^\ with ^W
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@526 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-11 19:05:05 +00:00
Chris Allegretta
4ed131510e do_delete() - Added check for current->next == fileptr, as we have a magic line code again, fixes sillyness at the end of the last line before the magic line (reported by J.A. Neitzel)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@525 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-10 17:50:50 +00:00
Chris Allegretta
8bc03b6fdc main() - Added ENABLE_NLS check around gettext stuff
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@524 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-09 02:57:52 +00:00
Chris Allegretta
b55999ebcb de,fi,id translation updates
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@523 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-09 02:49:46 +00:00
Chris Allegretta
3362cae2f6 FAQ updates and fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@522 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-06 22:21:25 +00:00
Chris Allegretta
af7fc3dbc1 Oops, actually add hu.po :-)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@521 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-06 05:16:59 +00:00
Chris Allegretta
00ae5dfa27 do_justify - If the keystroke after the justify is not the unjustify key, blank the statsubar (bug reported by Neil Parks)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@520 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-05 18:24:33 +00:00
Chris Allegretta
d096f68966 hu.po: - Hungarian translation by Horvath Szabolcs
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@519 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-05 13:51:31 +00:00
Chris Allegretta
09f39cbec6 Fix for bugu #54
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@518 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-05 13:43:23 +00:00
Chris Allegretta
a8785e0793 Added BUG #54
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@517 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-04 22:21:12 +00:00
Jordi Mallach
37388ee91e Updated for latest CVS.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@516 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-04 00:11:02 +00:00
Chris Allegretta
de48b41b61 configure.in: - Autoconf compatibility fixes (Pavel Roskin)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@515 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-02-01 22:56:44 +00:00
Chris Allegretta
7c1fee7868 Back to CVS version
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@514 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-31 23:24:54 +00:00
Chris Allegretta
34318edba2 Nano 0.9.99pre2 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@512 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-31 23:22:36 +00:00
Chris Allegretta
90e040455d Update NEWS for upcoming release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@511 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-31 18:01:24 +00:00
Chris Allegretta
4e90c40e72 Fix cursor not on after resize
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@510 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-29 23:40:43 +00:00
Chris Allegretta
08020889d3 Fix for resizing the window in modes other than normal edit mode Changes to handle_sigwinch(), main(). Fixes bug #52 (Rocco)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@509 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-29 23:37:54 +00:00
Chris Allegretta
e434b45148 do_alt_speller and nanogetstr fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@508 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-27 19:25:00 +00:00
Robert Siemborski
221a46e271 updated bugs as discussed on the list
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@507 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-26 16:23:39 +00:00
Chris Allegretta
169ee8498e Fixed Bug #53
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@506 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-26 01:57:32 +00:00
Chris Allegretta
12de5ca7cf Added bug #53
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@505 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-25 22:16:12 +00:00
Chris Allegretta
a711f7e638 username_tab_completion() - Removed redundant conditional (Rocco)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@504 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-23 04:16:31 +00:00
Chris Allegretta
2c2c5f2156 username_tab_completion: rewritten using getpwent
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@503 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-23 03:27:31 +00:00
Chris Allegretta
e5e4d49316 Rocco's groovy fixes to real_dir_from_tilde
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@502 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-23 03:09:15 +00:00
Chris Allegretta
0a06e07831 replace for loop for hline init with memset in init functions
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@501 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-23 02:35:04 +00:00
Chris Allegretta
17276e506e Oops, Rob not Rocco :>
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@500 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-23 01:22:32 +00:00
Chris Allegretta
d4ddd014a3 Oops, center_x and y, not current. Thx Rocco
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@499 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-23 01:17:07 +00:00
Chris Allegretta
ee733e6d4c real_dir_from_tilde() - Rewritten using getpwent (suggected by Adam)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@498 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-22 22:17:08 +00:00
Robert Siemborski
60cd6aa04f totsize fix in do_justify
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@497 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-21 23:23:48 +00:00
Chris Allegretta
7f7ce56e4e Oops, make that usage()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@496 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-21 16:35:49 +00:00
Chris Allegretta
e9a2d03497 version() - Add arg to -T help (Rocco).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@495 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-21 16:08:21 +00:00
Chris Allegretta
9d6f3f3f60 Removed - from version in NEWS and ChangeLog
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@494 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-21 02:35:03 +00:00
Chris Allegretta
f0b26df170 global.c: Don't define toggles global or toggle_init_one if using --tiny
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@493 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-20 22:18:18 +00:00
Chris Allegretta
17dcb7212f Get rid of center_x and center_y, removed redundant free_node, added restore of totsize when unjustifying
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@492 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-20 21:40:07 +00:00
Chris Allegretta
8d9b11a847 username_tab_completion(): - Optimization and removal of useless vars (Rocco).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@491 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-19 04:17:24 +00:00
Chris Allegretta
0fc2b81df8 write_file(): Don't free() realname on write error
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@490 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-18 15:04:20 +00:00
Chris Allegretta
76745fbe5f Back to CVS version
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@489 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-18 04:40:06 +00:00
Chris Allegretta
9faa3f13e2 Nano 0.9.99pre1 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@487 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-18 04:37:09 +00:00
Chris Allegretta
3c10ec016c Added bug #51
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@486 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-17 19:27:55 +00:00
Robert Siemborski
c2eeb4e585 small fix for do_justify totsize calculations
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@485 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-17 03:29:02 +00:00
Chris Allegretta
4058709e0b input_tab(): Added memset() to matchBuf to ensure sanity (Rocco, Adam).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@484 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-16 04:45:38 +00:00
Chris Allegretta
51dd32fb4e Changed null out at end of matchBuf from NULL to 0
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@483 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-16 04:20:08 +00:00
Chris Allegretta
ae4318dab0 Get rid of unneeded call to usage() in main() when calling a flag for a function that hasn't been compiled in (Rocco)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@482 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-16 04:18:26 +00:00
Chris Allegretta
3693944492 main(): Initialized kbinput to get around stupid compiler warning.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@481 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-15 20:26:38 +00:00
Chris Allegretta
4097379a26 Changed 'without NumLock on' to 'with NumLock off', more easy to understand?
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@480 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-15 20:25:24 +00:00
Chris Allegretta
b4c43683a5 input_tab(): - Added null end of matchBuf for sanity (Rocco).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@479 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-15 17:22:27 +00:00
Chris Allegretta
a35ec048d7 files.c:cwd_tab_completion(), input_tab(): Changed bare malloc/calloc calls to nmalloc (found by Rocco).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@478 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-15 02:26:12 +00:00
Chris Allegretta
2be96d00b9 Oops, forgot to credit Rocco in one place
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@477 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-14 05:22:43 +00:00
Chris Allegretta
e61e830010 Rocco's source code cleanups and #defines for magic values in global_init(). Added die_too_small() function
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@476 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-14 05:18:27 +00:00
Chris Allegretta
201d9bf467 Added print_numlock_warning(), code to figure out when numlock makes the keypad go bad.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@475 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-14 03:17:53 +00:00
Chris Allegretta
1748cd1d0f Added function ABCD(), better support for default settings
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@474 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-13 17:22:54 +00:00
Chris Allegretta
d9742c69c0 fi.po updates by Pauli Virtanen
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@473 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-12 15:51:53 +00:00
Rocco Corsi
af5c302b48 Move #ifndef cleanups. Some HELP and SPELLER #ifndef additions.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@472 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-12 07:51:05 +00:00
Chris Allegretta
4ee0b41b41 Moved ChangeLog entries for configure.in to configure.in section
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@471 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-11 15:11:00 +00:00
Chris Allegretta
cd6f12d53e Moved code to define all disabled when --tiny is used from nano.h to configure.in
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@470 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-11 15:08:06 +00:00
Rocco Corsi
06aca1cc9e Rolled back DISABLE_TABCOMP and NANO_SMALL changes from earlier today
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@469 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-11 05:30:31 +00:00
Chris Allegretta
a4d6d1df37 Add check for tiny option in #ifdefs for DISABLE_TABCOMP code
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@468 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-10 23:44:10 +00:00
Chris Allegretta
7db63a5b65 Change Linux to GNU/Linux in the faq
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@467 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-10 22:05:40 +00:00
Chris Allegretta
2c4feca17f faq.html: Added section 3.6, reducing binary size
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@466 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-09 17:40:56 +00:00
Chris Allegretta
bbebec6871 configure.in: - Fix for _use_keypad check breaking slang support (Christian Weisgerber)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@465 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-09 00:37:32 +00:00
Chris Allegretta
8eac3b5069 do_browser() - added space and - keys for page down and up
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@464 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-08 21:14:04 +00:00
Chris Allegretta
bf69261597 real_dir_from_tilde(): ops, fix case where buf =~, silly crash
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@463 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-08 16:59:19 +00:00
Chris Allegretta
7e08082ffe Back to CVS ver
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@462 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-08 02:31:03 +00:00
Chris Allegretta
4ca160f784 0.9.25 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@460 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-08 02:29:20 +00:00
Chris Allegretta
155d620a14 Add and fix Bug #51 :-)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@459 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-08 01:50:37 +00:00
Chris Allegretta
2a2e2be0c4 Added and fixed bug #50
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@458 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-08 01:32:58 +00:00
Chris Allegretta
7044489c76 do_help: Do the bottom window the right wrong way if NO_HELP is set
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@457 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-07 23:02:02 +00:00
Chris Allegretta
1699144136 Update docs for upcoming 0.9.25 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@456 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-07 22:06:11 +00:00
Chris Allegretta
19b9e2be94 Oops, restore keypad() call when using PDCURSES
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@455 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-07 07:31:12 +00:00
Chris Allegretta
3f583165c4 Oops, take out my debugging code
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@454 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-07 05:51:28 +00:00
Chris Allegretta
e1ebaf3821 do_writeout() takes an arg now, and mallocstrcpy now gives up if src == dest
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@453 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-07 05:50:36 +00:00
Chris Allegretta
c08f50d9de Back to the drawing board, old keypad code, dont slightly better
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@452 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-06 18:12:43 +00:00
Chris Allegretta
816a165b4b Fixes for dir crash by rocco and exit called on insert file
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@451 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-06 17:43:56 +00:00
Chris Allegretta
150469a646 Added do_browse_from(), called from do_writeout and do_insert, changed mallocstrcpy to *char
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@450 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-05 21:13:14 +00:00
Chris Allegretta
544347c08a Oops, stop freeing stuff we can't necessarily free
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@449 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-05 14:31:52 +00:00
Chris Allegretta
6636dc3181 Changed ENABLE_BROWSER to DISABLE_BROWSER, tiny build now doesn't build browser either
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@448 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-05 05:41:07 +00:00
Chris Allegretta
90661b2def Updated README with snazzy one line desc of nano
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@447 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-04 23:25:18 +00:00
Chris Allegretta
123e5e66d3 Don't free realname when exiting do_browser in insert_file
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@446 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-04 22:05:47 +00:00
Chris Allegretta
f4f7e04c5b Work around gnome-terminal, I'm tired of this
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@445 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-04 16:56:15 +00:00
Jordi Mallach
75ef81bc42 Browser Spanish translations
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@444 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-04 16:48:59 +00:00
Chris Allegretta
ba8edea860 Accept s and S silently to selected a file/dir
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@443 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-04 05:22:46 +00:00
Chris Allegretta
b0f5282de2 Fix segfault when width == 0
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@442 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-04 05:20:23 +00:00
Chris Allegretta
fe41584102 Make functions return themselves when do_browser() aborts
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@441 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-04 05:08:37 +00:00
Chris Allegretta
0e9d3c6c28 Commented file browser code
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@440 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-04 04:59:17 +00:00
Chris Allegretta
6e82741931 Added fkey equivs to browser
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@439 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-04 04:41:08 +00:00
Chris Allegretta
f0999a18f0 use lstat instead of stat in filestat, so we can check for if the file is a symlink in the browser
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@438 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-04 02:49:56 +00:00
Chris Allegretta
63c8ab94fb Tadaa. Keypad issue fixed. It was the stupid timeout(0) call. UGH
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@437 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-04 02:33:52 +00:00
Chris Allegretta
85b444137b Added --enable-browser to version()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@436 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-03 20:13:28 +00:00
Chris Allegretta
425a266a92 Some better page up/down fixes, added keypad_on() call for now
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@435 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-03 15:09:27 +00:00
Chris Allegretta
f4b9601c1b First try at browser
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@434 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-03 07:11:47 +00:00
Chris Allegretta
827b15fdc0 credits spelling fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@433 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-03 02:09:04 +00:00
Rocco Corsi
8b6cccc5cc TAB-TAB completion segfaulting with more than 2048 files fixed. (Rocco)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@432 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2001-01-02 06:21:07 +00:00
Chris Allegretta
ee289d7a2b Don't skip . and .. in cwd_tab_completion()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@431 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-27 16:12:47 +00:00
Chris Allegretta
1e6fb08d15 Finally got rid of TIP from README and updated the Overview which people always quote from
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@430 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-27 15:46:22 +00:00
Chris Allegretta
66795ecbe1 do_cursorpos cleanups
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@429 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-27 04:47:28 +00:00
Chris Allegretta
d55655f23a Reordered --help usage listing by alpha
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@428 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-27 03:36:47 +00:00
Jordi Mallach
e34f96dec2 Add request for backup saves.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@427 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-20 01:06:39 +00:00
Jordi Mallach
5b89a14514 Added configure and Makefile.in. Yell at me :)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@426 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-19 23:01:24 +00:00
Jordi Mallach
56e6d72282 Corrected some typos and small errors in the faq.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@425 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-19 22:59:55 +00:00
Jordi Mallach
79ea7dd883 Corrected some typos and small errors.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@424 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-19 22:58:00 +00:00
Chris Allegretta
e47e4edf7f Back to CVS version
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@423 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-19 03:01:00 +00:00
Chris Allegretta
c7ccb873f1 nano 0.9.24 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@421 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-19 02:59:43 +00:00
Chris Allegretta
66149e7aee Update docs for .24 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@420 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-19 02:51:06 +00:00
Chris Allegretta
07b9c2b90c Give the read file error segfault a bug # in BUGS
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@419 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-18 20:18:37 +00:00
Chris Allegretta
651216388c Fix lots of compiler warnings
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@418 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-18 07:05:27 +00:00
Chris Allegretta
b7d00efd6d Added --disable-help string to version()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@417 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-18 05:36:51 +00:00
Chris Allegretta
d1627cffd0 Fix help menu keypad issues
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@416 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-18 05:03:16 +00:00
Chris Allegretta
7492cecc27 main(): - Added --view option to getopt_long()call . Bug discovered by Rocco Corsi.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@415 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-18 04:55:21 +00:00
Chris Allegretta
affeda817e do_toggle(): - Added fix_editbot() call to fix improper redisplay of edit window when using nohelp toggle (bug discovered by Rocco Corsi).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@414 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-18 04:03:48 +00:00
Chris Allegretta
92325e74b9 Oops, credit Rocco
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@413 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-18 03:44:22 +00:00
Chris Allegretta
220ba692e6 help_init(): - Fix off by one error that was making ^G help in normal mode and ^_ in pico mode not be displayed in the help.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@412 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-18 03:40:00 +00:00
Chris Allegretta
51b3eec536 Added -b, -e and -f compatibility flags, updated man pages, added Alt-Alt-x functionality
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@411 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-18 02:23:50 +00:00
Chris Allegretta
3a7c0bee6b Fix segfault when read_file encounters an error opening the file
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@410 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-18 01:09:07 +00:00
Chris Allegretta
1a6e904583 Rid nano of PATH_MAX\!
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@409 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-14 13:56:28 +00:00
Chris Allegretta
b04a98dc86 Use MAX_PATH in write_file strncpy (for now) instead of 132
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@408 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-14 13:24:08 +00:00
Chris Allegretta
7960dcf919 Removed unneeded st2 var, don't open device files in open_file()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@407 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-13 15:01:29 +00:00
Chris Allegretta
544d9b0210 Update comment in write_file
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@406 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-11 02:47:13 +00:00
Chris Allegretta
1cd506612d Remove useless fstat call
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@405 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-11 02:47:12 +00:00
Chris Allegretta
3bc8c72c8b Added --disable-help, moved hold pointer declaration
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@404 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-10 17:03:25 +00:00
Chris Allegretta
c130297a79 More totsize :P
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@403 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-10 06:07:01 +00:00
Chris Allegretta
321590a59d More totsize fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@402 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-10 06:03:40 +00:00
Chris Allegretta
e51c95fa7b uncutting at filebot magic line fix and new_magicline totsize increment
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@401 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-10 05:54:27 +00:00
Chris Allegretta
5146fec04c Cut and renumber fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@400 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-10 05:44:02 +00:00
Chris Allegretta
ef12311948 Update ChangeLog
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@399 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-10 00:04:13 +00:00
Chris Allegretta
f597777323 Remove the append check we just added :>
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@398 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-09 23:58:41 +00:00
Chris Allegretta
d62614cbc4 Let's just copy joe word for word and just change the name to nano!!!!
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@397 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-09 23:37:00 +00:00
Chris Allegretta
33084397dd More fun security crap
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@396 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-09 22:50:38 +00:00
Chris Allegretta
38552ee7a8 Back to CVS version
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@395 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-09 03:35:49 +00:00
Chris Allegretta
b29550e58d Nano 0.9.23 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@393 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-09 03:34:12 +00:00
Chris Allegretta
8816760ea1 Updated NEWS for release tonight
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@392 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-09 00:07:06 +00:00
Chris Allegretta
da13f0b45c Oops, misplaced comment
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@391 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-06 05:59:31 +00:00
Chris Allegretta
1bd0ce2832 Okay, now the permissions should be fixed too
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@390 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-06 05:56:08 +00:00
Chris Allegretta
7b36c52efc Changed --disable-spell to --disable-speller
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@389 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-06 01:08:10 +00:00
Chris Allegretta
b5bb24c949 Commented the code that got us into this mess in the first place 9 releases ago
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@388 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-06 00:57:54 +00:00
Chris Allegretta
71e464034d Line up link/unlink/rename check if conditional with top if conditional
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@387 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-06 00:40:26 +00:00
Chris Allegretta
21e3c28af2 Oops, get rid of my debugging code
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@386 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-05 12:04:16 +00:00
Chris Allegretta
fb62f73a9a Rocco fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@385 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-05 11:36:41 +00:00
Chris Allegretta
928a7f535c Added anyexists and realexists documentation
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@384 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-04 05:31:34 +00:00
Chris Allegretta
fb2226a9ae Okay, we'll use O_EXCL also
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@383 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-04 05:25:47 +00:00
Chris Allegretta
37f627f2f8 Oops, we didn't want the latter check because if this is a new file there wont be any previous inodes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@382 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-04 05:19:25 +00:00
Chris Allegretta
07f9ee059f Okay, forget O_EXCL, do lots of other obscure checks instead =)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@381 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-04 05:15:39 +00:00
Chris Allegretta
908805a2e8 Rocco's edit_add off by one fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@380 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-04 04:42:56 +00:00
Chris Allegretta
20c131cf67 Added tmp check to TMP_OPT section (how apropriate).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@379 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-04 04:20:09 +00:00
Chris Allegretta
5982849325 Added O_EXCL call to open is tmp == 1
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@378 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-04 03:31:39 +00:00
Chris Allegretta
4a938e137a Back to CVS version
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@377 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-03 03:45:35 +00:00
Chris Allegretta
d2cd65c967 Nano 0.9.22 release sync
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@375 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-03 03:43:17 +00:00
Chris Allegretta
90941714d2 Updated html version of man page
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@374 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-03 03:23:16 +00:00
Jordi Mallach
cb7fa25d3d Updated for new nano.save behaviour
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@373 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-03 03:16:47 +00:00
Chris Allegretta
fedd724086 Updating ChangeLog for 0.9.22 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@372 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-03 03:15:38 +00:00
Jordi Mallach
d87b34121f Updated for final nano.save behaviour
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@371 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-03 03:15:19 +00:00
Jordi Mallach
b998483369 Added nano to the list
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@370 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-03 03:10:44 +00:00
Chris Allegretta
9756d62d93 Okay, NOW tell what the file is we didn't write if we didn't write it
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@369 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-03 03:06:45 +00:00
Chris Allegretta
581bc60d0c Okay last time, now if there's any file at all, dont save the .save file. (foolproof? :)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@368 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-03 03:01:12 +00:00
Jordi Mallach
d7ad75adb3 Documented nano.saves and other small changes to manpage.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@367 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-03 02:46:02 +00:00
Chris Allegretta
9ee2a0d0bc Updated NEWS for 0.9.22 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@366 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-02 21:50:57 +00:00
Chris Allegretta
ac139dd6a6 Updated NEWS for 0.9.22 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@365 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-02 21:31:17 +00:00
Chris Allegretta
f7ee9e6996 Okay, now abort if the symlink isn't owned by the user, and some mode fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@364 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-02 21:13:50 +00:00
Jordi Mallach
3ea0a8f1d6 .save changes.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@363 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-02 16:57:48 +00:00
Chris Allegretta
8c36f8876c Silly newline fix in die()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@362 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-02 05:33:00 +00:00
Chris Allegretta
3dbb2783d3 Okay, so if the .save file is a symlink, don't write to it, abort
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@361 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-02 04:36:50 +00:00
Chris Allegretta
331fc7a6f4 Okay, now write_file never trusts symlinks at all, no chance of spelling symlink attack :)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@360 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-02 03:06:37 +00:00
Chris Allegretta
c5174aaef3 Oops, manually turn off FOLLOW_SYMLINKS if it's on
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@359 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-02 02:38:54 +00:00
Chris Allegretta
e7a5893245 Changs to die() and handle_sighup() for security
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@358 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-02 02:36:22 +00:00
Chris Allegretta
9e2934fd27 Fix for do_next_word and screen updates
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@357 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-01 23:49:48 +00:00
Chris Allegretta
4eb7aa04f3 Okay, don't define nano_small_msg or nano_disabled_msg id not needed
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@356 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-01 18:57:11 +00:00
Chris Allegretta
ff269f8873 Added --disable-justify and --disable-spell options, code cleanups
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@355 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-12-01 18:46:01 +00:00
Chris Allegretta
09a8084943 DISABLE_TABCOMP checks - #ifdef around check_wildchar_match and don't call real_dir_from_tilde in do_insertfile() if set
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@354 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-30 02:31:13 +00:00
Chris Allegretta
56b24b5909 Took out help from spell_list and changed SPELL_LIST_LEN to 1
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@353 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-29 23:57:20 +00:00
Chris Allegretta
7262358381 Oops, I guess that's MY right alt key also =). And right control is ASCII 543
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@352 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-29 23:43:28 +00:00
Jordi Mallach
28fdf444e5 nano.pot survived the masacre.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@351 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-29 10:16:36 +00:00
Chris Allegretta
d00e6dfacd Rocco's changes to spell checking and my alterations
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@350 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-29 04:33:26 +00:00
Chris Allegretta
75155dff51 Ignore key sequence 545, Alt-Gr key on german keyboard
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@349 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-28 23:04:24 +00:00
Jordi Mallach
9200544269 .cvsignore for src/
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@348 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-28 17:13:41 +00:00
Jordi Mallach
acf2ac244d Ick, I left out libintl.h.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@347 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-28 17:04:51 +00:00
Jordi Mallach
556b3a0028 .cvsignore for intl/.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@346 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-28 17:01:26 +00:00
Jordi Mallach
24ccaf1e0f Kill kill kill
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@345 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-28 16:53:33 +00:00
Jordi Mallach
2ddb841940 Delete even more!
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@344 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-28 16:52:31 +00:00
Jordi Mallach
ce478115e4 Revoving gmo's.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@343 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-28 16:48:51 +00:00
Jordi Mallach
40a24b7372 Added files now.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@342 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-28 16:47:22 +00:00
Jordi Mallach
90b780b5d7 Silly me, I hope.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@341 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-28 16:38:29 +00:00
Jordi Mallach
19ed700690 Let's get rid of some stuff :)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@340 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-28 16:30:32 +00:00
Chris Allegretta
2773184d92 Handle ~~ in tab comp without segfaulting =)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@339 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-28 05:53:41 +00:00
Chris Allegretta
184e1a6a4e Update the TODO, YAY
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@338 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-28 04:09:39 +00:00
Chris Allegretta
8be8ce2086 Various ChangeLog cleanups and additions
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@337 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-28 02:15:30 +00:00
Jordi Mallach
7e0e29d3bb Justify updates. Hopefully, this is the po in .22 :)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@336 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-28 01:56:12 +00:00
Chris Allegretta
8a646adec4 Updated faq about automatically running strip
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@335 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-28 00:15:54 +00:00
Chris Allegretta
984b5366cd Oops\! Must update the date on the man page when we change i
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@334 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-27 23:12:27 +00:00
Chris Allegretta
4a9c8589b2 Oops, do it in either case, whether we did unjustify or not
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@333 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-27 22:59:40 +00:00
Chris Allegretta
0779835ce4 Okay, now make the shortcut list reflect the unjustify availability
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@332 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-27 22:58:23 +00:00
Chris Allegretta
d022eace15 Fix for justift at top of file
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@331 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-27 02:50:49 +00:00
Chris Allegretta
2ff25693f3 Oops, get rid of silly debugging code
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@330 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-27 00:24:42 +00:00
Chris Allegretta
9149e610b3 Implemented Unjustify, HAHAHA
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@329 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-27 00:23:41 +00:00
Chris Allegretta
24946bd77a read_file() - - Added check for fileptr == NULL
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@328 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-26 21:34:47 +00:00
Chris Allegretta
35788ff48c I hereby retract bug #48, as Pico does the exact same thing, oops
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@327 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-26 04:39:49 +00:00
Chris Allegretta
9956e530d0 Make nano at least not crash on weird binary data
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@326 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-26 02:09:53 +00:00
Chris Allegretta
7ffc01f00c Added bug #48
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@325 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-25 20:52:28 +00:00
Chris Allegretta
e106a87841 Added Christian Weisgerber too...
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@324 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-25 20:17:43 +00:00
Chris Allegretta
7cd9f74b51 Added Christian Weisgerber too...
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@323 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-25 20:17:28 +00:00
Chris Allegretta
150c50d512 Oops, forgot Bill Soudan
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@322 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-25 20:00:02 +00:00
Chris Allegretta
a131c7c029 Oops, forgot Bill Soudan
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@321 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-25 19:59:41 +00:00
Chris Allegretta
8b4ca4a30b Make credits less jumpy
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@320 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-25 18:21:37 +00:00
Chris Allegretta
25f4e58ff4 do_insertfile(): - Added call to real_name_from tilde, oops.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@319 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-25 05:03:20 +00:00
Jordi Mallach
d819a4cf06 Destroyed any chance of getting a surprise with viewing credits. Because I translated them, of course.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@318 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-25 04:50:25 +00:00
Chris Allegretta
04fec91362 Oops, how about we actually make username completion work if they didn't complete before
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@317 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-25 04:43:43 +00:00
Chris Allegretta
8a0de3bb3f New arg --enable-extra, checks for ./configure options, oher stuff :-)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@316 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-24 20:45:14 +00:00
Chris Allegretta
650e8a406b Rocco's unset modified on tmp file write fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@315 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-24 14:15:17 +00:00
Chris Allegretta
0f5dfef8b0 Oops, better free realname in write_file if we're done using it
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@314 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-24 14:02:57 +00:00
Chris Allegretta
be77c6119f Implemented username tab completion, cleaned up existing tabcomp code, added --disable-tabcomp option
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@313 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-24 14:00:16 +00:00
Chris Allegretta
1866609311 Back to CVS version
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@312 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-24 01:37:14 +00:00
Chris Allegretta
ca7a21d358 Nano 0.9.21 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@310 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-24 01:35:40 +00:00
Chris Allegretta
71366cd21a Updated NEWS for impending release, updated TODO for 1.0 stuff
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@309 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-23 21:04:27 +00:00
Chris Allegretta
6c5781ba10 removed update_line call in do_up, fix for marker set update?
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@308 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-23 01:19:58 +00:00
Chris Allegretta
c793c43e95 Actually use last_replace if user just hits enter in do_replace with PICO_MODE on
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@307 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-21 12:52:55 +00:00
Chris Allegretta
31c76660ed Changed check from argc == 1 to argv[optind] == NULL to display "New File" in statusbar or not
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@306 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-21 06:20:20 +00:00
Chris Allegretta
f26bca74d0 Added Rocco to AUTHORS
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@305 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-21 03:04:45 +00:00
Chris Allegretta
9fc5facab2 Added Rocco to AUTHORS
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@304 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-21 02:20:42 +00:00
Chris Allegretta
1cc29f626d Rocco's fix for current_x increment
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@303 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-20 01:29:37 +00:00
Chris Allegretta
d466ab7be0 Updated man page, real and html
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@302 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-19 20:36:41 +00:00
Chris Allegretta
ef601bbe08 Sigh, fix previous search string not being displayed at all in PICO_MODE
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@301 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-19 19:15:03 +00:00
Chris Allegretta
aaabe1f865 Fix replace abort moves cursor ahead one space
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@300 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-19 18:20:07 +00:00
Chris Allegretta
ac0e63aa89 Back to CVS version
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@299 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-19 02:25:43 +00:00
Chris Allegretta
6da149adf9 0.9.20 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@297 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-19 02:23:03 +00:00
Chris Allegretta
3ebac1c886 Okay reworded 4.6 a little
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@296 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-19 00:47:30 +00:00
Chris Allegretta
42004f0831 Update faq for missing blockquote and changed frozen dist in debian portion to stable
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@295 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-19 00:34:46 +00:00
Chris Allegretta
47ddfaf44f Added new previous string display to section 4 of faq
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@294 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-18 19:04:32 +00:00
Chris Allegretta
44b52ca67b Added NEWS for upcoming release, username comp to TODO
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@293 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-18 16:46:14 +00:00
Jordi Mallach
d25385b090 Final, tiny updates in es.po for 0.9.20.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@292 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-18 03:31:21 +00:00
Chris Allegretta
258ac42140 comment out username completino code with macros since unimplemented, fix -Wall warnings on Irix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@291 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-18 03:06:56 +00:00
Chris Allegretta
63a89d386b comment out username completino code with macros since unimplemented, fix -Wall warnings on Irix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@290 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-18 03:05:50 +00:00
Chris Allegretta
6e8ed7128e Update TODO for release (oops)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@289 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-18 02:22:28 +00:00
Chris Allegretta
bf9a8cc23d Changed PICO_MSGS to PICO_MODE and strings
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@288 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-17 01:37:39 +00:00
Chris Allegretta
5b1faac336 nanogetstr(): Added check for ASCII 54[124] when using PDCURSES, ignore them if found
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@287 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-16 19:55:30 +00:00
Chris Allegretta
5bf51d3872 Updated BUGS, optimized search_init a little, fixed bug #47
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@286 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-16 06:01:10 +00:00
Chris Allegretta
cbb0f8bde2 -pedantic fixes by Rocco Corsi
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@285 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-15 03:50:02 +00:00
Chris Allegretta
2c9752291d tab completion fixes, removed wefresh() from blank_edit
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@284 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-15 01:25:42 +00:00
Chris Allegretta
b5b89aeb93 Aha, works even better now. Made input_tab much more grabby, it touches lastWasTab now also...
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@283 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-14 18:25:26 +00:00
Chris Allegretta
022b96f941 Rocco's latest spellcheck fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@282 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-14 17:47:58 +00:00
Chris Allegretta
442f2c5156 Latest tab completion update, sort of works =)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@281 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-14 17:46:06 +00:00
Chris Allegretta
0468612b4d replace update patch from rocco
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@280 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-13 15:45:50 +00:00
Chris Allegretta
271e972ff0 Rocco's changes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@279 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-10 18:15:43 +00:00
Chris Allegretta
a60e02c950 Okay, for some reason the statusq call in do_int_spell wasn't updated
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@278 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-06 13:18:25 +00:00
Chris Allegretta
85b19e9110 *sigh*, okay, if there's only 1 match, dont beep either. Done, I swear
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@277 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-06 05:47:36 +00:00
Chris Allegretta
24dd8d6532 Oops, dont beep so much ;) Yes when we find one match and fill in buf, no otherwise
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@276 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-06 05:45:48 +00:00
Chris Allegretta
24342437c7 Blank edit window when no matches found
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@275 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-06 05:41:20 +00:00
Chris Allegretta
e118acc068 Change num_matches check from if to switch, fix check for num_matches == 0, fix allocation for matchBuf. Ugh.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@274 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-06 05:40:03 +00:00
Chris Allegretta
7d97ce7baf Much more sane matches allocation, beep when multiple matches found, or none...
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@273 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-06 04:04:15 +00:00
Chris Allegretta
b684805da7 Add a nice (more) tag when there's too many completions
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@272 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-06 02:59:11 +00:00
Chris Allegretta
7da4e9f28b Add tab completion option to statusq and nanogetstr, beep when multiple/no matches found
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@271 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-06 02:57:22 +00:00
Chris Allegretta
7586495813 Okay, now format the matches the right way
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@270 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-05 22:48:35 +00:00
Chris Allegretta
3b0d14444f Oops, free foo and don't allocate it every time throught the loop
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@269 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-05 21:56:54 +00:00
Chris Allegretta
ec58a99326 input_tab: Now autocomplete up until the matches diverge by nanme works, yay
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@268 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-05 21:54:23 +00:00
Chris Allegretta
04d848e6d9 Added tab completion code
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@267 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-05 17:54:41 +00:00
Chris Allegretta
27eb13f0fa Rocco's spelling code
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@266 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-05 16:52:21 +00:00
Chris Allegretta
71844ba03a Use old-style editing with PICO_MSGS enabled
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@265 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-03 14:23:00 +00:00
Chris Allegretta
67574f483e Format general changes for CVS code the right way
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@264 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-03 03:35:29 +00:00
Chris Allegretta
0bd807782a Fixed bug #45, stupid...
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@263 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-03 01:29:37 +00:00
Chris Allegretta
1cc0b7fdca Fixed bug #45, stupid...
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@262 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-03 01:29:04 +00:00
Chris Allegretta
90594e268a Update ChangeLog for the stuff I just hacked
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@261 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-02 15:53:40 +00:00
Chris Allegretta
0d1e8d66e4 Make nanoget_repaint be much more eleet. Uses $ for indication of beyond COLS, prompt is always displayed
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@260 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-02 15:30:24 +00:00
Chris Allegretta
92d2bab3ef nanoget_repaint changes, do_writeout fix with var length strings
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@259 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-02 14:53:46 +00:00
Chris Allegretta
f5deac3d0f Oops, fix answer getting borked when using shortcuts at statusbar and nothing's typed
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@258 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-02 05:10:26 +00:00
Chris Allegretta
31925e4517 Allow variable length strings on statusbar
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@257 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-02 04:40:39 +00:00
Jordi Mallach
e7a647c343 Added some missing gettext calls and updated Spanish.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@256 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-01 18:43:21 +00:00
Chris Allegretta
b46df990ad Lend replace_line() a void
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@255 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-11-01 02:12:13 +00:00
Chris Allegretta
dd5328ccbb Removed null string code
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@254 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-10-31 05:32:22 +00:00
Chris Allegretta
4d29be19c8 Removed null string code
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@253 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-10-31 05:32:09 +00:00
Chris Allegretta
e364740aea Added checks for deleting search string when there was a previous value
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@252 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-10-31 05:28:50 +00:00
Chris Allegretta
86f8b3a163 Added checks for deleting search string when there was a previous value
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@251 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-10-31 05:28:33 +00:00
Chris Allegretta
105da33276 Made previous s/r values editable text
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@250 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-10-31 05:10:10 +00:00
Chris Allegretta
f754eaadd2 Credit Jordi
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@249 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-10-30 05:12:41 +00:00
Jordi Mallach
0ae0dcd580 Updated Spanish strings for lattest CVS.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@248 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-10-28 12:38:02 +00:00
Chris Allegretta
9c371a24e3 Converted ifs to switches, added Rocco's optmiization
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@247 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-10-27 05:48:05 +00:00
Chris Allegretta
462a1997e9 Remove redundant code in do_replace()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@246 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-10-27 05:33:18 +00:00
Chris Allegretta
810632d666 Bug #46, discovered and fixed
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@245 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-10-27 04:36:01 +00:00
Chris Allegretta
69fbef6e76 Re-added NANO_NULL_KEY case to search_init code
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@244 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-10-26 12:49:54 +00:00
Chris Allegretta
bd9e7c3c36 Replace with null string option, ran source through indent again
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@243 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-10-26 01:44:42 +00:00
Chris Allegretta
a0e957bc0d Rocco's findnextstr fixes, lost of other tweaks
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@242 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-10-24 22:25:36 +00:00
Chris Allegretta
f9b6c9b398 Fixed iris-ansi term problem
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@241 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-10-18 19:35:59 +00:00
Chris Allegretta
d7934d4c85 Added #ifdef around toggle_regex_msg to get rid of compiler warning (toggle_init())
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@240 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-10-03 05:39:29 +00:00
Chris Allegretta
de8f833989 configure sync with configure.in *shrug*
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@239 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-10-03 05:15:59 +00:00
Chris Allegretta
70e82f3084 Back to CVS version
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@238 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-10-03 02:36:50 +00:00
Chris Allegretta
35d90259ed Nano 0.9.19 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@236 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-10-03 02:32:07 +00:00
Chris Allegretta
07e97d61c0 Updates for upcoming 0.9.19 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@235 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-10-03 01:52:50 +00:00
Chris Allegretta
71348eeb1f Get rid of punctuation at end of nofollow option, as it was the only one punctuated
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@234 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-10-02 04:21:23 +00:00
Chris Allegretta
9e7efa3202 Added (int) casts to remove compile warnings with -Wall
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@233 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-10-02 03:42:55 +00:00
Chris Allegretta
df3afdce0d Added initializations for last_search and last_replace (Rocco Corsi)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@232 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-10-01 17:50:29 +00:00
Chris Allegretta
66989d6ece Changing addresses again
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@231 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-27 03:16:11 +00:00
Chris Allegretta
7c44b68e05 PDCurses support
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@230 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-21 04:27:01 +00:00
Chris Allegretta
ad1daccecc PDCurses support
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@229 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-21 04:25:45 +00:00
Chris Allegretta
4aacee6627 CVS Version update
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@228 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-19 00:29:45 +00:00
Chris Allegretta
629edad237 0.9.18 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@226 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-19 00:27:19 +00:00
Chris Allegretta
834a69d5a4 Revised de.po translations by floki@bigfoot.com
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@225 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-18 17:11:33 +00:00
Chris Allegretta
f45c18daa0 Fix bug #44 by Rocco Corsi
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@224 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-16 05:25:06 +00:00
Chris Allegretta
0b88ce08cb Mouse fix for new key handling code
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@223 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-15 15:46:32 +00:00
Chris Allegretta
c9f147aba3 Finally closed bug #16 for inactivity, updated TODO
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@222 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-15 13:28:05 +00:00
Chris Allegretta
e7034c6087 onekey() - Off by one error fix fix ;-) (Rocco Corsi)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@221 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-15 03:31:09 +00:00
Chris Allegretta
90bd712c88 Default case for slang AC_TRY_RUNs in configure.in
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@220 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-13 18:12:05 +00:00
Chris Allegretta
9c35eb0def Made insert key call do_insertfile()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@219 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-13 14:24:52 +00:00
Chris Allegretta
92c9dd255c Oops, update editwinrows in window_init()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@218 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-13 14:03:27 +00:00
Chris Allegretta
2a42af1d62 More display updates
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@217 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-12 23:02:49 +00:00
Chris Allegretta
16e4168993 A heapin spoonful of updates in key handling
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@216 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-11 22:33:54 +00:00
Chris Allegretta
d0dbb40ef6 Oops, I meant in gnome terminal, not xterm ;)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@215 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-11 13:36:46 +00:00
Chris Allegretta
91d392cd2b Adding a new BUG and closing out #41
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@214 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-11 13:27:09 +00:00
Chris Allegretta
b9bfc9bc4f back out change in findnexstr that was causing more bugs *sigh*
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@213 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-10 05:06:09 +00:00
Jordi Mallach
2dc0f6b2bf Gettextized the new Meta strings in nano.c and updated es.po.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@212 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-07 10:48:00 +00:00
Chris Allegretta
44e73dfc96 Show two lines from previous page in help file when paging down
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@211 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-07 03:37:38 +00:00
Chris Allegretta
9239d742d6 Use raw mode if _POSIX_VDISABLE isn't available, to allow support under cygwin
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@210 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-06 15:19:18 +00:00
Chris Allegretta
43932bd17b Type in nano.h
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@209 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-06 14:08:37 +00:00
Chris Allegretta
805c26d1a6 Changed _POSIX_VERSION checks in regex code to HAVE_REGEX_H, added check for regex.h in configure.in
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@208 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-06 13:39:17 +00:00
Chris Allegretta
d746d90cc3 Assigned entire file cut a number, crediting Ken in BUGS instead of ChangeLog
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@207 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-05 13:15:44 +00:00
Chris Allegretta
429a5518ea Fix to cut.c for cutting entire file with marker
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@206 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-05 13:09:56 +00:00
Chris Allegretta
bf9da287a0 Changed version and files to CVS
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@205 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-04 17:44:59 +00:00
Chris Allegretta
423cbfd743 off by one in toggle help code and set up for 0.9.17 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@203 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-04 16:21:29 +00:00
Chris Allegretta
5577aec4e8 5 newlines instead of 4 on suspend and po update
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@202 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-04 03:53:04 +00:00
Chris Allegretta
18f8be0058 Implemented suspend code to work with Meta-Z
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@201 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-04 03:20:38 +00:00
Chris Allegretta
f8163dc2e7 Added space to autoindent toggle string
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@200 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-03 01:06:40 +00:00
Chris Allegretta
f0f63a82fb Changed awkward messages for no help and no wrap mode toggles
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@199 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-02 18:44:21 +00:00
Chris Allegretta
a547fd1e0e Removed commented out wrap code
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@198 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-02 17:38:44 +00:00
Chris Allegretta
6306a11ad6 update_line(): Added check for binary data >= 1 and <= 26, and use ^+letter ot display it
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@197 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-02 07:55:41 +00:00
Chris Allegretta
9541f2a1d3 credit to Mini edit team for Meta idea
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@196 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-02 07:31:32 +00:00
Chris Allegretta
d56bd79daf Fixed typos and updated PO files
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@195 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-02 07:27:10 +00:00
Chris Allegretta
e49f123cc0 Moved the toggle Meta keystrokes to the first column. Updated documentation and help code for Meta keys rather than 'alt keys'
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@194 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-02 07:20:39 +00:00
Chris Allegretta
4c780be883 Added small message when using --enable-tiny and toggle keys
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@193 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-01 17:59:18 +00:00
Chris Allegretta
220e7fb132 Oops, fixed the VERSION back to -cvs
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@192 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-01 13:37:49 +00:00
Chris Allegretta
756f220a26 New toggles for flags via Meta
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@191 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-09-01 13:32:47 +00:00
Chris Allegretta
cf7c9936ad Updated BUGS
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@190 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-30 13:57:36 +00:00
Chris Allegretta
9babaf3b38 findnextstr() - Fixed check for string that only occurs on the same line failing
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@189 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-30 13:49:33 +00:00
Chris Allegretta
340d6e50c2 Made wrapping code less ambitious
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@188 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-29 03:55:29 +00:00
Chris Allegretta
dabc3cb0df Off by one error fix (Rocco Corsi)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@187 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-25 01:44:12 +00:00
Chris Allegretta
e10debd14b Updates by Ben Roberts
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@186 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-22 01:26:42 +00:00
Chris Allegretta
f1d33d30ce Get rid of lack of update when searching andmark is set
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@185 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-19 03:53:39 +00:00
Chris Allegretta
8c81d23a7e Doc updates
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@184 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-16 02:52:44 +00:00
Chris Allegretta
8d458043d1 cvs branch for 0.9.16
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@183 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-09 22:11:20 +00:00
Chris Allegretta
5286ccbaf9 0.9.16 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@181 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-09 22:09:38 +00:00
Chris Allegretta
ba96f7afac Doc updates for 0.9.16 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@180 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-09 21:38:28 +00:00
Chris Allegretta
a2efc36799 One more time, configure.in slang check
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@179 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-09 03:26:33 +00:00
Chris Allegretta
e5935973f9 New (and again revised =) slang test code (Albert Chin-A-Young)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@178 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-08 22:00:30 +00:00
Chris Allegretta
13415991e8 Added Id to Makefile.am
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@177 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-08 16:59:04 +00:00
Chris Allegretta
b7ea9d45bb New libm test for slang
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@176 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-08 01:49:55 +00:00
Chris Allegretta
0286ba436e Whoops, must let check for blowing away cutbuffer get run before exit on cutting magic line
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@175 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-07 14:58:26 +00:00
Chris Allegretta
c86f714a15 No more cutting the macic line, added check_statblank() to cut and uncut
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@174 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-07 14:39:32 +00:00
Chris Allegretta
9b45ff54ac Okay, it's not going to work for Makefile.am
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@173 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-07 02:25:43 +00:00
Chris Allegretta
2b78429248 More RCS schtuff
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@172 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-07 02:22:40 +00:00
Chris Allegretta
c87a411624 More RCS schtuff
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@171 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-07 02:16:24 +00:00
Chris Allegretta
141c1274c4 Testing RCS headers
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@170 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-06 21:13:46 +00:00
Chris Allegretta
11b0011b1f Testing RCS headers
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@169 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-06 21:13:45 +00:00
Chris Allegretta
b4dc9e0944 New slang test code (Albert Chin-A-Young)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@168 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-05 22:49:30 +00:00
Chris Allegretta
81b1eea10f Patch to handle
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@167 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-05 16:09:07 +00:00
Chris Allegretta
7dc14e81d7 Fixed getting locked into cutbuffer on cutting first line of file
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@166 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-05 16:03:19 +00:00
Chris Allegretta
4dbcc3cd9e Changed tabsize long arg to actually accept an argument *sigh*
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@165 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-04 15:44:29 +00:00
Chris Allegretta
1f2a072e33 0.9.15 sync
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@163 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-04 04:13:43 +00:00
Chris Allegretta
0bf4e146a0 Update of ChangeLog and NEWS for 0.9.15 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@162 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-04 02:42:04 +00:00
Chris Allegretta
bbd96ea838 Updated man pages for universal -T option
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@161 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-04 02:05:44 +00:00
Chris Allegretta
5027a18c2c Regenerated Makefile.in with automake -i *shrug*
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@160 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-04 00:42:16 +00:00
Chris Allegretta
99bf73fe66 Removed now useless usrtabsize variable (Christian Weisgerber)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@159 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-04 00:22:08 +00:00
Chris Allegretta
d7c31c1123 Bug update
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@158 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-03 23:01:12 +00:00
Chris Allegretta
6d690a39dc New tabsize code, Im very excited
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@157 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-03 22:51:21 +00:00
Chris Allegretta
ed02216378 Added recursive loop check
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@156 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-03 16:54:11 +00:00
Chris Allegretta
55d5455abd More BUGS fixed
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@155 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-08-01 04:26:55 +00:00
Chris Allegretta
5d8f6250de BUGS update
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@154 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-31 13:52:20 +00:00
Chris Allegretta
7a6f0d9868 Finally fixed slang check message, or lack of
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@153 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-31 13:00:24 +00:00
Chris Allegretta
145a0450ea Fixed silly page_up_center prototype
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@152 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-31 12:51:00 +00:00
Chris Allegretta
da721be17a Bug fixes for do_enter and do_backspace
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@151 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-31 01:26:42 +00:00
Chris Allegretta
234a34d273 Chris goes berzerk on no sleep
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@150 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-29 04:33:38 +00:00
Chris Allegretta
84ff479b24 Updated html man page
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@149 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-28 17:29:22 +00:00
Jordi Mallach
3206ab4fe0 Added a reference to -k, --cut option. Need a nano.1.html update!
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@148 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-28 16:55:47 +00:00
Chris Allegretta
f5d7a8b4fd Back out edit_refresh->edit_update until page up/down problems are fixed
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@147 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-28 15:33:03 +00:00
Chris Allegretta
d069ac02d1 More bugs, YAY
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@146 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-28 14:34:48 +00:00
Chris Allegretta
d63d11be58 Sigh, cancel that
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@145 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-28 14:09:29 +00:00
Chris Allegretta
1a471392c5 Another page_down tweak
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@144 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-28 14:08:01 +00:00
Chris Allegretta
f6a6b5aa86 Fix for page down onto EOF
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@143 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-28 12:24:43 +00:00
Chris Allegretta
95b0b5249a edit_refresh()->edit_update() redundancy
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@142 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-28 02:58:06 +00:00
Chris Allegretta
29d9025381 Got to love typos
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@141 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-28 01:48:43 +00:00
Chris Allegretta
6925bbd360 Added null_at()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@140 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-28 01:41:29 +00:00
Chris Allegretta
18bd029981 Bugfixes and cruft cleanout take 1
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@139 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-28 01:18:10 +00:00
Chris Allegretta
7975ed86a7 New cvs code, data abstraction is good
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@138 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-28 00:58:35 +00:00
Chris Allegretta
a1a55c79c8 official 0.9.14 sync
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@136 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-28 00:36:03 +00:00
Chris Allegretta
2ece167f56 Revised germal translation by floki@bigfoot.com
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@135 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-27 15:25:52 +00:00
Chris Allegretta
0e5faca531 Added documentation for all the -k cut changes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@134 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-27 13:32:46 +00:00
Chris Allegretta
939fdbd64d Last minute touches on -k code
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@133 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-27 13:03:31 +00:00
Chris Allegretta
293849eb69 This should finish the -k functionality. Would someone be kind enough to test this against Pico and send me a comparison?
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@132 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-27 05:09:22 +00:00
Chris Allegretta
1013e14a87 Updated BUGS
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@131 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-27 04:31:52 +00:00
Chris Allegretta
63aa0f7f16 More -k fixes, almost works perfectly ;-)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@130 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-27 04:09:23 +00:00
Chris Allegretta
cf037ba969 0.9.14-pre1 sync
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@128 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-25 03:38:15 +00:00
Chris Allegretta
45dfda97d8 slightly better cut to end behavior, still doesn't preserve cutbuffer w/multi line cuts
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@127 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-25 03:20:07 +00:00
Robert Siemborski
c9b1dba4a3 continued existance of do_justify bug documented (#31)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@126 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-25 02:19:07 +00:00
Robert Siemborski
a417ddca91 some random totsize-related bugfixes. (do_justify & do_wrap)
shouldn't break anything (famous last words)


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@125 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-24 23:18:48 +00:00
Chris Allegretta
461b2a9dfe More -t and exit fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@124 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-24 22:05:18 +00:00
Chris Allegretta
962c3c9c21 Fix for bug #30, I hope it doesn't break anything else
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@123 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-24 21:52:17 +00:00
Chris Allegretta
05597197f3 doc updates
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@122 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-24 21:16:12 +00:00
Chris Allegretta
f4e75e1256 Fixed bug #31
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@121 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-24 18:28:30 +00:00
Chris Allegretta
d8346ffb84 Fix -k sets TEMP_OPT
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@120 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-24 15:16:02 +00:00
Chris Allegretta
90d6895e94 anchor fix in FAQ
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@119 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-24 02:55:49 +00:00
Chris Allegretta
f1171c3c0e Marked cut to end of line as done
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@118 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-23 21:56:01 +00:00
Chris Allegretta
723845c0cc Changed to CVS version #
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@117 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-23 18:15:28 +00:00
Chris Allegretta
1d7110d657 Oops, screwed up ChangeLog for 0.9.13
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@116 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-23 16:59:07 +00:00
Chris Allegretta
edebbe6039 0.9.13 sync
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@114 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-23 16:45:20 +00:00
Chris Allegretta
065bb1e1a0 Added FAQ
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@113 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-23 16:09:33 +00:00
Chris Allegretta
231d3d6979 Update BUGS for closed bugs and update NEWS for the upcoming .13 release
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@112 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-22 19:33:19 +00:00
Chris Allegretta
acb6234263 Added code to check to see if using -l and the file is not fact a link. Please test
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@111 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-21 22:42:46 +00:00
Chris Allegretta
8f6c069543 Spelling, Read_file and term setting fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@110 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-19 01:16:18 +00:00
Robert Siemborski
fcf32bf3d1 more intelligent filename selection in die()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@109 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-17 03:04:54 +00:00
Robert Siemborski
aa44841315 cleaned up BUGS so open bugs were separate from closed ones
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@108 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-17 02:54:17 +00:00
Chris Allegretta
a299b039c4 Better fix for bug #29
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@107 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-14 02:44:02 +00:00
Chris Allegretta
3088555a15 Changed static temp_opt to flag TEMP_OPT. Fixed bug #29
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@106 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-14 01:20:12 +00:00
Jordi Mallach
8d7ac1b004 Updated es.po to 0.9.13 strings, rebuilt po's and gmo's.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@105 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-13 03:10:01 +00:00
Chris Allegretta
82bd1b34f2 Added bug #29
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@104 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-12 23:57:25 +00:00
Chris Allegretta
d19e9916cb #ifdef'ed -k option for not NANO_SMALL b/c it requires the marker code
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@103 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-12 18:14:51 +00:00
Adam Rogoyski
ed0cb890fb - refreshing fixes.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@102 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-12 04:02:45 +00:00
Chris Allegretta
fa8f7bf0dc Fixed consecutive search substring replace bug (28)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@101 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-12 02:41:13 +00:00
Chris Allegretta
6a2273d781 Added some bugs
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@100 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-12 02:28:33 +00:00
Chris Allegretta
627de19ce0 Added Pico's -k option (in 5 lines of code :-)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@99 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-12 02:09:17 +00:00
Chris Allegretta
7539a829c4 French update by Clement Laforet <clem_laf@wanadoo.fr>
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@98 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-09 23:55:13 +00:00
Adam Rogoyski
a966d991e6 - findnextstr() off by one with past_editbot.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@97 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-09 18:42:53 +00:00
Chris Allegretta
635fae3ed0 Removed search/replace abort call before calling other search/replace function.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@96 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-09 03:26:34 +00:00
Adam Rogoyski
2a4ef924c8 - change findnextstr() to only edit_update if we have gone off the screen.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@95 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-09 00:15:11 +00:00
Chris Allegretta
a4d2162091 Added '(to replace)' to prompt in search_init when we are replacing
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@94 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-08 23:57:03 +00:00
Robert Siemborski
6967eec4cb Bill's TABSIZE fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@93 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-08 14:23:32 +00:00
Robert Siemborski
7ecc435f5a bring up to date with project
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@92 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-08 05:15:45 +00:00
Adam Rogoyski
1e328fbd72 - change lines ==> num_lines to avoid name conflict on AIX with xlC.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@91 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2000-07-08 03:57:16 +00:00
120 changed files with 55557 additions and 15299 deletions

23
.cvsignore Normal file
View File

@@ -0,0 +1,23 @@
Makefile
Makefile.in
aclocal.m4
autom4te.cache
confdefs.h
config.cache
config.h
config.h.in
config.log
config.status
configure
config.guess
config.sub
depcomp
install-sh
missing
mkinstalldirs
nano
nano.info
nano.spec
stamp-h
stamp-h.in
stamp-h1

300
ABOUT-NLS
View File

@@ -8,7 +8,7 @@ A few packages already provide translations for their messages.
If you found this `ABOUT-NLS' file inside a distribution, you may
assume that the distributed package does use GNU `gettext' internally,
itself available at your nearest GNU archive site. But you do *not*
itself available at your nearest GNU archive site. But you do _not_
need to install GNU `gettext' prior to configuring, installing or using
this package with messages translated.
@@ -22,8 +22,8 @@ related to internationalization, you should tell about the version of
`gettext' which is used. The information can be found in the
`intl/VERSION' file, in internationalized packages.
One advise in advance
=====================
Quick configuration advice
==========================
If you want to exploit the full power of internationalization, you
should configure it using
@@ -34,13 +34,14 @@ to force usage of internationalizing routines provided within this
package, despite the existence of internationalizing capabilities in the
operating system where this package is being installed. So far, only
the `gettext' implementation in the GNU C library version 2 provides as
many features (such as locale alias or message inheritance) as the
implementation here. It is also not possible to offer this additional
functionality on top of a `catgets' implementation. Future versions of
GNU `gettext' will very likely convey even more functionality. So it
might be a good idea to change to GNU `gettext' as soon as possible.
many features (such as locale alias, message inheritance, automatic
charset conversion or plural form handling) as the implementation here.
It is also not possible to offer this additional functionality on top
of a `catgets' implementation. Future versions of GNU `gettext' will
very likely convey even more functionality. So it might be a good idea
to change to GNU `gettext' as soon as possible.
So you need not provide this option if you are using GNU libc 2 or
So you need _not_ provide this option if you are using GNU libc 2 or
you have installed a recent copy of the GNU gettext package with the
included `libintl'.
@@ -53,23 +54,20 @@ Most such packages use GNU `gettext'. Other packages have their own
ways to internationalization, predating GNU `gettext'.
By default, this package will be installed to allow translation of
messages. It will automatically detect whether the system provides
usable `catgets' (if using this is selected by the installer) or
`gettext' functions. If neither is available, the GNU `gettext' own
messages. It will automatically detect whether the system already
provides the GNU `gettext' functions. If not, the GNU `gettext' own
library will be used. This library is wholly contained within this
package, usually in the `intl/' subdirectory, so prior installation of
the GNU `gettext' package is *not* required. Installers may use
the GNU `gettext' package is _not_ required. Installers may use
special options at configuration time for changing the default
behaviour. The commands:
./configure --with-included-gettext
./configure --with-catgets
./configure --disable-nls
will respectively bypass any pre-existing `catgets' or `gettext' to use
the internationalizing routines provided within this package, enable
the use of the `catgets' functions (if found on the locale system), or
else, *totally* disable translation of messages.
will respectively bypass any pre-existing `gettext' to use the
internationalizing routines provided within this package, or else,
_totally_ disable translation of messages.
When you already have GNU `gettext' installed on your system and run
configure without an option for your new package, `configure' will
@@ -83,18 +81,10 @@ package is more recent, you should use
to prevent auto-detection.
By default the configuration process will not test for the `catgets'
function and therefore they will not be used. The reasons are already
given above: the emulation on top of `catgets' cannot provide all the
extensions provided by the GNU `gettext' library. If you nevertheless
want to use the `catgets' functions use
./configure --with-catgets
to enable the test for `catgets' (this causes no harm if `catgets' is
not available on your system). If you really select this option we
would like to hear about the reasons because we cannot think of any
good one ourself.
The configuration process will not test for the `catgets' function
and therefore it will not be used. The reason is that even an
emulation of `gettext' on top of `catgets' could not provide all the
extensions of the GNU `gettext' library.
Internationalized packages have usually many `po/LL.po' files, where
LL gives an ISO 639 two-letter code identifying the language. Unless
@@ -110,22 +100,35 @@ Using This Package
As a user, if your language has been installed for this package, you
only have to set the `LANG' environment variable to the appropriate
ISO 639 `LL' two-letter code prior to using the programs in the
package. For example, let's suppose that you speak German. At the
shell prompt, merely execute `setenv LANG de' (in `csh'),
`export LANG; LANG=de' (in `sh') or `export LANG=de' (in `bash'). This
can be done from your `.login' or `.profile' file, once and for all.
`LL_CC' combination. Here `LL' is an ISO 639 two-letter language code,
and `CC' is an ISO 3166 two-letter country code. For example, let's
suppose that you speak German and live in Germany. At the shell
prompt, merely execute `setenv LANG de_DE' (in `csh'),
`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
This can be done from your `.login' or `.profile' file, once and for
all.
An operating system might already offer message localization for
many of its programs, while other programs have been installed locally
with the full capabilities of GNU `gettext'. Just using `gettext'
extended syntax for `LANG' would break proper localization of already
available operating system programs. In this case, users should set
both `LANGUAGE' and `LANG' variables in their environment, as programs
using GNU `gettext' give preference to `LANGUAGE'. For example, some
Swedish users would rather read translations in German than English for
when Swedish is not available. This is easily accomplished by setting
`LANGUAGE' to `sv:de' while leaving `LANG' to `sv'.
You might think that the country code specification is redundant.
But in fact, some languages have dialects in different countries. For
example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The
country code serves to distinguish the dialects.
Not all programs have translations for all languages. By default, an
English message is shown in place of a nonexistent translation. If you
understand other languages, you can set up a priority list of languages.
This is done through a different environment variable, called
`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG'
for the purpose of message handling, but you still need to have `LANG'
set to the primary language; this is required by other parts of the
system libraries. For example, some Swedish users who would rather
read translations in German than English for when Swedish is not
available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.
In the `LANGUAGE' environment variable, but not in the `LANG'
environment variable, `LL_CC' combinations can be abbreviated as `LL'
to denote the language's main dialect. For example, `de' is equivalent
to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
(Portuguese as spoken in Portugal) in this context.
Translating Teams
=================
@@ -133,33 +136,21 @@ Translating Teams
For the Free Translation Project to be a success, we need interested
people who like their own language and write it well, and who are also
able to synergize with other translators speaking the same language.
Each translation team has its own mailing list, courtesy of Linux
International. You may reach your translation team at the address
`LL@li.org', replacing LL by the two-letter ISO 639 code for your
language. Language codes are *not* the same as the country codes given
in ISO 3166. The following translation teams exist, as of December
1997:
Each translation team has its own mailing list. The up-to-date list of
teams can be found at the Free Translation Project's homepage,
`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams"
area.
Chinese `zh', Czech `cs', Danish `da', Dutch `nl', English `en',
Esperanto `eo', Finnish `fi', French `fr', German `de', Hungarian
`hu', Irish `ga', Italian `it', Indonesian `id', Japanese `ja',
Korean `ko', Latin `la', Norwegian `no', Persian `fa', Polish
`pl', Portuguese `pt', Russian `ru', Slovenian `sl', Spanish `es',
Swedish `sv', and Turkish `tr'.
For example, you may reach the Chinese translation team by writing to
`zh@li.org'.
If you'd like to volunteer to *work* at translating messages, you
If you'd like to volunteer to _work_ at translating messages, you
should become a member of the translating team for your own language.
The subscribing address is *not* the same as the list itself, it has
The subscribing address is _not_ the same as the list itself, it has
`-request' appended. For example, speakers of Swedish can send a
message to `sv-request@li.org', having this message body:
subscribe
Keep in mind that team members are expected to participate
*actively* in translations, or at solving translational difficulties,
_actively_ in translations, or at solving translational difficulties,
rather than merely lurking around. If your team does not exist yet and
you want to start one, or if you are unsure about what to do or how to
get started, please write to `translation@iro.umontreal.ca' to reach the
@@ -173,42 +164,128 @@ Available Packages
==================
Languages are not equally supported in all packages. The following
matrix shows the current state of internationalization, as of December
1997. The matrix shows, in regard of each package, for which languages
PO files have been submitted to translation coordination.
matrix shows the current state of internationalization, as of September
2001. The matrix shows, in regard of each package, for which languages
PO files have been submitted to translation coordination, with a
translation percentage of at least 50%.
Ready PO files cs da de en es fi fr it ja ko nl no pl pt ru sl sv
.----------------------------------------------------.
bash | [] [] [] | 3
bison | [] [] [] | 3
clisp | [] [] [] [] | 4
cpio | [] [] [] [] [] [] | 6
diffutils | [] [] [] [] [] | 5
enscript | [] [] [] [] [] [] | 6
fileutils | [] [] [] [] [] [] [] [] [] [] | 10
findutils | [] [] [] [] [] [] [] [] [] | 9
flex | [] [] [] [] | 4
gcal | [] [] [] [] [] | 5
gettext | [] [] [] [] [] [] [] [] [] [] [] | 12
grep | [] [] [] [] [] [] [] [] [] [] | 10
hello | [] [] [] [] [] [] [] [] [] [] [] | 11
id-utils | [] [] [] | 3
indent | [] [] [] [] [] | 5
libc | [] [] [] [] [] [] [] | 7
m4 | [] [] [] [] [] [] | 6
make | [] [] [] [] [] [] | 6
music | [] [] | 2
ptx | [] [] [] [] [] [] [] [] | 8
recode | [] [] [] [] [] [] [] [] [] | 9
sh-utils | [] [] [] [] [] [] [] [] | 8
sharutils | [] [] [] [] [] [] | 6
tar | [] [] [] [] [] [] [] [] [] [] [] | 11
texinfo | [] [] [] | 3
textutils | [] [] [] [] [] [] [] [] [] | 9
wdiff | [] [] [] [] [] [] [] [] | 8
`----------------------------------------------------'
17 languages cs da de en es fi fr it ja ko nl no pl pt ru sl sv
27 packages 6 4 25 1 18 1 26 2 1 12 20 9 19 7 4 7 17 179
Ready PO files bg cs da de el en eo es et fi fr gl he hr id it ja
+----------------------------------------------------+
a2ps | [] [] [] |
bash | [] [] [] [] |
bfd | |
binutils | [] |
bison | [] [] [] [] [] |
clisp | [] [] [] [] |
cpio | [] [] [] [] [] |
diffutils | [] [] [] [] [] [] [] |
enscript | [] [] |
error | [] [] |
fetchmail | |
fileutils | [] [] [] [] [] [] [] [] |
findutils | [] [] [] [] [] [] [] [] |
flex | [] [] [] |
freetype | |
gas | |
gawk | [] [] |
gcal | |
gcc | |
gettext | [] [] [] [] [] [] [] [] [] [] |
gnupg | [] [] [] [] [] [] [] |
gprof | |
grep | [] [] [] [] [] [] [] [] |
hello | [] [] [] [] [] [] [] [] [] [] [] |
id-utils | [] [] [] |
indent | [] [] [] [] [] |
jpilot | [] |
kbd | |
ld | [] |
libc | [] [] [] [] [] [] [] [] |
lilypond | [] |
lynx | [] [] [] [] |
m4 | [] [] [] [] [] [] [] [] |
make | [] [] [] [] [] [] |
mysecretdiary | [] |
nano | [] [] [] |
opcodes | |
parted | [] [] [] |
ptx | [] [] [] [] [] [] [] |
python | |
recode | [] [] [] [] [] [] [] [] [] |
sed | [] [] [] [] [] [] [] [] [] [] [] [] |
sh-utils | [] [] [] [] [] [] [] [] [] [] |
sharutils | [] [] [] [] [] [] [] [] |
sketch | |
soundtracker | [] [] [] |
sp | |
tar | [] [] [] [] [] [] [] [] |
texinfo | [] [] [] [] [] [] |
textutils | [] [] [] [] [] [] [] [] |
util-linux | [] [] |
wdiff | [] [] [] |
wget | [] [] [] [] [] [] [] [] [] [] |
+----------------------------------------------------+
bg cs da de el en eo es et fi fr gl he hr id it ja
0 14 24 32 11 1 8 23 13 1 33 22 4 0 7 9 18
ko lv nb nl nn no pl pt pt_BR ru sk sl sv tr uk zh
+----------------------------------------------------+
a2ps | [] [] [] | 6
bash | | 4
bfd | | 0
binutils | | 1
bison | [] | 6
clisp | [] | 5
cpio | [] [] [] [] [] | 10
diffutils | [] [] [] [] | 11
enscript | [] [] [] | 5
error | [] [] | 4
fetchmail | | 0
fileutils | [] [] [] [] [] [] [] [] [] | 17
findutils | [] [] [] [] [] [] [] [] | 16
flex | [] [] [] | 6
freetype | | 0
gas | | 0
gawk | [] | 3
gcal | | 0
gcc | | 0
gettext | [] [] [] [] [] [] [] [] | 18
gnupg | [] [] [] | 10
gprof | | 0
grep | [] [] [] [] | 12
hello | [] [] [] [] [] [] [] [] [] [] [] | 22
id-utils | [] [] [] | 6
indent | [] [] [] [] [] [] [] | 12
jpilot | | 1
kbd | [] | 1
ld | | 1
libc | [] [] [] [] [] [] [] [] | 16
lilypond | [] [] | 3
lynx | [] [] [] [] | 8
m4 | [] [] [] [] | 12
make | [] [] [] [] [] [] | 12
mysecretdiary | | 1
nano | [] | 4
opcodes | [] | 1
parted | [] [] | 5
ptx | [] [] [] [] [] [] [] [] | 15
python | | 0
recode | [] [] [] [] | 13
sed | [] [] [] [] [] [] [] | 19
sh-utils | [] [] [] [] [] [] [] [] [] [] [] | 21
sharutils | [] [] [] | 11
sketch | | 0
soundtracker | | 3
sp | | 0
tar | [] [] [] [] [] [] [] | 15
texinfo | [] | 7
textutils | [] [] [] [] [] [] [] [] | 16
util-linux | [] [] | 4
wdiff | [] [] [] [] | 7
wget | [] [] [] [] [] [] [] | 17
+----------------------------------------------------+
33 teams ko lv nb nl nn no pl pt pt_BR ru sk sl sv tr uk zh
53 domains 9 1 6 20 0 6 17 1 13 25 10 11 23 21 2 2 387
Some counters in the preceding matrix are higher than the number of
visible blocks let us expect. This is because a few extra PO files are
@@ -221,6 +298,27 @@ distributed as such by its maintainer. There might be an observable
lag between the mere existence a PO file and its wide availability in a
distribution.
If December 1997 seems to be old, you may fetch a more recent copy
of this `ABOUT-NLS' file on most GNU archive sites.
If September 2001 seems to be old, you may fetch a more recent copy
of this `ABOUT-NLS' file on most GNU archive sites. The most
up-to-date matrix with full percentage details can be found at
`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
Using `gettext' in new packages
===============================
If you are writing a freely available program and want to
internationalize it you are welcome to use GNU `gettext' in your
package. Of course you have to respect the GNU Library General Public
License which covers the use of the GNU `gettext' library. This means
in particular that even non-free programs can use `libintl' as a shared
library, whereas only free software can use `libintl' as a static
library or use modified versions of `libintl'.
Once the sources are changed appropriately and the setup can handle
to use of `gettext' the only thing missing are the translations. The
Free Translation Project is also available for packages which are not
developed inside the GNU project. Therefore the information given above
applies also for every other Free Software Project. Contact
`translation@iro.umontreal.ca' to make the `.pot' files available to
the translation teams.

11
AUTHORS
View File

@@ -1,3 +1,4 @@
$Id$
This file lists people who have made significant contribution to the nano
editor. Please see the ChangeLog for specific changes by author.
-------------------------------------------------------------------------
@@ -18,3 +19,13 @@ Robert Siemborski <rjs3@andrew.cmu.edu>
* Miscellaneous cut, display, replace, and other bug fixes,
original and new "magic line" code, read_line() function, new
edit display routines.
Rocco Corsi <rocco.corsi@sympatico.ca>
* Internal spelling code, many optimizations and bug fixes for
findnextstr and search-related functions, various display and
file handling fixes.
David Lawrence Ramsey <pooka_regent@sluggy.net>
* Multiple buffer support, operating dir (-o) option, bug fixes
for display routines, wrapping code, spelling fixes, const
mode and various other fixes.

131
BUGS
View File

@@ -1,40 +1,137 @@
- Marked cutting sometimes leaves a newline in the file unintelligently,
such as when all of a line is selected but the mark doesn't proceed to
the new line. (8) { Is this an issue? compare to pico 3.5 }
the new line. (8) [FIXED/IRRELEVANT]
- Certains are not lined up properly when there are tabs in them at
certain col values. (9) [FIXED]
- edit_refresh() and update_line() do not handle selecting text when the
cursor is beyond COLS (10) [FIXED]
- no way to do a replace with the empty string. (11)
- Spelling support is not elegant like pico's integration of the 'spell'
program. Nano only uses ispell (for now) (12)
- no way to do a replace with the empty string (11) [FIXED, yay!]
- Spelling support is not elegant like Pico's integration of the 'spell'
program. Nano only uses ispell (for now) (12) [FIXED]
- Moving to the end of a line when close to a multiple of COLS and at
least COLS * 2 does not make the screen jump early like it would for
if we were around COLS (bugs in edit_refresh, update_line) (13)
[FIXED, mostly]
- When at the very bottom of the edit window, do_wrap goes berzerk and
puts the curor somewhere bad, subsequent keystrokes crash the program
- When at the very bottom of the edit window, do_wrap goes berserk and
puts the cursor somewhere bad; subsequent keystrokes crash the program
(14) [FIXED, mostly]
- Doing a replacement of a substring of the replace string (e.g. replacing
"ed" with "fred" causes an infinite loop. (15) [FIXED]
"ed" with "fred" causes an infinite loop). (15) [FIXED]
- Cutting a file with marked text and both marker ends on the same line
causes a random segfault (16)
- Cutting more than one line resets the KEEP_CUTBUFFER flag in 0.9.3
causes a random segfault (16) [FIXED]
- Cutting more than one line resets the KEEP_CUTBUFFER flag in 0.9.3.
Error is in bitwise assignment (nano.h). (17) [FIXED]
- The wrapping code does not work right for lines like the following:
* *
Error is in do_wrap, must be rewritten (18).
- Wrapping a line with autoindent mode sometimes causes a segfault (19).
Error is in do_wrap, must be rewritten. (18) [FIXED]
- Nano fails to follow symlinks, even though -l isn't being used (20).
[Bug in global flag init, FIXED]
- When using --help or --version, the SIGINT character gets lost. (21) [FIXED]
- When inserting files, the display sometimes fails to display properly
until a pageup/down occurs (22).
- edit_refresh() and update_line() (and related functions), have
trouble when a tab is the character that is the boundry at COLS (23) [FIXED]
- there is an off-by-one error in keeping track of totsize. It is caused
- edit_refresh() and update_line() (and related functions) have
trouble when a tab is the character that is the boundary at COLS (23)
[FIXED]
- There is an off-by-one error in keeping track of totsize. It is caused
by the fact that we count the newline at the end when we read in a file
but we do not, in fact, display this newline. This should go away
implicitly when the "Magic Line" returns, but it is noted here for
documentation's sake. (24) [FIXED]
- totsize becomes incorrect after word-wrapping (25)
- In replace with completely adjacent strings, every other search string
will be missed (try replace ':' in a string like ':::::::::') (28) [FIXED]
- If nano opens a read-only file with the --tempfile option, and a change
is made to the buffer, and a write is attempted, nano will not give you
a dialog about not being able to write the file, and it will not let the
user exit (29, discovered by Joshua Jensen) [FIXED]
- Using nano -k, marked text is not cut properly. (31) [FIXED]
- Invoking -t or -k has the effect of invoking both options. (32) [FIXED]
- totsize becomes incorrect after word-wrapping (25) [FIXED]
- Wrapping a line with autoindent mode sometimes causes a segfault (19)
[FIXED]
- When inserting files, the display sometimes fails to display properly
until a pageup/down occurs (22) [FIXED]
- In search/replace code, there is too much refreshing in bottomwin (26)
[FIXED]
- In replace, there is no way to accept the default replace string. (27)
[FIXED]
- Using nano -t, user can not exit until a filename is given via ^O. (30)
[FIXED]
- totsize problems still abound in do_justify (33) [FIXED]
- Using -k, cut text is not pasted properly. (34) [FIXED].
- Using -k, pasted text is not updated properly if it goes beyond editbot. (35)
[FIXED]
- Doing a cut with -k can screw up the filestruct; fault is in cutting
code. (36) [FIXED]
- Hitting enter on the magic line makes new lines, but they are not
written out to disk when saved..... (37). [FIXED]
- Page up and page down do not work the same way as in Pico (# of lines). (38)
[FIXED]
- When doing a search and the marker is set, the screen does not always
properly update the inverted text (39). [FIXED]
- Searches for a string that only exists on one line multiple times will
fail after finding the last occurrence (discovered by Ken Tyler) (40).
[FIXED]
- Alt-Z is currently broken to toggle suspend. I guess I still don't know
signals very well =-) (41) [FIXED].
- Unable to cut the entire file using the marker (discovered by Ken Tyler)
(42). [FIXED]
- The keypad does not work when nano runs in the Gnome terminal (43). [FIXED]
- When reading in a file, if the file is a directory, the contents of the
file being edited are blown away (discovered by Chris Pimlot) (44). [FIXED]
- in certain terms, nano will leave a "ghost" of screen upon exit
when called from inside mutt (among other settings) (45). [FIXED]
- In replace, hitting the Goto line shortcut key does nothing after a
search string is entered (discovered by Rocco Corsi) (46) [FIXED].
- When typing in a string in search or replace and hitting CASE_SENSITIVE
or the other search string, the current string edit is blown away in
favor of the last stored search (47) [FIXED]
- If nano fails to open a file when it starts up, doing almost anything
causes a segfault (discovered by Ben Roberts) (48). [FIXED]
- In certain terminals, nano would not work properly with keypad().
Turned out to be the silly timeout(0) call, which is completely
unneeded, anyway. (49) [FIXED]
- With less than a page of text, doing a page down will move the
current line to the top of the screen, which it shouldn't do. (50)
[FIXED]
- with PDCURSES, running meta-X turns off the keypad. (51) [FIXED]
- Resizing the window completely screws up the display if in any other
mode than normal editing (help screen, search and replace, file
browser..) (52) [FIXED]
- Alt speller argument (-s, --speller) does not take a string argument of
more than one word. (53) [FIXED].
- Cut to end cutting (-k) causes segfaults (try cutting "- Backup making
(filename~)?" line in TODO file) (discovered by
higuita@cadernoverde.com) (54) [FIXED].
- When using autoindent (-i), wrapped text does not get autoindented
(55, discovered by Mark Senior) [FIXED].
- When using -R (regex) and -p (pico mode), subsequent searches after
the first fail if no string is entered (56) [FIXED].
- Page down on a file of editwinrows fails (again). Reported by Ryan
Krebs (57) [FIXED].
- File browser aborts on Solaris in qsort() call. (Reported by
Matthias Andree) (58) [FIXED].
- Can modify the current file in view mode with ^W^R (discovered by Rocco
Corsi) (58) [FIXED].
- When page up is used after two page down's, the screen doesn't update
properly (discovered by David Lawrence Ramsey) (59) [FIXED].
- On BSD systems, marked cutting sna paste often screws up the
last line in the cutbuffer (discovered by Barry Pederson) (60) [FIXED]
- Blank lines are not kept when cutting with -k (discovered by Rocco)
(61) [FIXED].
- Nano will not suspend properly inside of mutt (62) [FIXED].
- When switching from Pico mode to normal mode, the previous search is
not displayed until cancelling the search (63) [FIXED].
- If you change search options but don't change the search string in
normal mode, hitting enter causes the search/replace to abort (64)
(Jordi Mallach) [FIXED].
- Cutting one line of text causes the screen to recenter the line
(reported and fixed by David Lawrence Ramsey) (65) [FIXED].
- When cutting marked text including the bottom of the file, a new
"magic line" is not created" (reported by David Lawrence
Ramsey, fixed by David Lawrence Ramsey & Chris) (66) [FIXED].
- ^C does not work after a suspend in tcsh (discovered by
Trevor Cordes) (68) [FIXED].
- Home and End control keys (^A, ^E) do not always work in filename
prompt (bug found by Ian Turner) (69) [1.0 series only] [FIXED].
- Trying to insert a file of 0 bytes will hang nano (70) [FIXED].
** Open BUGS **
$Id$

1851
ChangeLog

File diff suppressed because it is too large Load Diff

View File

@@ -180,3 +180,5 @@ operates.
script, and exit.
`configure' also accepts some other, not widely useful, options.
$Id$

View File

@@ -1,22 +1,33 @@
## $Id$
AUTOMAKE_OPTIONS = gnu no-dependencies
DEFS= -DSYSCONFDIR=\"$(sysconfdir)\"
bin_PROGRAMS = nano
nano_SOURCES = cut.c \
nano_SOURCES = color.c \
cut.c \
files.c \
global.c \
move.c \
nano.c \
nano.h \
proto.h \
rcfile.c \
search.c \
utils.c \
winio.c
man_MANS = nano.1
nano_LDADD = @INTLLIBS@
nano_LDADD = @GLIB_LIBS@ @INTLLIBS@
EXTRA_DIST = AUTHORS BUGS COPYING ChangeLog INSTALL NEWS README \
TODO install-sh missing mkinstalldirs nano.1 nano.1.html
info_TEXINFOS = nano.texi
MAKEINFO = makeinfo --no-split
SUBDIRS = po intl
EXTRA_DIST = ABOUT-NLS AUTHORS BUGS COPYING ChangeLog INSTALL NEWS \
README THANKS TODO install-sh missing mkinstalldirs \
nano.1 nano.1.html faq.html nanorc.sample nano.spec
SUBDIRS = po intl m4
localedir = $(datadir)/locale
INCLUDES = -Iintl -DLOCALEDIR=\"$(localedir)\" -I@includedir@

View File

@@ -1,506 +0,0 @@
# Makefile.in generated automatically by automake 1.4 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CURSES_LIB = @CURSES_LIB@
DATADIRNAME = @DATADIRNAME@
GENCAT = @GENCAT@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_CONFIG = @GLIB_CONFIG@
GLIB_LIBS = @GLIB_LIBS@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
GT_NO = @GT_NO@
GT_YES = @GT_YES@
INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@
INSTOBJEXT = @INSTOBJEXT@
INTLDEPS = @INTLDEPS@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
PACKAGE = @PACKAGE@
POFILES = @POFILES@
POSUB = @POSUB@
RANLIB = @RANLIB@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
l = @l@
bin_PROGRAMS = nano
nano_SOURCES = cut.c files.c global.c move.c nano.c nano.h proto.h search.c utils.c winio.c
man_MANS = nano.1
nano_LDADD = @INTLLIBS@
EXTRA_DIST = AUTHORS BUGS COPYING ChangeLog INSTALL NEWS README TODO install-sh missing mkinstalldirs nano.1 nano.1.html
SUBDIRS = po intl
localedir = $(datadir)/locale
INCLUDES = -Iintl -DLOCALEDIR=\"$(localedir)\" -I@includedir@
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES =
PROGRAMS = $(bin_PROGRAMS)
DEFS = @DEFS@ -I. -I$(srcdir) -I.
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
nano_OBJECTS = cut.o files.o global.o move.o nano.o search.o utils.o \
winio.o
nano_DEPENDENCIES =
nano_LDFLAGS =
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
man1dir = $(mandir)/man1
MANS = $(man_MANS)
NROFF = nroff
DIST_COMMON = README ./stamp-h.in ABOUT-NLS AUTHORS COPYING ChangeLog \
INSTALL Makefile.am Makefile.in NEWS TODO acconfig.h aclocal.m4 \
config.h.in configure configure.in install-sh missing mkinstalldirs
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
GZIP_ENV = --best
SOURCES = $(nano_SOURCES)
OBJECTS = $(nano_OBJECTS)
all: all-redirect
.SUFFIXES:
.SUFFIXES: .S .c .o .s
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) \
&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(ACLOCAL_M4): configure.in
cd $(srcdir) && $(ACLOCAL)
config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
cd $(srcdir) && $(AUTOCONF)
config.h: stamp-h
@if test ! -f $@; then \
rm -f stamp-h; \
$(MAKE) stamp-h; \
else :; fi
stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status
cd $(top_builddir) \
&& CONFIG_FILES= CONFIG_HEADERS=config.h:config.h.in \
$(SHELL) ./config.status
@echo timestamp > stamp-h 2> /dev/null
$(srcdir)/config.h.in: $(srcdir)/stamp-h.in
@if test ! -f $@; then \
rm -f $(srcdir)/stamp-h.in; \
$(MAKE) $(srcdir)/stamp-h.in; \
else :; fi
$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h
cd $(top_srcdir) && $(AUTOHEADER)
@echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null
mostlyclean-hdr:
clean-hdr:
distclean-hdr:
-rm -f config.h
maintainer-clean-hdr:
mostlyclean-binPROGRAMS:
clean-binPROGRAMS:
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
distclean-binPROGRAMS:
maintainer-clean-binPROGRAMS:
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(bindir)
@list='$(bin_PROGRAMS)'; for p in $$list; do \
if test -f $$p; then \
echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
$(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
else :; fi; \
done
uninstall-binPROGRAMS:
@$(NORMAL_UNINSTALL)
list='$(bin_PROGRAMS)'; for p in $$list; do \
rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
done
.c.o:
$(COMPILE) -c $<
.s.o:
$(COMPILE) -c $<
.S.o:
$(COMPILE) -c $<
mostlyclean-compile:
-rm -f *.o core *.core
clean-compile:
distclean-compile:
-rm -f *.tab.c
maintainer-clean-compile:
nano: $(nano_OBJECTS) $(nano_DEPENDENCIES)
@rm -f nano
$(LINK) $(nano_LDFLAGS) $(nano_OBJECTS) $(nano_LDADD) $(LIBS)
install-man1:
$(mkinstalldirs) $(DESTDIR)$(man1dir)
@list='$(man1_MANS)'; \
l2='$(man_MANS)'; for i in $$l2; do \
case "$$i" in \
*.1*) list="$$list $$i" ;; \
esac; \
done; \
for i in $$list; do \
if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
else file=$$i; fi; \
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
$(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
done
uninstall-man1:
@list='$(man1_MANS)'; \
l2='$(man_MANS)'; for i in $$l2; do \
case "$$i" in \
*.1*) list="$$list $$i" ;; \
esac; \
done; \
for i in $$list; do \
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
rm -f $(DESTDIR)$(man1dir)/$$inst; \
done
install-man: $(MANS)
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) install-man1
uninstall-man:
@$(NORMAL_UNINSTALL)
$(MAKE) $(AM_MAKEFLAGS) uninstall-man1
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
@SET_MAKE@
all-recursive install-data-recursive install-exec-recursive \
installdirs-recursive install-recursive uninstall-recursive \
check-recursive installcheck-recursive info-recursive dvi-recursive:
@set fnord $(MAKEFLAGS); amf=$$2; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
@set fnord $(MAKEFLAGS); amf=$$2; \
dot_seen=no; \
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
rev="$$subdir $$rev"; \
test "$$subdir" = "." && dot_seen=yes; \
done; \
test "$$dot_seen" = "no" && rev=". $$rev"; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
&& mkid -f$$here/ID $$unique $(LISP)
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS)
mostlyclean-tags:
clean-tags:
distclean-tags:
-rm -f TAGS ID
maintainer-clean-tags:
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
-rm -rf $(distdir)
GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
mkdir $(distdir)/=build
mkdir $(distdir)/=inst
dc_install_base=`cd $(distdir)/=inst && pwd`; \
cd $(distdir)/=build \
&& ../configure --with-included-gettext --srcdir=.. --prefix=$$dc_install_base \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) dist
-rm -rf $(distdir)
@banner="$(distdir).tar.gz is ready for distribution"; \
dashes=`echo "$$banner" | sed s/./=/g`; \
echo "$$dashes"; \
echo "$$banner"; \
echo "$$dashes"
dist: distdir
-chmod -R a+r $(distdir)
GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-rm -rf $(distdir)
dist-all: distdir
-chmod -R a+r $(distdir)
GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-rm -rf $(distdir)
distdir: $(DISTFILES)
-rm -rf $(distdir)
mkdir $(distdir)
-chmod 777 $(distdir)
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
fi; \
done
for subdir in $(SUBDIRS); do \
if test "$$subdir" = .; then :; else \
test -d $(distdir)/$$subdir \
|| mkdir $(distdir)/$$subdir \
|| exit 1; \
chmod 777 $(distdir)/$$subdir; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \
|| exit 1; \
fi; \
done
info-am:
info: info-recursive
dvi-am:
dvi: dvi-recursive
check-am: all-am
check: check-recursive
installcheck-am:
installcheck: installcheck-recursive
all-recursive-am: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
install-exec-am: install-binPROGRAMS
install-exec: install-exec-recursive
install-data-am: install-man
install-data: install-data-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-recursive
uninstall-am: uninstall-binPROGRAMS uninstall-man
uninstall: uninstall-recursive
all-am: Makefile $(PROGRAMS) $(MANS) config.h
all-redirect: all-recursive-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs: installdirs-recursive
installdirs-am:
$(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(mandir)/man1
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-hdr mostlyclean-binPROGRAMS \
mostlyclean-compile mostlyclean-tags \
mostlyclean-generic
mostlyclean: mostlyclean-recursive
clean-am: clean-hdr clean-binPROGRAMS clean-compile clean-tags \
clean-generic mostlyclean-am
clean: clean-recursive
distclean-am: distclean-hdr distclean-binPROGRAMS distclean-compile \
distclean-tags distclean-generic clean-am
distclean: distclean-recursive
-rm -f config.status
maintainer-clean-am: maintainer-clean-hdr maintainer-clean-binPROGRAMS \
maintainer-clean-compile maintainer-clean-tags \
maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
maintainer-clean: maintainer-clean-recursive
-rm -f config.status
.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
mostlyclean-compile distclean-compile clean-compile \
maintainer-clean-compile install-man1 uninstall-man1 install-man \
uninstall-man install-data-recursive uninstall-data-recursive \
install-exec-recursive uninstall-exec-recursive installdirs-recursive \
uninstalldirs-recursive all-recursive check-recursive \
installcheck-recursive info-recursive dvi-recursive \
mostlyclean-recursive distclean-recursive clean-recursive \
maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \
install-exec-am install-exec install-data-am install-data install-am \
install uninstall-am uninstall all-redirect all-am all installdirs-am \
installdirs mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

365
NEWS
View File

@@ -1,12 +1,333 @@
05/12/2002 - GNU nano 1.1.9 is released, happy Mother's Day! This release
includes many new features, including a prepend mode
(^O,M-P), a new "syntax" command in the .nanorc to allow
multiple syntax highlighting types, and a new -Y, --syntax
flag to set a specific one if there's no filename regex to
match it against (i.e. w/mutt). The ^space and M-space keys
will now show up in the help menu, which itself has been
tweaked a bit, and many more configure options should now
cooperate (like the odd pairing of --enable-tiny and
--enable-multibuffer). The marker should now work
when using multiple buffers, and the huge memory leak in
color syntax highlighting has been fixed. A lot of
new stuff for everyone's favorite text editor ;) Have fun!
03/30/2002 - GNU nano 1.1.8 is released. New features include an
"Insert Output of External Command", ^R^X, and a .spec
file is now included in the distribution. There are
cleanups in the usage code, fixes for regex parsing,
the file browser, the NO_CONVERT auto-detect, indented
justification, the internal spell checker, and a serious
bug where reading a file of 0 lines would hang nano.
Also, the "show position" code now shows the starting
column as 1 instead of 0. Have fun!
03/05/2002 - GNU nano 1.1.7 "lets change everything and see what breaks"
is released. New features include new flags
-N,--noconvert to stop any file format conversion and
-Q, --quotestr for the new quoted text justification,
a new tempnam() implementation to avoid silly warnings,
DOS and Mac file options in the Write File dialog,
multiple save files (file.1) for abnormal exits, ^C
now shows column as well as character position, and
multibuffer allows duplicate files, even unnamed ones.
Also, the static shortcut and toggle lengths are
history, nano now reads $SYSCONFDIR/nanorc if rc file
support is enabled, and nano is now built with (and
requires for rebuilding) autoconf 2.5.
This release also includes fixes for some memory
leaks, detecting DOS and mac file format, justification,
suspending keys, search & replace under various
conditions, variable width for shortcuts, and the usual
ton of translation updates.
01/25/2002 - GNU nano 1.1.6 is released. Lots of new features in this
release. New Meta-keys were added as alternates for
control sequences: Meta-A for the marker key (^^), and
Meta-G for the 'goto dir' key in the file browser (^_).
The color syntax highlighting now supports multiple
lines via start="regex" end="regex" syntax, and the
.nanorc regex format itself has changed. Also, the
gettext code was upgraded to version 0.10.40, and nano
will now display a message if only occurrence of a
given search exists.
For bugfixes, there are fixes for spelling,
stray newlines in the usage() function, suspend issues
with tcsh, auto-indent and wrapping clashes, ugly code
in rcfile.c, global variable compatibility with AIX.
There are also oodles of translation updates.
Have fun with it.
01/05/2002 - GNU nano 1.1.5 is out. The main new feature in this
release is the changed behavior of the keypad. Nano now
does the Right Thing and used keypad() by default. If
you wish to use the keypad arrow keys in certain
terminals, you may use the -K or --keypad flag to
use the old behavior. Users of other OSes should see
better handling of their non-keypad keys in this
release. Other changes include more Hurd fixes, fixes
parsing the .nanorc, display fixes for the color syntax
highlighting, gettext stabilization and many translation
updates. This is amost like a stable release, much like
in the 0.9.x series when every other release was the
mosts stable one :) Have fun!
12/11/2001 - GNU nano 1.1.4 is released. This release contains
rudimentary color syntax support (but it's still
broken), compatibility fixes for the Hurd and FreeBSD,
spell checker and wrapping fixes, and more. It seems
that the amount of interest in the code is inversely
proportional to the amount of time since last release,
so it's time to show the world all the changes since
1.1.3 ;) Have fun with it!
10/26/2001 - GNU nano 1.1.3 is released. As far as new features go,
the help system is now available for all functions in the
editor. Also, nano will also now print a message on
the status bar when it automatically converts a file from
Mac or DOS format, and trying to load a file that
has already been loaded in multibuffer mode will now also
cause an error message. There is now a "goto previous
word" which you can use by hitting Meta-Space Bar.
As for fixes, a SEVERE bug in the
null_at code which discarded the memory address of
reallocated memory has been fixed. This is probably
the biggest bug fix in well over the last year of
development. There are also some display fixes for when
the screen shouldn't center itself on cut or uncut text.
Also, the comments in the header files incorectly said
that nano was distributed under version 1 of the GPL when
the accompanying license was the GPLv2.
If you're using nano-1.1, it is highly
recommeneded you upgrade to this release. If using 1.0,
wait for version 1.0.6 which should be available early
next week. Enjoy!
10/03/2001 - GNU nano 1.1.2 is out there. Many new features in this
release, including support for auto-converting from
DOS and Mac formatted files, as well as toggles for
writing out files in these formats. Pico's -o flag has
been implemented, as has some new smooth scrolling code
(which can be used in place of the default jerky scrolling
behavior). Also, there is now a "find matching
bracket/brace/etc" feature (Meta-]). The .nanorc file
now accepts setting the tabsize, and the help text at the
bottom of the editor is now better spaced out in the
search/replace prompts. There are also the usual helping
of bugfixes, translation updates and, surely a bug or two.
You better get ready!
07/28/2001 - GNU nano 1.1.1 is released. Our second 1.1 unstable release
features many bugfixes from the initial release, in
particular fixs for the multibuffer code, and various
compiler macro fixes. The shortcut lists for
the search and replace prompts are a little more logical
(with cancel the last option again), and the included
gettext was re-downgraded to 0.10.35 due to problems
on the PPC platform. GNU nano now includes its own
aclocal macros in the m4/ directory to allow rebuilding
the configure script to work on platforms regardless of
their gettext version.
07/15/2001 - GNU nano 1.1.0 is released. This is the first release
in the 1.1.x unstable series of GNU nano. It
incorporates all changes up to the 1.0.3 release,
and also includes many many new features, including
appending to as well as overwriting files, writing
marked text to a separate file, dynamic wrap length,
lots more compatibility with Pico, and new optional
features like .nanorc file support and multiple file
buffers! All in all, plenty of new stuff that's sure
to introduce lots of bugs ;-) Have fun with it, but
be careful, unstable means unstable.
04/06/2001 - GNU nano 1.0.1 is out there. The only new feature is a
configure option for those who want to disable all
word wrapping from nano, --disable-wrapping. Bug fixes
this release include some bugs with autoconf and i18n,
and several fixes in the file browser including a
segfault on Solaris, symlinks to directories now work
properly, and nano now sorts files case insensitively
like pilot. Have fun with it.
03/22/2001 - GNU Nano 1.0 is released! The autoindent wrapping bug
has been fixed, as well as strange bug when using Pico
mode and regex search. There have also been some minor
spelling and documentation updates. As stated on the
website, there are currently no known bugs with nano, but
some will pop up eventually and they will be addressed in
subsequent releases. We hope you enjoy this first stable
release of nano, and as always, feedback is welcome!
nano@nano-editor.org.
02/19/2001 - Nano 0.9.99pre3 brings a lot of changes! The most important
being that nano is now officially a GNU program. Some
changes have been made for GNU compatibility (like the
default list of shortcuts, "^G Get Help" is now Listed and
"^_ Goto Line" is not). The Yes/No/All keys have
finally been internationalized also. All in all, quite
a few changes, considering nano is supposed to be in a code
freeze. But there are the usual helping of bugfixes, a
nasty bug when cutting text in -k mode and some
compatibility issues with older ncurses libraries have also
been fixed. All in all, a lot to see.
01/31/2001 - Nano 0.9.99pre2 is released. Not surprisingly, all that is
new is bugfixes, bugfixes, bugfixes. There were a few
cleanups in unneeded global variables and duplicate
functions, but most is just fixing. Specifically, there
is now a preliminary (read: needs testing) fix for
resizing the editor in any mode other than normal edit
mode. Other fixes include some more tab completion
segfaults, and an silly segfault that occurred when
successfully writing a file on the 2nd try (i.e. after an
initial write error). Slowly but surely, on toward 1.0 we
travel.
01/17/2001 - Nano 0.9.99pre1 is released. This is the first pre-1.0
release of nano, and is also the first release since the
code freeze for nano 1.0. Don't expect (or request) any
new features between now and nano 1.0, only bugfixes,
optimizations and doc/translation updates. For fixes, a
nasty segfault when trying to insert one's home directory
(~), some checks for the NumLock key making the keypad
go awry, window size sanity checks, many autoconf fixes,
and support for the KDE konsole keypad layout. Have fun.
01/07/2001 - Nano 0.9.25 is the "Just one more feature I swear!" release.
It includes one new feature that Pico has had forever, a
built-in file browser. Since not everyone may want this
option, there is a --disable-browser option to the
configure script as well. Other changes include slightly
different keypad handling, and a bugfix for crashes when
tab completion in certain instances. Have fun and Happy
New Year!
12/18/2000 - Nano 0.9.24 is released. This version contains the last of
the security fixes for writing files, as well as for a
nasty segfault when nano is unable to open a file for
reading, among other fixes. Nano also now cowardly
refuses to open device files, to stop silly things like
trying to open /dev/zero. New features include being
Able to use Meta-Meta-<key> as Control-<key>, better
HURD support, and some new flags have been added for Pico
compatibility. Upgrading to this version is highly
recommended.
12/08/2000 - Nano 0.9.23 is the "race conditions bite" release. The
main reason for this release is the less-than-optimal
fix for the security issue in nano with following symbolic
links. Hopefully this will fix the problem permanently.
The --nofollow option also works again for those who
are real security nuts. There are also some display and
search fixes, and the --disable-spell function was renamed
to --disable-speller to be in line with nano and pico's
"speller" term.
12/02/2000 - Nano 0.9.22 is released, with many more changes and
additions than imaginable. The most important change is
a fix for unsafe handling of symbolic links which could
lead to symlink attacks if nano were to exit because
of an error or signal. Also there are better checks when
saving files.
As for new features, username tab completion is
now working well, the internal spell checker code has been
tweaked, you can now unjustify if you don't like how the
justify formatted your text, and there are more
options for configure, including --disable-spell and
--disable-justify and --enable-extra (for those who like
surprises). All in all, a whole lot of changes in
a little over a week.
11/23/2000 - Happy Thanksgiving! Nano 0.9.21 is our "last version was
a big turkey" release. It fixes several bugs introduced
by the previous version, as well as a few long-
standing display bugs. All 0.9.20 users are strongly
encouraged to upgrade to this release.
11/18/2000 - Nano 0.9.20 is finally out the door. Probably the biggest
change is the brand new way nano displays previous search
and replace strings (they are now editable!) This is a
break from Pico's (inconsistent) interface, so if you
don't like the new way, "Pico" mode (-p on the command
line or Meta-P within nano) still works the "old"
way.
Other new features include being able to deal with
search strings of any length, a new internal spell feature
(courtesy of Mr. Rocco Corsi) and tab completion when
reading in or writing out files! There's also the usual
billion or so bug fixes. Feedback on this release is
welcome because so much has changed, especially with the
previous string display in search and replace. Email ->
nano@nano-editor.org <-. If you like something, don't like
something, or just want to order a pizza, let us know!
10/02/2000 - Nano 0.9.19 is the "Chris is getting married in less than
a week and needs a distraction" release. There are only
a few actual code changes, mainly portability and compiler
warning fixes. Nano now also supports PDCurses, which
enables easily-built nano executables for Windows NT
and 95/98 for the brave. The official nano site has
changed (again) as well, check out www.nano-editor.org for
all the latest nano schtuff.
09/18/2000 - Nano 0.9.18 is unleashed. It has some new keyboard
handling code, cygwin support out of the box, and
a more portable handler for the NOHELP toggle. There
is also a fix for a somewhat serious bug whereby trying
to insert a directory instead of a normal file would
destroy the contents of the editor. A must-see. Four
stars.
09/04/2000 - Nano 0.9.17, the Labor Day release, is released after a
quiet spell (almost an entire month since last release!)
New features include better (not yet perfect) binary
display support and toggle support for most of the program
flags (M-c, M-i, M-z, M-x, M-p, M-w, M-m, M-k and M-e for
-c, -i, -x, -p, -w, -k, and -R).
08/09/2000 - Nano 0.9.16, after some struggling, is released. This release
should fix a few of the holes that 0.9.15 dug. The
"cutting text on the first line" bug is fixed, as is the
"cutting text on the last line" bug. Nice symmetry there
huh? Also the --tabsize argument should now work as well
as by using -T.
08/03/2000 - Nano 0.9.15 is the "I can't think of a release description"
release. There are the usual gala of display bugfixes,
a fix for the the nasty bug in -k mode that could create a
loop in the file being edited, and some other code
cleanup. Also, the -T option should now work regardless
of the curses library used. Yay.
07/27/2000 - Nano 0.9.14 is officially the "13 is so unlucky it should
be skipped as a version number" release. One typo
caused unending problems (calling nano with either -t or
-k caused both flags to be used). The -k code is also now
closer in functionality to Pico's -k mode; please
note that this code is not finished yet. Working on this
code has made me realize that there is not enough
abstraction in the code, and I will be working on that
for the next release. Until then, have fun with this
version.
07/23/2000 - Nano 0.9.13 has a few new bits and bobs, most notably the
-k option from Pico (cut to end of line). The majority
of changes in this release are bugfixes, however, including
the usual display fixes and fixes for writing to symbolic
links and un-writeable files. Barring any other major
changes, this should be the feature set for nano 1.0,
whenever it might be released =-)
07/07/2000 - Nano 0.9.12 (The "lucky day" release) is bursting with new
features, bug fixes, and yummy fruit flavor. For
changes, the alternate replace keystroke ^W^T is now
^W^R to be compatible with later version of Pico.
^W^R to be compatible with later versions of Pico.
^W^T is now goto line, again for Pico compatibility.
As for new features, the wonderful/hated magic line
code has returned with a vengeance! Also, regular
expression searches and replaces have been incorporated
via the -R flag. And of course there are the usual
via the -R flag. And, of course, there are the usual
helping of display and other bug fixes to top it all
off.
@@ -20,8 +341,8 @@
this function just changes the way tabs LOOK in the
editor, the tabs you input are still real tabs of normal
width (usually 8 characters); nano just makes them look
smaller or bigger whlie in the editor. New in the
translation department is an indonesian translation (id).
smaller or bigger while in the editor. New in the
translation department is an Indonesian translation (id).
06/06/2000 - Nano 0.9.10 is primarily a bugfix for the loss of SIGINT when
using "run and terminate" flags (for example, --help).
@@ -40,7 +361,7 @@
the resize crash people have been experiencing. It also
offers a new input method that should allow nano to do
things the right way (like ^S, ^Q, custom suspend keys)
and hopefully wont break with non-US keyboards. There
and hopefully won't break with non-US keyboards. There
are also the obligatory display fixes and speedups. Have
fun with it.
@@ -61,7 +382,7 @@
05/01/2000 - Nano 0.9.5 attempts to speed up the display of text
to be at least somewhat reasonable. Much
code profiling has been done to reduce the
rediculous number of redundant display updates. This
ridiculous number of redundant display updates. This
will probably expose a lot of bugs that can then be
fixed, so this release is probably not for the faint
of heart. For anyone curious, I would call nano 0.9.2
@@ -87,7 +408,7 @@
so it is being removed for the time being, and perhaps
indefinitely.
Other new stuff includes a --emable-tiny option to make
Other new stuff includes an --enable-tiny option to make
nano ultra small (disabling i18n, detailed help and the
marker and mouse code), and --with-slang to use the
slang libraries instead of ncurses.
@@ -114,7 +435,7 @@
04/07/2000 - Nano 0.9.0 has some updates, new language support and
a much better refresh setup (It's still not great, but...)
There should also be more stabillity editing long lines,
There should also be more stability editing long lines,
as there was a stupid mistake in the update_line
call. Silly me =)
@@ -123,13 +444,13 @@
Most things work, the rest doesn't doesn't work because
(a) I can't fix it or I would have already done so, and
(b) the amount of patches I'm receiving right now is quite
negligible. Forrunately this release marks the first
negligible. Fortunately, this release marks the first
release since I have acquired ownership of the nano pages
on SourceForge. Here's hoping SF will get us some more
visibilitiy, translators and patches.
visibility, translators and patches.
03/12/2000 - After a hiatus, I have finally moved (not unpacked though)
to my new home into albany. Thus I should now have more
to my new home into Albany. Thus I should now have more
time to work on nano. Nano 0.8.8, the "dear god what
broke this time?" release, incorporates patches for both
i18n and many bugfixes. It is VERY likely something broke
@@ -138,8 +459,8 @@
I would like to announce that I'm going to need
translations soonish, so if you are fluent in other
languages than english (or even better, if your native
language is not english) and you would like to submit a
languages than English (or even better, if your native
language is not English) and you would like to submit a
translation file to me, please feel free to do so. If you
do, I will list your name and email in the AUTHORS file as
the maintainer of the .po file, and from then on it is
@@ -147,9 +468,9 @@
03/01/2000 - Well, to continue my trend of going back on my previous
release's comments, nano 0.8.7 is released. The crashing
behavior was still occuring, and this most recent fix also
behavior was still occurring, and this most recent fix also
fixes some other wrapping problems, so here you go.
There may be another relase soon, there may not be, is
There may be another release soon, there may not be, is
that vague enough? =)
02/25/2000 - More minor bugfixes in 0.8.6, the bizarre behavior at the end
@@ -176,11 +497,11 @@
but I may be changing jobs very soon. I will release
version 0.8.2 as is (no i18n, no help menu (yet). I
expect things to settle down by the end of next week, and
then I can try to start on the i18n support and help menu,
then I can try to start on the i18n support and help menu;
look for these new features in version 0.8.5 to 0.9.0.
01/28/2000 - Nano 0.8.1 marks our first official step toward
internationaliation (i18n) and the help system (^G). I
internationalization (i18n) and the help system (^G). I
will be merging in Jordi's patches for initial i18n in the
next version, and will implement the help system with
i18n built into it shortly after that. Please don't
@@ -189,14 +510,14 @@
01/25/2000 - Nano 0.8.0 is officially the 'let's try and be at least a
little portable, mmmmkay?' release. There are many
portability checks and fixes, many thanks to Andy Kahn for
portability checks and fixes; many thanks to Andy Kahn for
his patches. I removed the broken do_spell behavior with
the 'spell' program, for now we only try to call 'ispell'
the 'spell' program; for now, we only try to call 'ispell'
until I write a better method to handle the output of the
normal 'spell' command.
01/24/2000 - Nano 0.7.9 features many new features. Among them are a
new autoindent feature (-i, --autoondent), tempfile
new autoindent feature (-i, --autoindent), tempfile
flag like Pico's -t flag (-t, --tempfile), and preliminary
spelling program support. The spelling function tries
to run 'spell' and then 'ispell' in that order, but you
@@ -209,7 +530,7 @@
all the changes in this release will cause a few bugs, so
0.7.8 will primarily be about fixing those bugs.
Things added this release include resizeability (kinda),
Things added this release include resizability (kinda),
new -x and -c flags (see nano -h for help), long command
line flag support, and the usual array of bugfixes.
@@ -224,3 +545,5 @@
http://faculty.plattsburgh.edu/astyanax/nano. Please
update your bookmarks, tell your friends, and all that
jazz.
$Id$

106
README
View File

@@ -1,29 +1,24 @@
The nano editor (Nano's ANOther editor) by Chris Allegretta
Manifesto
GNU nano - an enhanced clone of the Pico text editor.
Overview
The nano project was started because of a few "problems" with the
wonderfully easy-to-use and friendly Pico text editor.
First and foremost is its license: the Pine suite does not use the
GPL or a GPL-friendly license, and has unclear restrictions on
redistribution. Because of this, Pine and Pico are not included with
many GNU/Linux distributions. Also, other features (like goto line
number or search and replace) were unavailable until recently or
require a command line flag. Yuck.
Nano is the editor formerly known as TIP (TIP Isn't Pico).
The nano project was started because of three main problems with the
wonderfully easy-to-use and friendly Pico text editor:
- It's license is not the GNU GPL, and hence some Linux
distributions, including Debian (my favorite) don't always
include it/don't include binaries. This is not necessarily a
problem, but an issue nonetheless.
- Until recently, it had no ability to go to a line # from within
the editor. There was the +number command line option, but who wants
to exit a file to go to a specific line number? When I want to go to
a line, since I have to exit anyway, I just call up vi temporarily.
- No search and replace feature. Well, apparently there is a flag
that lets you do a search and replace (-b in newer versions) but,
well, I still dont like it.
nano aims to solve these problems by emulating the functionality of
Pico as closely as possible while adressing the problems above and
Pico as closely as possible while addressing the problems above and
perhaps providing other extra functionality.
The nano editor is now an official GNU package. For more information
on GNU and the Free Software Foundation please see http://www.gnu.org.
How to compile and install nano
@@ -34,49 +29,60 @@ How to compile and install nano
make
make install
It's that simple. Use --prefix to override the default installation
directory of /usr/local.
It's that simple. Use --prefix with configure to override the
default installation directory of /usr/local.
Web Page
http://www.asty.org/nano
http://www.nano-editor.org
Mailing List and Bug Reports
SourceForge hosts all the nano-related mailing-lists.
+ nano-announce@lists.sourceforge.net is a very low traffic list
Savannah hosts all the nano-related mailing-lists.
+ info-nano@gnu.org is a very low traffic list
used to announce new Nano versions or other important information
about the project.
+ nano-devel@lists.sourceforge.net is the list used by the people
+ help-nano@gnu.org is for those seeking to get help without
wanting to hear about the technical details of its
development.
+ nano-devel@gnu.org is the list used by the people
that make Nano and a general development discussion list, with
moderate traffic.
To subscribe, send email to nano-<name>-request@lists.sourceforge.net
To subscribe, send email to nano-<name>-request@gnu.org
with a subject of "subscribe", where <name> is the list you want to
subscribe to.
For general bug reports, send a description of the problem to
nano@asty.org or directly to the development list.
nano@nano-editor.org or directly to the development list.
Current Status
nano is currently at version 0.9.x, and it will probably remain there
for awhile. This reflects the adage that the last 10% of a project
takes 90% of the time. Version 1.0 will be released when there are
no unresolved bugs, and not before. I am also currently looking for
patches for all things listed in the TODO file. If you have a
comment or suggestion, please let me know, all help is appreciated.
This is the 1.1 or unstable branch of nano. New features
will be added and things will be changed around and basically
stability is not guaranteed. If this is not what you're
interested in, please use the latest 1.0.x release of nano.
New features in this branch include:
+ .nanorc file support (--enable-nanorc configure option,
see sample.nanorc file)
+ Negative -r value for "#cols from right", allows dynamic adjustment
of wrap margin based on window size.
+ Write marked text to separate file (^O after selecting with ^^).
+ Append to file (Meta-A at write file menu).
+ Multiple file buffers! (--enable-multibuffer configure option,
--multibuffer, -F cmdline flag, Meta-F toggle, then ^R to load).
+ Better compatibility with Pico. Mouse mode now supports clicking
shortcuts and files in browser, search toggles that are Pico
extensions moved to Meta keys so as to not interfere with Pico
control sequences.
+ Smooth scrolling through files, instead of the jerky half-page
down, half-page up method. This is available by using the
-S or --smooth switch, or the Meta-S toggle.
+ Better non-*nix file support. GNU nano now automatically
converts files from DOS format or Mac format to standard file
format. It can also write files in either format by using the
appropriate command line (-D, --dos or -M, --mac) or toggle
(Meta-D, Meta-O).
Warning: This program can and possibly will corrupt your data in
its current form! It is beta software, so treat it as such!
Thank you.
Note that the primary aim of nano is to emulate Pico while adding a
few key "missing" features. I do NOT want just a GPL'ed Pico clone,
nor do I want something that strays too far from the Pico design
(simple and straightforward). If you don't like this, feel free to
fork my code at any time, but please call your editor something
else, believe it or not I struggled awhile before coming up with
the name nano (and before that TIP), and it would be much easier for
everyone if there weren't five versions of the same program. As you
can guess, I'm not much of an emacs fan ;)
Chris Allegretta (chrisa@asty.org)
$Id$

38
README.CVS Normal file
View File

@@ -0,0 +1,38 @@
INSTRUCTIONS TO COMPILE AND INSTALL NANO CVS VERSIONS
-----------------------------------------------------
GNU nano is available from CVS, but building this needs a bit
more care than the official stable and unstable tarballs.
To succesfully compile GNU nano from CVS, you'll need the
following packages:
- autoconf (version >= 2.52)
- automake (version 1.4-pl5 recommended)
- autoheader
- gettext (version 0.10.40)
- texinfo
- cvs
- make, gcc and the normal development libraries (ncurses, etc)
These should be available on your GNU mirror.
To download the CVS tree, execute the following command:
$ cvs -z3 -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/nano login
and press enter at the password prompt.
Then, do
$ cvs -z3 -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/nano checkout nano
and the nano tree will download.
If you want to checkout the stable CVS branch, append -r nano_1_0_branch:
$ cvs -z3 -d:pserver:anonymous@subversions.gnu.org:/cvsroot/nano checkout -r nano_1_0_branch nano
One you have the sources in the "nano" directory, cd into it, and execute
the "autogen.sh" script in the top dir. This will setup a configure script
and Makefile.in, and you will be ready to compile with
$ ./configure [--add-options-here] && make
Once it's done compiling,
$ make install
should put the required files in their respective directories.
Please submit any bugs in the CVS branch to nano-devel@gnu.org.

45
THANKS Normal file
View File

@@ -0,0 +1,45 @@
The following people have helped GNU nano in some way or another.
If we missed you here, let us now!
Marco Colombo <magicdice@inwind.it> Italian Translator
Karl Eichwalder <keichwa@gmx.net> German Translator
Jean-Philippe Guérard <jean-philippe.guerard@laposte.net>
French Translator
Tedi Heriyanto <tedi_h@gmx.net> Indonesian Translator
Václav Haisman <V.Haisman@sh.cvut.cz> Czech Translator
Szabolcs Horvath <horvaths@janus.gimsz.sulinet.hu>
Hungarian Translator
Eivind Kjørstad <ekj@vestdata.no> Norwegian nynorsk Translator
Florian König <floki@bigfoot.com> German Translator
Wojciech Kotwica <wkotwica@post.pl> Polish Translator
Clement Laforet <clem_laf@wanadoo.fr> French Translator
Gergely Nagy <algernon@debian.org> Hungarian Translator
Michael Piefel <piefel@informatik.hu-berlin.de> German Translator
Sergey A. Ribalchenko <fisher@obu.ck.ua> Russian, Ukrainian Translator
Michel Robitaille <robitail@IRO.UMontreal.CA> French Translator
Christian Rose <menthos@menthos.com> Swedish Translator
Stig E Sandoe <stig@ii.uib.no> Norwegian bokmål Translator
Keld Simonsen <keld@dkuug.dk> Danish Translator
Guus Sliepen <guus@nl.linux.org> Dutch Translator
Cezary Sliwa <sliwa@cft.edu.pl> Polish Translator
Pierre Tane <tanep@bigfoot.com> French Translator
Jacobo Tarrío <jtarrio@trasno.net> Galician Translator
Kjetil Torgrim Homme <kjetilho@linpro.no> Norwegian nynorsk Translator
Miquel Vidal <miquel@sindominio.net> Catalan Translator
Pauli Virtanen <pauli.virtanen@saunalahti.fi> Finnish Translator
Jim Knoble <jmknoble@pobox.com> Pico compat for browser
Thomas Dickey <dickey@herndon4.his.com> Curses help and advice
Ryan Krebs <fluffy@highwire.stanford.edu> Many bug fixes and testing
Ken Tyler <kent@werple.net.au> Super bug tester and advice
Bill Soudan <wes0472@rit.edu> Regex code, etc
Ben Armstrong <synrg@sanctuary.nslug.ns.ca> Negative -r value idea, code
Jeremy Robichaud <robicj@yahoo.com> Beta tester
Roy Lanek <lanek@ranahminang.net> Advice and advocacy
Sven Guckes <guckes@math.fu-berlin.de> Advice and Advocacy
Neil Parks <nparks@acsmail.com> Bug reports n fixes
Chuck Mead <csm@MoonGroup.com> Feedback and RPM stuff
Mike Melanson <melanson@pcisys.net> Bugs
$Id$

33
TODO
View File

@@ -1,14 +1,37 @@
TODO file (? means the feature may be implemented, but not definitely)
-----------------------------------------------------------------------------
- Implement Spelling [DONE, mostly...]
Current Version:
- Implement Spelling [DONE]
- Implement Help [DONE]
- Internationalization [In progress, translators welcome!]
- Allow nano to be resized in X. [DONE]
- Color syntax highlighting? (certainly seems like there's a demand for it.)
- On page up/down, put the cursor on the first line (like Pico), not the
center line [DONE]
- Undo/Redo key?
- single line scroll up/down?
- Rewrite edit_refresh, if at all possible [In progress]
- Rewrite edit_refresh, if at all possible [DONE]
- Implement justify function [DONE]
- Cut to end of line [DONE]
- Built-in speller command [needed for version 1.0] [DONE]
- Better statusbar interaction (scrolling, tab completion for filename)
[needed for version 1.0] [DONE]
- Now do username completion [DONE].
- Unjustify command (^U after ^J) [DONE =-].
- Username completion (~user) [DONE =-].
For Next Version:
- Undo/Redo key?
- Single line scroll up/down? [DONE]
- Color syntax highlighting? (certainly seems like there's a demand for it.)
- .nanorc [DONE]
- Backup making (filename~)?
- Search (etc) string history [1.1]
- Implement Pico's -j and -g flags, as they are pretty easy to do. [DONE]
- Make mouse support work with clicking on the shortcuts (-m). Must
make global variable pointing to current shortcut list to determine what
keystroke to ungetch(). [DONE].
- Implement -o (chroot of sorts) [DONE]
- Allow -r to take a negative argument, meaning right margin instead of
left (allows resizing that way), formerly -W arg. [DONE]
- UTF-8 support.
$Id$

View File

@@ -1,6 +1,14 @@
/* $Id$ */
/* Define this if you have the wresize function in your ncurses-type library */
#undef HAVE_WRESIZE
/* Define this if you have the resizeterm function in your ncurses-type library */
#undef HAVE_RESIZETERM
/* Define this if your curses lib has the _use_keypad flag */
#undef HAVE_USEKEYPAD
/* Define this if you have NLS */
#undef ENABLE_NLS
@@ -22,5 +30,47 @@
/* Define to use the slang wrappers for curses instead of native curses */
#undef USE_SLANG
/* Define this if you have a behaving TABSIZE global in your curses lib */
#undef HAVE_TABSIZE
/* Define this to enable the extra stuff */
#undef NANO_EXTRA
/* Define to disable the tab completion code Chris worked so hard on! */
#undef DISABLE_TABCOMP
/* Define this to disable the justify routine */
#undef DISABLE_JUSTIFY
/* Define this to disable the use(full|less) spelling functions */
#undef DISABLE_SPELLER
/* Define this to disable the ^G help menu */
#undef DISABLE_HELP
/* Define this to disable the built-in (crappy) file browser */
#undef DISABLE_BROWSER
/* Define this to disable any and all text wrapping */
#undef DISABLE_WRAPPING
/* Define this to disable the mouse functions */
#undef DISABLE_MOUSE
/* Define this to disable setting of the operating directory (chroot of sorts) */
#undef DISABLE_OPERATINGDIR
/* Define this to enable multiple file buffers */
#undef ENABLE_MULTIBUFFER
/* Define this to use the .nanorc file */
#undef ENABLE_NANORC
/* Define this if your curses library has the use_default_colors command */
#undef HAVE_USE_DEFAULT_COLORS
/* Define this to have syntax hilighting, requires ENABLE_NANORC too! */
#undef ENABLE_COLOR
/* Define this to enable undoing....something */
#undef ENABLE_UNDO
/* Shut up the assert warnings :-) */
#undef NDEBUG

708
aclocal.m4 vendored
View File

@@ -1,708 +0,0 @@
dnl aclocal.m4 generated automatically by aclocal 1.4
dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl This program is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
dnl PARTICULAR PURPOSE.
# Do all the work for Automake. This macro actually does too much --
# some checks are only needed if your package does certain things.
# But this isn't really a big deal.
# serial 1
dnl Usage:
dnl AM_INIT_AUTOMAKE(package,version, [no-define])
AC_DEFUN(AM_INIT_AUTOMAKE,
[AC_REQUIRE([AC_PROG_INSTALL])
PACKAGE=[$1]
AC_SUBST(PACKAGE)
VERSION=[$2]
AC_SUBST(VERSION)
dnl test to see if srcdir already configured
if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
fi
ifelse([$3],,
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
AC_REQUIRE([AM_SANITY_CHECK])
AC_REQUIRE([AC_ARG_PROGRAM])
dnl FIXME This is truly gross.
missing_dir=`cd $ac_aux_dir && pwd`
AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
AC_REQUIRE([AC_PROG_MAKE_SET])])
#
# Check to make sure that the build environment is sane.
#
AC_DEFUN(AM_SANITY_CHECK,
[AC_MSG_CHECKING([whether build environment is sane])
# Just in case
sleep 1
echo timestamp > conftestfile
# Do `set' in a subshell so we don't clobber the current shell's
# arguments. Must try -L first in case configure is actually a
# symlink; some systems play weird games with the mod time of symlinks
# (eg FreeBSD returns the mod time of the symlink's containing
# directory).
if (
set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
if test "[$]*" = "X"; then
# -L didn't work.
set X `ls -t $srcdir/configure conftestfile`
fi
if test "[$]*" != "X $srcdir/configure conftestfile" \
&& test "[$]*" != "X conftestfile $srcdir/configure"; then
# If neither matched, then we have a broken ls. This can happen
# if, for instance, CONFIG_SHELL is bash and it inherits a
# broken ls alias from the environment. This has actually
# happened. Such a system could not be considered "sane".
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
alias in your environment])
fi
test "[$]2" = conftestfile
)
then
# Ok.
:
else
AC_MSG_ERROR([newly created file is older than distributed files!
Check your system clock])
fi
rm -f conftest*
AC_MSG_RESULT(yes)])
dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
dnl The program must properly implement --version.
AC_DEFUN(AM_MISSING_PROG,
[AC_MSG_CHECKING(for working $2)
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
# Redirect stdin to placate older versions of autoconf. Sigh.
if ($2 --version) < /dev/null > /dev/null 2>&1; then
$1=$2
AC_MSG_RESULT(found)
else
$1="$3/missing $2"
AC_MSG_RESULT(missing)
fi
AC_SUBST($1)])
# Like AC_CONFIG_HEADER, but automatically create stamp file.
AC_DEFUN(AM_CONFIG_HEADER,
[AC_PREREQ([2.12])
AC_CONFIG_HEADER([$1])
dnl When config.status generates a header, we must update the stamp-h file.
dnl This file resides in the same directory as the config header
dnl that is generated. We must strip everything past the first ":",
dnl and everything past the last "/".
AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
<<am_indx=1
for am_file in <<$1>>; do
case " <<$>>CONFIG_HEADERS " in
*" <<$>>am_file "*<<)>>
echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
;;
esac
am_indx=`expr "<<$>>am_indx" + 1`
done<<>>dnl>>)
changequote([,]))])
# Configure paths for GLIB
# Owen Taylor 97-11-3
dnl AM_PATH_GLIB([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if "gmodule" or
dnl gthread is specified in MODULES, pass to glib-config
dnl
AC_DEFUN(AM_PATH_GLIB,
[dnl
dnl Get the cflags and libraries from the glib-config script
dnl
AC_ARG_WITH(glib-prefix,[ --with-glib-prefix=PFX Prefix where GLIB is installed (optional)],
glib_config_prefix="$withval", glib_config_prefix="")
AC_ARG_WITH(glib-exec-prefix,[ --with-glib-exec-prefix=PFX Exec prefix where GLIB is installed (optional)],
glib_config_exec_prefix="$withval", glib_config_exec_prefix="")
AC_ARG_ENABLE(glibtest, [ --disable-glibtest Do not try to compile and run a test GLIB program],
, enable_glibtest=yes)
if test x$glib_config_exec_prefix != x ; then
glib_config_args="$glib_config_args --exec-prefix=$glib_config_exec_prefix"
if test x${GLIB_CONFIG+set} != xset ; then
GLIB_CONFIG=$glib_config_exec_prefix/bin/glib-config
fi
fi
if test x$glib_config_prefix != x ; then
glib_config_args="$glib_config_args --prefix=$glib_config_prefix"
if test x${GLIB_CONFIG+set} != xset ; then
GLIB_CONFIG=$glib_config_prefix/bin/glib-config
fi
fi
for module in . $4
do
case "$module" in
gmodule)
glib_config_args="$glib_config_args gmodule"
;;
gthread)
glib_config_args="$glib_config_args gthread"
;;
esac
done
AC_PATH_PROG(GLIB_CONFIG, glib-config, no)
min_glib_version=ifelse([$1], ,0.99.7,$1)
AC_MSG_CHECKING(for GLIB - version >= $min_glib_version)
no_glib=""
if test "$GLIB_CONFIG" = "no" ; then
no_glib=yes
else
GLIB_CFLAGS=`$GLIB_CONFIG $glib_config_args --cflags`
GLIB_LIBS=`$GLIB_CONFIG $glib_config_args --libs`
glib_config_major_version=`$GLIB_CONFIG $glib_config_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
glib_config_minor_version=`$GLIB_CONFIG $glib_config_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
glib_config_micro_version=`$GLIB_CONFIG $glib_config_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
if test "x$enable_glibtest" = "xyes" ; then
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $GLIB_CFLAGS"
LIBS="$GLIB_LIBS $LIBS"
dnl
dnl Now check if the installed GLIB is sufficiently new. (Also sanity
dnl checks the results of glib-config to some extent
dnl
rm -f conf.glibtest
AC_TRY_RUN([
#include <glib.h>
#include <stdio.h>
#include <stdlib.h>
int
main ()
{
int major, minor, micro;
char *tmp_version;
system ("touch conf.glibtest");
/* HP/UX 9 (%@#!) writes to sscanf strings */
tmp_version = g_strdup("$min_glib_version");
if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
printf("%s, bad version string\n", "$min_glib_version");
exit(1);
}
if ((glib_major_version != $glib_config_major_version) ||
(glib_minor_version != $glib_config_minor_version) ||
(glib_micro_version != $glib_config_micro_version))
{
printf("\n*** 'glib-config --version' returned %d.%d.%d, but GLIB (%d.%d.%d)\n",
$glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version,
glib_major_version, glib_minor_version, glib_micro_version);
printf ("*** was found! If glib-config was correct, then it is best\n");
printf ("*** to remove the old version of GLIB. You may also be able to fix the error\n");
printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
printf("*** required on your system.\n");
printf("*** If glib-config was wrong, set the environment variable GLIB_CONFIG\n");
printf("*** to point to the correct copy of glib-config, and remove the file config.cache\n");
printf("*** before re-running configure\n");
}
else if ((glib_major_version != GLIB_MAJOR_VERSION) ||
(glib_minor_version != GLIB_MINOR_VERSION) ||
(glib_micro_version != GLIB_MICRO_VERSION))
{
printf("*** GLIB header files (version %d.%d.%d) do not match\n",
GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION);
printf("*** library (version %d.%d.%d)\n",
glib_major_version, glib_minor_version, glib_micro_version);
}
else
{
if ((glib_major_version > major) ||
((glib_major_version == major) && (glib_minor_version > minor)) ||
((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro)))
{
return 0;
}
else
{
printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n",
glib_major_version, glib_minor_version, glib_micro_version);
printf("*** You need a version of GLIB newer than %d.%d.%d. The latest version of\n",
major, minor, micro);
printf("*** GLIB is always available from ftp://ftp.gtk.org.\n");
printf("***\n");
printf("*** If you have already installed a sufficiently new version, this error\n");
printf("*** probably means that the wrong copy of the glib-config shell script is\n");
printf("*** being found. The easiest way to fix this is to remove the old version\n");
printf("*** of GLIB, but you can also set the GLIB_CONFIG environment to point to the\n");
printf("*** correct copy of glib-config. (In this case, you will have to\n");
printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
printf("*** so that the correct libraries are found at run-time))\n");
}
}
return 1;
}
],, no_glib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
fi
if test "x$no_glib" = x ; then
AC_MSG_RESULT(yes)
ifelse([$2], , :, [$2])
else
AC_MSG_RESULT(no)
if test "$GLIB_CONFIG" = "no" ; then
echo "*** The glib-config script installed by GLIB could not be found"
echo "*** If GLIB was installed in PREFIX, make sure PREFIX/bin is in"
echo "*** your path, or set the GLIB_CONFIG environment variable to the"
echo "*** full path to glib-config."
else
if test -f conf.glibtest ; then
:
else
echo "*** Could not run GLIB test program, checking why..."
CFLAGS="$CFLAGS $GLIB_CFLAGS"
LIBS="$LIBS $GLIB_LIBS"
AC_TRY_LINK([
#include <glib.h>
#include <stdio.h>
], [ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ],
[ echo "*** The test program compiled, but did not run. This usually means"
echo "*** that the run-time linker is not finding GLIB or finding the wrong"
echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your"
echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
echo "*** to the installed location Also, make sure you have run ldconfig if that"
echo "*** is required on your system"
echo "***"
echo "*** If you have an old version installed, it is best to remove it, although"
echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
echo "***"
echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
echo "*** came with the system with the command"
echo "***"
echo "*** rpm --erase --nodeps gtk gtk-devel" ],
[ echo "*** The test program failed to compile or link. See the file config.log for the"
echo "*** exact error that occured. This usually means GLIB was incorrectly installed"
echo "*** or that you have moved GLIB since it was installed. In the latter case, you"
echo "*** may want to edit the glib-config script: $GLIB_CONFIG" ])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
fi
GLIB_CFLAGS=""
GLIB_LIBS=""
ifelse([$3], , :, [$3])
fi
AC_SUBST(GLIB_CFLAGS)
AC_SUBST(GLIB_LIBS)
rm -f conf.glibtest
])
# Macro to add for using GNU gettext.
# Ulrich Drepper <drepper@cygnus.com>, 1995.
#
# This file can be copied and used freely without restrictions. It can
# be used in projects which are not available under the GNU Public License
# but which still want to provide support for the GNU gettext functionality.
# Please note that the actual code is *not* freely available.
# serial 5
AC_DEFUN(AM_WITH_NLS,
[AC_MSG_CHECKING([whether NLS is requested])
dnl Default is enabled NLS
AC_ARG_ENABLE(nls,
[ --disable-nls do not use Native Language Support],
USE_NLS=$enableval, USE_NLS=yes)
AC_MSG_RESULT($USE_NLS)
AC_SUBST(USE_NLS)
USE_INCLUDED_LIBINTL=no
dnl If we use NLS figure out what method
if test "$USE_NLS" = "yes"; then
AC_DEFINE(ENABLE_NLS)
AC_MSG_CHECKING([whether included gettext is requested])
AC_ARG_WITH(included-gettext,
[ --with-included-gettext use the GNU gettext library included here],
nls_cv_force_use_gnu_gettext=$withval,
nls_cv_force_use_gnu_gettext=no)
AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
dnl User does not insist on using GNU NLS library. Figure out what
dnl to use. If gettext or catgets are available (in this order) we
dnl use this. Else we have to fall back to GNU NLS library.
dnl catgets is only used if permitted by option --with-catgets.
nls_cv_header_intl=
nls_cv_header_libgt=
CATOBJEXT=NONE
AC_CHECK_HEADER(libintl.h,
[AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
[AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
if test "$gt_cv_func_gettext_libc" != "yes"; then
AC_CHECK_LIB(intl, bindtextdomain,
[AC_CACHE_CHECK([for gettext in libintl],
gt_cv_func_gettext_libintl,
[AC_CHECK_LIB(intl, gettext,
gt_cv_func_gettext_libintl=yes,
gt_cv_func_gettext_libintl=no)],
gt_cv_func_gettext_libintl=no)])
fi
if test "$gt_cv_func_gettext_libc" = "yes" \
|| test "$gt_cv_func_gettext_libintl" = "yes"; then
AC_DEFINE(HAVE_GETTEXT)
AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
if test "$MSGFMT" != "no"; then
AC_CHECK_FUNCS(dcgettext)
AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
return _nl_msg_cat_cntr],
[CATOBJEXT=.gmo
DATADIRNAME=share],
[CATOBJEXT=.mo
DATADIRNAME=lib])
INSTOBJEXT=.mo
fi
fi
])
if test "$CATOBJEXT" = "NONE"; then
AC_MSG_CHECKING([whether catgets can be used])
AC_ARG_WITH(catgets,
[ --with-catgets use catgets functions if available],
nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
AC_MSG_RESULT($nls_cv_use_catgets)
if test "$nls_cv_use_catgets" = "yes"; then
dnl No gettext in C library. Try catgets next.
AC_CHECK_LIB(i, main)
AC_CHECK_FUNC(catgets,
[AC_DEFINE(HAVE_CATGETS)
INTLOBJS="\$(CATOBJS)"
AC_PATH_PROG(GENCAT, gencat, no)dnl
if test "$GENCAT" != "no"; then
AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
if test "$GMSGFMT" = "no"; then
AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
fi
AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
USE_INCLUDED_LIBINTL=yes
CATOBJEXT=.cat
INSTOBJEXT=.cat
DATADIRNAME=lib
INTLDEPS='$(top_builddir)/intl/libintl.a'
INTLLIBS=$INTLDEPS
LIBS=`echo $LIBS | sed -e 's/-lintl//'`
nls_cv_header_intl=intl/libintl.h
nls_cv_header_libgt=intl/libgettext.h
fi])
fi
fi
if test "$CATOBJEXT" = "NONE"; then
dnl Neither gettext nor catgets in included in the C library.
dnl Fall back on GNU gettext library.
nls_cv_use_gnu_gettext=yes
fi
fi
if test "$nls_cv_use_gnu_gettext" = "yes"; then
dnl Mark actions used to generate GNU NLS library.
INTLOBJS="\$(GETTOBJS)"
AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
AC_SUBST(MSGFMT)
USE_INCLUDED_LIBINTL=yes
CATOBJEXT=.gmo
INSTOBJEXT=.mo
DATADIRNAME=share
INTLDEPS='$(top_builddir)/intl/libintl.a'
INTLLIBS=$INTLDEPS
LIBS=`echo $LIBS | sed -e 's/-lintl//'`
nls_cv_header_intl=intl/libintl.h
nls_cv_header_libgt=intl/libgettext.h
fi
dnl Test whether we really found GNU xgettext.
if test "$XGETTEXT" != ":"; then
dnl If it is no GNU xgettext we define it as : so that the
dnl Makefiles still can work.
if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
: ;
else
AC_MSG_RESULT(
[found xgettext program is not GNU xgettext; ignore it])
XGETTEXT=":"
fi
fi
# We need to process the po/ directory.
POSUB=po
else
DATADIRNAME=share
nls_cv_header_intl=intl/libintl.h
nls_cv_header_libgt=intl/libgettext.h
fi
AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
AC_OUTPUT_COMMANDS(
[case "$CONFIG_FILES" in *po/Makefile.in*)
sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
esac])
# If this is used in GNU gettext we have to set USE_NLS to `yes'
# because some of the sources are only built for this goal.
if test "$PACKAGE" = gettext; then
USE_NLS=yes
USE_INCLUDED_LIBINTL=yes
fi
dnl These rules are solely for the distribution goal. While doing this
dnl we only have to keep exactly one list of the available catalogs
dnl in configure.in.
for lang in $ALL_LINGUAS; do
GMOFILES="$GMOFILES $lang.gmo"
POFILES="$POFILES $lang.po"
done
dnl Make all variables we use known to autoconf.
AC_SUBST(USE_INCLUDED_LIBINTL)
AC_SUBST(CATALOGS)
AC_SUBST(CATOBJEXT)
AC_SUBST(DATADIRNAME)
AC_SUBST(GMOFILES)
AC_SUBST(INSTOBJEXT)
AC_SUBST(INTLDEPS)
AC_SUBST(INTLLIBS)
AC_SUBST(INTLOBJS)
AC_SUBST(POFILES)
AC_SUBST(POSUB)
])
AC_DEFUN(AM_GNU_GETTEXT,
[AC_REQUIRE([AC_PROG_MAKE_SET])dnl
AC_REQUIRE([AC_PROG_CC])dnl
AC_REQUIRE([AC_PROG_RANLIB])dnl
AC_REQUIRE([AC_ISC_POSIX])dnl
AC_REQUIRE([AC_HEADER_STDC])dnl
AC_REQUIRE([AC_C_CONST])dnl
AC_REQUIRE([AC_C_INLINE])dnl
AC_REQUIRE([AC_TYPE_OFF_T])dnl
AC_REQUIRE([AC_TYPE_SIZE_T])dnl
AC_REQUIRE([AC_FUNC_ALLOCA])dnl
AC_REQUIRE([AC_FUNC_MMAP])dnl
AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
unistd.h sys/param.h])
AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
strdup __argz_count __argz_stringify __argz_next])
if test "${ac_cv_func_stpcpy+set}" != "set"; then
AC_CHECK_FUNCS(stpcpy)
fi
if test "${ac_cv_func_stpcpy}" = "yes"; then
AC_DEFINE(HAVE_STPCPY)
fi
AM_LC_MESSAGES
AM_WITH_NLS
if test "x$CATOBJEXT" != "x"; then
if test "x$ALL_LINGUAS" = "x"; then
LINGUAS=
else
AC_MSG_CHECKING(for catalogs to be installed)
NEW_LINGUAS=
for lang in ${LINGUAS=$ALL_LINGUAS}; do
case "$ALL_LINGUAS" in
*$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
esac
done
LINGUAS=$NEW_LINGUAS
AC_MSG_RESULT($LINGUAS)
fi
dnl Construct list of names of catalog files to be constructed.
if test -n "$LINGUAS"; then
for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
fi
fi
dnl The reference to <locale.h> in the installed <libintl.h> file
dnl must be resolved because we cannot expect the users of this
dnl to define HAVE_LOCALE_H.
if test $ac_cv_header_locale_h = yes; then
INCLUDE_LOCALE_H="#include <locale.h>"
else
INCLUDE_LOCALE_H="\
/* The system does not provide the header <locale.h>. Take care yourself. */"
fi
AC_SUBST(INCLUDE_LOCALE_H)
dnl Determine which catalog format we have (if any is needed)
dnl For now we know about two different formats:
dnl Linux libc-5 and the normal X/Open format
test -d intl || mkdir intl
if test "$CATOBJEXT" = ".cat"; then
AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
dnl Transform the SED scripts while copying because some dumb SEDs
dnl cannot handle comments.
sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
fi
dnl po2tbl.sed is always needed.
sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
$srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
dnl In the intl/Makefile.in we have a special dependency which makes
dnl only sense for gettext. We comment this out for non-gettext
dnl packages.
if test "$PACKAGE" = "gettext"; then
GT_NO="#NO#"
GT_YES=
else
GT_NO=
GT_YES="#YES#"
fi
AC_SUBST(GT_NO)
AC_SUBST(GT_YES)
dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
dnl Try to locate is.
MKINSTALLDIRS=
if test -n "$ac_aux_dir"; then
MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
fi
if test -z "$MKINSTALLDIRS"; then
MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
fi
AC_SUBST(MKINSTALLDIRS)
dnl *** For now the libtool support in intl/Makefile is not for real.
l=
AC_SUBST(l)
dnl Generate list of files to be processed by xgettext which will
dnl be included in po/Makefile.
test -d po || mkdir po
if test "x$srcdir" != "x."; then
if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
posrcprefix="$srcdir/"
else
posrcprefix="../$srcdir/"
fi
else
posrcprefix="../"
fi
rm -f po/POTFILES
sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
< $srcdir/po/POTFILES.in > po/POTFILES
])
# Search path for a program which passes the given test.
# Ulrich Drepper <drepper@cygnus.com>, 1996.
#
# This file can be copied and used freely without restrictions. It can
# be used in projects which are not available under the GNU Public License
# but which still want to provide support for the GNU gettext functionality.
# Please note that the actual code is *not* freely available.
# serial 1
dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
AC_DEFUN(AM_PATH_PROG_WITH_TEST,
[# Extract the first word of "$2", so it can be a program name with args.
set dummy $2; ac_word=[$]2
AC_MSG_CHECKING([for $ac_word])
AC_CACHE_VAL(ac_cv_path_$1,
[case "[$]$1" in
/*)
ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
;;
*)
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
for ac_dir in ifelse([$5], , $PATH, [$5]); do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
if [$3]; then
ac_cv_path_$1="$ac_dir/$ac_word"
break
fi
fi
done
IFS="$ac_save_ifs"
dnl If no 4th arg is given, leave the cache variable unset,
dnl so AC_PATH_PROGS will keep looking.
ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
])dnl
;;
esac])dnl
$1="$ac_cv_path_$1"
if test -n "[$]$1"; then
AC_MSG_RESULT([$]$1)
else
AC_MSG_RESULT(no)
fi
AC_SUBST($1)dnl
])
# Check whether LC_MESSAGES is available in <locale.h>.
# Ulrich Drepper <drepper@cygnus.com>, 1995.
#
# This file can be copied and used freely without restrictions. It can
# be used in projects which are not available under the GNU Public License
# but which still want to provide support for the GNU gettext functionality.
# Please note that the actual code is *not* freely available.
# serial 1
AC_DEFUN(AM_LC_MESSAGES,
[if test $ac_cv_header_locale_h = yes; then
AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
[AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
if test $am_cv_val_LC_MESSAGES = yes; then
AC_DEFINE(HAVE_LC_MESSAGES)
fi
fi])

7
autogen.sh Executable file
View File

@@ -0,0 +1,7 @@
#!/bin/sh
# Generate configure & friends for CVS users.
aclocal -I ./m4
autoheader
automake --add-missing
autoconf

212
color.c Normal file
View File

@@ -0,0 +1,212 @@
/* $Id$ */
/**************************************************************************
* color.c *
* *
* Copyright (C) 1999-2002 Chris Allegretta *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2, or (at your option) *
* any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the Free Software *
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
* *
**************************************************************************/
#include "config.h"
#ifdef ENABLE_COLOR
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include "proto.h"
#include "nano.h"
#ifdef ENABLE_NLS
#include <libintl.h>
#define _(string) gettext(string)
#else
#define _(string) (string)
#endif
void color_on(WINDOW *win, int whatever)
{
/* Temporary fallback, if the color value hasn't been set,
turn on hilighting */
if (!colors[whatever - FIRST_COLORNUM].set) {
wattron(win, A_REVERSE);
return;
}
if (colors[whatever - FIRST_COLORNUM].bold)
wattron(win, A_BOLD);
/* If the foreground color is black, we've switched fg and bg (see
the comment in colorinit_one() about this) so turn on reverse so
it looks like it's supposed to */
if (colors[whatever - FIRST_COLORNUM].fg == COLOR_BLACK)
wattron(win, A_REVERSE);
wattron(win, COLOR_PAIR(whatever));
}
void color_off(WINDOW *win, int whatever)
{
if (!colors[whatever - FIRST_COLORNUM].set) {
wattroff(win, A_REVERSE);
return;
}
wattroff(win, COLOR_PAIR(whatever));
if (colors[whatever - FIRST_COLORNUM].fg == COLOR_BLACK)
wattroff(win, A_REVERSE);
if (colors[whatever - FIRST_COLORNUM].bold)
wattroff(win, A_BOLD);
}
void colorinit_one(int colortoset, short fg, short bg, int bold)
{
colors[colortoset - FIRST_COLORNUM].fg = fg;
colors[colortoset - FIRST_COLORNUM].bg = bg;
colors[colortoset - FIRST_COLORNUM].bold = bold;
colors[colortoset - FIRST_COLORNUM].set = 1;
/* Okay, so if they want a black foreground, do a switch on the fg
and bg, because specifying black as the foreground color gives
this ugly grey color. Then in color_on we will turn A_REVERSE
which is probably what they want it to look like... */
if (fg == COLOR_BLACK)
init_pair(colortoset, bg, fg);
else
init_pair(colortoset, fg, bg);
}
int do_colorinit(void)
{
int i;
colortype *tmpcolor = NULL, *beforenow = NULL;
int defok = 0;
if (has_colors()) {
start_color();
/* Add in colors, if available */
#ifdef HAVE_USE_DEFAULT_COLORS
if (use_default_colors() != ERR)
defok = 1;
#endif
i = 1;
for (tmpcolor = colorstrings; tmpcolor != NULL;
tmpcolor = tmpcolor->next) {
for (beforenow = colorstrings; beforenow != NULL
&& beforenow != tmpcolor &&
(beforenow->fg != tmpcolor->fg || beforenow->bg != tmpcolor->bg
|| beforenow->bright != tmpcolor->bright);
beforenow = beforenow->next)
;
if (beforenow != NULL && beforenow != tmpcolor) {
tmpcolor->pairnum = beforenow->pairnum;
continue;
}
if (defok && tmpcolor->bg == -1)
init_pair(i, tmpcolor->fg, -1);
else if (tmpcolor->bg == -1)
init_pair(i, tmpcolor->fg, COLOR_BLACK);
else /* They picked a fg and bg color */
init_pair(i, tmpcolor->fg, tmpcolor->bg);
#ifdef DEBUG
fprintf(stderr, "Running init_pair with fg = %d and bg = %d\n", tmpcolor->fg, tmpcolor->bg);
#endif
tmpcolor->pairnum = i;
i++;
}
}
/*
if (use_default_colors() != ERR) {
init_pair(COLOR_BLACK, -1, -1);
init_pair(COLOR_GREEN, COLOR_GREEN, -1);
init_pair(COLOR_WHITE, COLOR_WHITE, -1);
init_pair(COLOR_RED, COLOR_RED, -1);
init_pair(COLOR_CYAN, COLOR_CYAN, -1);
init_pair(COLOR_MAGENTA, COLOR_MAGENTA, -1);
init_pair(COLOR_BLUE, COLOR_BLUE, -1);
init_pair(COLOR_YELLOW, COLOR_YELLOW, -1);
} else {
init_pair(COLOR_BLACK, COLOR_BLACK, COLOR_BLACK);
init_pair(COLOR_GREEN, COLOR_GREEN, COLOR_BLACK);
init_pair(COLOR_WHITE, COLOR_WHITE, COLOR_BLACK);
init_pair(COLOR_RED, COLOR_RED, COLOR_BLACK);
init_pair(COLOR_CYAN, COLOR_CYAN, COLOR_BLACK);
init_pair(COLOR_MAGENTA, COLOR_MAGENTA, COLOR_BLACK);
init_pair(COLOR_BLUE, COLOR_BLUE, COLOR_BLACK);
init_pair(COLOR_YELLOW, COLOR_YELLOW, COLOR_BLACK);
}
*/
/* Okay I'll be nice and comment these out for the commit =)
colorinit_one(COLOR_TITLEBAR, COLOR_GREEN, COLOR_BLUE, 1);
colorinit_one(COLOR_BOTTOMBARS, COLOR_GREEN, COLOR_BLUE, 1);
colorinit_one(COLOR_STATUSBAR, COLOR_BLACK, COLOR_CYAN, 0);
colorinit_one(COLOR_TEXT, COLOR_WHITE, COLOR_BLACK, 0);
colorinit_one(COLOR_MARKER, COLOR_BLACK, COLOR_CYAN, 0);
}
*/
return 0;
}
/* Update the color information based on the current filename */
void update_color(void)
{
syntaxtype *tmpsyntax;
colorstrings = NULL;
for (tmpsyntax = syntaxes; tmpsyntax != NULL; tmpsyntax = tmpsyntax->next) {
exttype *e;
for (e = tmpsyntax->extensions; e != NULL; e = e->next) {
regcomp(&syntaxfile_regexp, e->val, 0);
/* Set colorstrings if we matched the extension regex */
if (!regexec(&syntaxfile_regexp, filename, 1, synfilematches, 0))
colorstrings = tmpsyntax->color;
regfree(&syntaxfile_regexp);
}
}
/* if we haven't found a match, use the override string */
if (colorstrings == NULL && syntaxstr != NULL) {
for (tmpsyntax = syntaxes; tmpsyntax != NULL;
tmpsyntax = tmpsyntax->next) {
if (!strcasecmp(tmpsyntax->desc, syntaxstr))
colorstrings = tmpsyntax->color;
}
}
do_colorinit();
edit_refresh();
}
#endif /* ENABLE_COLOR */

View File

@@ -1,183 +0,0 @@
/* config.h.in. Generated automatically from configure.in by autoheader. */
/* Define if using alloca.c. */
#undef C_ALLOCA
/* Define to empty if the keyword does not work. */
#undef const
/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
This function is required for alloca.c support on those systems. */
#undef CRAY_STACKSEG_END
/* Define if you have alloca, as a function or macro. */
#undef HAVE_ALLOCA
/* Define if you have <alloca.h> and it should be used (not on Ultrix). */
#undef HAVE_ALLOCA_H
/* Define if you don't have vprintf but do have _doprnt. */
#undef HAVE_DOPRNT
/* Define if you have a working `mmap' system call. */
#undef HAVE_MMAP
/* Define if you have the vprintf function. */
#undef HAVE_VPRINTF
/* Define as __inline if that's what the C compiler calls it. */
#undef inline
/* Define to `long' if <sys/types.h> doesn't define. */
#undef off_t
/* Define if you need to in order for stat and other things to work. */
#undef _POSIX_SOURCE
/* Define as the return type of signal handlers (int or void). */
#undef RETSIGTYPE
/* Define to `unsigned' if <sys/types.h> doesn't define. */
#undef size_t
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at run-time.
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown
*/
#undef STACK_DIRECTION
/* Define if you have the ANSI C header files. */
#undef STDC_HEADERS
/* Define this if you have the wresize function in your ncurses-type library */
#undef HAVE_WRESIZE
/* Define this if you have NLS */
#undef ENABLE_NLS
/* Define this is you have the catgets command */
#undef HAVE_CATGETS
/* Define this is you have GNU gettext */
#undef HAVE_GETTEXT
/* Define this for HAVE_LC_MESSAGES */
#undef HAVE_LC_MESSAGES
/* Define this if you have the stpcpy function (cool) */
#undef HAVE_STPCPY
/* Define this to make the nano executable as small as possible */
#undef NANO_SMALL
/* Define to use the slang wrappers for curses instead of native curses */
#undef USE_SLANG
/* Define this if you have a behaving TABSIZE global in your curses lib */
#undef HAVE_TABSIZE
/* Define if you have the __argz_count function. */
#undef HAVE___ARGZ_COUNT
/* Define if you have the __argz_next function. */
#undef HAVE___ARGZ_NEXT
/* Define if you have the __argz_stringify function. */
#undef HAVE___ARGZ_STRINGIFY
/* Define if you have the dcgettext function. */
#undef HAVE_DCGETTEXT
/* Define if you have the getcwd function. */
#undef HAVE_GETCWD
/* Define if you have the getopt_long function. */
#undef HAVE_GETOPT_LONG
/* Define if you have the getpagesize function. */
#undef HAVE_GETPAGESIZE
/* Define if you have the munmap function. */
#undef HAVE_MUNMAP
/* Define if you have the putenv function. */
#undef HAVE_PUTENV
/* Define if you have the setenv function. */
#undef HAVE_SETENV
/* Define if you have the setlocale function. */
#undef HAVE_SETLOCALE
/* Define if you have the snprintf function. */
#undef HAVE_SNPRINTF
/* Define if you have the stpcpy function. */
#undef HAVE_STPCPY
/* Define if you have the strcasecmp function. */
#undef HAVE_STRCASECMP
/* Define if you have the strchr function. */
#undef HAVE_STRCHR
/* Define if you have the strdup function. */
#undef HAVE_STRDUP
/* Define if you have the vsnprintf function. */
#undef HAVE_VSNPRINTF
/* Define if you have the <argz.h> header file. */
#undef HAVE_ARGZ_H
/* Define if you have the <curses.h> header file. */
#undef HAVE_CURSES_H
/* Define if you have the <fcntl.h> header file. */
#undef HAVE_FCNTL_H
/* Define if you have the <getopt.h> header file. */
#undef HAVE_GETOPT_H
/* Define if you have the <limits.h> header file. */
#undef HAVE_LIMITS_H
/* Define if you have the <locale.h> header file. */
#undef HAVE_LOCALE_H
/* Define if you have the <malloc.h> header file. */
#undef HAVE_MALLOC_H
/* Define if you have the <ncurses.h> header file. */
#undef HAVE_NCURSES_H
/* Define if you have the <nl_types.h> header file. */
#undef HAVE_NL_TYPES_H
/* Define if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* Define if you have the <sys/param.h> header file. */
#undef HAVE_SYS_PARAM_H
/* Define if you have the <termio.h> header file. */
#undef HAVE_TERMIO_H
/* Define if you have the <termios.h> header file. */
#undef HAVE_TERMIOS_H
/* Define if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define if you have the i library (-li). */
#undef HAVE_LIBI
/* Name of package */
#undef PACKAGE
/* Version number of package */
#undef VERSION

4545
configure vendored

File diff suppressed because it is too large Load Diff

316
configure.ac Normal file
View File

@@ -0,0 +1,316 @@
# $Id$
dnl Process this file with autoconf to produce a configure script.
AC_INIT
AC_CONFIG_SRCDIR([nano.c])
AC_PREREQ(2.52)
AM_INIT_AUTOMAKE(nano, 1.1.9)
AM_CONFIG_HEADER(config.h:config.h.in)
AM_ACLOCAL_INCLUDE(m4)
ALL_LINGUAS="es de fr it id fi hu ca cs gl uk ru sv nn nl da pl nb"
dnl Checks for programs.
AC_PROG_CC
AC_ISC_POSIX
AC_SYS_LARGEFILE
dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS(fcntl.h unistd.h malloc.h termios.h termio.h limits.h getopt.h regex.h)
dnl Turn off assert statements.
AC_DEFINE(NDEBUG)
dnl options
AC_ARG_ENABLE(tiny,
[ --enable-tiny Disable features for the sake of size
(currently disables detailed help and i18n)],
[if test x$enableval = xyes; then
AC_DEFINE(NANO_SMALL) tiny_support=yes
AC_DEFINE(DISABLE_TABCOMP)
AC_DEFINE(DISABLE_SPELLER)
AC_DEFINE(DISABLE_HELP)
AC_DEFINE(DISABLE_JUSTIFY)
AC_DEFINE(DISABLE_BROWSER)
AC_DEFINE(DISABLE_MOUSE)
AC_DEFINE(DISABLE_OPERATINGDIR)
fi])
AC_ARG_ENABLE(extra,
[ --enable-extra Enable extra (optional) functions, including easter eggs],
[if test x$enableval = xyes; then
AC_DEFINE(NANO_EXTRA) extra_support=yes
AC_DEFINE(ENABLE_MULTIBUFFER) multibuffer_support=yes
AC_DEFINE(ENABLE_UNDO) undo_support=yes
fi])
AC_ARG_ENABLE(undo,
[ --enable-undo Enable undo support],
[if test x$enableval = xyes && test x$tiny_support != xyes; then
AC_DEFINE(ENABLE_UNDO) undo_support=yes
fi])
AC_ARG_ENABLE(multibuffer,
[ --enable-multibuffer Enable multiple file buffers],
[if test x$enableval = xyes; then
AC_DEFINE(ENABLE_MULTIBUFFER) multibuffer_support=yes
fi])
AC_ARG_ENABLE(nanorc,
[ --enable-nanorc Enable use of .nanorc file],
[if test x$enableval = xyes; then
AC_DEFINE(ENABLE_NANORC) nanorc_support=yes
fi])
AC_ARG_ENABLE(color,
[ --enable-color Enable color and syntax highlighting],
[if test x$enableval = xyes; then
AC_DEFINE(ENABLE_NANORC) nanorc_support=yes
AC_DEFINE(ENABLE_COLOR) color_support=yes
AC_MSG_WARN([
***********************************************************************
*** WARNING: Color support is currently BROKEN. Don't expect it to ***
*** work AT ALL until more is implemented. ***
***********************************************************************
])
fi])
AC_ARG_ENABLE(tabcomp,
[ --disable-tabcomp Disable tab completion code for a smaller binary],
[if test x$enableval != xyes; then
AC_DEFINE(DISABLE_TABCOMP)
fi])
AC_ARG_ENABLE(justify,
[ --disable-justify Disable justify/unjustify function],
[if test x$enableval != xyes; then
AC_DEFINE(DISABLE_JUSTIFY)
fi])
AC_ARG_ENABLE(speller,
[ --disable-speller Disable spell checker function],
[if test x$enableval != xyes; then
AC_DEFINE(DISABLE_SPELLER)
fi])
AC_ARG_ENABLE(help,
[ --disable-help Disable help function (^G)],
[if test x$enableval != xyes; then
AC_DEFINE(DISABLE_HELP)
fi])
AC_ARG_ENABLE(browser,
[ --disable-browser Disable mini file browser],
[if test x$enableval != xyes; then
AC_DEFINE(DISABLE_BROWSER)
fi])
AC_ARG_ENABLE(wrapping,
[ --disable-wrapping Disable all wrapping of text (and -w flag)],
[if test x$enableval != xyes; then
AC_DEFINE(DISABLE_WRAPPING)
fi])
AC_ARG_ENABLE(mouse,
[ --disable-mouse Disable mouse support (and -m flag)],
[if test x$enableval != xyes; then
AC_DEFINE(DISABLE_MOUSE)
fi])
AC_ARG_ENABLE(operatingdir,
[ --disable-operatingdir Disable setting of operating directory (chroot of sorts)],
[if test x$enableval != xyes; then
AC_DEFINE(DISABLE_OPERATINGDIR)
fi])
AC_MSG_CHECKING([whether to use slang])
CURSES_LIB_NAME=""
AC_ARG_WITH(slang,
[ --with-slang[=DIR] Use the slang library instead of curses],
[ case "$with_slang" in
no)
AC_MSG_RESULT(no)
;;
*)
AC_MSG_RESULT(yes)
if test "$with_slang" != "yes"; then
# Add additional search path
LDFLAGS="-L$with_slang/lib $LDFLAGS"
CPPFLAGS="-I$with_slang/include $CPPFLAGS"
fi
AC_CHECK_HEADER(slcurses.h,
AC_MSG_CHECKING([for SLtt_initialize in -lslang])
_libs=$LIBS
LIBS="$LIBS -lslang"
AC_TRY_RUN([
#include <stdio.h>
#include <slcurses.h>
int main () { SLtt_initialize (NULL); return 0; }],
[AC_MSG_RESULT(yes)
AC_DEFINE(USE_SLANG)
slang_support=yes
if test "$with_slang" != "yes"; then
CURSES_LIB="-L${with_slang}/lib -lslang"
else
CURSES_LIB="-lslang"
fi
CURSES_LIB_NAME=slang], [
AC_MSG_RESULT(no)
# We might need the term library
for termlib in ncurses curses termcap terminfo termlib; do
AC_CHECK_LIB([${termlib}], tputs, [tcap="-l$termlib"])
test -n "$tcap" && break
done
AC_MSG_CHECKING([for SLtt_initialize in -lslang $tcap])
LIBS="$LIBS $tcap"
AC_TRY_RUN([
#include <stdio.h>
#include <slcurses.h>
int main () { SLtt_initialize (NULL); return 0; }],
[AC_MSG_RESULT(yes)
AC_DEFINE(USE_SLANG)
slang_support=yes
if test "$with_slang" != "yes"; then
CURSES_LIB="-L${with_slang}/lib -lslang $tcap"
else
CURSES_LIB="-lslang $tcap"
fi
CURSES_LIB_NAME=slang], [
AC_MSG_RESULT(no)
# We might need the math library
AC_MSG_CHECKING([for SLtt_initialize in -lslang $tcap -lm])
LIBS="$LIBS -lm"
AC_TRY_RUN([
#include <stdio.h>
#include <slcurses.h>
int main () { SLtt_initialize (NULL); return 0; }],
[AC_MSG_RESULT(yes)
AC_DEFINE(USE_SLANG)
slang_support=yes
if test "$with_slang" != "yes"; then
CURSES_LIB="-L${with_slang}/lib -lslang $tcap -lm"
else
CURSES_LIB="-lslang $tcap -lm"
fi
CURSES_LIB_NAME=slang],
[AC_MSG_RESULT(no)],
AC_MSG_WARN([*** Can not use slang when cross-compiling]))],
AC_MSG_WARN([*** Can not use slang when cross-compiling]))],
AC_MSG_WARN([*** Can not use slang when cross-compiling])),
AC_MSG_ERROR([
*** The header file slcurses.h was not found. If you wish to use
*** slang support this header file is required. Please either
*** install a version of slang that includes the slcurses.h file or
*** do not call the configure script with --with-slang
]))
test "${_libs+set}" = "set" && LIBS=$_libs
if test "$with_slang" != "yes"; then
LDFLAGS=${_ldflags}
fi
;;
esac], [AC_MSG_RESULT(no)])
dnl Checks for functions
AC_CHECK_FUNCS(snprintf vsnprintf)
if test "x$ac_cv_func_snprintf" = "xno" -o "xac_cv_func_vsnprintf" = "xno"
then
AM_PATH_GLIB(1.2.4,,
[AC_MSG_ERROR([
*** snprintf() and/or vsnprintf() not found. GLIB not found either.
*** You need both snprintf() and vsnprintf(). Alternatively you can
*** install the GLIB library which can be found at ftp://ftp.gtk.org/.])],
glib)
glib_cflags=`$GLIB_CONFIG --cflags glib`
glib_libs=`$GLIB_CONFIG --libs glib`
fi
dnl Checks for typedefs, structures, and compiler characteristics.
dnl Checks for library functions.
AC_TYPE_SIGNAL
AC_FUNC_VPRINTF
AC_CHECK_FUNCS(getopt_long)
dnl Checks for libraries.
if eval "test x$CURSES_LIB_NAME = x"
then
AC_CHECK_HEADERS(curses.h ncurses.h)
AC_CHECK_LIB(ncurses, tgetent, [CURSES_LIB="-lncurses" CURSES_LIB_NAME=ncurses])
fi
if eval "test x$CURSES_LIB_NAME = x"
then
AC_CHECK_LIB(curses, tgetent, [CURSES_LIB="-lcurses" CURSES_LIB_NAME=curses])
fi
# Fallback for PDCurses and less useful curses libs...
if eval "test x$CURSES_LIB_NAME = x"
then
AC_CHECK_LIB(curses, initscr, [CURSES_LIB="-lcurses" CURSES_LIB_NAME=curses])
fi
if eval "test x$CURSES_LIB_NAME = x"
then
AC_CHECK_LIB(termcap, tgetent, [CURSES_LIB="-ltermcap" CURSES_LIB_NAME=termcap])
fi
if eval "test x$CURSES_LIB_NAME = x"
then
AC_MSG_WARN([
*** No termcap lib available, consider getting the official ncurses
*** distribution from ftp://ftp.gnu.org/pub/gnu/ncurses if you get
*** errors compiling nano.])
else
AC_MSG_RESULT([Using $CURSES_LIB_NAME as the termcap library])
fi
AC_CHECK_LIB([$CURSES_LIB_NAME], use_default_colors, [AC_DEFINE(HAVE_USE_DEFAULT_COLORS)])
if test x$slang_support != xyes; then
AC_CHECK_LIB([$CURSES_LIB_NAME], wresize, [AC_DEFINE(HAVE_WRESIZE)])
AC_CHECK_LIB([$CURSES_LIB_NAME], resizeterm, [AC_DEFINE(HAVE_RESIZETERM)])
# Taken from aumix (can't tell form the variable name?)
AC_CACHE_CHECK([for private member _use_keypad in WINDOW],
aumix_cv_struct_window_usekeypad,
[AC_TRY_COMPILE([#ifdef HAVE_NCURSES_H
#include <ncurses.h>
#else
#include <curses.h>
#endif], [WINDOW w; w._use_keypad;],
aumix_cv_struct_window_usekeypad=yes, aumix_cv_struct_window_usekeypad=no)])
if test $aumix_cv_struct_window_usekeypad = yes; then
AC_DEFINE(HAVE_USEKEYPAD)
fi
fi
dnl Parse any configure options
LIBS="$LIBS $CURSES_LIB"
AC_ARG_ENABLE(debug, [ --enable-debug Enable debugging (def disabled)],)
AC_SUBST(CURSES_LIB)
if test "x$glib_cflags" != "x"
then
CFLAGS="$CFLAGS $glib_cflags"
fi
if test "x$glib_libs" != "x"
then
LDFLAGS="$LDFLAGS $glib_libs"
fi
dnl i18n stuff - pretty incomplete for now
NANO_AM_GNU_GETTEXT
AC_CONFIG_FILES([Makefile intl/Makefile m4/Makefile po/Makefile.in nano.spec])
AC_OUTPUT

View File

@@ -1,152 +0,0 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT(nano.c)
AM_INIT_AUTOMAKE(nano, 0.9.12-cvs)
AM_CONFIG_HEADER(config.h:config.h.in)
ALL_LINGUAS="es de fr it id fi"
dnl Checks for programs.
AC_PROG_CC
AC_ISC_POSIX
dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS(fcntl.h unistd.h malloc.h termios.h termio.h limits.h getopt.h)
dnl options
AC_ARG_ENABLE(tiny,
[ --enable-tiny Disables features for the sake of size
(currently disables detailed help and i18n)],
[if test x$enableval = xyes; then
AC_DEFINE(NANO_SMALL) tiny_support=yes
fi])
AC_MSG_CHECKING(whether to use slang)
CURSES_LIB_NAME=""
AC_ARG_WITH(slang,
[ --with-slang[=DIR] Use the slang library instead of curses],
[ case "$with_slang" in
yes)
AC_MSG_RESULT(yes)
AC_CHECK_HEADER(slcurses.h,
AC_CHECK_LIB(slang, SLcurses_newwin,
[AC_DEFINE(USE_SLANG) slang_support=yes
CURSES_LIB="-lslang" CURSES_LIB_NAME=slang]),
AC_MSG_ERROR([
*** The header file slcurses.h was not found. If you wish to use
*** slang support this header file is required. Please either
*** install a version of slang that includes the slcurses.h file or
*** do not call the configure script with --with-slang
]))
;;
no)
AC_MSG_RESULT(no)
;;
*)
AC_MSG_RESULT(yes)
# Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
# alternate readline path
_ldflags=${LDFLAGS}
_cppflags=${CPPFLAGS}
# Add additional search path
LDFLAGS="-L$with_slang/lib $LDFLAGS"
CPPFLAGS="-I$with_slang/include $CPPFLAGS"
AC_CHECK_HEADER(slcurses.h,
AC_CHECK_LIB(slang, SLcurses_newwin,
[AC_DEFINE(USE_SLANG) slang_support=yes
CURSES_LIB="-L${with_slang}/lib -lslang"
CURSES_LIB_NAME=slang],
AC_MSG_ERROR([
*** The slang library was not found or the version you have installed
*** is incorrect.
])),
AC_MSG_ERROR([
*** The header file slcurses.h was not found. If you wish to use
*** slang support this header file is required. Please either
*** install a version of slang that includes the slcurses.h file or
*** do not call the configure script with --with-slang
]))
LDFLAGS=${_ldflags}
;;
esac])
dnl Checks for functions
AC_CHECK_FUNCS(snprintf vsnprintf)
if test "x$ac_cv_func_snprintf" = "xno" -o "xac_cv_func_vsnprintf" = "xno"
then
AM_PATH_GLIB(1.2.4,,
AC_MSG_ERROR([
*** snprintf() and/or vsnprintf() not found. GLIB not found either.
*** You need both snprintf() and vsnprintf(). Alternatively you can
*** install the GLIB library which can be found at ftp://ftp.gtk.org/.]),
glib)
glib_cflags=`$GLIB_CONFIG --cflags glib`
glib_libs=`$GLIB_CONFIG --libs glib`
fi
dnl Checks for typedefs, structures, and compiler characteristics.
dnl Checks for library functions.
AC_TYPE_SIGNAL
AC_FUNC_VPRINTF
AC_CHECK_FUNCS(getopt_long)
dnl Checks for libraries.
if eval "test x$CURSES_LIB_NAME = x"
then
AC_CHECK_HEADERS(curses.h ncurses.h)
AC_CHECK_LIB(ncurses, tgetent,[CURSES_LIB="-lncurses" CURSES_LIB_NAME=ncurses
dnl Only ncurses seems to have a working TABSIZE function.
AC_DEFINE(HAVE_TABSIZE)])
fi
if eval "test x$CURSES_LIB_NAME = x"
then
AC_CHECK_LIB(curses, tgetent, CURSES_LIB="-lcurses" CURSES_LIB_NAME=curses)
fi
if eval "test x$CURSES_LIB_NAME = x"
then
AC_CHECK_LIB(termcap, tgetent, CURSES_LIB="-ltermcap" CURSES_LIB_NAME=termcap)
fi
if eval "test x$CURSES_LIB_NAME = x"
then
AC_MSG_WARN([
*** No termcap lib available, consider getting the official ncurses
*** distribution from ftp://ftp.gnu.org/pub/gnu/ncurses if you get
*** errors compiling nano.])
else
AC_MSG_RESULT("Using $CURSES_LIB_NAME as the termcap library")
fi
AC_CHECK_LIB($CURSES_LIB_NAME, wresize, AC_DEFINE(HAVE_WRESIZE))
dnl Parse any configure options
LIBS="$LIBS $CURSES_LIB"
AC_ARG_ENABLE(debug, [ --enable-debug Enable debugging (def disabled)],)
AC_SUBST(CURSES_LIB)
if test "x$glib_cflags" != "x"
then
CFLAGS="$CFLAGS $glib_cflags"
fi
if test "x$glib_libs" != "x"
then
LDFLAGS="$LDFLAGS $glib_libs"
fi
dnl i18n stuff - pretty incomplete for now
AM_GNU_GETTEXT
AC_OUTPUT([Makefile intl/Makefile po/Makefile.in])

346
cut.c
View File

@@ -1,10 +1,11 @@
/* $Id$ */
/**************************************************************************
* cut.c *
* *
* Copyright (C) 1999 Chris Allegretta *
* Copyright (C) 1999-2002 Chris Allegretta *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 1, or (at your option) *
* the Free Software Foundation; either version 2, or (at your option) *
* any later version. *
* *
* This program is distributed in the hope that it will be useful, *
@@ -18,14 +19,15 @@
* *
**************************************************************************/
#include "config.h"
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include "config.h"
#include "proto.h"
#include "nano.h"
#ifndef NANO_SMALL
#ifdef ENABLE_NLS
#include <libintl.h>
#define _(string) gettext(string)
#else
@@ -37,15 +39,12 @@ static filestruct *cutbottom = NULL; /* Pointer to end of cutbuffer */
void add_to_cutbuffer(filestruct * inptr)
{
filestruct *tmp;
#ifdef DEBUG
fprintf(stderr, _("add_to_cutbuffer called with inptr->data = %s\n"),
inptr->data);
#endif
totsize -= strlen(inptr->data);
tmp = cutbuffer;
if (cutbuffer == NULL) {
cutbuffer = inptr;
inptr->prev = NULL;
@@ -59,28 +58,76 @@ void add_to_cutbuffer(filestruct * inptr)
}
#ifndef NANO_SMALL
/* Cut a marked segment instead of a whole line. Only called from
do_cut_text().
destructive is whether to actually modify the file structure, if not then
just copy the buffer into cutbuffer and don't pull it from the file */
void cut_marked_segment(filestruct * top, int top_x, filestruct * bot,
int bot_x)
int bot_x, int destructive)
{
filestruct *tmp, *next;
filestruct *tmp, *next, *botcopy;
char *tmpstr;
int newsize;
/* Special case for cutting part of one line */
if (top == bot) {
int swap;
tmp = copy_node(top);
newsize = abs(bot_x - top_x) + 1;
tmpstr = charalloc(newsize + 1);
/* Make top_x always be before bot_x */
if (top_x > bot_x) {
swap = top_x;
top_x = bot_x;
bot_x = swap;
}
strncpy(tmpstr, &top->data[top_x], newsize);
if (destructive) {
memmove(&top->data[top_x], &top->data[bot_x],
strlen(&top->data[bot_x]) + 1);
align(&top->data);
current_x = top_x;
update_cursor();
}
tmpstr[newsize - 1] = 0;
tmp->data = tmpstr;
add_to_cutbuffer(tmp);
dump_buffer(cutbuffer);
return;
}
/* Set up the beginning of the cutbuffer */
tmp = copy_node(top);
tmpstr = nmalloc(strlen(&top->data[top_x]) + 1);
tmpstr = charalloc(strlen(&top->data[top_x]) + 1);
strcpy(tmpstr, &top->data[top_x]);
free(tmp->data);
tmp->data = tmpstr;
/* Chop off the end of the first line */
tmpstr = nmalloc(top_x + 1);
tmpstr = charalloc(top_x + 1);
strncpy(tmpstr, top->data, top_x);
free(top->data);
top->data = tmpstr;
if (destructive) {
free(top->data);
top->data = tmpstr;
}
do {
next = tmp->next;
add_to_cutbuffer(tmp);
if (destructive)
add_to_cutbuffer(tmp);
else {
filestruct *tmpcopy = NULL;
tmpcopy = copy_node(tmp);
add_to_cutbuffer(tmpcopy);
}
totlines--;
totsize--; /* newline (add_to_cutbuffer doesn't count newlines) */
tmp = next;
@@ -90,41 +137,57 @@ void cut_marked_segment(filestruct * top, int top_x, filestruct * bot,
dump_buffer(cutbuffer);
if (next == NULL)
return;
/* Now, paste bot[bot_x] into top[top_x] */
tmpstr = nmalloc(strlen(top->data) + strlen(&bot->data[bot_x]));
strncpy(tmpstr, top->data, top_x);
strcpy(&tmpstr[top_x], &bot->data[bot_x]);
free(top->data);
top->data = tmpstr;
if (destructive) {
bot->data[bot_x] = 0;
align(&bot->data);
next = bot->next;
tmpstr = charalloc(top_x + strlen(&bot->data[bot_x]) + 1);
strncpy(tmpstr, top->data, top_x);
strcpy(&tmpstr[top_x], &bot->data[bot_x]);
free(top->data);
top->data = tmpstr;
/* We explicitly don't decrement totlines here because we don't snarf
* up a newline when we're grabbing the last line of the mark. For
* the same reason we don't do an extra totsize decrement */
add_to_cutbuffer(bot);
top->next = next;
if (next != NULL)
next->prev = top;
dump_buffer(cutbuffer);
renumber(top);
current = top;
current_x = top_x;
/* If we're hitting the end of the buffer we should clean that up. */
if (bot == filebot) {
if (next != NULL) {
filebot = next;
} else {
filebot = top;
}
/* We explicitly don't decrement totlines here because we don't snarf
* up a newline when we're grabbing the last line of the mark. For
* the same reason, we don't do an extra totsize decrement. */
}
if (top->lineno < edittop->lineno)
edit_update(top);
/* I honestly do not know why this is needed. After many hours of
using gdb on an OpenBSD box, I can honestly say something is
screwed somewhere. Not doing this causes update_line to annihilate
the last line copied into the cutbuffer when the mark is set ?!?!? */
botcopy = copy_node(bot);
null_at(&botcopy->data, bot_x);
next = botcopy->next;
add_to_cutbuffer(botcopy);
if (destructive) {
free(bot);
top->next = next;
if (next != NULL)
next->prev = top;
dump_buffer(cutbuffer);
renumber(top);
current = top;
current_x = top_x;
/* If we're hitting the end of the buffer, we should clean that up. */
if (bot == filebot) {
if (next != NULL) {
filebot = next;
} else {
filebot = top;
if (top_x > 0)
new_magicline();
}
}
if (top->lineno < edittop->lineno)
edit_update(top, CENTER);
}
}
#endif
@@ -132,60 +195,100 @@ int do_cut_text(void)
{
filestruct *tmp, *fileptr = current;
#ifndef NANO_SMALL
char *tmpstr;
int newsize;
int dontupdate = 0;
int cuttingtoend = 0;
#endif
check_statblank();
if (fileptr == NULL || fileptr->data == NULL)
return 0;
tmp = fileptr->next;
if (!ISSET(KEEP_CUTBUFFER) || ISSET(MARK_ISSET)) {
if (!ISSET(KEEP_CUTBUFFER)) {
free_filestruct(cutbuffer);
cutbuffer = NULL;
marked_cut = 0;
#ifdef DEBUG
fprintf(stderr, _("Blew away cutbuffer =)\n"));
#endif
}
#ifndef NANO_SMALL
if (ISSET(MARK_ISSET)) {
if (current->lineno == mark_beginbuf->lineno) {
tmp = copy_node(current);
newsize = abs(strlen(&current->data[mark_beginx]) -
strlen(&current->data[current_x]));
tmpstr = nmalloc(newsize);
if (current_x < mark_beginx) {
strncpy(tmpstr, &current->data[current_x], newsize);
memmove(&current->data[current_x],
&current->data[mark_beginx],
strlen(&current->data[mark_beginx] - newsize));
} else {
strncpy(tmpstr, &current->data[mark_beginx], newsize);
memmove(&current->data[mark_beginx],
&current->data[current_x],
strlen(&current->data[current_x] - newsize));
current_x = mark_beginx;
update_cursor();
/* Must let cutbuffer get blown away first before we do this... */
if (fileptr == filebot && !ISSET(MARK_ISSET))
return 0;
#ifndef NANO_SMALL
if (ISSET(CUT_TO_END) && !ISSET(MARK_ISSET)) {
if (current_x == strlen(current->data)) {
/* If the line is empty and we didn't just cut a non-blank
line, create a dummy line and add it to the cutbuffer */
if (marked_cut != 1 && current->next != filebot) {
filestruct *junk;
junk = NULL;
junk = make_new_node(current);
junk->data = charalloc(1);
junk->data[0] = 0;
add_to_cutbuffer(junk);
dump_buffer(cutbuffer);
}
tmpstr[newsize] = 0;
tmp->data = tmpstr;
add_to_cutbuffer(tmp);
dump_buffer(cutbuffer);
align(&current->data);
} else if (current->lineno < mark_beginbuf->lineno)
do_delete();
SET(KEEP_CUTBUFFER);
marked_cut = 2;
return 1;
} else {
SET(MARK_ISSET);
SET(KEEP_CUTBUFFER);
mark_beginx = strlen(current->data);
mark_beginbuf = current;
cuttingtoend = 1;
}
}
if (ISSET(MARK_ISSET)) {
if (current->lineno <= mark_beginbuf->lineno) {
/* Don't do_update and move the screen position if the marked
area lies entirely within the screen buffer */
if (current->lineno == mark_beginbuf->lineno
|| (current->lineno >= edittop->lineno
&& mark_beginbuf->lineno <= editbot->lineno))
dontupdate = 1;
cut_marked_segment(current, current_x, mark_beginbuf,
mark_beginx);
else
mark_beginx, 1);
}
else {
/* Same as above, easier logic since we know it's a multi-line
cut and mark_beginbuf is before current */
if (mark_beginbuf->lineno >= edittop->lineno
&& current->lineno <= editbot->lineno)
dontupdate = 1;
cut_marked_segment(mark_beginbuf, mark_beginx, current,
current_x);
current_x, 1);
}
placewewant = xplustabs();
UNSET(MARK_ISSET);
marked_cut = 1;
set_modified();
edit_update(current);
if (dontupdate || cuttingtoend) {
fix_editbot();
edit_refresh();
} else
edit_update(current, CENTER);
return 1;
#else
if (0) {
@@ -197,15 +300,15 @@ int do_cut_text(void)
tmp = fileptr;
fileage = fileptr;
add_to_cutbuffer(fileptr->prev);
totsize--; /* get the newline */
totsize--; /* get the newline */
totlines--;
fileptr->prev = NULL;
edit_update(fileage);
current = fileptr;
edit_update(fileage, CENTER);
} else {
add_to_cutbuffer(fileptr);
fileage = make_new_node(NULL);
fileage->data = nmalloc(1);
fileage->data = charalloc(1);
fileage->data[0] = '\0';
current = fileage;
}
@@ -217,20 +320,10 @@ int do_cut_text(void)
(fileptr->next)->prev = fileptr->prev;
current = fileptr->next;
totlines--;
totsize--; /* get the newline */
} else {
/* we're deleteing the last line
and replacing it with a dummy line,
so totlines is the same */
tmp = fileptr->prev;
tmp->next = make_new_node(tmp);
tmp = tmp->next;
tmp->data = nmalloc(1);
strcpy(tmp->data, "");
current = tmp;
filebot = tmp;
totsize--; /* get the newline */
}
/* No longer an else here, because we never get here anymore...
No need to cut the magic line, as it's empty */
add_to_cutbuffer(fileptr);
}
@@ -257,10 +350,12 @@ int do_uncut_text(void)
filestruct *tmp = current, *fileptr = current, *newbuf, *newend;
#ifndef NANO_SMALL
char *tmpstr, *tmpstr2;
filestruct *hold = current;
#endif
int i;
wrap_reset();
check_statblank();
if (cutbuffer == NULL || fileptr == NULL)
return 0; /* AIEEEEEEEEEEEE */
@@ -272,11 +367,11 @@ int do_uncut_text(void)
/* Hook newbuf into fileptr */
#ifndef NANO_SMALL
if (marked_cut == 1) {
if (marked_cut) {
/* If there's only one line in the cutbuffer */
if (cutbuffer->next == NULL) {
tmpstr =
nmalloc(strlen(current->data) + strlen(cutbuffer->data) +
charalloc(strlen(current->data) + strlen(cutbuffer->data) +
1);
strncpy(tmpstr, current->data, current_x);
strcpy(&tmpstr[current_x], cutbuffer->data);
@@ -285,20 +380,25 @@ int do_uncut_text(void)
current->data = tmpstr;
current_x += strlen(cutbuffer->data);
totsize += strlen(cutbuffer->data);
if (strlen(cutbuffer->data) == 0)
totlines++;
/* If we've uncut a line, make sure there's a magicline after
it */
if (current->next == NULL)
new_magicline();
placewewant = xplustabs();
update_cursor();
renumber(current);
} else { /* yuck -- no kidding! */
tmp = current->next;
/* New beginning */
tmpstr = nmalloc(current_x + strlen(newbuf->data) + 1);
tmpstr = charalloc(current_x + strlen(newbuf->data) + 1);
strncpy(tmpstr, current->data, current_x);
strcpy(&tmpstr[current_x], newbuf->data);
totsize += strlen(newbuf->data) + strlen(newend->data) + 1;
/* New end */
tmpstr2 = nmalloc(strlen(newend->data) +
tmpstr2 = charalloc(strlen(newend->data) +
strlen(&current->data[current_x]) + 1);
strcpy(tmpstr2, newend->data);
strcat(tmpstr2, &current->data[current_x]);
@@ -317,13 +417,18 @@ int do_uncut_text(void)
newend->next = tmp;
/* If tmp isn't null, we're in the middle: update the
* prev pointer. If it IS null, we're at the end, update
* prev pointer. If it IS null, we're at the end; update
* the filebot pointer */
if (tmp != NULL)
tmp->prev = newend;
else
else {
/* Fix the editbot pointer too */
if (editbot == filebot)
editbot = newend;
filebot = newend;
new_magicline();
}
/* Now why don't we update the totsize also */
for (tmp = current->next; tmp != newend; tmp = tmp->next)
@@ -331,17 +436,42 @@ int do_uncut_text(void)
i = editbot->lineno;
renumber(current);
current = newend;
if (i <= newend->lineno)
edit_update(current);
if (i < newend->lineno) {
edit_update(current, CENTER);
}
else {
edit_refresh();
}
}
/* If marked cut == 2, that means that we're doing a cut to end
and we don't want anything else on the line, so we have to
screw up all the work we just did and separate the line. There
must be a better way to do this, but not at 1AM on a work night. */
if (marked_cut == 2) {
tmp = make_new_node(current);
tmp->data = charalloc(strlen(&current->data[current_x]) + 1);
strcpy(tmp->data, &current->data[current_x]);
splice_node(current, tmp, current->next);
null_at(&current->data, current_x);
current = current->next;
current_x = 0;
placewewant = 0;
/* Extra line added, update stuff */
totlines++;
totsize++;
}
/* Renumber from BEFORE where we pasted ;) */
renumber(hold);
dump_buffer(fileage);
dump_buffer(cutbuffer);
set_modified();
edit_refresh();
UNSET(KEEP_CUTBUFFER);
return 0;
#else
if (0) {
@@ -370,8 +500,12 @@ int do_uncut_text(void)
i = editbot->lineno;
renumber(newbuf);
if (i < newend->lineno)
edit_update(fileptr);
if (i < newend->lineno) {
edit_update(fileptr, CENTER);
}
else {
edit_refresh();
}
dump_buffer_reverse(fileptr);

719
faq.html Normal file
View File

@@ -0,0 +1,719 @@
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<title>The GNU nano editor FAQ</title>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Mozilla/4.73 [en] (X11; U; Linux 2.2.16 i586) [Netscape]">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
<h1>
<font color="#CC0000">The nano FAQ</font></h1>
<h2>
<font color="#330000">Table of Contents</font></h2>
<h2>
<font color="#330000"><a href="#1">1.&nbsp; General</a></font></h2>
<blockquote><font color="#330000"><a href="#1.1">1.1 About this FAQ.</a></font>
<br><font color="#330000"><a href="#1.2">1.2. How do I contribute to it?</a></font>
<br><font color="#330000"><a href="#1.3">1.3. What is GNU nano?</a></font>
<br><font color="#330000"><a href="#1.4">1.4. What is the history behind
nano?</a></font>
<br><font color="#330000"><a href="#1.5">1.5. Why the name change from
TIP?</a></font>
<br><font color="#330000"><a href="#1.6">1.6. What is the current version
of nano?</a></font>
<br><font color="#330000"><a href="#1.7">1.7. I want to read the manpage
without having to download the program!</a></font></blockquote>
<h2>
<font color="#330000"><a href="#2">2. Where to get GNU
nano</a></font></h2>
<blockquote><font color="#330000"><a href="#2.1">2.1. FTP and WWW sites
that carry nano.</a></font>
<br><font color="#330000"><a href="#2.2">2.2. Redhat and derivatives (.rpm)
packages.</a></font>
<br><font color="#330000"><a href="#2.3">2.3. Debian (.deb) packages.</a></font>
<br><font color="#330000"><a href="#2.4">2.4. By CVS (for the brave).</a></font></blockquote>
<h2>
<font color="#330000"><a href="#3">3. Installation and Configuration</a></font></h2>
<blockquote><font color="#330000"><a href="#3.1">3.1. How do install the
RPM or DEB package?</a></font>
<br><font color="#330000"><a href="#3.2">3.2. Compiling from source: WHAT
THE HECK DO I DO NOW?</a></font>
<br><font color="#330000"><a href="#3.3">3.3. Why does everything go into
/usr/local?</a></font>
<br><font color="#330000"><a href="#3.4">3.4. I get errors about 'bindtextdomain',
'gettext' and/or 'gettextdomain'.&nbsp; What can I do about it?</a></font>
<br><font color="#330000"><a href="#3.5">3.5. Nano should automatically
run strip on the binary when installing it!</a></font>
<br><font color="#330000"><a href="#3.6">3.6. How can I make the
executable smaller? This is too bloated!</a></font>
<br><font color="#330000"><a href="#3.7">3.7. Tell me more about this
multibuffer stuff!</a></font>
<br><font color="#330000"><a href="#3.8">3.8. How do I make a .nanorc file
that nano will read when I start it?</a></font></blockquote>
<h2>
<font color="#330000"><a href="#4">4. Running</a></font></h2>
<blockquote><font color="#330000"><a href="#4.1">4.1. Ack!&nbsp; My backspace/delete/enter/double
bucky/meta key doesn't seem to work!&nbsp; What can I do?</a></font>
<br><font color="#330000"><a href="#4.2">4.2. Nano crashes when I type
&lt;insert keystroke here>!</a></font>
<br><font color="#330000"><a href="#4.3">4.3. Nano crashes when I resize
my window.&nbsp;&nbsp; How can I fix that?</a></font>
<br><font color="#330000"><a href="#4.4">4.4. Why does nano show ^\
in the shortcut list instead of ^J?</a></font>
<br><font color="#330000"><a href="#4.5">4.5. When I type in a
search string, the string I last searched for is already in front of
my cursor! What happened?!</a></font>
<br><font color="#330000"><a href="#4.6">4.6. I get the message "NumLock
glitch detected. Keypad will malfunction with NumLock off." What
gives?</a></font>
<br><font color="#330000"><a href="#4.7">4.7. How do I make nano my
default editor (in Pine, mutt, etc.)?</a></font></blockquote>
<h2>
<font color="#330000"><a href="#5">5. Internationalization</a></font></h2>
<blockquote><font color="#330000"><a href="#5.1">5.1. There's no translation
for my language!</a></font>
<br><font color="#330000"><a href="#5.2">5.2. I don't like the translation
for &lt;x> in my language.&nbsp;&nbsp; How can I fix it?</a></font></blockquote>
<h2>
<font color="#330000"><a href="#6">6. Advocacy and Licensing</a></font></h2>
<blockquote><font color="#330000"><a href="#6.1">6.1. Why should I use
nano instead of Pico?</a></font>
<br><font color="#330000"><a href="#6.2">6.2. Why should I use Pico instead
of nano?</a></font>
<br><font color="#330000"><a href="#6.3">6.3. What is so bad about the
Pine license?</a></font>
<br><font color="#330000"><a href="#6.4">6.4. Okay, well what mail program
should I use then?</a></font>
<br><font color="#330000"><a href="#6.5">6.5. Why doesn't UW simply change
their license?</a></font>
<br><font color="#330000"><a href="#6.6">6.6. What if tomorrow UW changes
the license to be truly Free Software?</a></font></blockquote>
<h2>
<font color="#330000"><a href="#7">7. Miscellaneous</a></font></h2>
<blockquote><font color="#330000"><a href="#7.1">7.1. Nano related mailing
lists.</a></font>
<br><font color="#330000"><a href="#7.2">7.2. I want to send the development
team a big load of cash (or just a thank you).</a></font>
<br><font color="#330000"><a href="#7.3">7.3. How do I submit a patch?</a></font>
<br><font color="#330000"><a href="#7.4">7.4. How do I join the development
team?</a></font>
<br><font color="#330000"><a href="#7.5">7.5. Can I have CVS write access?</a></font></blockquote>
<h2>
<a href="#8">8. ChangeLog</a></h2>
<hr WIDTH="100%">
<br>&nbsp;
<h1>
<a NAME="1"></a><font color="#330000">1.&nbsp; General</font></h1>
<h2>
<a NAME="1.1"></a><font color="#330000">1.1 About this FAQ.</font></h2>
<blockquote><font color="#330000">This FAQ was written and is maintained
by Chris Allegretta &lt;<a href="mailto:chrisa@asty.org">chrisa@asty.org</a>>,
who also happens to be the creator of nano.&nbsp;&nbsp; Maybe someone else
will volunteer to maintain this FAQ someday, who knows...</font></blockquote>
<h2>
<a NAME="1.2"></a><font color="#330000">1.2. How do I contribute to it?</font></h2>
<blockquote><font color="#330000">Your best bet is to send it to the nano
email address, <a
href="mailto:nano@nano-editor.org">nano@nano-editor.org</a> and if
it is useful enough it will be included in future versions.</font></blockquote>
<h2>
<a NAME="1.3"></a><font color="#330000">1.3. What is GNU nano?</font></h2>
<blockquote><font color="#330000">GNU Nano is designed to be a free
replacement for the Pico text editor, part of the Pine email suite from <a
href="http://www.washington.edu/pine">The University of
Washington</a>.&nbsp; It aims to "emulate Pico as closely as possible and
perhaps include extra functionality.</font></blockquote>
<h2>
<a NAME="1.4"></a><font color="#330000">1.4. What is the history behind
nano?</font></h2>
<blockquote><font color="#330000">Funny you should ask!</font>
<p><b><font color="#330000">In the beginning...</font></b>
<p><font color="#330000">For years Pine was THE program used to read email
on a Unix system.&nbsp; The Pico text editor is the portion of the program
one would use to compose his or her mail messages.&nbsp; Many beginners
to Unix flocked to Pico and Pine because of their well organized, easy
to use interfaces.&nbsp; With the proliferation of GNU/Linux in the mid to
late 90's, many University students became intimately familiar with the
strengths (and weaknesses) of Pine and Pico.</font>
<p><b><font color="#330000">Then came Debian...</font></b>
<p><font color="#330000">The <a href="http://www.debian.org">Debian GNU/Linux</a>
distribution, known for its strict standards in distributing truly "free"
software (i.e. had no restrictions on redistribution), would not include
a binary package for Pine or Pico.&nbsp; Many people had a serious dilemma:&nbsp;
they loved these programs, but they were not truly free software in the
<a href="http://www.gnu.org/philosophy/free-sw.html">GNU</a>
sense of the word.</font>
<p><b><font color="#330000">The event...</font></b>
<p><font color="#330000">It was in late 1999 when Chris Allegretta (our
hero) was yet again complaining to himself about the less-than-perfect
license Pico was distributed under, the 1000 makefiles that came with
it and how just a few small improvements could make it the Best Editor
in the World (TM).&nbsp; Having been a convert from Slackware to Debian,
he missed having a simple binary package that included Pine and Pico, and
had grown tired of downloading them himself.</font>
<p><font color="#330000">Finally something snapped inside and Chris coded
and hacked like a madman for many hours straight one weekend to make a
(barely usable) Pico clone, at the time called TIP (Tip Isn't Pico).&nbsp;
The program could not be invoked without a filename, could not save files,
had no help menu, spell checker, and so forth.&nbsp; But over time it improved,
and with the help of a few great coders it matured to the (hopefully) stable
state it is today.
<p><font color="#330000">In February 2001, nano has been declared an
official GNU program by Richard Stallman. Nano also reached its first
production release on March 22, 2001.</font></blockquote>
<h2>
<a NAME="1.5"></a><font color="#330000">1.5. Why the name change from TIP?</font></h2>
<blockquote><font color="#330000">On January 10, 2000, TIP was officially
renamed to nano because of a namespace conflict with another program called
'tip'.&nbsp; The original 'tip' program "establishes a full duplex terminal
connection to a remote host", and was included with many older Unix systems
(and newer ones like Solaris). The conflict was not noticed at first because
there is no 'tip' utility included with most GNU/Linux distributions (where
nano was developed).</font></blockquote>
<h2>
<a NAME="1.6"></a><font color="#330000">1.6 What is the current version
of nano?</font></h2>
<blockquote><font color="#330000">The current version of nano *should*
be 1.1.9.&nbsp; Of course you should always check the nano homepage to
see what the latest and greatest version is.</font></blockquote>
<h2>
<a NAME="1.7"></a><font color="#330000">1.7. I want to read the man page
without having to download the program!</font></h2>
<blockquote><font color="#330000">Jeez, demanding, aren't we?&nbsp;&nbsp;
Okay, look <a href="http://www.nano-editor.org/dist/nano.1.html">here</a>.</font></blockquote>
<hr WIDTH="100%">
<h1>
<a NAME="2"></a><font color="#330000">2. Where to get GNU nano</font></h1>
<h2>
<a NAME="2.1"></a><font color="#330000">2.1. FTP and WWW sites that carry
nano.</font></h2>
<blockquote><font color="#330000">The nano distribution can be downloaded
at the following fine web and ftp sites:</font>
<ul>
<li>
<font color="#330000"><a href="http://www.nano-editor.org/dist">http://www.nano-editor.org/dist</a></font></li>
<li>
<font color="#330000"><a href="http://www.ewtoo.org/~astyanax/nano/dist">http://www.ewtoo.org/~astyanax/nano/dist</a></font></li>
<li>
<font color="#330000"><a href="ftp://ftp.gnu.org/pub/gnu/nano">ftp://ftp.gnu.org/pub/gnu/nano</a></font></li>
</ul>
</blockquote>
<h2>
<a NAME="2.2"></a><font color="#330000">2.2. Redhat and derivatives (.rpm)
packages.</font></h2>
<blockquote>
<ul>
<li>
<font color="#330000"><a href="http://www.nano-editor.org/dist/RPMS">http://www.nano-editor.org/dist/RPMS</a></font></li>
<li>
<font color="#330000"><a href="http://www.ewtoo.org/~astyanax/nano/dist/RPMS">http://www.ewtoo.org/~astyanax/nano/dist/RPMS</a></font></li>
</ul>
<font color="#330000">Additionally, check out the Redhat contribs section
at:</font>
<ul>
<li>
<font color="#330000"><a href="http://distro.ibiblio.org/pub/Linux/distributions/redhat/contrib/libc6/i386">http://metalab.unc.edu/pub/Linux/distributions/redhat/contrib/libc6/i386</a></font></li>
<li>
<font color="#330000"><a href="ftp://distro.ibiblio.org/pub/Linux/distributions/redhat/contrib/libc6/i386">ftp://metalab.unc.edu/pub/Linux/distributions/redhat/contrib/libc6/i386</a></font></li>
</ul>
</blockquote>
<h2>
<a NAME="2.3"></a><font color="#330000">2.3. Debian (.deb) packages.</font></h2>
<blockquote><font color="#330000">For Debian users, you can check out the
current nano packages for:</font>
<ul>
<li>
<font color="#330000"><a href="http://www.debian.org/Packages/stable/editors/nano.html">stable</a></font></li>
<li>
<font color="#330000"><a href="http://www.debian.org/Packages/testing/editors/nano.html">testing</a></font></li>
<li>
<font color="#330000"><a href="http://www.debian.org/Packages/unstable/editors/nano.html">unstable</a></font></li>
</ul>
<p><font color="#330000">You can also have a look at the</font>
<font color="#330000"><a href="ftp://ftp.debian.org/debian/pool/main/n/nano/">Package Pool</a> to see all the available binary and source packages.</font></p>
<font color="#330000">Note that versions &lt; 0.9.10 are probably not for
those wanting to get serious work done, so if you are using Debian 2.2, check
that you have updated to 2.2r3, which comes with nano 0.9.23. If you're
tracking unstable, you probably have the newest version already.</font></blockquote>
<h2>
<a NAME="2.4"></a><font color="#330000">2.4. By CVS (for the brave).</font></h2>
<blockquote><font color="#330000">For the 'bleeding edge' current version
of nano, you can use CVS to download the current source code.&nbsp; <b>Note:</b>
believe it or not, by downloading code that has not yet stabilized into
an official release, there could quite possibly be bugs, in fact the code
may not even compile!&nbsp; Anyway, see <a href="http://savannah.gnu.org/cvs/?group_id=1025">the
nano CVS page</a> for info on anonymous CVS access to the nano source.</font></blockquote>
<hr WIDTH="100%">
<h1>
<a NAME="3"></a><font color="#330000">3. Installation and Configuration</font></h1>
<h2>
<a NAME="3.1"></a><font color="#330000">3.1. How do install the RPM or
DEB package?</font></h2>
<blockquote><font color="#330000">It's simple really!&nbsp; As root, type
<b>rpm
-Uvh nano-x.y.z-1.i386.rpm</b> if you have a Redhat-ish system or
<b>dpkg
-i nano_x.y.z-1.deb</b> if you have a Debian-ish system, where
<b>x.y.z</b>
is the release of nano.&nbsp; There are other programs to install packages,
and if you wish to use those, knock yourself out.</font></blockquote>
<h2>
<a NAME="3.2"></a><font color="#330000">3.2. Compiling from source: WHAT
THE HECK DO I DO NOW?</font></h2>
<blockquote><font color="#330000">Okay, take a deep breath, this really
isn't hard.&nbsp; Unpack the nano source with a command like:</font>
<p><b><font color="#330000">tar -zxvf nano-x.y.z.tar.gz</font></b>
<p><font color="#330000">If you get error messages about the -z option,
try this:</font>
<p><b><font color="#330000">gzip -dc nano-x.y.z.tar.gz | tar xvf -</font></b>
<p><font color="#330000">(again, where x.y.z is the version number in question).&nbsp;
Then you need to run configure with any options you might want (if any).</font>
<p><font color="#330000">The average case is this:</font>
<p><b><font color="#330000">cd nano-x.y.z/</font></b>
<br><b><font color="#330000">./configure</font></b>
<br><b><font color="#330000">make</font></b>
<br><font color="#330000"><b>make install </b>(as root, of course)</font></blockquote>
<h2>
<a NAME="3.3"></a><font color="#330000">3.3. Why does everything go into
/usr/local?</font></h2>
<blockquote><font color="#330000">Well, that's what the <b>configure</b>
script defaults to.&nbsp; If you wish to change this, simply do this:</font>
<p><b><font color="#330000">./configure --prefix=/usr</font></b>
<p><font color="#330000">to put nano into /usr/bin when you run <b>make
install</b>.</font></blockquote>
<h2>
<a NAME="3.4"></a><font color="#330000">3.4. I get errors about 'bindtextdomain',
'gettext' and/or 'gettextdomain'.&nbsp; What can I do about it?</font></h2>
<blockquote><font color="#330000">Try doing a <b>./configure --with-included-gettext</b>
and see if that solves your problem.&nbsp; You make need to do a <b>make
clean ; make</b> to get it to work fully.</font></blockquote>
<h2>
<a NAME="3.5"></a><font color="#330000">3.5. Nano should automatically
run strip on the binary when installing it!</font></h2>
<blockquote><font color="#330000">Actually, it does, but you have to use
<b>make install-strip</b>. The default make install does not, and will
not, run strip automatically.</font></blockquote>
<h2>
<a NAME="3.6"></a><font color="#330000">
3.6. How can I make the executable smaller? This is too
bloated!</font></h2>
<blockquote><font color="#330000">Actually, there are several parts of the
editor that can be disabled. You can pass arguments to the
<b>configure</b> script that disable certain features. Here's a brief
list:
<pre>
<b>--disable-tabcomp</b> Disables tab completion code for a smaller binary
<b>--disable-justify</b> Disable justify/unjustify function
<b>--disable-speller</b> Disables spell checker function
<b>--disable-help</b> Disables help function (^G)
<b>--disable-browser</b> Disables mini file browser
<b>--disable-wrapping</b> Disables all wrapping of text (and -w flag)
<b>--disable-mouse</b> Disables mouse support (and -m flag)
<b>--disable-operatingdir</b> Disable setting of operating directory
</pre><br>
There's also the <b>--enable-tiny</b> option which disables everything
above, as well as some larger chunks of the program (like the marker code
that you use Control-^ to select with). Also, if you know you aren't
going to be using other languages you can use <b>--disable-nls</b> to
disable internationalization and save a few K to a few dozen K depending
on if you have locale support on your system. And finally there's always
good old <b>strip</b> to strip all debugging code and code that exists in
libraries on your system.
<p>If, in the other hand, you can't live without bells and whistles, you could
try:
<pre>
<b>--enable-extra</b> Enable extra functions, including easter eggs
<b>--enable-nanorc</b> Enable use of .nanorc file
<b>--enable-color</b> Enables color and syntax highlighting
<b>--enable-multibuffer</b> Enables having multiple file buffers open
</font></blockquote>
<h2>
<a NAME="3.7"></a><font color="#330000">
3.7. Tell me more about this multibuffer stuff!</font></h2>
<blockquote><font color="#330000"> To use multiple file buffers, you must
be using nano 1.1.9 or newer, and you must have configured nano with
<b>--enable-multibuffer</b> or <b>--enable-extra</b> (use nano -V to check).
Then when you want to enable inserting a file into its own buffer instead of
into the current file, just hit <b>Meta-F</b>, then insert the file as normal
with <b>^R</b>. If you always want files to be loaded into their own buffers,
use the <b>--multibuffer</b> or <b>-F</b> flag when you invoke nano. <P>
You can move between the buffers you have open with the <b>Meta-&lt;</b> and
<b>Meta-&gt;</b> keys, or more easily with <b>Meta-,</b> and <b>Meta-.</b>
(clear as mud, right? =-). When you have more than one file buffer open,
the ^X shortcut will say "Close", instead of the normal "Exit" when only one
buffer is open.
</font></blockquote>
<h2>
<a NAME="3.8"></a><font color="#330000">
3.8. How do I make a .nanorc file that nano will read when I start it?</font></h2>
<blockquote><font color="#330000"> It's not hard at all! But, your version
of nano must have beem compiled with <b>--enable-nanorc</b>, and again must
be version 1.1.9 or newer (use nano -V to check your version and compiled
features). Then simply copy the <b>nanorc.sample</b>
that came with the nano source or your nano package (most likely in
/usr/doc/nano) to .nanorc in your home directory. If you didn't get one,
the syntax is simple. Flags are turned on and off by using the word
<b>set</b> and the getopt_long flag for the feature, for example "set
pico" or "set nowrap". </font></blockquote> <hr WIDTH="100%">
<h1><a NAME="4"></a><font color="#330000">4. Running</font></h1>
<h2>
<a NAME="4.1"></a><font color="#330000">4.1. Ack!&nbsp; My backspace/delete/enter/double
bucky/meta key doesn't seem to work!&nbsp; What can I do?</font></h2>
<blockquote><font color="#330000">Try setting your $TERM variable to 'vt100'.&nbsp;
Nano doesn't yet support every term entry under the sun.</font>
<p><font color="#330000">Bourne shell users (like bash): <b>export TERM=vt100</b></font>
<br><font color="#330000">C Shell users (tcsh and csh): <b>setenv TERM
vt100</b></font></blockquote>
<h2>
<a NAME="4.2"></a><font color="#330000">4.2. Nano crashes when I type &lt;insert
keystroke here>!</font></h2>
<blockquote><font color="#330000">If you aren't trying some bizarre keystroke
combination with some bizarre $TERM entry, chances are you have found a
bug.&nbsp;&nbsp; You are welcome to submit it to the
<a href="mailto:nano-devel@gnu.org">nano-devel</a> list or
to <a href="mailto:nano@nano-editor.org">nano@nano-editor.org</a>.</font></blockquote>
<h2>
<a NAME="4.3"></a><font color="#330000">4.3. Nano crashes when I resize
my window.&nbsp;&nbsp; How can I fix that?</font></h2>
<blockquote><font color="#330000">Older versions of nano had this problem,
please upgrade to a newer version (at least 0.9.9 would be great, 0.9.12
is recommended).</font></blockquote>
<h2>
<a NAME="4.4"></a><font color="#330000">4.4. Why does nano show ^\ in the
shortcut list instead of ^J?</font></h2>
<blockquote><font color="#330000">The help (^G) and justify (^J) function
were among the last to be written.&nbsp; To show the improvements that
nano had over Pico (goto line # and replace), ^_ and ^\ were put on the
shortcut list.&nbsp;&nbsp; Later, ^G came back in place of ^_ as it proved
to be very valuable for new UNIX users. If you use the <b>-p</b> option to
nano (or hit Meta-P) you will get the same shortcuts at the bottom as
Pico.</font></blockquote>
<h2>
<a name="4.5"><font color="#330000">4.5. When I type in a search
string, the string I last searched for is already in front of my
cursor! What happened?!</font></h2>
<blockquote><font color="#330000">In nano version 0.9.20, the default is
to have a completely consistent user interface across all user input
functions. This means that regardless of whether you're being asked for
a filename to insert or write, or a string to search for, the
previous value is already inserted before the cursor. If you prefer the
old behavior, use the pico emulation mode (-p or --pico) or just hit
Meta-P while in nano (see the ^G help text for more
details).</font></blockquote>
<h2>
<a NAME="4.6"></a>I get the message "NumLock glitch detected. Keypad
will malfunction with NumLock off." What gives?</h2>
<blockquote>
Nano (actually almost all console editors do) has issues when cycling
the NumLock key in certain X terminals (rxvt, aterm, wterm, etc...). When
you switch NumLock on to off, you put the terminal into an "application
mode" that changes what sequences are sent by the keypad. These sequences
vary sufficiently from terminal to terminal that it is nearly impossible
to work around them from within nano.
<br><br>
In a nutshell, if you want to be able to use the keypad with the arrow and
page up/down functionality, you have to exit nano and reset your terminal
(presumably with "reset" or "stty sane" or similar) and then run nano
again with NumLock off. If you know an easier way to restore "normal
mode", please mail <A href="mailto:nano@nano-editor.org">nano@nano-editor.org</A>.
<br>&nbsp;</blockquote>
<h2>
<a NAME="4.7"></a>4.7. How do I make nano my default editor (in Pine,
mutt, etc)?</h2>
<blockquote>You need to make nano your $EDITOR.&nbsp; If you want this
to be saved, you should put a line like this in your <b>.bashrc</b> if
you use bash (or <b>.zshrc</b> if you believe in zsh):
<p><b>export EDITOR=/usr/local/bin/nano</b>
<p>or if you use tcsh put this in your <b>.cshrc</b> file:
<p><b>setenv EDITOR /usr/local/bin/nano</b>
<p>Change /usr/local/bin/nano to wherever nano is installed in your system.&nbsp;
Type which nano to find out. This will not take effect until the next time
you login.&nbsp; So log out and back in again.
<p>Then on top that if you use Pine you must go into setup (type <b>S</b>
at the main menu), then configure (type <b>C</b>).&nbsp; Hit enter on the
lines that say:
<p><b>[ ]&nbsp; enable-alternate-editor-cmd</b>
<br><b>[ ]&nbsp; enable-alternate-editor-implicitly</b>
<p>Then exit (<b>E</b>) and select Yes (<b>Y</b>).
<p>Mutt users should see an effect immediately the next time you log in,
no further configuration is needed.&nbsp; However, if you want to let people
know you use nano to compose your email messages, you can put a line like
this in your <b>.muttrc</b>:
<p><b>my_hdr X-Composer: nano x.y.z</b>
<p>Again, replace x.y.z with the version of nano you use.
<br>&nbsp;</blockquote>
<hr WIDTH="100%">
<h1>
<a NAME="5"></a><font color="#330000">5. Internationalization</font></h1>
<h2>
<a NAME="5.1"></a><font color="#330000">5.1. There's no translation for
my language!</font></h2>
<blockquote><font color="#330000">On June of 2001, GNU nano entered the
<a href="www.iro.umontreal.ca/contrib/po/HTML">Free Translation Project</a>
and since then, translations should be managed from there.
<p>If there isn't a translation for your language, you could ask
<a href="http://www.iro.umontreal.ca/contrib/po/HTML/teams.html">your language
team</a> to tranlate nano, or better still, join your team and do it yourself.
Joining a team is easy. You just need to ask the
<a href="mailto:translation@iro.umontreal.ca">TP coordinator</a> to add you
to your team, and send a <a href="http://www.iro.umontreal.ca/contrib/po/HTML/disclaim.html">translation disclaimer to the FSF</a> (this is necessary as
nano is an official GNU package, but it does <strong>not</strong> mean that
you transfer the rights of your work to the FSF, it's just so the FSF can
legaly manage them).</p>
<p>In any case, translating nano is very easy.&nbsp; Just grab the
<b>nano.pot</b> file from the latest and greatest nano distribution
(it's in the <b>po/</b> directory) and translate each line into your native
language on the <b>msgstr</b> line.&nbsp; When you're done, you should
send it to the TP's central po repository.
<h2>
<a NAME="5.2"></a><font color="#330000">5.2. I don't like the translation
for &lt;x> in my language.&nbsp;&nbsp; How can I fix it?</font></h2>
<blockquote><font color="#330000">The best way would probably be to e-mail
the person listed in the <code>Last-Translator:</code> field in
<b>&lt;your_language&gt;.po</b> file with your suggested corrections and
they can make the changes reach the nano devel list.</font></blockquote>
<hr WIDTH="100%">
<h1>
<a NAME="6"></a><font color="#330000">6. Advocacy and Licensing</font></h1>
<h2>
<a NAME="6.1"></a><font color="#330000">6.1. Why should I use nano instead
of Pico?</font></h2>
<blockquote><font color="#330000">There are many reasons to use nano instead
of Pico, a more complete list can be found at the <a href="http://www.nano-editor.org">nano
homepage</a>.</font></blockquote>
<h2>
<a NAME="6.2"></a><font color="#330000">6.2. Why should I use Pico instead
of nano?</font></h2>
<blockquote>Again, check out the <a href="http://www.nano-editor.org">nano
homepage</a> for a good summary of reasons.&nbsp; It really is a matter
of personal preference as to which editor you should use.&nbsp; If you're
the type of person who likes using the original version of a program, then
Pico is the editor for you.&nbsp;&nbsp; If you're looking for a few more
features and a 'better' license as far as adding your own changes (sacrificing
mailer integration with Pine), nano is the way to go.
</blockquote>
<h2>
<a NAME="6.3"></a><font color="#330000">6.3. What is so bad about the Pine
license?</font></h2>
<blockquote><font color="#330000">The U of W license for Pine and
Pico is not considered truly Free Software according to both the Free
Software Foundation and the the <a
href="http://www.debian.org/social_contract#guidelines">Debian
Free Software Guidelines</a>.&nbsp; The main problem regards the
limitations on distributing derived works: according to UW, you can
distribute their software, and you can modify it, but you can not do
both, i.e. distribute modified binaries.</blockquote>
<h2>
<a NAME="6.4"></a><font color="#330000">6.4. Okay, well what mail program
should I use then?</font></h2>
<blockquote><font color="#330000"> If you are looking to use a Free
Software program similar to Pine and emacs is not your thing, you should
definitely take a look at <a href="http://www.mutt.org">mutt</a>.&nbsp; It
is a full-screen, console based mail program that actually has a lot more
flexibility than Pine, but has a keymap included in the distribution that
allows you to use the same keystrokes as Pine would to send and receive
mail.&nbsp; It's also licensed under the GPL.</font></blockquote>
<h2>
<a NAME="6.5"></a><font color="#330000">6.5. Why doesn't UW simply change
their license?</font></h2>
<blockquote><font color="#330000">You're really not asking the right person
here.&nbsp; I (Chris) waited a long time to see if UW would change their
license because of the amount of high quality software being released and
developed under the GPL without being taken advantage of by malicious corporate
entities or other baddies, but no such luck so far.</font></blockquote>
<h2>
<a NAME="6.6"></a><font color="#330000">6.6. What if tomorrow UW changes
the license to be truly Free Software?</font></h2>
<blockquote><font color="#330000">Honestly nothing would make me happier
than to see that happen.&nbsp; Nano would continue to be developed independently
until such time as Pico had all the features nano did or the projects merged.&nbsp;
That just does not seem very likely given that there has been no sign of
any changes in the past few years in a positive direction.</font></blockquote>
<hr WIDTH="100%">
<h1>
<a NAME="7"></a><font color="#330000">7. Miscellaneous</font></h1>
<h2>
<a NAME="7.1"></a><font color="#330000">7.1. Nano related mailing lists.</font></h2>
<blockquote><font color="#330000">There are three mailing lists for nano
hosted at <a href="http://savannah.gnu.org">Savannah</a>, info-nano, help-nano
and nano-devel.&nbsp; Nano-announce is a very low traffic list where new
versions of nano are announced (surprise!)&nbsp; Nano-devel is a normally
low, sometimes high traffic list for discussing the present and future
development of nano.&nbsp; Help-nano is for getting help with the editor
without needing to hear all of the development issues surrunding it.
&nbsp; Here are links to where you can sign up for
a given list:</font><font color="#330000"></font>
<p><font color="#330000">info-nano - <a href="
http://mail.gnu.org/mailman/listinfo/info-nano">
http://mail.gnu.org/mailman/listinfo/info-nano</a></font>
<br>
<font color="#330000">help-nano -
<a href="http://mail.gnu.org/mailman/listinfo/help-nano">
http://mail.gnu.org/mailman/listinfo/help-nano</a></font>
<br>
<font color="#330000">nano-devel -
<a href="http://mail.gnu.org/mailman/listinfo/nano-devel">
http://mail.gnu.org/mailman/listinfo/nano-devel</a></font>
</blockquote>
<h2>
<a NAME="7.2"></a><font color="#330000">7.2. I want to send the development
team a big load of cash (or just a thank you).</font></h2>
<blockquote><font color="#330000">That's fine.&nbsp; Send it <a href="mailto:nano-devel@gnu.org">our
way</a>!&nbsp; Better yet, fix a <a href="http://www.nano-editor.org/dist/BUGS">bug</a>
in the program or implement a <a href="http://www.nano-editor.org/dist/TODO">cool
feature</a> and send us that instead (though cash is fine too).</font></blockquote>
<h2>
<a NAME="7.3"></a><font color="#330000">7.3. How do I submit a patch?</font></h2>
<blockquote><font color="#330000">See Section <a href="#7.2">7.2</a>.</font></blockquote>
<h2>
<a NAME="7.4"></a><font color="#330000">7.4. How do I join the development
team?</font></h2>
<blockquote><font color="#330000">The easiest way is to consistently send
in good patches that add some needed functionality, fix a bug or two and/or
make the program more optimized/efficient.&nbsp; Then ask nicely and you
will probably be added to the Savannah development list and be given
CVS write after awhile.&nbsp; There is a lot of responsibility that goes
along with being a team member, so don't think it's just something to add
to your resume.</font></blockquote>
<h2>
<a NAME="7.5"></a><font color="#330000">7.5. Can I have CVS write access?</font></h2>
<blockquote><font color="#330000">Re-read Section </font><a href="#7.4">7.4</a><font color="#330000">
and you should know the answer.</font></blockquote>
<h2>
<a NAME="8"></a><font color="#330000">8. ChangeLog</font>
</h2>
<blockquote>2001/12/26 - Misc. fixes (Aaron S. Hawley, DLR).</blockquote>
<blockquote>2001/10/02 - Update for Free Translation Project.</blockquote>
<blockquote>2001/10/02 - Assorted fixes, Debian additions.</blockquote>
<blockquote>2001/06/30 - Silly typo fix.</blockquote>
<blockquote>2001/05/05 - Spelling fixes by David Lawrence Ramsey.</blockquote>
<blockquote>2001/05/02 - Misc fixes.</blockquote>
<blockquote>2001/03/26 - Typo fix in an URL.</blockquote>
<blockquote>2001/02/17 - Advocacy updates.</blockquote>
<blockquote>2001/02/15 - Added GNU notes for 0.9.99pre3.</blockquote>
<blockquote>2001/02/06 - Typo fixes.</blockquote>
<blockquote>2001/01/14 - Added note about numlock glitch.</blockquote>
<blockquote>2001/01/10 - Linux --&gt; GNU/Linux.</blockquote>
<blockquote>2001/01/09 - Added "making exe smaller section.</blockquote>
<blockquote>2000/12/19 - Typo and assorted error fixes.</blockquote>
<blockquote>2000/11/28 - Added blurb about make install-strip.</blockquote>
<blockquote>2000/11/19 - Changed Debian frozen to stable.</blockquote>
<blockquote>2000/11/18 - Previous string display (4.5).</blockquote>
<blockquote>2000/09/27 - Moved addresses to nano-editor.org.</blockquote>
<blockquote>2000/06/31 - Initial framework.</blockquote>
<P>
$Id$
</body>
</html>

2513
files.c

File diff suppressed because it is too large Load Diff

992
global.c

File diff suppressed because it is too large Load Diff

View File

@@ -1,251 +0,0 @@
#!/bin/sh
#
# install - install a program, script, or datafile
# This comes from X11R5 (mit/util/scripts/install.sh).
#
# Copyright 1991 by the Massachusetts Institute of Technology
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of M.I.T. not be used in advertising or
# publicity pertaining to distribution of the software without specific,
# written prior permission. M.I.T. makes no representations about the
# suitability of this software for any purpose. It is provided "as is"
# without express or implied warranty.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch. It can only install one file at a time, a restriction
# shared with many OS's install programs.
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit="${DOITPROG-}"
# put in absolute paths if you don't have them in your path; or use env. vars.
mvprog="${MVPROG-mv}"
cpprog="${CPPROG-cp}"
chmodprog="${CHMODPROG-chmod}"
chownprog="${CHOWNPROG-chown}"
chgrpprog="${CHGRPPROG-chgrp}"
stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
transformbasename=""
transform_arg=""
instcmd="$mvprog"
chmodcmd="$chmodprog 0755"
chowncmd=""
chgrpcmd=""
stripcmd=""
rmcmd="$rmprog -f"
mvcmd="$mvprog"
src=""
dst=""
dir_arg=""
while [ x"$1" != x ]; do
case $1 in
-c) instcmd="$cpprog"
shift
continue;;
-d) dir_arg=true
shift
continue;;
-m) chmodcmd="$chmodprog $2"
shift
shift
continue;;
-o) chowncmd="$chownprog $2"
shift
shift
continue;;
-g) chgrpcmd="$chgrpprog $2"
shift
shift
continue;;
-s) stripcmd="$stripprog"
shift
continue;;
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
shift
continue;;
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
shift
continue;;
*) if [ x"$src" = x ]
then
src=$1
else
# this colon is to work around a 386BSD /bin/sh bug
:
dst=$1
fi
shift
continue;;
esac
done
if [ x"$src" = x ]
then
echo "install: no input file specified"
exit 1
else
true
fi
if [ x"$dir_arg" != x ]; then
dst=$src
src=""
if [ -d $dst ]; then
instcmd=:
chmodcmd=""
else
instcmd=mkdir
fi
else
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if [ -f $src -o -d $src ]
then
true
else
echo "install: $src does not exist"
exit 1
fi
if [ x"$dst" = x ]
then
echo "install: no destination specified"
exit 1
else
true
fi
# If destination is a directory, append the input filename; if your system
# does not like double slashes in filenames, you may need to add some logic
if [ -d $dst ]
then
dst="$dst"/`basename $src`
else
true
fi
fi
## this sed command emulates the dirname command
dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
# Make sure that the destination directory exists.
# this part is taken from Noah Friedman's mkinstalldirs script
# Skip lots of stat calls in the usual case.
if [ ! -d "$dstdir" ]; then
defaultIFS='
'
IFS="${IFS-${defaultIFS}}"
oIFS="${IFS}"
# Some sh's can't handle IFS=/ for some reason.
IFS='%'
set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
IFS="${oIFS}"
pathcomp=''
while [ $# -ne 0 ] ; do
pathcomp="${pathcomp}${1}"
shift
if [ ! -d "${pathcomp}" ] ;
then
$mkdirprog "${pathcomp}"
else
true
fi
pathcomp="${pathcomp}/"
done
fi
if [ x"$dir_arg" != x ]
then
$doit $instcmd $dst &&
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
else
# If we're going to rename the final executable, determine the name now.
if [ x"$transformarg" = x ]
then
dstfile=`basename $dst`
else
dstfile=`basename $dst $transformbasename |
sed $transformarg`$transformbasename
fi
# don't allow the sed command to completely eliminate the filename
if [ x"$dstfile" = x ]
then
dstfile=`basename $dst`
else
true
fi
# Make a temp file name in the proper directory.
dsttmp=$dstdir/#inst.$$#
# Move or copy the file name to the temp name
$doit $instcmd $src $dsttmp &&
trap "rm -f ${dsttmp}" 0 &&
# and set any options; do chmod last to preserve setuid bits
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $instcmd $src $dsttmp" command.
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
# Now rename the file to the real destination.
$doit $rmcmd -f $dstdir/$dstfile &&
$doit $mvcmd $dsttmp $dstdir/$dstfile
fi &&
exit 0

3
intl/.cvsignore Normal file
View File

@@ -0,0 +1,3 @@
Makefile
libintl.h
po2tbl.sed

File diff suppressed because it is too large Load Diff

View File

@@ -1,19 +1,20 @@
# Makefile for directory with message catalog handling in GNU NLS Utilities.
# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
# Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU Library General Public License as published
# by the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# You should have received a copy of the GNU Library General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
# USA.
PACKAGE = @PACKAGE@
VERSION = @VERSION@
@@ -28,75 +29,106 @@ VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
transform = @program_transform_name@
libdir = $(exec_prefix)/lib
includedir = $(prefix)/include
datadir = $(prefix)/@DATADIRNAME@
libdir = @libdir@
includedir = @includedir@
datadir = @datadir@
localedir = $(datadir)/locale
gnulocaledir = $(prefix)/share/locale
gettextsrcdir = @datadir@/gettext/intl
aliaspath = $(localedir):.
gettextsrcdir = $(datadir)/gettext/intl
aliaspath = $(localedir)
subdir = intl
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
MKINSTALLDIRS = @MKINSTALLDIRS@
mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac`
l = @l@
l = @INTL_LIBTOOL_SUFFIX_PREFIX@
AR = ar
CC = @CC@
LIBTOOL = @LIBTOOL@
RANLIB = @RANLIB@
YACC = @INTLBISON@ -y -d
YFLAGS = --name-prefix=__gettext
DEFS = -DLOCALEDIR=\"$(localedir)\" -DGNULOCALEDIR=\"$(gnulocaledir)\" \
-DLOCALE_ALIAS_PATH=\"$(aliaspath)\" @DEFS@
DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \
-DLIBDIR=\"$(libdir)\" @DEFS@
CPPFLAGS = @CPPFLAGS@
CFLAGS = @CFLAGS@
LDFLAGS = @LDFLAGS@
COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
HEADERS = $(COMHDRS) libgettext.h loadinfo.h
HEADERS = $(COMHDRS) libgnuintl.h libgettext.h loadinfo.h
COMHDRS = gettext.h gettextP.h hash-string.h
SOURCES = $(COMSRCS) intl-compat.c cat-compat.c
SOURCES = $(COMSRCS) intl-compat.c
COMSRCS = bindtextdom.c dcgettext.c dgettext.c gettext.c \
finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c \
explodename.c
explodename.c dcigettext.c dcngettext.c dngettext.c ngettext.c plural.y \
localcharset.c
OBJECTS = @INTLOBJS@ bindtextdom.$lo dcgettext.$lo dgettext.$lo gettext.$lo \
finddomain.$lo loadmsgcat.$lo localealias.$lo textdomain.$lo l10nflist.$lo \
explodename.$lo
CATOBJS = cat-compat.$lo ../po/cat-id-tbl.$lo
explodename.$lo dcigettext.$lo dcngettext.$lo dngettext.$lo ngettext.$lo \
plural.$lo localcharset.$lo
GETTOBJS = intl-compat.$lo
DISTFILES.common = ChangeLog Makefile.in linux-msg.sed po2tbl.sed.in \
xopen-msg.sed $(HEADERS) $(SOURCES)
DISTFILES.common = Makefile.in \
config.charset locale.alias ref-add.sin ref-del.sin $(HEADERS) $(SOURCES)
DISTFILES.generated = plural.c
DISTFILES.normal = VERSION
DISTFILES.gettext = libintl.glibc intlh.inst.in
DISTFILES.gettext = COPYING.LIB-2 COPYING.LIB-2.1 libintl.glibc
DISTFILES.obsolete = xopen-msg.sed linux-msg.sed po2tbl.sed.in cat-compat.c
# Libtool's library version information for libintl.
# Before making a gettext release, the gettext maintainer must change this
# according to the libtool documentation, section "Library interface versions".
# Maintainers of other packages that include the intl directory must *not*
# change these values.
LTV_CURRENT=1
LTV_REVISION=1
LTV_AGE=0
.SUFFIXES:
.SUFFIXES: .c .o .lo
.SUFFIXES: .c .y .o .lo .sin .sed
.c.o:
$(COMPILE) $<
.c.lo:
$(LIBTOOL) --mode=compile $(COMPILE) $<
INCLUDES = -I.. -I. -I$(top_srcdir)/intl -I$(top_srcdir)/lib
.y.c:
$(YACC) $(YFLAGS) --output $@ $<
rm -f $*.h
.sin.sed:
sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $< > t-$@
mv t-$@ $@
INCLUDES = -I.. -I. -I$(top_srcdir)/intl
all: all-@USE_INCLUDED_LIBINTL@
all-yes: libintl.$la libintl.h charset.alias ref-add.sed ref-del.sed
all-no: all-no-@BUILD_INCLUDED_LIBINTL@
all-no-yes: libgnuintl.$la
all-no-no:
all-yes: libintl.$la intlh.inst
all-no:
libintl.a: $(OBJECTS)
libintl.a libgnuintl.a: $(OBJECTS)
rm -f $@
$(AR) cru $@ $(OBJECTS)
$(RANLIB) $@
libintl.la: $(OBJECTS)
$(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o $@ $(OBJECTS) \
-version-info 1:0 -rpath $(libdir)
libintl.la libgnuintl.la: $(OBJECTS)
$(LIBTOOL) --mode=link \
$(CC) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) $(LDFLAGS) -o $@ \
$(OBJECTS) @LIBICONV@ \
-version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \
-rpath $(libdir) \
-no-undefined
../po/cat-id-tbl.$lo: ../po/cat-id-tbl.c $(top_srcdir)/po/$(PACKAGE).pot
cd ../po && $(MAKE) cat-id-tbl.$lo
libintl.h: libgnuintl.h
cp $(srcdir)/libgnuintl.h libintl.h
charset.alias: config.charset
$(SHELL) $(srcdir)/config.charset '@host@' > t-$@
mv t-$@ $@
check: all
@@ -104,36 +136,70 @@ check: all
# only use the library should use install instead.
# We must not install the libintl.h/libintl.a files if we are on a
# system which has the gettext() function in its C library or in a
# separate library or use the catgets interface. A special case is
# where configure found a previously installed GNU gettext library.
# system which has the GNU gettext() function in its C library or in a
# separate library.
# If you want to use the one which comes with this version of the
# package, you have to use `configure --with-included-gettext'.
install: install-exec install-data
install-exec: all
if test "$(PACKAGE)" = "gettext" \
&& test '@INTLOBJS@' = '$(GETTOBJS)'; then \
if test -r $(MKINSTALLDIRS); then \
$(MKINSTALLDIRS) $(libdir) $(includedir); \
$(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \
$(INSTALL_DATA) libintl.h $(DESTDIR)$(includedir)/libintl.h; \
$(LIBTOOL) --mode=install \
$(INSTALL_DATA) libintl.$la $(DESTDIR)$(libdir)/libintl.$la; \
else \
: ; \
fi
if test '@USE_INCLUDED_LIBINTL@' = yes; then \
$(mkinstalldirs) $(DESTDIR)$(libdir); \
temp=$(DESTDIR)$(libdir)/t-charset.alias; \
dest=$(DESTDIR)$(libdir)/charset.alias; \
if test -f $(DESTDIR)$(libdir)/charset.alias; then \
orig=$(DESTDIR)$(libdir)/charset.alias; \
sed -f ref-add.sed $$orig > $$temp; \
$(INSTALL_DATA) $$temp $$dest; \
rm -f $$temp; \
else \
$(top_srcdir)/mkinstalldirs $(libdir) $(includedir); \
if test @GLIBC21@ = no; then \
orig=charset.alias; \
sed -f ref-add.sed $$orig > $$temp; \
$(INSTALL_DATA) $$temp $$dest; \
rm -f $$temp; \
fi; \
fi; \
$(INSTALL_DATA) intlh.inst $(includedir)/libintl.h; \
$(INSTALL_DATA) libintl.a $(libdir)/libintl.a; \
$(mkinstalldirs) $(DESTDIR)$(localedir); \
test -f $(DESTDIR)$(localedir)/locale.alias \
&& orig=$(DESTDIR)$(localedir)/locale.alias \
|| orig=$(srcdir)/locale.alias; \
temp=$(DESTDIR)$(localedir)/t-locale.alias; \
dest=$(DESTDIR)$(localedir)/locale.alias; \
sed -f ref-add.sed $$orig > $$temp; \
$(INSTALL_DATA) $$temp $$dest; \
rm -f $$temp; \
else \
: ; \
fi
install-data: all
if test "$(PACKAGE)" = "gettext"; then \
if test -r $(MKINSTALLDIRS); then \
$(MKINSTALLDIRS) $(gettextsrcdir); \
else \
$(top_srcdir)/mkinstalldirs $(gettextsrcdir); \
fi; \
$(INSTALL_DATA) VERSION $(gettextsrcdir)/VERSION; \
dists="$(DISTFILES.common)"; \
$(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
$(INSTALL_DATA) VERSION $(DESTDIR)$(gettextsrcdir)/VERSION; \
$(INSTALL_DATA) ChangeLog.inst $(DESTDIR)$(gettextsrcdir)/ChangeLog; \
dists="COPYING.LIB-2 COPYING.LIB-2.1 $(DISTFILES.common)"; \
for file in $$dists; do \
$(INSTALL_DATA) $(srcdir)/$$file $(gettextsrcdir)/$$file; \
$(INSTALL_DATA) $(srcdir)/$$file \
$(DESTDIR)$(gettextsrcdir)/$$file; \
done; \
chmod a+x $(DESTDIR)$(gettextsrcdir)/config.charset; \
dists="$(DISTFILES.generated)"; \
for file in $$dists; do \
if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
$(INSTALL_DATA) $$dir/$$file \
$(DESTDIR)$(gettextsrcdir)/$$file; \
done; \
dists="$(DISTFILES.obsolete)"; \
for file in $$dists; do \
rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
done; \
else \
: ; \
@@ -143,14 +209,51 @@ install-data: all
installcheck:
uninstall:
dists="$(DISTFILES.common)"; \
for file in $$dists; do \
rm -f $(gettextsrcdir)/$$file; \
done
if test "$(PACKAGE)" = "gettext" \
&& test '@INTLOBJS@' = '$(GETTOBJS)'; then \
rm -f $(DESTDIR)$(includedir)/libintl.h; \
$(LIBTOOL) --mode=uninstall \
rm -f $(DESTDIR)$(libdir)/libintl.$la; \
else \
: ; \
fi
if test '@USE_INCLUDED_LIBINTL@' = yes; then \
if test -f $(DESTDIR)$(libdir)/charset.alias; then \
temp=$(DESTDIR)$(libdir)/t-charset.alias; \
dest=$(DESTDIR)$(libdir)/charset.alias; \
sed -f ref-del.sed $$dest > $$temp; \
if grep '^# Packages using this file: $$' $$temp > /dev/null; then \
rm -f $$dest; \
else \
$(INSTALL_DATA) $$temp $$dest; \
fi; \
rm -f $$temp; \
fi; \
if test -f $(DESTDIR)$(localedir)/locale.alias; then \
temp=$(DESTDIR)$(localedir)/t-locale.alias; \
dest=$(DESTDIR)$(localedir)/locale.alias; \
sed -f ref-del.sed $$dest > $$temp; \
if grep '^# Packages using this file: $$' $$temp > /dev/null; then \
rm -f $$dest; \
else \
$(INSTALL_DATA) $$temp $$dest; \
fi; \
rm -f $$temp; \
fi; \
else \
: ; \
fi
if test "$(PACKAGE)" = "gettext"; then \
for file in VERSION ChangeLog COPYING.LIB-2 COPYING.LIB-2.1 $(DISTFILES.common) $(DISTFILES.generated); do \
rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
done; \
else \
: ; \
fi
info dvi:
$(OBJECTS): ../config.h libgettext.h
$(OBJECTS): ../config.h libgnuintl.h
bindtextdom.$lo finddomain.$lo loadmsgcat.$lo: gettextP.h gettext.h loadinfo.h
dcgettext.$lo: gettextP.h gettext.h hash-string.h loadinfo.h
@@ -166,12 +269,19 @@ ID: $(HEADERS) $(SOURCES)
mostlyclean:
rm -f *.a *.o *.lo core core.*
rm -f *.a *.la *.o *.lo core core.*
rm -f libintl.h charset.alias ref-add.sed ref-del.sed
rm -f -r .libs _libs
clean: mostlyclean
distclean: clean
rm -f Makefile ID TAGS po2msg.sed po2tbl.sed
rm -f Makefile ID TAGS
if test "$(PACKAGE)" = gettext; then \
rm -f ChangeLog.inst $(DISTFILES.normal); \
else \
: ; \
fi
maintainer-clean: distclean
@echo "This command is intended for maintainers to use;"
@@ -181,34 +291,23 @@ maintainer-clean: distclean
# GNU gettext needs not contain the file `VERSION' but contains some
# other files which should not be distributed in other packages.
distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
dist distdir: Makefile $(DISTFILES)
dist distdir: Makefile
if test "$(PACKAGE)" = gettext; then \
additional="$(DISTFILES.gettext)"; \
else \
additional="$(DISTFILES.normal)"; \
fi; \
for file in $(DISTFILES.common) $$additional; do \
ln $(srcdir)/$$file $(distdir) 2> /dev/null \
|| cp -p $(srcdir)/$$file $(distdir); \
$(MAKE) $(DISTFILES.common) $(DISTFILES.generated) $$additional; \
for file in ChangeLog $(DISTFILES.common) $(DISTFILES.generated) $$additional; do \
if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
ln $$dir/$$file $(distdir) 2> /dev/null \
|| cp -p $$dir/$$file $(distdir); \
done
dist-libc:
tar zcvf intl-glibc.tar.gz $(COMSRCS) $(COMHDRS) libintl.h.glibc
Makefile: Makefile.in ../config.status
cd .. \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
# The dependency for intlh.inst is different in gettext and all other
# packages. Because we cannot you GNU make features we have to solve
# the problem while rewriting Makefile.in.
@GT_YES@intlh.inst: intlh.inst.in ../config.status
@GT_YES@ cd .. \
@GT_YES@ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= \
@GT_YES@ $(SHELL) ./config.status
@GT_NO@.PHONY: intlh.inst
@GT_NO@intlh.inst:
# Tell versions [3.59,3.63) of GNU make not to export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@@ -1 +1 @@
GNU gettext library from gettext-0.10.35
GNU gettext library from gettext-0.10.40

View File

@@ -1,51 +1,59 @@
/* Implementation of the bindtextdomain(3) function
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#if defined STDC_HEADERS || defined _LIBC
# include <stdlib.h>
#else
# ifdef HAVE_MALLOC_H
# include <malloc.h>
# else
void free ();
# endif
#endif
#if defined HAVE_STRING_H || defined _LIBC
# include <string.h>
#else
# include <strings.h>
# ifndef memcpy
# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
# endif
#endif
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#ifdef _LIBC
# include <libintl.h>
#else
# include "libgettext.h"
# include "libgnuintl.h"
#endif
#include "gettext.h"
#include "gettextP.h"
#ifdef _LIBC
/* We have to handle multi-threaded applications. */
# include <bits/libc-lock.h>
#else
/* Provide dummy implementation if this is outside glibc. */
# define __libc_rwlock_define(CLASS, NAME)
# define __libc_rwlock_wrlock(NAME)
# define __libc_rwlock_unlock(NAME)
#endif
/* The internal variables in the standalone libintl.a must have different
names than the internal variables in GNU libc, otherwise programs
using libintl.a cannot be linked statically. */
#if !defined _LIBC
# define _nl_default_dirname _nl_default_dirname__
# define _nl_domain_bindings _nl_domain_bindings__
#endif
/* Some compilers, like SunOS4 cc, don't have offsetof in <stddef.h>. */
#ifndef offsetof
# define offsetof(type,ident) ((size_t)&(((type*)0)->ident))
#endif
/* @@ end of prolog @@ */
/* Contains the default location of the message catalogs. */
@@ -54,6 +62,9 @@ extern const char _nl_default_dirname[];
/* List with bindings of specific domains. */
extern struct binding *_nl_domain_bindings;
/* Lock variable to protect the global data in the gettext implementation. */
__libc_rwlock_define (extern, _nl_state_lock)
/* Names for the libintl functions are a problem. They must not clash
with existing names and they should follow ANSI C. But this source
@@ -61,25 +72,48 @@ extern struct binding *_nl_domain_bindings;
prefix. So we have to make a difference here. */
#ifdef _LIBC
# define BINDTEXTDOMAIN __bindtextdomain
# define BIND_TEXTDOMAIN_CODESET __bind_textdomain_codeset
# ifndef strdup
# define strdup(str) __strdup (str)
# endif
#else
# define BINDTEXTDOMAIN bindtextdomain__
# define BIND_TEXTDOMAIN_CODESET bind_textdomain_codeset__
#endif
/* Specify that the DOMAINNAME message catalog will be found
in DIRNAME rather than in the system locale data base. */
char *
BINDTEXTDOMAIN (domainname, dirname)
/* Prototypes for local functions. */
static void set_binding_values PARAMS ((const char *domainname,
const char **dirnamep,
const char **codesetp));
/* Specifies the directory name *DIRNAMEP and the output codeset *CODESETP
to be used for the DOMAINNAME message catalog.
If *DIRNAMEP or *CODESETP is NULL, the corresponding attribute is not
modified, only the current value is returned.
If DIRNAMEP or CODESETP is NULL, the corresponding attribute is neither
modified nor returned. */
static void
set_binding_values (domainname, dirnamep, codesetp)
const char *domainname;
const char *dirname;
const char **dirnamep;
const char **codesetp;
{
struct binding *binding;
int modified;
/* Some sanity checks. */
if (domainname == NULL || domainname[0] == '\0')
return NULL;
{
if (dirnamep)
*dirnamep = NULL;
if (codesetp)
*codesetp = NULL;
return;
}
__libc_rwlock_wrlock (_nl_state_lock);
modified = 0;
for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
{
@@ -95,83 +129,173 @@ BINDTEXTDOMAIN (domainname, dirname)
}
}
if (dirname == NULL)
/* The current binding has be to returned. */
return binding == NULL ? (char *) _nl_default_dirname : binding->dirname;
if (binding != NULL)
{
/* The domain is already bound. If the new value and the old
one are equal we simply do nothing. Otherwise replace the
old binding. */
if (strcmp (dirname, binding->dirname) != 0)
if (dirnamep)
{
char *new_dirname;
const char *dirname = *dirnamep;
if (strcmp (dirname, _nl_default_dirname) == 0)
new_dirname = (char *) _nl_default_dirname;
if (dirname == NULL)
/* The current binding has be to returned. */
*dirnamep = binding->dirname;
else
{
/* The domain is already bound. If the new value and the old
one are equal we simply do nothing. Otherwise replace the
old binding. */
char *result = binding->dirname;
if (strcmp (dirname, result) != 0)
{
if (strcmp (dirname, _nl_default_dirname) == 0)
result = (char *) _nl_default_dirname;
else
{
#if defined _LIBC || defined HAVE_STRDUP
new_dirname = strdup (dirname);
if (new_dirname == NULL)
return NULL;
result = strdup (dirname);
#else
size_t len = strlen (dirname) + 1;
new_dirname = (char *) malloc (len);
if (new_dirname == NULL)
return NULL;
memcpy (new_dirname, dirname, len);
size_t len = strlen (dirname) + 1;
result = (char *) malloc (len);
if (__builtin_expect (result != NULL, 1))
memcpy (result, dirname, len);
#endif
}
if (__builtin_expect (result != NULL, 1))
{
if (binding->dirname != _nl_default_dirname)
free (binding->dirname);
binding->dirname = result;
modified = 1;
}
}
*dirnamep = result;
}
if (binding->dirname != _nl_default_dirname)
free (binding->dirname);
binding->dirname = new_dirname;
}
if (codesetp)
{
const char *codeset = *codesetp;
if (codeset == NULL)
/* The current binding has be to returned. */
*codesetp = binding->codeset;
else
{
/* The domain is already bound. If the new value and the old
one are equal we simply do nothing. Otherwise replace the
old binding. */
char *result = binding->codeset;
if (result == NULL || strcmp (codeset, result) != 0)
{
#if defined _LIBC || defined HAVE_STRDUP
result = strdup (codeset);
#else
size_t len = strlen (codeset) + 1;
result = (char *) malloc (len);
if (__builtin_expect (result != NULL, 1))
memcpy (result, codeset, len);
#endif
if (__builtin_expect (result != NULL, 1))
{
if (binding->codeset != NULL)
free (binding->codeset);
binding->codeset = result;
binding->codeset_cntr++;
modified = 1;
}
}
*codesetp = result;
}
}
}
else if ((dirnamep == NULL || *dirnamep == NULL)
&& (codesetp == NULL || *codesetp == NULL))
{
/* Simply return the default values. */
if (dirnamep)
*dirnamep = _nl_default_dirname;
if (codesetp)
*codesetp = NULL;
}
else
{
/* We have to create a new binding. */
#if !defined _LIBC && !defined HAVE_STRDUP
size_t len;
#endif
size_t len = strlen (domainname) + 1;
struct binding *new_binding =
(struct binding *) malloc (sizeof (*new_binding));
(struct binding *) malloc (offsetof (struct binding, domainname) + len);
if (new_binding == NULL)
return NULL;
if (__builtin_expect (new_binding == NULL, 0))
goto failed;
#if defined _LIBC || defined HAVE_STRDUP
new_binding->domainname = strdup (domainname);
if (new_binding->domainname == NULL)
return NULL;
#else
len = strlen (domainname) + 1;
new_binding->domainname = (char *) malloc (len);
if (new_binding->domainname == NULL)
return NULL;
memcpy (new_binding->domainname, domainname, len);
#endif
if (strcmp (dirname, _nl_default_dirname) == 0)
new_binding->dirname = (char *) _nl_default_dirname;
else
if (dirnamep)
{
const char *dirname = *dirnamep;
if (dirname == NULL)
/* The default value. */
dirname = _nl_default_dirname;
else
{
if (strcmp (dirname, _nl_default_dirname) == 0)
dirname = _nl_default_dirname;
else
{
char *result;
#if defined _LIBC || defined HAVE_STRDUP
new_binding->dirname = strdup (dirname);
if (new_binding->dirname == NULL)
return NULL;
result = strdup (dirname);
if (__builtin_expect (result == NULL, 0))
goto failed_dirname;
#else
len = strlen (dirname) + 1;
new_binding->dirname = (char *) malloc (len);
if (new_binding->dirname == NULL)
return NULL;
memcpy (new_binding->dirname, dirname, len);
size_t len = strlen (dirname) + 1;
result = (char *) malloc (len);
if (__builtin_expect (result == NULL, 0))
goto failed_dirname;
memcpy (result, dirname, len);
#endif
dirname = result;
}
}
*dirnamep = dirname;
new_binding->dirname = (char *) dirname;
}
else
/* The default value. */
new_binding->dirname = (char *) _nl_default_dirname;
new_binding->codeset_cntr = 0;
if (codesetp)
{
const char *codeset = *codesetp;
if (codeset != NULL)
{
char *result;
#if defined _LIBC || defined HAVE_STRDUP
result = strdup (codeset);
if (__builtin_expect (result == NULL, 0))
goto failed_codeset;
#else
size_t len = strlen (codeset) + 1;
result = (char *) malloc (len);
if (__builtin_expect (result == NULL, 0))
goto failed_codeset;
memcpy (result, codeset, len);
#endif
codeset = result;
new_binding->codeset_cntr++;
}
*codesetp = codeset;
new_binding->codeset = (char *) codeset;
}
else
new_binding->codeset = NULL;
/* Now enqueue it. */
if (_nl_domain_bindings == NULL
@@ -191,13 +315,55 @@ BINDTEXTDOMAIN (domainname, dirname)
binding->next = new_binding;
}
binding = new_binding;
modified = 1;
/* Here we deal with memory allocation failures. */
if (0)
{
failed_codeset:
if (new_binding->dirname != _nl_default_dirname)
free (new_binding->dirname);
failed_dirname:
free (new_binding);
failed:
if (dirnamep)
*dirnamep = NULL;
if (codesetp)
*codesetp = NULL;
}
}
return binding->dirname;
/* If we modified any binding, we flush the caches. */
if (modified)
++_nl_msg_cat_cntr;
__libc_rwlock_unlock (_nl_state_lock);
}
/* Specify that the DOMAINNAME message catalog will be found
in DIRNAME rather than in the system locale data base. */
char *
BINDTEXTDOMAIN (domainname, dirname)
const char *domainname;
const char *dirname;
{
set_binding_values (domainname, &dirname, NULL);
return (char *) dirname;
}
/* Specify the character encoding in which the messages from the
DOMAINNAME message catalog will be returned. */
char *
BIND_TEXTDOMAIN_CODESET (domainname, codeset)
const char *domainname;
const char *codeset;
{
set_binding_values (domainname, NULL, &codeset);
return (char *) codeset;
}
#ifdef _LIBC
/* Alias for function name in GNU C Library. */
/* Aliases for function names in GNU C Library. */
weak_alias (__bindtextdomain, bindtextdomain);
weak_alias (__bind_textdomain_codeset, bind_textdomain_codeset);
#endif

View File

@@ -1,262 +0,0 @@
/* Compatibility code for gettext-using-catgets interface.
Copyright (C) 1995, 1997 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <stdio.h>
#ifdef STDC_HEADERS
# include <stdlib.h>
# include <string.h>
#else
char *getenv ();
# ifdef HAVE_MALLOC_H
# include <malloc.h>
# endif
#endif
#ifdef HAVE_NL_TYPES_H
# include <nl_types.h>
#endif
#include "libgettext.h"
/* @@ end of prolog @@ */
/* XPG3 defines the result of `setlocale (category, NULL)' as:
``Directs `setlocale()' to query `category' and return the current
setting of `local'.''
However it does not specify the exact format. And even worse: POSIX
defines this not at all. So we can use this feature only on selected
system (e.g. those using GNU C Library). */
#ifdef _LIBC
# define HAVE_LOCALE_NULL
#endif
/* The catalog descriptor. */
static nl_catd catalog = (nl_catd) -1;
/* Name of the default catalog. */
static const char default_catalog_name[] = "messages";
/* Name of currently used catalog. */
static const char *catalog_name = default_catalog_name;
/* Get ID for given string. If not found return -1. */
static int msg_to_cat_id PARAMS ((const char *msg));
/* Substitution for systems lacking this function in their C library. */
#if !_LIBC && !HAVE_STPCPY
static char *stpcpy PARAMS ((char *dest, const char *src));
#endif
/* Set currently used domain/catalog. */
char *
textdomain (domainname)
const char *domainname;
{
nl_catd new_catalog;
char *new_name;
size_t new_name_len;
char *lang;
#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES \
&& defined HAVE_LOCALE_NULL
lang = setlocale (LC_MESSAGES, NULL);
#else
lang = getenv ("LC_ALL");
if (lang == NULL || lang[0] == '\0')
{
lang = getenv ("LC_MESSAGES");
if (lang == NULL || lang[0] == '\0')
lang = getenv ("LANG");
}
#endif
if (lang == NULL || lang[0] == '\0')
lang = "C";
/* See whether name of currently used domain is asked. */
if (domainname == NULL)
return (char *) catalog_name;
if (domainname[0] == '\0')
domainname = default_catalog_name;
/* Compute length of added path element. */
new_name_len = sizeof (LOCALEDIR) - 1 + 1 + strlen (lang)
+ sizeof ("/LC_MESSAGES/") - 1 + sizeof (PACKAGE) - 1
+ sizeof (".cat");
new_name = (char *) malloc (new_name_len);
if (new_name == NULL)
return NULL;
strcpy (new_name, PACKAGE);
new_catalog = catopen (new_name, 0);
if (new_catalog == (nl_catd) -1)
{
/* NLSPATH search didn't work, try absolute path */
sprintf (new_name, "%s/%s/LC_MESSAGES/%s.cat", LOCALEDIR, lang,
PACKAGE);
new_catalog = catopen (new_name, 0);
if (new_catalog == (nl_catd) -1)
{
free (new_name);
return (char *) catalog_name;
}
}
/* Close old catalog. */
if (catalog != (nl_catd) -1)
catclose (catalog);
if (catalog_name != default_catalog_name)
free ((char *) catalog_name);
catalog = new_catalog;
catalog_name = new_name;
return (char *) catalog_name;
}
char *
bindtextdomain (domainname, dirname)
const char *domainname;
const char *dirname;
{
#if HAVE_SETENV || HAVE_PUTENV
char *old_val, *new_val, *cp;
size_t new_val_len;
/* This does not make much sense here but to be compatible do it. */
if (domainname == NULL)
return NULL;
/* Compute length of added path element. If we use setenv we don't need
the first byts for NLSPATH=, but why complicate the code for this
peanuts. */
new_val_len = sizeof ("NLSPATH=") - 1 + strlen (dirname)
+ sizeof ("/%L/LC_MESSAGES/%N.cat");
old_val = getenv ("NLSPATH");
if (old_val == NULL || old_val[0] == '\0')
{
old_val = NULL;
new_val_len += 1 + sizeof (LOCALEDIR) - 1
+ sizeof ("/%L/LC_MESSAGES/%N.cat");
}
else
new_val_len += strlen (old_val);
new_val = (char *) malloc (new_val_len);
if (new_val == NULL)
return NULL;
# if HAVE_SETENV
cp = new_val;
# else
cp = stpcpy (new_val, "NLSPATH=");
# endif
cp = stpcpy (cp, dirname);
cp = stpcpy (cp, "/%L/LC_MESSAGES/%N.cat:");
if (old_val == NULL)
{
# if __STDC__
stpcpy (cp, LOCALEDIR "/%L/LC_MESSAGES/%N.cat");
# else
cp = stpcpy (cp, LOCALEDIR);
stpcpy (cp, "/%L/LC_MESSAGES/%N.cat");
# endif
}
else
stpcpy (cp, old_val);
# if HAVE_SETENV
setenv ("NLSPATH", new_val, 1);
free (new_val);
# else
putenv (new_val);
/* Do *not* free the environment entry we just entered. It is used
from now on. */
# endif
#endif
return (char *) domainname;
}
#undef gettext
char *
gettext (msg)
const char *msg;
{
int msgid;
if (msg == NULL || catalog == (nl_catd) -1)
return (char *) msg;
/* Get the message from the catalog. We always use set number 1.
The message ID is computed by the function `msg_to_cat_id'
which works on the table generated by `po-to-tbl'. */
msgid = msg_to_cat_id (msg);
if (msgid == -1)
return (char *) msg;
return catgets (catalog, 1, msgid, (char *) msg);
}
/* Look through the table `_msg_tbl' which has `_msg_tbl_length' entries
for the one equal to msg. If it is found return the ID. In case when
the string is not found return -1. */
static int
msg_to_cat_id (msg)
const char *msg;
{
int cnt;
for (cnt = 0; cnt < _msg_tbl_length; ++cnt)
if (strcmp (msg, _msg_tbl[cnt]._msg) == 0)
return _msg_tbl[cnt]._msg_number;
return -1;
}
/* @@ begin of epilog @@ */
/* We don't want libintl.a to depend on any other library. So we
avoid the non-standard function stpcpy. In GNU C Library this
function is available, though. Also allow the symbol HAVE_STPCPY
to be defined. */
#if !_LIBC && !HAVE_STPCPY
static char *
stpcpy (dest, src)
char *dest;
const char *src;
{
while ((*dest++ = *src++) != '\0')
/* Do nothing. */ ;
return dest - 1;
}
#endif

438
intl/config.charset Executable file
View File

@@ -0,0 +1,438 @@
#! /bin/sh
# Output a system dependent table of character encoding aliases.
#
# Copyright (C) 2000-2001 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU Library General Public License as published
# by the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
# USA.
#
# The table consists of lines of the form
# ALIAS CANONICAL
#
# ALIAS is the (system dependent) result of "nl_langinfo (CODESET)".
# ALIAS is compared in a case sensitive way.
#
# CANONICAL is the GNU canonical name for this character encoding.
# It must be an encoding supported by libiconv. Support by GNU libc is
# also desirable. CANONICAL is case insensitive. Usually an upper case
# MIME charset name is preferred.
# The current list of GNU canonical charset names is as follows.
#
# name used by which systems a MIME name?
# ASCII, ANSI_X3.4-1968 glibc solaris freebsd
# ISO-8859-1 glibc aix hpux irix osf solaris freebsd yes
# ISO-8859-2 glibc aix hpux irix osf solaris freebsd yes
# ISO-8859-3 glibc yes
# ISO-8859-4 osf solaris freebsd yes
# ISO-8859-5 glibc aix hpux irix osf solaris freebsd yes
# ISO-8859-6 glibc aix hpux solaris yes
# ISO-8859-7 glibc aix hpux irix osf solaris yes
# ISO-8859-8 glibc aix hpux osf solaris yes
# ISO-8859-9 glibc aix hpux irix osf solaris yes
# ISO-8859-13 glibc
# ISO-8859-15 glibc aix osf solaris freebsd
# KOI8-R glibc solaris freebsd yes
# KOI8-U glibc freebsd yes
# CP437 dos
# CP775 dos
# CP850 aix osf dos
# CP852 dos
# CP855 dos
# CP856 aix
# CP857 dos
# CP861 dos
# CP862 dos
# CP864 dos
# CP865 dos
# CP866 freebsd dos
# CP869 dos
# CP874 win32 dos
# CP922 aix
# CP932 aix win32 dos
# CP943 aix
# CP949 osf win32 dos
# CP950 win32 dos
# CP1046 aix
# CP1124 aix
# CP1129 aix
# CP1250 win32
# CP1251 glibc win32
# CP1252 aix win32
# CP1253 win32
# CP1254 win32
# CP1255 win32
# CP1256 win32
# CP1257 win32
# GB2312 glibc aix hpux irix solaris freebsd yes
# EUC-JP glibc aix hpux irix osf solaris freebsd yes
# EUC-KR glibc aix hpux irix osf solaris freebsd yes
# EUC-TW glibc aix hpux irix osf solaris
# BIG5 glibc aix hpux osf solaris freebsd yes
# BIG5-HKSCS glibc
# GBK aix osf win32 dos
# GB18030 glibc
# SHIFT_JIS hpux osf solaris freebsd yes
# JOHAB glibc win32
# TIS-620 glibc aix hpux osf solaris
# VISCII glibc yes
# HP-ROMAN8 hpux
# HP-ARABIC8 hpux
# HP-GREEK8 hpux
# HP-HEBREW8 hpux
# HP-TURKISH8 hpux
# HP-KANA8 hpux
# DEC-KANJI osf
# DEC-HANYU osf
# UTF-8 glibc aix hpux osf solaris yes
#
# Note: Names which are not marked as being a MIME name should not be used in
# Internet protocols for information interchange (mail, news, etc.).
#
# Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications
# must understand both names and treat them as equivalent.
#
# The first argument passed to this file is the canonical host specification,
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
# or
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
host="$1"
os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'`
echo "# This file contains a table of character encoding aliases,"
echo "# suitable for operating system '${os}'."
echo "# It was automatically generated from config.charset."
# List of references, updated during installation:
echo "# Packages using this file: "
case "$os" in
linux* | *-gnu*)
# With glibc-2.1 or newer, we don't need any canonicalization,
# because glibc has iconv and both glibc and libiconv support all
# GNU canonical names directly. Therefore, the Makefile does not
# need to install the alias file at all.
# The following applies only to glibc-2.0.x and older libcs.
echo "ISO_646.IRV:1983 ASCII"
;;
aix*)
echo "ISO8859-1 ISO-8859-1"
echo "ISO8859-2 ISO-8859-2"
echo "ISO8859-5 ISO-8859-5"
echo "ISO8859-6 ISO-8859-6"
echo "ISO8859-7 ISO-8859-7"
echo "ISO8859-8 ISO-8859-8"
echo "ISO8859-9 ISO-8859-9"
echo "ISO8859-15 ISO-8859-15"
echo "IBM-850 CP850"
echo "IBM-856 CP856"
echo "IBM-921 ISO-8859-13"
echo "IBM-922 CP922"
echo "IBM-932 CP932"
echo "IBM-943 CP943"
echo "IBM-1046 CP1046"
echo "IBM-1124 CP1124"
echo "IBM-1129 CP1129"
echo "IBM-1252 CP1252"
echo "IBM-eucCN GB2312"
echo "IBM-eucJP EUC-JP"
echo "IBM-eucKR EUC-KR"
echo "IBM-eucTW EUC-TW"
echo "big5 BIG5"
echo "GBK GBK"
echo "TIS-620 TIS-620"
echo "UTF-8 UTF-8"
;;
hpux*)
echo "iso88591 ISO-8859-1"
echo "iso88592 ISO-8859-2"
echo "iso88595 ISO-8859-5"
echo "iso88596 ISO-8859-6"
echo "iso88597 ISO-8859-7"
echo "iso88598 ISO-8859-8"
echo "iso88599 ISO-8859-9"
echo "iso885915 ISO-8859-15"
echo "roman8 HP-ROMAN8"
echo "arabic8 HP-ARABIC8"
echo "greek8 HP-GREEK8"
echo "hebrew8 HP-HEBREW8"
echo "turkish8 HP-TURKISH8"
echo "kana8 HP-KANA8"
echo "tis620 TIS-620"
echo "big5 BIG5"
echo "eucJP EUC-JP"
echo "eucKR EUC-KR"
echo "eucTW EUC-TW"
echo "hp15CN GB2312"
#echo "ccdc ?" # what is this?
echo "SJIS SHIFT_JIS"
echo "utf8 UTF-8"
;;
irix*)
echo "ISO8859-1 ISO-8859-1"
echo "ISO8859-2 ISO-8859-2"
echo "ISO8859-5 ISO-8859-5"
echo "ISO8859-7 ISO-8859-7"
echo "ISO8859-9 ISO-8859-9"
echo "eucCN GB2312"
echo "eucJP EUC-JP"
echo "eucKR EUC-KR"
echo "eucTW EUC-TW"
;;
osf*)
echo "ISO8859-1 ISO-8859-1"
echo "ISO8859-2 ISO-8859-2"
echo "ISO8859-4 ISO-8859-4"
echo "ISO8859-5 ISO-8859-5"
echo "ISO8859-7 ISO-8859-7"
echo "ISO8859-8 ISO-8859-8"
echo "ISO8859-9 ISO-8859-9"
echo "ISO8859-15 ISO-8859-15"
echo "cp850 CP850"
echo "big5 BIG5"
echo "dechanyu DEC-HANYU"
echo "dechanzi GB2312"
echo "deckanji DEC-KANJI"
echo "deckorean EUC-KR"
echo "eucJP EUC-JP"
echo "eucKR EUC-KR"
echo "eucTW EUC-TW"
echo "GBK GBK"
echo "KSC5601 CP949"
echo "sdeckanji EUC-JP"
echo "SJIS SHIFT_JIS"
echo "TACTIS TIS-620"
echo "UTF-8 UTF-8"
;;
solaris*)
echo "646 ASCII"
echo "ISO8859-1 ISO-8859-1"
echo "ISO8859-2 ISO-8859-2"
echo "ISO8859-4 ISO-8859-4"
echo "ISO8859-5 ISO-8859-5"
echo "ISO8859-6 ISO-8859-6"
echo "ISO8859-7 ISO-8859-7"
echo "ISO8859-8 ISO-8859-8"
echo "ISO8859-9 ISO-8859-9"
echo "ISO8859-15 ISO-8859-15"
echo "koi8-r KOI8-R"
echo "BIG5 BIG5"
echo "gb2312 GB2312"
echo "cns11643 EUC-TW"
echo "5601 EUC-KR"
echo "eucJP EUC-JP"
echo "PCK SHIFT_JIS"
echo "TIS620.2533 TIS-620"
#echo "sun_eu_greek ?" # what is this?
echo "UTF-8 UTF-8"
;;
freebsd*)
# FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore
# localcharset.c falls back to using the full locale name
# from the environment variables.
echo "C ASCII"
echo "US-ASCII ASCII"
for l in la_LN lt_LN; do
echo "$l.ASCII ASCII"
done
for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \
lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do
echo "$l.ISO_8859-1 ISO-8859-1"
echo "$l.DIS_8859-15 ISO-8859-15"
done
for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do
echo "$l.ISO_8859-2 ISO-8859-2"
done
for l in la_LN lt_LT; do
echo "$l.ISO_8859-4 ISO-8859-4"
done
for l in ru_RU ru_SU; do
echo "$l.KOI8-R KOI8-R"
echo "$l.ISO_8859-5 ISO-8859-5"
echo "$l.CP866 CP866"
done
echo "uk_UA.KOI8-U KOI8-U"
echo "zh_TW.BIG5 BIG5"
echo "zh_TW.Big5 BIG5"
echo "zh_CN.EUC GB2312"
echo "ja_JP.EUC EUC-JP"
echo "ja_JP.SJIS SHIFT_JIS"
echo "ja_JP.Shift_JIS SHIFT_JIS"
echo "ko_KR.EUC EUC-KR"
;;
beos*)
# BeOS has a single locale, and it has UTF-8 encoding.
echo "* UTF-8"
;;
msdosdjgpp*)
# DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore
# localcharset.c falls back to using the full locale name
# from the environment variables.
echo "#"
echo "# The encodings given here may not all be correct."
echo "# If you find that the encoding given for your language and"
echo "# country is not the one your DOS machine actually uses, just"
echo "# correct it in this file, and send a mail to"
echo "# Juan Manuel Guerrero <st001906@hrz1.hrz.tu-darmstadt.de>"
echo "# and Bruno Haible <haible@clisp.cons.org>."
echo "#"
echo "C ASCII"
# ISO-8859-1 languages
echo "ca CP850"
echo "ca_ES CP850"
echo "da CP865" # not CP850 ??
echo "da_DK CP865" # not CP850 ??
echo "de CP850"
echo "de_AT CP850"
echo "de_CH CP850"
echo "de_DE CP850"
echo "en CP850"
echo "en_AU CP850" # not CP437 ??
echo "en_CA CP850"
echo "en_GB CP850"
echo "en_NZ CP437"
echo "en_US CP437"
echo "en_ZA CP850" # not CP437 ??
echo "es CP850"
echo "es_AR CP850"
echo "es_BO CP850"
echo "es_CL CP850"
echo "es_CO CP850"
echo "es_CR CP850"
echo "es_CU CP850"
echo "es_DO CP850"
echo "es_EC CP850"
echo "es_ES CP850"
echo "es_GT CP850"
echo "es_HN CP850"
echo "es_MX CP850"
echo "es_NI CP850"
echo "es_PA CP850"
echo "es_PY CP850"
echo "es_PE CP850"
echo "es_SV CP850"
echo "es_UY CP850"
echo "es_VE CP850"
echo "et CP850"
echo "et_EE CP850"
echo "eu CP850"
echo "eu_ES CP850"
echo "fi CP850"
echo "fi_FI CP850"
echo "fr CP850"
echo "fr_BE CP850"
echo "fr_CA CP850"
echo "fr_CH CP850"
echo "fr_FR CP850"
echo "ga CP850"
echo "ga_IE CP850"
echo "gd CP850"
echo "gd_GB CP850"
echo "gl CP850"
echo "gl_ES CP850"
echo "id CP850" # not CP437 ??
echo "id_ID CP850" # not CP437 ??
echo "is CP861" # not CP850 ??
echo "is_IS CP861" # not CP850 ??
echo "it CP850"
echo "it_CH CP850"
echo "it_IT CP850"
echo "lt CP775"
echo "lt_LT CP775"
echo "lv CP775"
echo "lv_LV CP775"
echo "nb CP865" # not CP850 ??
echo "nb_NO CP865" # not CP850 ??
echo "nl CP850"
echo "nl_BE CP850"
echo "nl_NL CP850"
echo "nn CP865" # not CP850 ??
echo "nn_NO CP865" # not CP850 ??
echo "no CP865" # not CP850 ??
echo "no_NO CP865" # not CP850 ??
echo "pt CP850"
echo "pt_BR CP850"
echo "pt_PT CP850"
echo "sv CP850"
echo "sv_SE CP850"
# ISO-8859-2 languages
echo "cs CP852"
echo "cs_CZ CP852"
echo "hr CP852"
echo "hr_HR CP852"
echo "hu CP852"
echo "hu_HU CP852"
echo "pl CP852"
echo "pl_PL CP852"
echo "ro CP852"
echo "ro_RO CP852"
echo "sk CP852"
echo "sk_SK CP852"
echo "sl CP852"
echo "sl_SI CP852"
echo "sq CP852"
echo "sq_AL CP852"
echo "sr CP852" # CP852 or CP866 or CP855 ??
echo "sr_YU CP852" # CP852 or CP866 or CP855 ??
# ISO-8859-3 languages
echo "mt CP850"
echo "mt_MT CP850"
# ISO-8859-5 languages
echo "be CP866"
echo "be_BE CP866"
echo "bg CP866" # not CP855 ??
echo "bg_BG CP866" # not CP855 ??
echo "mk CP866" # not CP855 ??
echo "mk_MK CP866" # not CP855 ??
echo "ru KOI8-R" # not CP866 ??
echo "ru_RU KOI8-R" # not CP866 ??
# ISO-8859-6 languages
echo "ar CP864"
echo "ar_AE CP864"
echo "ar_DZ CP864"
echo "ar_EG CP864"
echo "ar_IQ CP864"
echo "ar_IR CP864"
echo "ar_JO CP864"
echo "ar_KW CP864"
echo "ar_MA CP864"
echo "ar_OM CP864"
echo "ar_QA CP864"
echo "ar_SA CP864"
echo "ar_SY CP864"
# ISO-8859-7 languages
echo "el CP869"
echo "el_GR CP869"
# ISO-8859-8 languages
echo "he CP862"
echo "he_IL CP862"
# ISO-8859-9 languages
echo "tr CP857"
echo "tr_TR CP857"
# Japanese
echo "ja CP932"
echo "ja_JP CP932"
# Chinese
echo "zh_CN GBK"
echo "zh_TW CP950" # not CP938 ??
# Korean
echo "kr CP949" # not CP934 ??
echo "kr_KR CP949" # not CP934 ??
# Thai
echo "th CP874"
echo "th_TH CP874"
# Other
echo "eo CP850"
echo "eo_EO CP850"
;;
esac

View File

@@ -1,238 +1,44 @@
/* Implementation of the dcgettext(3) function.
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <sys/types.h>
#if defined __GNUC__ && !defined C_ALLOCA
# define alloca __builtin_alloca
# define HAVE_ALLOCA 1
#else
# if (defined HAVE_ALLOCA_H || defined _LIBC) && !defined C_ALLOCA
# include <alloca.h>
# else
# ifdef _AIX
#pragma alloca
# else
# ifndef alloca
char *alloca ();
# endif
# endif
# endif
#endif
#include <errno.h>
#ifndef errno
extern int errno;
#endif
#ifndef __set_errno
# define __set_errno(val) errno = (val)
#endif
#if defined STDC_HEADERS || defined _LIBC
# include <stdlib.h>
#else
char *getenv ();
# ifdef HAVE_MALLOC_H
# include <malloc.h>
# else
void free ();
# endif
#endif
#if defined HAVE_STRING_H || defined _LIBC
# ifndef _GNU_SOURCE
# define _GNU_SOURCE 1
# endif
# include <string.h>
#else
# include <strings.h>
#endif
#if !HAVE_STRCHR && !defined _LIBC
# ifndef strchr
# define strchr index
# endif
#endif
#if defined HAVE_UNISTD_H || defined _LIBC
# include <unistd.h>
#endif
#include "gettext.h"
#include "gettextP.h"
#ifdef _LIBC
# include <libintl.h>
#else
# include "libgettext.h"
# include "libgnuintl.h"
#endif
#include "hash-string.h"
/* @@ end of prolog @@ */
#ifdef _LIBC
/* Rename the non ANSI C functions. This is required by the standard
because some ANSI C functions will require linking with this object
file and the name space must not be polluted. */
# define getcwd __getcwd
# ifndef stpcpy
# define stpcpy __stpcpy
# endif
#else
# if !defined HAVE_GETCWD
char *getwd ();
# define getcwd(buf, max) getwd (buf)
# else
char *getcwd ();
# endif
# ifndef HAVE_STPCPY
static char *stpcpy PARAMS ((char *dest, const char *src));
# endif
#endif
/* Amount to increase buffer size by in each try. */
#define PATH_INCR 32
/* The following is from pathmax.h. */
/* Non-POSIX BSD systems might have gcc's limits.h, which doesn't define
PATH_MAX but might cause redefinition warnings when sys/param.h is
later included (as on MORE/BSD 4.3). */
#if defined(_POSIX_VERSION) || (defined(HAVE_LIMITS_H) && !defined(__GNUC__))
# include <limits.h>
#endif
#ifndef _POSIX_PATH_MAX
# define _POSIX_PATH_MAX 255
#endif
#if !defined(PATH_MAX) && defined(_PC_PATH_MAX)
# define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 : pathconf ("/", _PC_PATH_MAX))
#endif
/* Don't include sys/param.h if it already has been. */
#if defined(HAVE_SYS_PARAM_H) && !defined(PATH_MAX) && !defined(MAXPATHLEN)
# include <sys/param.h>
#endif
#if !defined(PATH_MAX) && defined(MAXPATHLEN)
# define PATH_MAX MAXPATHLEN
#endif
#ifndef PATH_MAX
# define PATH_MAX _POSIX_PATH_MAX
#endif
/* XPG3 defines the result of `setlocale (category, NULL)' as:
``Directs `setlocale()' to query `category' and return the current
setting of `local'.''
However it does not specify the exact format. And even worse: POSIX
defines this not at all. So we can use this feature only on selected
system (e.g. those using GNU C Library). */
#ifdef _LIBC
# define HAVE_LOCALE_NULL
#endif
/* Name of the default domain used for gettext(3) prior any call to
textdomain(3). The default value for this is "messages". */
const char _nl_default_default_domain[] = "messages";
/* Value used as the default domain for gettext(3). */
const char *_nl_current_default_domain = _nl_default_default_domain;
/* Contains the default location of the message catalogs. */
const char _nl_default_dirname[] = GNULOCALEDIR;
/* List with bindings of specific domains created by bindtextdomain()
calls. */
struct binding *_nl_domain_bindings;
/* Prototypes for local functions. */
static char *find_msg PARAMS ((struct loaded_l10nfile *domain_file,
const char *msgid)) internal_function;
static const char *category_to_name PARAMS ((int category)) internal_function;
static const char *guess_category_value PARAMS ((int category,
const char *categoryname))
internal_function;
/* For those loosing systems which don't have `alloca' we have to add
some additional code emulating it. */
#ifdef HAVE_ALLOCA
/* Nothing has to be done. */
# define ADD_BLOCK(list, address) /* nothing */
# define FREE_BLOCKS(list) /* nothing */
#else
struct block_list
{
void *address;
struct block_list *next;
};
# define ADD_BLOCK(list, addr) \
do { \
struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \
/* If we cannot get a free block we cannot add the new element to \
the list. */ \
if (newp != NULL) { \
newp->address = (addr); \
newp->next = (list); \
(list) = newp; \
} \
} while (0)
# define FREE_BLOCKS(list) \
do { \
while (list != NULL) { \
struct block_list *old = list; \
list = list->next; \
free (old); \
} \
} while (0)
# undef alloca
# define alloca(size) (malloc (size))
#endif /* have alloca */
/* Names for the libintl functions are a problem. They must not clash
with existing names and they should follow ANSI C. But this source
code is also used in GNU C Library where the names have a __
prefix. So we have to make a difference here. */
#ifdef _LIBC
# define DCGETTEXT __dcgettext
# define DCIGETTEXT __dcigettext
#else
# define DCGETTEXT dcgettext__
#endif
/* Checking whether the binaries runs SUID must be done and glibc provides
easier methods therefore we make a difference here. */
#ifdef _LIBC
# define ENABLE_SECURE __libc_enable_secure
# define DETERMINE_SECURE
#else
static int enable_secure;
# define ENABLE_SECURE (enable_secure == 1)
# define DETERMINE_SECURE \
if (enable_secure == 0) \
{ \
if (getuid () != geteuid () || getgid () != getegid ()) \
enable_secure = 1; \
else \
enable_secure = -1; \
}
# define DCIGETTEXT dcigettext__
#endif
/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
@@ -243,413 +49,10 @@ DCGETTEXT (domainname, msgid, category)
const char *msgid;
int category;
{
#ifndef HAVE_ALLOCA
struct block_list *block_list = NULL;
#endif
struct loaded_l10nfile *domain;
struct binding *binding;
const char *categoryname;
const char *categoryvalue;
char *dirname, *xdomainname;
char *single_locale;
char *retval;
int saved_errno = errno;
/* If no real MSGID is given return NULL. */
if (msgid == NULL)
return NULL;
/* See whether this is a SUID binary or not. */
DETERMINE_SECURE;
/* If DOMAINNAME is NULL, we are interested in the default domain. If
CATEGORY is not LC_MESSAGES this might not make much sense but the
definition left this undefined. */
if (domainname == NULL)
domainname = _nl_current_default_domain;
/* First find matching binding. */
for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
{
int compare = strcmp (domainname, binding->domainname);
if (compare == 0)
/* We found it! */
break;
if (compare < 0)
{
/* It is not in the list. */
binding = NULL;
break;
}
}
if (binding == NULL)
dirname = (char *) _nl_default_dirname;
else if (binding->dirname[0] == '/')
dirname = binding->dirname;
else
{
/* We have a relative path. Make it absolute now. */
size_t dirname_len = strlen (binding->dirname) + 1;
size_t path_max;
char *ret;
path_max = (unsigned int) PATH_MAX;
path_max += 2; /* The getcwd docs say to do this. */
dirname = (char *) alloca (path_max + dirname_len);
ADD_BLOCK (block_list, dirname);
__set_errno (0);
while ((ret = getcwd (dirname, path_max)) == NULL && errno == ERANGE)
{
path_max += PATH_INCR;
dirname = (char *) alloca (path_max + dirname_len);
ADD_BLOCK (block_list, dirname);
__set_errno (0);
}
if (ret == NULL)
{
/* We cannot get the current working directory. Don't signal an
error but simply return the default string. */
FREE_BLOCKS (block_list);
__set_errno (saved_errno);
return (char *) msgid;
}
stpcpy (stpcpy (strchr (dirname, '\0'), "/"), binding->dirname);
}
/* Now determine the symbolic name of CATEGORY and its value. */
categoryname = category_to_name (category);
categoryvalue = guess_category_value (category, categoryname);
xdomainname = (char *) alloca (strlen (categoryname)
+ strlen (domainname) + 5);
ADD_BLOCK (block_list, xdomainname);
stpcpy (stpcpy (stpcpy (stpcpy (xdomainname, categoryname), "/"),
domainname),
".mo");
/* Creating working area. */
single_locale = (char *) alloca (strlen (categoryvalue) + 1);
ADD_BLOCK (block_list, single_locale);
/* Search for the given string. This is a loop because we perhaps
got an ordered list of languages to consider for the translation. */
while (1)
{
/* Make CATEGORYVALUE point to the next element of the list. */
while (categoryvalue[0] != '\0' && categoryvalue[0] == ':')
++categoryvalue;
if (categoryvalue[0] == '\0')
{
/* The whole contents of CATEGORYVALUE has been searched but
no valid entry has been found. We solve this situation
by implicitly appending a "C" entry, i.e. no translation
will take place. */
single_locale[0] = 'C';
single_locale[1] = '\0';
}
else
{
char *cp = single_locale;
while (categoryvalue[0] != '\0' && categoryvalue[0] != ':')
*cp++ = *categoryvalue++;
*cp = '\0';
/* When this is a SUID binary we must not allow accessing files
outside the dedicated directories. */
if (ENABLE_SECURE
&& (memchr (single_locale, '/',
_nl_find_language (single_locale) - single_locale)
!= NULL))
/* Ingore this entry. */
continue;
}
/* If the current locale value is C (or POSIX) we don't load a
domain. Return the MSGID. */
if (strcmp (single_locale, "C") == 0
|| strcmp (single_locale, "POSIX") == 0)
{
FREE_BLOCKS (block_list);
__set_errno (saved_errno);
return (char *) msgid;
}
/* Find structure describing the message catalog matching the
DOMAINNAME and CATEGORY. */
domain = _nl_find_domain (dirname, single_locale, xdomainname);
if (domain != NULL)
{
retval = find_msg (domain, msgid);
if (retval == NULL)
{
int cnt;
for (cnt = 0; domain->successor[cnt] != NULL; ++cnt)
{
retval = find_msg (domain->successor[cnt], msgid);
if (retval != NULL)
break;
}
}
if (retval != NULL)
{
FREE_BLOCKS (block_list);
__set_errno (saved_errno);
return retval;
}
}
}
/* NOTREACHED */
return DCIGETTEXT (domainname, msgid, NULL, 0, 0, category);
}
#ifdef _LIBC
/* Alias for function name in GNU C Library. */
weak_alias (__dcgettext, dcgettext);
#endif
static char *
internal_function
find_msg (domain_file, msgid)
struct loaded_l10nfile *domain_file;
const char *msgid;
{
size_t act = 0;
size_t top, bottom;
struct loaded_domain *domain;
if (domain_file->decided == 0)
_nl_load_domain (domain_file);
if (domain_file->data == NULL)
return NULL;
domain = (struct loaded_domain *) domain_file->data;
/* Locate the MSGID and its translation. */
if (domain->hash_size > 2 && domain->hash_tab != NULL)
{
/* Use the hashing table. */
nls_uint32 len = strlen (msgid);
nls_uint32 hash_val = hash_string (msgid);
nls_uint32 idx = hash_val % domain->hash_size;
nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2));
nls_uint32 nstr = W (domain->must_swap, domain->hash_tab[idx]);
if (nstr == 0)
/* Hash table entry is empty. */
return NULL;
if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) == len
&& strcmp (msgid,
domain->data + W (domain->must_swap,
domain->orig_tab[nstr - 1].offset)) == 0)
return (char *) domain->data + W (domain->must_swap,
domain->trans_tab[nstr - 1].offset);
while (1)
{
if (idx >= domain->hash_size - incr)
idx -= domain->hash_size - incr;
else
idx += incr;
nstr = W (domain->must_swap, domain->hash_tab[idx]);
if (nstr == 0)
/* Hash table entry is empty. */
return NULL;
if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) == len
&& strcmp (msgid,
domain->data + W (domain->must_swap,
domain->orig_tab[nstr - 1].offset))
== 0)
return (char *) domain->data
+ W (domain->must_swap, domain->trans_tab[nstr - 1].offset);
}
/* NOTREACHED */
}
/* Now we try the default method: binary search in the sorted
array of messages. */
bottom = 0;
top = domain->nstrings;
while (bottom < top)
{
int cmp_val;
act = (bottom + top) / 2;
cmp_val = strcmp (msgid, domain->data
+ W (domain->must_swap,
domain->orig_tab[act].offset));
if (cmp_val < 0)
top = act;
else if (cmp_val > 0)
bottom = act + 1;
else
break;
}
/* If an translation is found return this. */
return bottom >= top ? NULL : (char *) domain->data
+ W (domain->must_swap,
domain->trans_tab[act].offset);
}
/* Return string representation of locale CATEGORY. */
static const char *
internal_function
category_to_name (category)
int category;
{
const char *retval;
switch (category)
{
#ifdef LC_COLLATE
case LC_COLLATE:
retval = "LC_COLLATE";
break;
#endif
#ifdef LC_CTYPE
case LC_CTYPE:
retval = "LC_CTYPE";
break;
#endif
#ifdef LC_MONETARY
case LC_MONETARY:
retval = "LC_MONETARY";
break;
#endif
#ifdef LC_NUMERIC
case LC_NUMERIC:
retval = "LC_NUMERIC";
break;
#endif
#ifdef LC_TIME
case LC_TIME:
retval = "LC_TIME";
break;
#endif
#ifdef LC_MESSAGES
case LC_MESSAGES:
retval = "LC_MESSAGES";
break;
#endif
#ifdef LC_RESPONSE
case LC_RESPONSE:
retval = "LC_RESPONSE";
break;
#endif
#ifdef LC_ALL
case LC_ALL:
/* This might not make sense but is perhaps better than any other
value. */
retval = "LC_ALL";
break;
#endif
default:
/* If you have a better idea for a default value let me know. */
retval = "LC_XXX";
}
return retval;
}
/* Guess value of current locale from value of the environment variables. */
static const char *
internal_function
guess_category_value (category, categoryname)
int category;
const char *categoryname;
{
const char *retval;
/* The highest priority value is the `LANGUAGE' environment
variable. This is a GNU extension. */
retval = getenv ("LANGUAGE");
if (retval != NULL && retval[0] != '\0')
return retval;
/* `LANGUAGE' is not set. So we have to proceed with the POSIX
methods of looking to `LC_ALL', `LC_xxx', and `LANG'. On some
systems this can be done by the `setlocale' function itself. */
#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL
return setlocale (category, NULL);
#else
/* Setting of LC_ALL overwrites all other. */
retval = getenv ("LC_ALL");
if (retval != NULL && retval[0] != '\0')
return retval;
/* Next comes the name of the desired category. */
retval = getenv (categoryname);
if (retval != NULL && retval[0] != '\0')
return retval;
/* Last possibility is the LANG environment variable. */
retval = getenv ("LANG");
if (retval != NULL && retval[0] != '\0')
return retval;
/* We use C as the default domain. POSIX says this is implementation
defined. */
return "C";
#endif
}
/* @@ begin of epilog @@ */
/* We don't want libintl.a to depend on any other library. So we
avoid the non-standard function stpcpy. In GNU C Library this
function is available, though. Also allow the symbol HAVE_STPCPY
to be defined. */
#if !_LIBC && !HAVE_STPCPY
static char *
stpcpy (dest, src)
char *dest;
const char *src;
{
while ((*dest++ = *src++) != '\0')
/* Do nothing. */ ;
return dest - 1;
}
#endif
#ifdef _LIBC
/* If we want to free all resources we have to do some work at
program's end. */
static void __attribute__ ((unused))
free_mem (void)
{
struct binding *runp;
for (runp = _nl_domain_bindings; runp != NULL; runp = runp->next)
{
free (runp->domainname);
if (runp->dirname != _nl_default_dirname)
/* Yes, this is a pointer comparison. */
free (runp->dirname);
}
if (_nl_current_default_domain != _nl_default_default_domain)
/* Yes, again a pointer comparison. */
free ((char *) _nl_current_default_domain);
}
text_set_element (__libc_subfreeres, free_mem);
#endif

1259
intl/dcigettext.c Normal file

File diff suppressed because it is too large Load Diff

60
intl/dcngettext.c Normal file
View File

@@ -0,0 +1,60 @@
/* Implementation of the dcngettext(3) function.
Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "gettextP.h"
#ifdef _LIBC
# include <libintl.h>
#else
# include "libgnuintl.h"
#endif
/* @@ end of prolog @@ */
/* Names for the libintl functions are a problem. They must not clash
with existing names and they should follow ANSI C. But this source
code is also used in GNU C Library where the names have a __
prefix. So we have to make a difference here. */
#ifdef _LIBC
# define DCNGETTEXT __dcngettext
# define DCIGETTEXT __dcigettext
#else
# define DCNGETTEXT dcngettext__
# define DCIGETTEXT dcigettext__
#endif
/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
locale. */
char *
DCNGETTEXT (domainname, msgid1, msgid2, n, category)
const char *domainname;
const char *msgid1;
const char *msgid2;
unsigned long int n;
int category;
{
return DCIGETTEXT (domainname, msgid1, msgid2, 1, n, category);
}
#ifdef _LIBC
/* Alias for function name in GNU C Library. */
weak_alias (__dcngettext, dcngettext);
#endif

View File

@@ -1,32 +1,32 @@
/* Implementation of the dgettext(3) function
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
/* Implementation of the dgettext(3) function.
Copyright (C) 1995-1997, 2000, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#if defined HAVE_LOCALE_H || defined _LIBC
# include <locale.h>
#endif
#include <locale.h>
#include "gettextP.h"
#ifdef _LIBC
# include <libintl.h>
#else
# include "libgettext.h"
# include "libgnuintl.h"
#endif
/* @@ end of prolog @@ */

61
intl/dngettext.c Normal file
View File

@@ -0,0 +1,61 @@
/* Implementation of the dngettext(3) function.
Copyright (C) 1995-1997, 2000, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <locale.h>
#include "gettextP.h"
#ifdef _LIBC
# include <libintl.h>
#else
# include "libgnuintl.h"
#endif
/* @@ end of prolog @@ */
/* Names for the libintl functions are a problem. They must not clash
with existing names and they should follow ANSI C. But this source
code is also used in GNU C Library where the names have a __
prefix. So we have to make a difference here. */
#ifdef _LIBC
# define DNGETTEXT __dngettext
# define DCNGETTEXT __dcngettext
#else
# define DNGETTEXT dngettext__
# define DCNGETTEXT dcngettext__
#endif
/* Look up MSGID in the DOMAINNAME message catalog of the current
LC_MESSAGES locale and skip message according to the plural form. */
char *
DNGETTEXT (domainname, msgid1, msgid2, n)
const char *domainname;
const char *msgid1;
const char *msgid2;
unsigned long int n;
{
return DCNGETTEXT (domainname, msgid1, msgid2, n, LC_MESSAGES);
}
#ifdef _LIBC
/* Alias for function name in GNU C Library. */
weak_alias (__dngettext, dngettext);
#endif

View File

@@ -1,33 +1,27 @@
/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
/* Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#if defined STDC_HEADERS || defined _LIBC
# include <stdlib.h>
#endif
#if defined HAVE_STRING_H || defined _LIBC
# include <string.h>
#else
# include <strings.h>
#endif
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include "loadinfo.h"

View File

@@ -1,64 +1,40 @@
/* Handle list of needed message catalogs
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
Written by Ulrich Drepper <drepper@gnu.org>, 1995.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <ctype.h>
#include <errno.h>
#include <stdio.h>
#include <sys/types.h>
#if defined STDC_HEADERS || defined _LIBC
# include <stdlib.h>
#else
# ifdef HAVE_MALLOC_H
# include <malloc.h>
# else
void free ();
# endif
#endif
#if defined HAVE_STRING_H || defined _LIBC
# include <string.h>
#else
# include <strings.h>
# ifndef memcpy
# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
# endif
#endif
#if !HAVE_STRCHR && !defined _LIBC
# ifndef strchr
# define strchr index
# endif
#endif
#include <stdlib.h>
#include <string.h>
#if defined HAVE_UNISTD_H || defined _LIBC
# include <unistd.h>
#endif
#include "gettext.h"
#include "gettextP.h"
#ifdef _LIBC
# include <libintl.h>
#else
# include "libgettext.h"
# include "libgnuintl.h"
#endif
/* @@ end of prolog @@ */
@@ -71,10 +47,11 @@ static struct loaded_l10nfile *_nl_loaded_domains;
established bindings. */
struct loaded_l10nfile *
internal_function
_nl_find_domain (dirname, locale, domainname)
_nl_find_domain (dirname, locale, domainname, domainbinding)
const char *dirname;
char *locale;
const char *domainname;
struct binding *domainbinding;
{
struct loaded_l10nfile *retval;
const char *language;
@@ -120,7 +97,7 @@ _nl_find_domain (dirname, locale, domainname)
int cnt;
if (retval->decided == 0)
_nl_load_domain (retval);
_nl_load_domain (retval, domainbinding);
if (retval->data != NULL)
return retval;
@@ -128,7 +105,7 @@ _nl_find_domain (dirname, locale, domainname)
for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
{
if (retval->successor[cnt]->decided == 0)
_nl_load_domain (retval->successor[cnt]);
_nl_load_domain (retval->successor[cnt], domainbinding);
if (retval->successor[cnt]->data != NULL)
break;
@@ -175,14 +152,14 @@ _nl_find_domain (dirname, locale, domainname)
return NULL;
if (retval->decided == 0)
_nl_load_domain (retval);
_nl_load_domain (retval, domainbinding);
if (retval->data == NULL)
{
int cnt;
for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
{
if (retval->successor[cnt]->decided == 0)
_nl_load_domain (retval->successor[cnt]);
_nl_load_domain (retval->successor[cnt], domainbinding);
if (retval->successor[cnt]->data != NULL)
break;
}
@@ -192,6 +169,10 @@ _nl_find_domain (dirname, locale, domainname)
if (alias_value != NULL)
free (locale);
/* The space for normalized_codeset is dynamically allocated. Free it. */
if (mask & XPG_NORM_CODESET)
free ((void *) normalized_codeset);
return retval;
}
@@ -208,6 +189,7 @@ free_mem (void)
if (runp->data != NULL)
_nl_unload_domain ((struct loaded_domain *) runp->data);
runp = runp->next;
free ((char *) here->filename);
free (here);
}
}

View File

@@ -1,19 +1,20 @@
/* Implementation of gettext(3) function.
Copyright (C) 1995, 1997 Free Software Foundation, Inc.
Copyright (C) 1995, 1997, 2000, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
@@ -23,21 +24,14 @@
# define __need_NULL
# include <stddef.h>
#else
# ifdef STDC_HEADERS
# include <stdlib.h> /* Just for NULL. */
# else
# ifdef HAVE_STRING_H
# include <string.h>
# else
# define NULL ((void *) 0)
# endif
# endif
# include <stdlib.h> /* Just for NULL. */
#endif
#include "gettextP.h"
#ifdef _LIBC
# include <libintl.h>
#else
# include "libgettext.h"
# include "libgnuintl.h"
#endif
/* @@ end of prolog @@ */
@@ -48,10 +42,10 @@
prefix. So we have to make a difference here. */
#ifdef _LIBC
# define GETTEXT __gettext
# define DGETTEXT __dgettext
# define DCGETTEXT __dcgettext
#else
# define GETTEXT gettext__
# define DGETTEXT dgettext__
# define DCGETTEXT dcgettext__
#endif
/* Look up MSGID in the current default message catalog for the current
@@ -61,7 +55,7 @@ char *
GETTEXT (msgid)
const char *msgid;
{
return DGETTEXT (NULL, msgid);
return DCGETTEXT (NULL, msgid, LC_MESSAGES);
}
#ifdef _LIBC

View File

@@ -1,26 +1,24 @@
/* Internal header for GNU gettext internationalization functions.
Copyright (C) 1995, 1997 Free Software Foundation, Inc.
/* Description of GNU message catalog format: general file layout.
Copyright (C) 1995, 1997, 2000, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
#ifndef _GETTEXT_H
#define _GETTEXT_H 1
#include <stdio.h>
#if HAVE_LIMITS_H || _LIBC
# include <limits.h>
#endif
@@ -37,9 +35,8 @@
/* The following contortions are an attempt to use the C preprocessor
to determine an unsigned integral type that is 32 bits wide. An
alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
doing that would require that the configure script compile and *run*
the resulting executable. Locally running cross-compiled executables
is usually not possible. */
as of version autoconf-2.13, the AC_CHECK_SIZEOF macro doesn't work
when cross-compiling. */
#if __STDC__
# define UINT_MAX_32_BITS 4294967295U

View File

@@ -1,26 +1,39 @@
/* Header describing internals of gettext library
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
/* Header describing internals of libintl library.
Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
Written by Ulrich Drepper <drepper@cygnus.com>, 1995.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
#ifndef _GETTEXTP_H
#define _GETTEXTP_H
#include <stddef.h> /* Get size_t. */
#ifdef _LIBC
# include "../iconv/gconv_int.h"
#else
# if HAVE_ICONV
# include <iconv.h>
# endif
#endif
#include "loadinfo.h"
#include "gettext.h" /* Get nls_uint32. */
/* @@ end of prolog @@ */
#ifndef PARAMS
@@ -35,6 +48,12 @@
# define internal_function
#endif
/* Tell the compiler when a conditional or integer expression is
almost always true or almost always false. */
#ifndef HAVE_BUILTIN_EXPECT
# define __builtin_expect(expr, val) (expr)
#endif
#ifndef W
# define W(flag, data) ((flag) ? SWAP (data) : (data))
#endif
@@ -44,8 +63,6 @@
# include <byteswap.h>
# define SWAP(i) bswap_32 (i)
#else
static nls_uint32 SWAP PARAMS ((nls_uint32 i));
static inline nls_uint32
SWAP (i)
nls_uint32 i;
@@ -55,6 +72,52 @@ SWAP (i)
#endif
/* This is the representation of the expressions to determine the
plural form. */
struct expression
{
int nargs; /* Number of arguments. */
enum operator
{
/* Without arguments: */
var, /* The variable "n". */
num, /* Decimal number. */
/* Unary operators: */
lnot, /* Logical NOT. */
/* Binary operators: */
mult, /* Multiplication. */
divide, /* Division. */
module, /* Module operation. */
plus, /* Addition. */
minus, /* Subtraction. */
less_than, /* Comparison. */
greater_than, /* Comparison. */
less_or_equal, /* Comparison. */
greater_or_equal, /* Comparison. */
equal, /* Comparision for equality. */
not_equal, /* Comparision for inequality. */
land, /* Logical AND. */
lor, /* Logical OR. */
/* Ternary operators: */
qmop /* Question mark operator. */
} operation;
union
{
unsigned long int num; /* Number value for `num'. */
struct expression *args[3]; /* Up to three arguments. */
} val;
};
/* This is the data structure to pass information to the parser and get
the result in a thread-safe way. */
struct parse_args
{
const char *cp;
struct expression *res;
};
/* The representation of an opened message catalog. */
struct loaded_domain
{
const char *data;
@@ -66,23 +129,123 @@ struct loaded_domain
struct string_desc *trans_tab;
nls_uint32 hash_size;
nls_uint32 *hash_tab;
int codeset_cntr;
#ifdef _LIBC
__gconv_t conv;
#else
# if HAVE_ICONV
iconv_t conv;
# endif
#endif
char **conv_tab;
struct expression *plural;
unsigned long int nplurals;
};
/* We want to allocate a string at the end of the struct. But ISO C
doesn't allow zero sized arrays. */
#ifdef __GNUC__
# define ZERO 0
#else
# define ZERO 1
#endif
/* A set of settings bound to a message domain. Used to store settings
from bindtextdomain() and bind_textdomain_codeset(). */
struct binding
{
struct binding *next;
char *domainname;
char *dirname;
int codeset_cntr; /* Incremented each time codeset changes. */
char *codeset;
char domainname[ZERO];
};
/* A counter which is incremented each time some previous translations
become invalid.
This variable is part of the external ABI of the GNU libintl. */
extern int _nl_msg_cat_cntr;
struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname,
char *__locale,
const char *__domainname))
const char *__domainname,
struct binding *__domainbinding))
internal_function;
void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain))
void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain,
struct binding *__domainbinding))
internal_function;
void _nl_unload_domain PARAMS ((struct loaded_domain *__domain))
internal_function;
const char *_nl_init_domain_conv PARAMS ((struct loaded_l10nfile *__domain_file,
struct loaded_domain *__domain,
struct binding *__domainbinding))
internal_function;
void _nl_free_domain_conv PARAMS ((struct loaded_domain *__domain))
internal_function;
char *_nl_find_msg PARAMS ((struct loaded_l10nfile *domain_file,
struct binding *domainbinding,
const char *msgid, size_t *lengthp))
internal_function;
#ifdef _LIBC
extern char *__gettext PARAMS ((const char *__msgid));
extern char *__dgettext PARAMS ((const char *__domainname,
const char *__msgid));
extern char *__dcgettext PARAMS ((const char *__domainname,
const char *__msgid, int __category));
extern char *__ngettext PARAMS ((const char *__msgid1, const char *__msgid2,
unsigned long int __n));
extern char *__dngettext PARAMS ((const char *__domainname,
const char *__msgid1, const char *__msgid2,
unsigned long int n));
extern char *__dcngettext PARAMS ((const char *__domainname,
const char *__msgid1, const char *__msgid2,
unsigned long int __n, int __category));
extern char *__dcigettext PARAMS ((const char *__domainname,
const char *__msgid1, const char *__msgid2,
int __plural, unsigned long int __n,
int __category));
extern char *__textdomain PARAMS ((const char *__domainname));
extern char *__bindtextdomain PARAMS ((const char *__domainname,
const char *__dirname));
extern char *__bind_textdomain_codeset PARAMS ((const char *__domainname,
const char *__codeset));
#else
extern char *gettext__ PARAMS ((const char *__msgid));
extern char *dgettext__ PARAMS ((const char *__domainname,
const char *__msgid));
extern char *dcgettext__ PARAMS ((const char *__domainname,
const char *__msgid, int __category));
extern char *ngettext__ PARAMS ((const char *__msgid1, const char *__msgid2,
unsigned long int __n));
extern char *dngettext__ PARAMS ((const char *__domainname,
const char *__msgid1, const char *__msgid2,
unsigned long int __n));
extern char *dcngettext__ PARAMS ((const char *__domainname,
const char *__msgid1, const char *__msgid2,
unsigned long int __n, int __category));
extern char *dcigettext__ PARAMS ((const char *__domainname,
const char *__msgid1, const char *__msgid2,
int __plural, unsigned long int __n,
int __category));
extern char *textdomain__ PARAMS ((const char *__domainname));
extern char *bindtextdomain__ PARAMS ((const char *__domainname,
const char *__dirname));
extern char *bind_textdomain_codeset__ PARAMS ((const char *__domainname,
const char *__codeset));
#endif
#ifdef _LIBC
extern void __gettext_free_exp PARAMS ((struct expression *exp))
internal_function;
extern int __gettextparse PARAMS ((void *arg));
#else
extern void gettext_free_exp__ PARAMS ((struct expression *exp))
internal_function;
extern int gettextparse__ PARAMS ((void *arg));
#endif
/* @@ begin of epilog @@ */

View File

@@ -1,20 +1,20 @@
/* Implements a string hashing function.
Copyright (C) 1995, 1997 Free Software Foundation, Inc.
/* Description of GNU message catalog format: string hashing function.
Copyright (C) 1995, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
/* @@ end of prolog @@ */

View File

@@ -1,43 +1,99 @@
/* intl-compat.c - Stub functions to call gettext functions from GNU gettext
Library.
Copyright (C) 1995 Software Foundation, Inc.
Copyright (C) 1995, 2000, 2001 Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "libgettext.h"
#include "libgnuintl.h"
#include "gettextP.h"
/* @@ end of prolog @@ */
/* This file redirects the gettext functions (without prefix or suffix) to
those defined in the included GNU gettext library (with "__" suffix).
It is compiled into libintl when the included GNU gettext library is
configured --with-included-gettext.
This redirection works also in the case that the system C library or
the system libintl library contain gettext/textdomain/... functions.
If it didn't, we would need to add preprocessor level redirections to
libgnuintl.h of the following form:
# define gettext gettext__
# define dgettext dgettext__
# define dcgettext dcgettext__
# define ngettext ngettext__
# define dngettext dngettext__
# define dcngettext dcngettext__
# define textdomain textdomain__
# define bindtextdomain bindtextdomain__
# define bind_textdomain_codeset bind_textdomain_codeset__
How does this redirection work? There are two cases.
A. When libintl.a is linked into an executable, it works because
functions defined in the executable always override functions in
the shared libraries.
B. When libintl.so is used, it works because
1. those systems defining gettext/textdomain/... in the C library
(namely, Solaris 2.4 and newer, and GNU libc 2.0 and newer) are
ELF systems and define these symbols as weak, thus explicitly
letting other shared libraries override it.
2. those systems defining gettext/textdomain/... in a standalone
libintl.so library (namely, Solaris 2.3 and newer) have this
shared library in /usr/lib, and the linker will search /usr/lib
*after* the directory where the GNU gettext library is installed.
A third case, namely when libintl.a is linked into a shared library
whose name is not libintl.so, is not supported. In this case, on
Solaris, when -lintl precedes the linker option for the shared library
containing GNU gettext, the system's gettext would indeed override
the GNU gettext. Anyone doing this kind of stuff must be clever enough
to 1. compile libintl.a with -fPIC, 2. remove -lintl from his linker
command line. */
#undef gettext
#undef dgettext
#undef dcgettext
#undef ngettext
#undef dngettext
#undef dcngettext
#undef textdomain
#undef bindtextdomain
#undef bind_textdomain_codeset
char *
bindtextdomain (domainname, dirname)
const char *domainname;
const char *dirname;
gettext (msgid)
const char *msgid;
{
return bindtextdomain__ (domainname, dirname);
return gettext__ (msgid);
}
char *
dgettext (domainname, msgid)
const char *domainname;
const char *msgid;
{
return dgettext__ (domainname, msgid);
}
@@ -52,19 +108,35 @@ dcgettext (domainname, msgid, category)
char *
dgettext (domainname, msgid)
const char *domainname;
const char *msgid;
ngettext (msgid1, msgid2, n)
const char *msgid1;
const char *msgid2;
unsigned long int n;
{
return dgettext__ (domainname, msgid);
return ngettext__ (msgid1, msgid2, n);
}
char *
gettext (msgid)
const char *msgid;
dngettext (domainname, msgid1, msgid2, n)
const char *domainname;
const char *msgid1;
const char *msgid2;
unsigned long int n;
{
return gettext__ (msgid);
return dngettext__ (domainname, msgid1, msgid2, n);
}
char *
dcngettext (domainname, msgid1, msgid2, n, category)
const char *domainname;
const char *msgid1;
const char *msgid2;
unsigned long int n;
int category;
{
return dcngettext__ (domainname, msgid1, msgid2, n, category);
}
@@ -74,3 +146,21 @@ textdomain (domainname)
{
return textdomain__ (domainname);
}
char *
bindtextdomain (domainname, dirname)
const char *domainname;
const char *dirname;
{
return bindtextdomain__ (domainname, dirname);
}
char *
bind_textdomain_codeset (domainname, codeset)
const char *domainname;
const char *codeset;
{
return bind_textdomain_codeset__ (domainname, codeset);
}

View File

@@ -1,37 +1,33 @@
/* Handle list of needed message catalogs
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
/* Tell glibc's <string.h> to provide a prototype for stpcpy().
This must come before <config.h> because <config.h> may include
<features.h>, and once <features.h> has been included, it's too late. */
#ifndef _GNU_SOURCE
# define _GNU_SOURCE 1
#endif
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#if defined HAVE_STRING_H || defined _LIBC
# ifndef _GNU_SOURCE
# define _GNU_SOURCE 1
# endif
# include <string.h>
#else
# include <strings.h>
# ifndef memcpy
# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
# endif
#endif
#include <string.h>
#if !HAVE_STRCHR && !defined _LIBC
# ifndef strchr
# define strchr index
@@ -43,10 +39,7 @@
#endif
#include <ctype.h>
#include <sys/types.h>
#if defined STDC_HEADERS || defined _LIBC
# include <stdlib.h>
#endif
#include <stdlib.h>
#include "loadinfo.h"
@@ -224,7 +217,7 @@ _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
/* Construct file name. */
memcpy (abs_filename, dirlist, dirlist_len);
__argz_stringify (abs_filename, dirlist_len, ':');
__argz_stringify (abs_filename, dirlist_len, PATH_SEPARATOR);
cp = abs_filename + (dirlist_len - 1);
*cp++ = '/';
cp = stpcpy (cp, language);
@@ -349,7 +342,8 @@ _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
/* Normalize codeset name. There is no standard for the codeset
names. Normalization allows the user to use any of the common
names. */
names. The return value is dynamically allocated and has to be
freed by the caller. */
const char *
_nl_normalize_codeset (codeset, name_len)
const char *codeset;

View File

@@ -1,182 +1,49 @@
/* Message catalogs for internationalization.
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
/* Convenience header for conditional use of GNU <libintl.h>.
Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
/* Because on some systems (e.g. Solaris) we sometimes have to include
the systems libintl.h as well as this file we have more complex
include protection above. But the systems header might perhaps also
define _LIBINTL_H and therefore we have to protect the definition here. */
#if !defined _LIBINTL_H || !defined _LIBGETTEXT_H
#ifndef _LIBINTL_H
# define _LIBINTL_H 1
#endif
#define _LIBGETTEXT_H 1
/* We define an additional symbol to signal that we use the GNU
implementation of gettext. */
#define __USE_GNU_GETTEXT 1
#include <sys/types.h>
#if HAVE_LOCALE_H
# include <locale.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
/* @@ end of prolog @@ */
#ifndef PARAMS
# if __STDC__ || defined __cplusplus
# define PARAMS(args) args
# else
# define PARAMS(args) ()
# endif
#endif
#ifndef NULL
# if !defined __cplusplus || defined __GNUC__
# define NULL ((void *) 0)
# else
# define NULL (0)
# endif
#endif
#if !HAVE_LC_MESSAGES
/* This value determines the behaviour of the gettext() and dgettext()
function. But some system does not have this defined. Define it
to a default value. */
# define LC_MESSAGES (-1)
#endif
/* Declarations for gettext-using-catgets interface. Derived from
Jim Meyering's libintl.h. */
struct _msg_ent
{
const char *_msg;
int _msg_number;
};
#if HAVE_CATGETS
/* These two variables are defined in the automatically by po-to-tbl.sed
generated file `cat-id-tbl.c'. */
extern const struct _msg_ent _msg_tbl[];
extern int _msg_tbl_length;
#endif
/* For automatical extraction of messages sometimes no real
translation is needed. Instead the string itself is the result. */
#define gettext_noop(Str) (Str)
/* Look up MSGID in the current default message catalog for the current
LC_MESSAGES locale. If not found, returns MSGID itself (the default
text). */
extern char *gettext PARAMS ((const char *__msgid));
extern char *gettext__ PARAMS ((const char *__msgid));
/* Look up MSGID in the DOMAINNAME message catalog for the current
LC_MESSAGES locale. */
extern char *dgettext PARAMS ((const char *__domainname, const char *__msgid));
extern char *dgettext__ PARAMS ((const char *__domainname,
const char *__msgid));
/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
locale. */
extern char *dcgettext PARAMS ((const char *__domainname, const char *__msgid,
int __category));
extern char *dcgettext__ PARAMS ((const char *__domainname,
const char *__msgid, int __category));
/* Set the current default message catalog to DOMAINNAME.
If DOMAINNAME is null, return the current default.
If DOMAINNAME is "", reset to the default of "messages". */
extern char *textdomain PARAMS ((const char *__domainname));
extern char *textdomain__ PARAMS ((const char *__domainname));
/* Specify that the DOMAINNAME message catalog will be found
in DIRNAME rather than in the system locale data base. */
extern char *bindtextdomain PARAMS ((const char *__domainname,
const char *__dirname));
extern char *bindtextdomain__ PARAMS ((const char *__domainname,
const char *__dirname));
#ifndef _LIBGETTEXT_H
#define _LIBGETTEXT_H 1
/* NLS can be disabled through the configure --disable-nls option. */
#if ENABLE_NLS
/* Solaris 2.3 has the gettext function but dcgettext is missing.
So we omit this optimization for Solaris 2.3. BTW, Solaris 2.4
has dcgettext. */
# if !HAVE_CATGETS && (!HAVE_GETTEXT || HAVE_DCGETTEXT)
# define gettext(Msgid) \
dgettext (NULL, Msgid)
# define dgettext(Domainname, Msgid) \
dcgettext (Domainname, Msgid, LC_MESSAGES)
# if defined __GNUC__ && __GNUC__ == 2 && __GNUC_MINOR__ >= 7
/* This global variable is defined in loadmsgcat.c. We need a sign,
whether a new catalog was loaded, which can be associated with all
translations. */
extern int _nl_msg_cat_cntr;
# define dcgettext(Domainname, Msgid, Category) \
(__extension__ \
({ \
char *__result; \
if (__builtin_constant_p (Msgid)) \
{ \
static char *__translation__; \
static int __catalog_counter__; \
if (! __translation__ || __catalog_counter__ != _nl_msg_cat_cntr) \
{ \
__translation__ = \
dcgettext__ (Domainname, Msgid, Category); \
__catalog_counter__ = _nl_msg_cat_cntr; \
} \
__result = __translation__; \
} \
else \
__result = dcgettext__ (Domainname, Msgid, Category); \
__result; \
}))
# endif
# endif
/* Get declarations of GNU message catalog functions. */
# include <libintl.h>
#else
# define gettext(Msgid) (Msgid)
# define dgettext(Domainname, Msgid) (Msgid)
# define dcgettext(Domainname, Msgid, Category) (Msgid)
# define textdomain(Domainname) ((char *) Domainname)
# define bindtextdomain(Domainname, Dirname) ((char *) Dirname)
# define ngettext(Msgid1, Msgid2, N) \
((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2))
# define dngettext(Domainname, Msgid1, Msgid2, N) \
((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2))
# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2))
# define textdomain(Domainname) ((char *) (Domainname))
# define bindtextdomain(Domainname, Dirname) ((char *) (Dirname))
# define bind_textdomain_codeset(Domainname, Codeset) ((char *) (Codeset))
#endif
/* @@ begin of epilog @@ */
/* For automatical extraction of messages sometimes no real
translation is needed. Instead the string itself is the result. */
#define gettext_noop(Str) (Str)
#ifdef __cplusplus
}
#endif
#endif
#endif /* _LIBGETTEXT_H */

128
intl/libgnuintl.h Normal file
View File

@@ -0,0 +1,128 @@
/* Message catalogs for internationalization.
Copyright (C) 1995-1997, 2000, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
#ifndef _LIBINTL_H
#define _LIBINTL_H 1
#include <locale.h>
/* The LC_MESSAGES locale category is the category used by the functions
gettext() and dgettext(). It is specified in POSIX, but not in ANSI C.
On systems that don't define it, use an arbitrary value instead.
On Solaris, <locale.h> defines __LOCALE_H then includes <libintl.h> (i.e.
this file!) and then only defines LC_MESSAGES. To avoid a redefinition
warning, don't define LC_MESSAGES in this case. */
#if !defined LC_MESSAGES && !defined __LOCALE_H
# define LC_MESSAGES 1729
#endif
/* We define an additional symbol to signal that we use the GNU
implementation of gettext. */
#define __USE_GNU_GETTEXT 1
/* Resolve a platform specific conflict on DJGPP. GNU gettext takes
precedence over _conio_gettext. */
#ifdef __DJGPP__
# undef gettext
# define gettext gettext
#endif
#ifndef PARAMS
# if __STDC__ || defined __cplusplus
# define PARAMS(args) args
# else
# define PARAMS(args) ()
# endif
#endif
#ifdef __cplusplus
extern "C" {
#endif
/* Look up MSGID in the current default message catalog for the current
LC_MESSAGES locale. If not found, returns MSGID itself (the default
text). */
extern char *gettext PARAMS ((const char *__msgid));
/* Look up MSGID in the DOMAINNAME message catalog for the current
LC_MESSAGES locale. */
extern char *dgettext PARAMS ((const char *__domainname, const char *__msgid));
/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
locale. */
extern char *dcgettext PARAMS ((const char *__domainname, const char *__msgid,
int __category));
/* Similar to `gettext' but select the plural form corresponding to the
number N. */
extern char *ngettext PARAMS ((const char *__msgid1, const char *__msgid2,
unsigned long int __n));
/* Similar to `dgettext' but select the plural form corresponding to the
number N. */
extern char *dngettext PARAMS ((const char *__domainname, const char *__msgid1,
const char *__msgid2, unsigned long int __n));
/* Similar to `dcgettext' but select the plural form corresponding to the
number N. */
extern char *dcngettext PARAMS ((const char *__domainname, const char *__msgid1,
const char *__msgid2, unsigned long int __n,
int __category));
/* Set the current default message catalog to DOMAINNAME.
If DOMAINNAME is null, return the current default.
If DOMAINNAME is "", reset to the default of "messages". */
extern char *textdomain PARAMS ((const char *__domainname));
/* Specify that the DOMAINNAME message catalog will be found
in DIRNAME rather than in the system locale data base. */
extern char *bindtextdomain PARAMS ((const char *__domainname,
const char *__dirname));
/* Specify the character encoding in which the messages from the
DOMAINNAME message catalog will be returned. */
extern char *bind_textdomain_codeset PARAMS ((const char *__domainname,
const char *__codeset));
/* Optimized version of the functions above. */
#if defined __OPTIMIZED
/* These are macros, but could also be inline functions. */
# define gettext(msgid) \
dgettext (NULL, msgid)
# define dgettext(domainname, msgid) \
dcgettext (domainname, msgid, LC_MESSAGES)
# define ngettext(msgid1, msgid2, n) \
dngettext (NULL, msgid1, msgid2, n)
# define dngettext(domainname, msgid1, msgid2, n) \
dcngettext (domainname, msgid1, msgid2, n, LC_MESSAGES)
#endif /* Optimizing. */
#ifdef __cplusplus
}
#endif
#endif /* libintl.h */

View File

@@ -1,100 +0,0 @@
# po2msg.sed - Convert Uniforum style .po file to Linux style .msg file
# Copyright (C) 1995 Free Software Foundation, Inc.
# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
#
# The first directive in the .msg should be the definition of the
# message set number. We use always set number 1.
#
1 {
i\
$set 1 # Automatically created by po2msg.sed
h
s/.*/0/
x
}
#
# Mitch's old catalog format does not allow comments.
#
# We copy the original message as a comment into the .msg file.
#
/^msgid/ {
s/msgid[ ]*"//
#
# This does not work now with the new format.
# /"$/! {
# s/\\$//
# s/$/ ... (more lines following)"/
# }
x
# The following nice solution is by
# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
td
# Increment a decimal number in pattern space.
# First hide trailing `9' digits.
:d
s/9\(_*\)$/_\1/
td
# Assure at least one digit is available.
s/^\(_*\)$/0\1/
# Increment the last digit.
s/8\(_*\)$/9\1/
s/7\(_*\)$/8\1/
s/6\(_*\)$/7\1/
s/5\(_*\)$/6\1/
s/4\(_*\)$/5\1/
s/3\(_*\)$/4\1/
s/2\(_*\)$/3\1/
s/1\(_*\)$/2\1/
s/0\(_*\)$/1\1/
# Convert the hidden `9' digits to `0's.
s/_/0/g
x
G
s/\(.*\)"\n\([0-9]*\)/$ #\2 Original Message:(\1)/p
}
#
# The .msg file contains, other then the .po file, only the translations
# but each given a unique ID. Starting from 1 and incrementing by 1 for
# each message we assign them to the messages.
# It is important that the .po file used to generate the cat-id-tbl.c file
# (with po-to-tbl) is the same as the one used here. (At least the order
# of declarations must not be changed.)
#
/^msgstr/ {
s/msgstr[ ]*"\(.*\)"/# \1/
# Clear substitution flag.
tb
# Append the next line.
:b
N
# Look whether second part is continuation line.
s/\(.*\n\)"\(.*\)"/\1\2/
# Yes, then branch.
ta
P
D
# Note that D includes a jump to the start!!
# We found a continuation line. But before printing insert '\'.
:a
s/\(.*\)\(\n.*\)/\1\\\2/
P
# We cannot use D here.
s/.*\n\(.*\)/\1/
tb
}
d

View File

@@ -1,20 +1,24 @@
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1996-1999, 2000, 2001 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
#ifndef _LOADINFO_H
#define _LOADINFO_H 1
#ifndef PARAMS
# if __STDC__
@@ -24,6 +28,25 @@
# endif
#endif
#ifndef internal_function
# define internal_function
#endif
/* Tell the compiler when a conditional or integer expression is
almost always true or almost always false. */
#ifndef HAVE_BUILTIN_EXPECT
# define __builtin_expect(expr, val) (expr)
#endif
/* Separator in PATH like lists of pathnames. */
#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__
/* Win32, OS/2, DOS */
# define PATH_SEPARATOR ';'
#else
/* Unix */
# define PATH_SEPARATOR ':'
#endif
/* Encoding of locale name parts. */
#define CEN_REVISION 1
#define CEN_SPONSOR 2
@@ -50,6 +73,10 @@ struct loaded_l10nfile
};
/* Normalize codeset name. There is no standard for the codeset
names. Normalization allows the user to use any of the common
names. The return value is dynamically allocated and has to be
freed by the caller. */
extern const char *_nl_normalize_codeset PARAMS ((const char *codeset,
size_t name_len));
@@ -66,6 +93,8 @@ _nl_make_l10nflist PARAMS ((struct loaded_l10nfile **l10nfile_list,
extern const char *_nl_expand_alias PARAMS ((const char *name));
/* normalized_codeset is dynamically allocated and has to be freed by
the caller. */
extern int _nl_explode_name PARAMS ((char *name, const char **language,
const char **modifier,
const char **territory,
@@ -76,3 +105,5 @@ extern int _nl_explode_name PARAMS ((char *name, const char **language,
const char **revision));
extern char *_nl_find_language PARAMS ((const char *name));
#endif /* loadinfo.h */

View File

@@ -1,36 +1,67 @@
/* Load needed message catalogs.
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
/* Tell glibc's <string.h> to provide a prototype for mempcpy().
This must come before <config.h> because <config.h> may include
<features.h>, and once <features.h> has been included, it's too late. */
#ifndef _GNU_SOURCE
# define _GNU_SOURCE 1
#endif
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <ctype.h>
#include <errno.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#if defined STDC_HEADERS || defined _LIBC
# include <stdlib.h>
#ifdef __GNUC__
# define alloca __builtin_alloca
# define HAVE_ALLOCA 1
#else
# if defined HAVE_ALLOCA_H || defined _LIBC
# include <alloca.h>
# else
# ifdef _AIX
#pragma alloca
# else
# ifndef alloca
char *alloca ();
# endif
# endif
# endif
#endif
#include <stdlib.h>
#include <string.h>
#if defined HAVE_UNISTD_H || defined _LIBC
# include <unistd.h>
#endif
#ifdef _LIBC
# include <langinfo.h>
# include <locale.h>
#endif
#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
|| (defined _LIBC && defined _POSIX_MAPPED_FILES)
# include <sys/mman.h>
@@ -43,6 +74,10 @@
#include "gettext.h"
#include "gettextP.h"
#ifdef _LIBC
# include "../locale/localeinfo.h"
#endif
/* @@ end of prolog @@ */
#ifdef _LIBC
@@ -56,29 +91,275 @@
# define munmap __munmap
#endif
/* Names for the libintl functions are a problem. They must not clash
with existing names and they should follow ANSI C. But this source
code is also used in GNU C Library where the names have a __
prefix. So we have to make a difference here. */
#ifdef _LIBC
# define PLURAL_PARSE __gettextparse
#else
# define PLURAL_PARSE gettextparse__
#endif
/* For those losing systems which don't have `alloca' we have to add
some additional code emulating it. */
#ifdef HAVE_ALLOCA
# define freea(p) /* nothing */
#else
# define alloca(n) malloc (n)
# define freea(p) free (p)
#endif
/* For systems that distinguish between text and binary I/O.
O_BINARY is usually declared in <fcntl.h>. */
#if !defined O_BINARY && defined _O_BINARY
/* For MSC-compatible compilers. */
# define O_BINARY _O_BINARY
# define O_TEXT _O_TEXT
#endif
#ifdef __BEOS__
/* BeOS 5 has O_BINARY and O_TEXT, but they have no effect. */
# undef O_BINARY
# undef O_TEXT
#endif
/* On reasonable systems, binary I/O is the default. */
#ifndef O_BINARY
# define O_BINARY 0
#endif
/* We need a sign, whether a new catalog was loaded, which can be associated
with all translations. This is important if the translations are
cached by one of GCC's features. */
int _nl_msg_cat_cntr = 0;
int _nl_msg_cat_cntr;
#if (defined __GNUC__ && !defined __APPLE_CC__) \
|| (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)
/* These structs are the constant expression for the germanic plural
form determination. It represents the expression "n != 1". */
static const struct expression plvar =
{
.nargs = 0,
.operation = var,
};
static const struct expression plone =
{
.nargs = 0,
.operation = num,
.val =
{
.num = 1
}
};
static struct expression germanic_plural =
{
.nargs = 2,
.operation = not_equal,
.val =
{
.args =
{
[0] = (struct expression *) &plvar,
[1] = (struct expression *) &plone
}
}
};
# define INIT_GERMANIC_PLURAL()
#else
/* For compilers without support for ISO C 99 struct/union initializers:
Initialization at run-time. */
static struct expression plvar;
static struct expression plone;
static struct expression germanic_plural;
static void
init_germanic_plural ()
{
if (plone.val.num == 0)
{
plvar.nargs = 0;
plvar.operation = var;
plone.nargs = 0;
plone.operation = num;
plone.val.num = 1;
germanic_plural.nargs = 2;
germanic_plural.operation = not_equal;
germanic_plural.val.args[0] = &plvar;
germanic_plural.val.args[1] = &plone;
}
}
# define INIT_GERMANIC_PLURAL() init_germanic_plural ()
#endif
/* Initialize the codeset dependent parts of an opened message catalog.
Return the header entry. */
const char *
internal_function
_nl_init_domain_conv (domain_file, domain, domainbinding)
struct loaded_l10nfile *domain_file;
struct loaded_domain *domain;
struct binding *domainbinding;
{
/* Find out about the character set the file is encoded with.
This can be found (in textual form) in the entry "". If this
entry does not exist or if this does not contain the `charset='
information, we will assume the charset matches the one the
current locale and we don't have to perform any conversion. */
char *nullentry;
size_t nullentrylen;
/* Preinitialize fields, to avoid recursion during _nl_find_msg. */
domain->codeset_cntr =
(domainbinding != NULL ? domainbinding->codeset_cntr : 0);
#ifdef _LIBC
domain->conv = (__gconv_t) -1;
#else
# if HAVE_ICONV
domain->conv = (iconv_t) -1;
# endif
#endif
domain->conv_tab = NULL;
/* Get the header entry. */
nullentry = _nl_find_msg (domain_file, domainbinding, "", &nullentrylen);
if (nullentry != NULL)
{
#if defined _LIBC || HAVE_ICONV
const char *charsetstr;
charsetstr = strstr (nullentry, "charset=");
if (charsetstr != NULL)
{
size_t len;
char *charset;
const char *outcharset;
charsetstr += strlen ("charset=");
len = strcspn (charsetstr, " \t\n");
charset = (char *) alloca (len + 1);
# if defined _LIBC || HAVE_MEMPCPY
*((char *) mempcpy (charset, charsetstr, len)) = '\0';
# else
memcpy (charset, charsetstr, len);
charset[len] = '\0';
# endif
/* The output charset should normally be determined by the
locale. But sometimes the locale is not used or not correctly
set up, so we provide a possibility for the user to override
this. Moreover, the value specified through
bind_textdomain_codeset overrides both. */
if (domainbinding != NULL && domainbinding->codeset != NULL)
outcharset = domainbinding->codeset;
else
{
outcharset = getenv ("OUTPUT_CHARSET");
if (outcharset == NULL || outcharset[0] == '\0')
{
# ifdef _LIBC
outcharset = (*_nl_current[LC_CTYPE])->values[_NL_ITEM_INDEX (CODESET)].string;
# else
# if HAVE_ICONV
extern const char *locale_charset (void);
outcharset = locale_charset ();
# endif
# endif
}
}
# ifdef _LIBC
/* We always want to use transliteration. */
outcharset = norm_add_slashes (outcharset, "TRANSLIT");
charset = norm_add_slashes (charset, NULL);
if (__gconv_open (outcharset, charset, &domain->conv,
GCONV_AVOID_NOCONV)
!= __GCONV_OK)
domain->conv = (__gconv_t) -1;
# else
# if HAVE_ICONV
/* When using GNU libiconv, we want to use transliteration. */
# if _LIBICONV_VERSION >= 0x0105
len = strlen (outcharset);
{
char *tmp = (char *) alloca (len + 10 + 1);
memcpy (tmp, outcharset, len);
memcpy (tmp + len, "//TRANSLIT", 10 + 1);
outcharset = tmp;
}
# endif
domain->conv = iconv_open (outcharset, charset);
# if _LIBICONV_VERSION >= 0x0105
freea (outcharset);
# endif
# endif
# endif
freea (charset);
}
#endif /* _LIBC || HAVE_ICONV */
}
return nullentry;
}
/* Frees the codeset dependent parts of an opened message catalog. */
void
internal_function
_nl_free_domain_conv (domain)
struct loaded_domain *domain;
{
if (domain->conv_tab != NULL && domain->conv_tab != (char **) -1)
free (domain->conv_tab);
#ifdef _LIBC
if (domain->conv != (__gconv_t) -1)
__gconv_close (domain->conv);
#else
# if HAVE_ICONV
if (domain->conv != (iconv_t) -1)
iconv_close (domain->conv);
# endif
#endif
}
/* Load the message catalogs specified by FILENAME. If it is no valid
message catalog do nothing. */
void
internal_function
_nl_load_domain (domain_file)
_nl_load_domain (domain_file, domainbinding)
struct loaded_l10nfile *domain_file;
struct binding *domainbinding;
{
int fd;
size_t size;
#ifdef _LIBC
struct stat64 st;
#else
struct stat st;
#endif
struct mo_file_header *data = (struct mo_file_header *) -1;
int use_mmap = 0;
struct loaded_domain *domain;
const char *nullentry;
domain_file->decided = 1;
domain_file->data = NULL;
/* Note that it would be useless to store domainbinding in domain_file
because domainbinding might be == NULL now but != NULL later (after
a call to bind_textdomain_codeset). */
/* If the record does not represent a valid locale the FILENAME
might be NULL. This can happen when according to the given
specification the locale file name is different for XPG and CEN
@@ -87,14 +368,19 @@ _nl_load_domain (domain_file)
return;
/* Try to open the addressed file. */
fd = open (domain_file->filename, O_RDONLY);
fd = open (domain_file->filename, O_RDONLY | O_BINARY);
if (fd == -1)
return;
/* We must know about the size of the file. */
if (fstat (fd, &st) != 0
|| (size = (size_t) st.st_size) != st.st_size
|| size < sizeof (struct mo_file_header))
if (
#ifdef _LIBC
__builtin_expect (fstat64 (fd, &st) != 0, 0)
#else
__builtin_expect (fstat (fd, &st) != 0, 0)
#endif
|| __builtin_expect ((size = (size_t) st.st_size) != st.st_size, 0)
|| __builtin_expect (size < sizeof (struct mo_file_header), 0))
{
/* Something went wrong. */
close (fd);
@@ -107,7 +393,7 @@ _nl_load_domain (domain_file)
data = (struct mo_file_header *) mmap (NULL, size, PROT_READ,
MAP_PRIVATE, fd, 0);
if (data != (struct mo_file_header *) -1)
if (__builtin_expect (data != (struct mo_file_header *) -1, 1))
{
/* mmap() call was successful. */
close (fd);
@@ -131,12 +417,15 @@ _nl_load_domain (domain_file)
do
{
long int nb = (long int) read (fd, read_ptr, to_read);
if (nb == -1)
if (nb <= 0)
{
#ifdef EINTR
if (nb == -1 && errno == EINTR)
continue;
#endif
close (fd);
return;
}
read_ptr += nb;
to_read -= nb;
}
@@ -147,7 +436,8 @@ _nl_load_domain (domain_file)
/* Using the magic number we can test whether it really is a message
catalog file. */
if (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED)
if (__builtin_expect (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED,
0))
{
/* The magic number is wrong: not a message catalog file. */
#ifdef HAVE_MMAP
@@ -159,12 +449,11 @@ _nl_load_domain (domain_file)
return;
}
domain_file->data
= (struct loaded_domain *) malloc (sizeof (struct loaded_domain));
if (domain_file->data == NULL)
domain = (struct loaded_domain *) malloc (sizeof (struct loaded_domain));
if (domain == NULL)
return;
domain_file->data = domain;
domain = (struct loaded_domain *) domain_file->data;
domain->data = (char *) data;
domain->use_mmap = use_mmap;
domain->mmap_size = size;
@@ -196,9 +485,62 @@ _nl_load_domain (domain_file)
return;
}
/* Show that one domain is changed. This might make some cached
translations invalid. */
++_nl_msg_cat_cntr;
/* Now initialize the character set converter from the character set
the file is encoded with (found in the header entry) to the domain's
specified character set or the locale's character set. */
nullentry = _nl_init_domain_conv (domain_file, domain, domainbinding);
/* Also look for a plural specification. */
if (nullentry != NULL)
{
const char *plural;
const char *nplurals;
plural = strstr (nullentry, "plural=");
nplurals = strstr (nullentry, "nplurals=");
if (plural == NULL || nplurals == NULL)
goto no_plural;
else
{
/* First get the number. */
char *endp;
unsigned long int n;
struct parse_args args;
nplurals += 9;
while (*nplurals != '\0' && isspace (*nplurals))
++nplurals;
#if defined HAVE_STRTOUL || defined _LIBC
n = strtoul (nplurals, &endp, 10);
#else
for (endp = nplurals, n = 0; *endp >= '0' && *endp <= '9'; endp++)
n = n * 10 + (*endp - '0');
#endif
domain->nplurals = n;
if (nplurals == endp)
goto no_plural;
/* Due to the restrictions bison imposes onto the interface of the
scanner function we have to put the input string and the result
passed up from the parser into the same structure which address
is passed down to the parser. */
plural += 7;
args.cp = plural;
if (PLURAL_PARSE (&args) != 0)
goto no_plural;
domain->plural = args.res;
}
}
else
{
/* By default we are using the Germanic form: singular form only
for `one', the plural form otherwise. Yes, this is also what
English is using since English is a Germanic language. */
no_plural:
INIT_GERMANIC_PLURAL ();
domain->plural = &germanic_plural;
domain->nplurals = 2;
}
}
@@ -208,11 +550,16 @@ internal_function
_nl_unload_domain (domain)
struct loaded_domain *domain;
{
#ifdef _POSIX_MAPPED_FILES
if (domain->plural != &germanic_plural)
__gettext_free_exp (domain->plural);
_nl_free_domain_conv (domain);
# ifdef _POSIX_MAPPED_FILES
if (domain->use_mmap)
munmap ((caddr_t) domain->data, domain->mmap_size);
else
#endif /* _POSIX_MAPPED_FILES */
# endif /* _POSIX_MAPPED_FILES */
free ((void *) domain->data);
free (domain);

271
intl/localcharset.c Normal file
View File

@@ -0,0 +1,271 @@
/* Determine a canonical name for the current locale's character encoding.
Copyright (C) 2000-2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
/* Written by Bruno Haible <haible@clisp.cons.org>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#if HAVE_STDDEF_H
# include <stddef.h>
#endif
#include <stdio.h>
#if HAVE_STRING_H
# include <string.h>
#else
# include <strings.h>
#endif
#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
#if defined _WIN32 || defined __WIN32__
# undef WIN32 /* avoid warning on mingw32 */
# define WIN32
#endif
#ifndef WIN32
# if HAVE_LANGINFO_CODESET
# include <langinfo.h>
# else
# if HAVE_SETLOCALE
# include <locale.h>
# endif
# endif
#else /* WIN32 */
# define WIN32_LEAN_AND_MEAN
# include <windows.h>
#endif
#ifndef DIRECTORY_SEPARATOR
# define DIRECTORY_SEPARATOR '/'
#endif
#ifndef ISSLASH
# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
#endif
/* The following static variable is declared 'volatile' to avoid a
possible multithread problem in the function get_charset_aliases. If we
are running in a threaded environment, and if two threads initialize
'charset_aliases' simultaneously, both will produce the same value,
and everything will be ok if the two assignments to 'charset_aliases'
are atomic. But I don't know what will happen if the two assignments mix. */
#if __STDC__ != 1
# define volatile /* empty */
#endif
/* Pointer to the contents of the charset.alias file, if it has already been
read, else NULL. Its format is:
ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0' */
static const char * volatile charset_aliases;
/* Return a pointer to the contents of the charset.alias file. */
static const char *
get_charset_aliases ()
{
const char *cp;
cp = charset_aliases;
if (cp == NULL)
{
#ifndef WIN32
FILE *fp;
const char *dir = LIBDIR;
const char *base = "charset.alias";
char *file_name;
/* Concatenate dir and base into freshly allocated file_name. */
{
size_t dir_len = strlen (dir);
size_t base_len = strlen (base);
int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1]));
file_name = (char *) malloc (dir_len + add_slash + base_len + 1);
if (file_name != NULL)
{
memcpy (file_name, dir, dir_len);
if (add_slash)
file_name[dir_len] = DIRECTORY_SEPARATOR;
memcpy (file_name + dir_len + add_slash, base, base_len + 1);
}
}
if (file_name == NULL || (fp = fopen (file_name, "r")) == NULL)
/* Out of memory or file not found, treat it as empty. */
cp = "";
else
{
/* Parse the file's contents. */
int c;
char buf1[50+1];
char buf2[50+1];
char *res_ptr = NULL;
size_t res_size = 0;
size_t l1, l2;
for (;;)
{
c = getc (fp);
if (c == EOF)
break;
if (c == '\n' || c == ' ' || c == '\t')
continue;
if (c == '#')
{
/* Skip comment, to end of line. */
do
c = getc (fp);
while (!(c == EOF || c == '\n'));
if (c == EOF)
break;
continue;
}
ungetc (c, fp);
if (fscanf(fp, "%50s %50s", buf1, buf2) < 2)
break;
l1 = strlen (buf1);
l2 = strlen (buf2);
if (res_size == 0)
{
res_size = l1 + 1 + l2 + 1;
res_ptr = malloc (res_size + 1);
}
else
{
res_size += l1 + 1 + l2 + 1;
res_ptr = realloc (res_ptr, res_size + 1);
}
if (res_ptr == NULL)
{
/* Out of memory. */
res_size = 0;
break;
}
strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1);
strcpy (res_ptr + res_size - (l2 + 1), buf2);
}
fclose (fp);
if (res_size == 0)
cp = "";
else
{
*(res_ptr + res_size) = '\0';
cp = res_ptr;
}
}
if (file_name != NULL)
free (file_name);
#else /* WIN32 */
/* To avoid the troubles of installing a separate file in the same
directory as the DLL and of retrieving the DLL's directory at
runtime, simply inline the aliases here. */
cp = "CP936" "\0" "GBK" "\0"
"CP1361" "\0" "JOHAB" "\0";
#endif
charset_aliases = cp;
}
return cp;
}
/* Determine the current locale's character encoding, and canonicalize it
into one of the canonical names listed in config.charset.
The result must not be freed; it is statically allocated.
If the canonical name cannot be determined, the result is a non-canonical
name. */
#ifdef STATIC
STATIC
#endif
const char *
locale_charset ()
{
const char *codeset;
const char *aliases;
#ifndef WIN32
# if HAVE_LANGINFO_CODESET
/* Most systems support nl_langinfo (CODESET) nowadays. */
codeset = nl_langinfo (CODESET);
# else
/* On old systems which lack it, use setlocale or getenv. */
const char *locale = NULL;
/* But most old systems don't have a complete set of locales. Some
(like SunOS 4 or DJGPP) have only the C locale. Therefore we don't
use setlocale here; it would return "C" when it doesn't support the
locale name the user has set. */
# if HAVE_SETLOCALE && 0
locale = setlocale (LC_CTYPE, NULL);
# endif
if (locale == NULL || locale[0] == '\0')
{
locale = getenv ("LC_ALL");
if (locale == NULL || locale[0] == '\0')
{
locale = getenv ("LC_CTYPE");
if (locale == NULL || locale[0] == '\0')
locale = getenv ("LANG");
}
}
/* On some old systems, one used to set locale = "iso8859_1". On others,
you set it to "language_COUNTRY.charset". In any case, we resolve it
through the charset.alias file. */
codeset = locale;
# endif
#else /* WIN32 */
static char buf[2 + 10 + 1];
/* Win32 has a function returning the locale's codepage as a number. */
sprintf (buf, "CP%u", GetACP ());
codeset = buf;
#endif
if (codeset == NULL)
/* The canonical name cannot be determined. */
codeset = "";
/* Resolve alias. */
for (aliases = get_charset_aliases ();
*aliases != '\0';
aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1)
if (strcmp (codeset, aliases) == 0
|| (aliases[0] == '*' && aliases[1] == '\0'))
{
codeset = aliases + strlen (aliases) + 1;
break;
}
return codeset;
}

78
intl/locale.alias Normal file
View File

@@ -0,0 +1,78 @@
# Locale name alias data base.
# Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU Library General Public License as published
# by the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
# USA.
# The format of this file is the same as for the corresponding file of
# the X Window System, which normally can be found in
# /usr/lib/X11/locale/locale.alias
# A single line contains two fields: an alias and a substitution value.
# All entries are case independent.
# Note: This file is far from being complete. If you have a value for
# your own site which you think might be useful for others too, share
# it with the rest of us. Send it using the `glibcbug' script to
# bugs@gnu.org.
# Packages using this file:
bokmal no_NO.ISO-8859-1
bokmål no_NO.ISO-8859-1
catalan ca_ES.ISO-8859-1
croatian hr_HR.ISO-8859-2
czech cs_CZ.ISO-8859-2
danish da_DK.ISO-8859-1
dansk da_DK.ISO-8859-1
deutsch de_DE.ISO-8859-1
dutch nl_NL.ISO-8859-1
eesti et_EE.ISO-8859-1
estonian et_EE.ISO-8859-1
finnish fi_FI.ISO-8859-1
français fr_FR.ISO-8859-1
french fr_FR.ISO-8859-1
galego gl_ES.ISO-8859-1
galician gl_ES.ISO-8859-1
german de_DE.ISO-8859-1
greek el_GR.ISO-8859-7
hebrew he_IL.ISO-8859-8
hrvatski hr_HR.ISO-8859-2
hungarian hu_HU.ISO-8859-2
icelandic is_IS.ISO-8859-1
italian it_IT.ISO-8859-1
japanese ja_JP.eucJP
japanese.euc ja_JP.eucJP
ja_JP ja_JP.eucJP
ja_JP.ujis ja_JP.eucJP
japanese.sjis ja_JP.SJIS
korean ko_KR.eucKR
korean.euc ko_KR.eucKR
ko_KR ko_KR.eucKR
lithuanian lt_LT.ISO-8859-13
nb_NO no_NO.ISO-8859-1
nb_NO.ISO-8859-1 no_NO.ISO-8859-1
norwegian no_NO.ISO-8859-1
nynorsk nn_NO.ISO-8859-1
polish pl_PL.ISO-8859-2
portuguese pt_PT.ISO-8859-1
romanian ro_RO.ISO-8859-2
russian ru_RU.ISO-8859-5
slovak sk_SK.ISO-8859-2
slovene sl_SI.ISO-8859-2
slovenian sl_SI.ISO-8859-2
spanish es_ES.ISO-8859-1
swedish sv_SE.ISO-8859-1
thai th_TH.TIS-620
turkish tr_TR.ISO-8859-9

View File

@@ -1,20 +1,27 @@
/* Handle aliases for locale names.
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
/* Tell glibc's <string.h> to provide a prototype for mempcpy().
This must come before <config.h> because <config.h> may include
<features.h>, and once <features.h> has been included, it's too late. */
#ifndef _GNU_SOURCE
# define _GNU_SOURCE 1
#endif
#ifdef HAVE_CONFIG_H
# include <config.h>
@@ -41,35 +48,15 @@ char *alloca ();
# endif
#endif
#if defined STDC_HEADERS || defined _LIBC
# include <stdlib.h>
#else
char *getenv ();
# ifdef HAVE_MALLOC_H
# include <malloc.h>
# else
void free ();
# endif
#endif
#include <stdlib.h>
#if defined HAVE_STRING_H || defined _LIBC
# ifndef _GNU_SOURCE
# define _GNU_SOURCE 1
# endif
# include <string.h>
#else
# include <strings.h>
# ifndef memcpy
# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
# endif
#endif
#include <string.h>
#if !HAVE_STRCHR && !defined _LIBC
# ifndef strchr
# define strchr index
# endif
#endif
#include "gettext.h"
#include "gettextP.h"
/* @@ end of prolog @@ */
@@ -95,40 +82,14 @@ __libc_lock_define_initialized (static, lock);
# define internal_function
#endif
/* For those loosing systems which don't have `alloca' we have to add
/* For those losing systems which don't have `alloca' we have to add
some additional code emulating it. */
#ifdef HAVE_ALLOCA
/* Nothing has to be done. */
# define ADD_BLOCK(list, address) /* nothing */
# define FREE_BLOCKS(list) /* nothing */
# define freea(p) /* nothing */
#else
struct block_list
{
void *address;
struct block_list *next;
};
# define ADD_BLOCK(list, addr) \
do { \
struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \
/* If we cannot get a free block we cannot add the new element to \
the list. */ \
if (newp != NULL) { \
newp->address = (addr); \
newp->next = (list); \
(list) = newp; \
} \
} while (0)
# define FREE_BLOCKS(list) \
do { \
while (list != NULL) { \
struct block_list *old = list; \
list = list->next; \
free (old); \
} \
} while (0)
# undef alloca
# define alloca(size) (malloc (size))
#endif /* have alloca */
# define alloca(n) malloc (n)
# define freea(p) free (p)
#endif
#if defined _LIBC_REENTRANT || defined HAVE_FGETS_UNLOCKED
# undef fgets
@@ -147,18 +108,18 @@ struct alias_map
};
static char *string_space = NULL;
static size_t string_space_act = 0;
static size_t string_space_max = 0;
static char *string_space;
static size_t string_space_act;
static size_t string_space_max;
static struct alias_map *map;
static size_t nmap = 0;
static size_t maxmap = 0;
static size_t nmap;
static size_t maxmap;
/* Prototypes for local functions. */
static size_t read_alias_file PARAMS ((const char *fname, int fname_len))
internal_function;
static void extend_alias_table PARAMS ((void));
static int extend_alias_table PARAMS ((void));
static int alias_compare PARAMS ((const struct alias_map *map1,
const struct alias_map *map2));
@@ -204,11 +165,12 @@ _nl_expand_alias (name)
{
const char *start;
while (locale_alias_path[0] == ':')
while (locale_alias_path[0] == PATH_SEPARATOR)
++locale_alias_path;
start = locale_alias_path;
while (locale_alias_path[0] != '\0' && locale_alias_path[0] != ':')
while (locale_alias_path[0] != '\0'
&& locale_alias_path[0] != PATH_SEPARATOR)
++locale_alias_path;
if (start < locale_alias_path)
@@ -231,16 +193,12 @@ read_alias_file (fname, fname_len)
const char *fname;
int fname_len;
{
#ifndef HAVE_ALLOCA
struct block_list *block_list = NULL;
#endif
FILE *fp;
char *full_fname;
size_t added;
static const char aliasfile[] = "/locale.alias";
full_fname = (char *) alloca (fname_len + sizeof aliasfile);
ADD_BLOCK (block_list, full_fname);
#ifdef HAVE_MEMPCPY
mempcpy (mempcpy (full_fname, fname, fname_len),
aliasfile, sizeof aliasfile);
@@ -250,11 +208,9 @@ read_alias_file (fname, fname_len)
#endif
fp = fopen (full_fname, "r");
freea (full_fname);
if (fp == NULL)
{
FREE_BLOCKS (block_list);
return 0;
}
return 0;
added = 0;
while (!feof (fp))
@@ -326,7 +282,8 @@ read_alias_file (fname, fname_len)
*cp++ = '\0';
if (nmap >= maxmap)
extend_alias_table ();
if (__builtin_expect (extend_alias_table (), 0))
return added;
alias_len = strlen (alias) + 1;
value_len = strlen (value) + 1;
@@ -339,10 +296,19 @@ read_alias_file (fname, fname_len)
? alias_len + value_len : 1024));
char *new_pool = (char *) realloc (string_space, new_size);
if (new_pool == NULL)
return added;
if (__builtin_expect (string_space != new_pool, 0))
{
FREE_BLOCKS (block_list);
return added;
size_t i;
for (i = 0; i < nmap; i++)
{
map[i].alias += new_pool - string_space;
map[i].value += new_pool - string_space;
}
}
string_space = new_pool;
string_space_max = new_size;
}
@@ -369,12 +335,11 @@ read_alias_file (fname, fname_len)
qsort (map, nmap, sizeof (struct alias_map),
(int (*) PARAMS ((const void *, const void *))) alias_compare);
FREE_BLOCKS (block_list);
return added;
}
static void
static int
extend_alias_table ()
{
size_t new_size;
@@ -385,10 +350,11 @@ extend_alias_table ()
* sizeof (struct alias_map)));
if (new_map == NULL)
/* Simply don't extend: we don't have any more core. */
return;
return -1;
map = new_map;
maxmap = new_size;
return 0;
}

68
intl/ngettext.c Normal file
View File

@@ -0,0 +1,68 @@
/* Implementation of ngettext(3) function.
Copyright (C) 1995, 1997, 2000, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#ifdef _LIBC
# define __need_NULL
# include <stddef.h>
#else
# include <stdlib.h> /* Just for NULL. */
#endif
#include "gettextP.h"
#ifdef _LIBC
# include <libintl.h>
#else
# include "libgnuintl.h"
#endif
#include <locale.h>
/* @@ end of prolog @@ */
/* Names for the libintl functions are a problem. They must not clash
with existing names and they should follow ANSI C. But this source
code is also used in GNU C Library where the names have a __
prefix. So we have to make a difference here. */
#ifdef _LIBC
# define NGETTEXT __ngettext
# define DCNGETTEXT __dcngettext
#else
# define NGETTEXT ngettext__
# define DCNGETTEXT dcngettext__
#endif
/* Look up MSGID in the current default message catalog for the current
LC_MESSAGES locale. If not found, returns MSGID itself (the default
text). */
char *
NGETTEXT (msgid1, msgid2, n)
const char *msgid1;
const char *msgid2;
unsigned long int n;
{
return DCNGETTEXT (NULL, msgid1, msgid2, n, LC_MESSAGES);
}
#ifdef _LIBC
/* Alias for function name in GNU C Library. */
weak_alias (__ngettext, ngettext);
#endif

1326
intl/plural.c Normal file

File diff suppressed because it is too large Load Diff

413
intl/plural.y Normal file
View File

@@ -0,0 +1,413 @@
%{
/* Expression parsing for plural form selection.
Copyright (C) 2000, 2001 Free Software Foundation, Inc.
Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
/* The bison generated parser uses alloca. AIX 3 forces us to put this
declaration at the beginning of the file. The declaration in bison's
skeleton file comes too late. This must come before <config.h>
because <config.h> may include arbitrary system headers. */
#if defined _AIX && !defined __GNUC__
#pragma alloca
#endif
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <stdlib.h>
#include "gettextP.h"
/* Names for the libintl functions are a problem. They must not clash
with existing names and they should follow ANSI C. But this source
code is also used in GNU C Library where the names have a __
prefix. So we have to make a difference here. */
#ifdef _LIBC
# define FREE_EXPRESSION __gettext_free_exp
#else
# define FREE_EXPRESSION gettext_free_exp__
# define __gettextparse gettextparse__
#endif
#define YYLEX_PARAM &((struct parse_args *) arg)->cp
#define YYPARSE_PARAM arg
%}
%pure_parser
%expect 10
%union {
unsigned long int num;
enum operator op;
struct expression *exp;
}
%{
/* Prototypes for local functions. */
static struct expression *new_exp PARAMS ((int nargs, enum operator op,
struct expression * const *args));
static inline struct expression *new_exp_0 PARAMS ((enum operator op));
static inline struct expression *new_exp_1 PARAMS ((enum operator op,
struct expression *right));
static struct expression *new_exp_2 PARAMS ((enum operator op,
struct expression *left,
struct expression *right));
static inline struct expression *new_exp_3 PARAMS ((enum operator op,
struct expression *bexp,
struct expression *tbranch,
struct expression *fbranch));
static int yylex PARAMS ((YYSTYPE *lval, const char **pexp));
static void yyerror PARAMS ((const char *str));
/* Allocation of expressions. */
static struct expression *
new_exp (nargs, op, args)
int nargs;
enum operator op;
struct expression * const *args;
{
int i;
struct expression *newp;
/* If any of the argument could not be malloc'ed, just return NULL. */
for (i = nargs - 1; i >= 0; i--)
if (args[i] == NULL)
goto fail;
/* Allocate a new expression. */
newp = (struct expression *) malloc (sizeof (*newp));
if (newp != NULL)
{
newp->nargs = nargs;
newp->operation = op;
for (i = nargs - 1; i >= 0; i--)
newp->val.args[i] = args[i];
return newp;
}
fail:
for (i = nargs - 1; i >= 0; i--)
FREE_EXPRESSION (args[i]);
return NULL;
}
static inline struct expression *
new_exp_0 (op)
enum operator op;
{
return new_exp (0, op, NULL);
}
static inline struct expression *
new_exp_1 (op, right)
enum operator op;
struct expression *right;
{
struct expression *args[1];
args[0] = right;
return new_exp (1, op, args);
}
static struct expression *
new_exp_2 (op, left, right)
enum operator op;
struct expression *left;
struct expression *right;
{
struct expression *args[2];
args[0] = left;
args[1] = right;
return new_exp (2, op, args);
}
static inline struct expression *
new_exp_3 (op, bexp, tbranch, fbranch)
enum operator op;
struct expression *bexp;
struct expression *tbranch;
struct expression *fbranch;
{
struct expression *args[3];
args[0] = bexp;
args[1] = tbranch;
args[2] = fbranch;
return new_exp (3, op, args);
}
%}
/* This declares that all operators have the same associativity and the
precedence order as in C. See [Harbison, Steele: C, A Reference Manual].
There is no unary minus and no bitwise operators.
Operators with the same syntactic behaviour have been merged into a single
token, to save space in the array generated by bison. */
%right '?' /* ? */
%left '|' /* || */
%left '&' /* && */
%left EQUOP2 /* == != */
%left CMPOP2 /* < > <= >= */
%left ADDOP2 /* + - */
%left MULOP2 /* * / % */
%right '!' /* ! */
%token <op> EQUOP2 CMPOP2 ADDOP2 MULOP2
%token <num> NUMBER
%type <exp> exp
%%
start: exp
{
if ($1 == NULL)
YYABORT;
((struct parse_args *) arg)->res = $1;
}
;
exp: exp '?' exp ':' exp
{
$$ = new_exp_3 (qmop, $1, $3, $5);
}
| exp '|' exp
{
$$ = new_exp_2 (lor, $1, $3);
}
| exp '&' exp
{
$$ = new_exp_2 (land, $1, $3);
}
| exp EQUOP2 exp
{
$$ = new_exp_2 ($2, $1, $3);
}
| exp CMPOP2 exp
{
$$ = new_exp_2 ($2, $1, $3);
}
| exp ADDOP2 exp
{
$$ = new_exp_2 ($2, $1, $3);
}
| exp MULOP2 exp
{
$$ = new_exp_2 ($2, $1, $3);
}
| '!' exp
{
$$ = new_exp_1 (lnot, $2);
}
| 'n'
{
$$ = new_exp_0 (var);
}
| NUMBER
{
if (($$ = new_exp_0 (num)) != NULL)
$$->val.num = $1;
}
| '(' exp ')'
{
$$ = $2;
}
;
%%
void
internal_function
FREE_EXPRESSION (exp)
struct expression *exp;
{
if (exp == NULL)
return;
/* Handle the recursive case. */
switch (exp->nargs)
{
case 3:
FREE_EXPRESSION (exp->val.args[2]);
/* FALLTHROUGH */
case 2:
FREE_EXPRESSION (exp->val.args[1]);
/* FALLTHROUGH */
case 1:
FREE_EXPRESSION (exp->val.args[0]);
/* FALLTHROUGH */
default:
break;
}
free (exp);
}
static int
yylex (lval, pexp)
YYSTYPE *lval;
const char **pexp;
{
const char *exp = *pexp;
int result;
while (1)
{
if (exp[0] == '\0')
{
*pexp = exp;
return YYEOF;
}
if (exp[0] != ' ' && exp[0] != '\t')
break;
++exp;
}
result = *exp++;
switch (result)
{
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
{
unsigned long int n = result - '0';
while (exp[0] >= '0' && exp[0] <= '9')
{
n *= 10;
n += exp[0] - '0';
++exp;
}
lval->num = n;
result = NUMBER;
}
break;
case '=':
if (exp[0] == '=')
{
++exp;
lval->op = equal;
result = EQUOP2;
}
else
result = YYERRCODE;
break;
case '!':
if (exp[0] == '=')
{
++exp;
lval->op = not_equal;
result = EQUOP2;
}
break;
case '&':
case '|':
if (exp[0] == result)
++exp;
else
result = YYERRCODE;
break;
case '<':
if (exp[0] == '=')
{
++exp;
lval->op = less_or_equal;
}
else
lval->op = less_than;
result = CMPOP2;
break;
case '>':
if (exp[0] == '=')
{
++exp;
lval->op = greater_or_equal;
}
else
lval->op = greater_than;
result = CMPOP2;
break;
case '*':
lval->op = mult;
result = MULOP2;
break;
case '/':
lval->op = divide;
result = MULOP2;
break;
case '%':
lval->op = module;
result = MULOP2;
break;
case '+':
lval->op = plus;
result = ADDOP2;
break;
case '-':
lval->op = minus;
result = ADDOP2;
break;
case 'n':
case '?':
case ':':
case '(':
case ')':
/* Nothing, just return the character. */
break;
case ';':
case '\n':
case '\0':
/* Be safe and let the user call this function again. */
--exp;
result = YYEOF;
break;
default:
result = YYERRCODE;
#if YYDEBUG != 0
--exp;
#endif
break;
}
*pexp = exp;
return result;
}
static void
yyerror (str)
const char *str;
{
/* Do nothing. We don't print error messages here. */
}

View File

@@ -1,102 +0,0 @@
# po2tbl.sed - Convert Uniforum style .po file to lookup table for catgets
# Copyright (C) 1995 Free Software Foundation, Inc.
# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
1 {
i\
/* Automatically generated by po2tbl.sed from @PACKAGE NAME@.pot. */\
\
#if HAVE_CONFIG_H\
# include <config.h>\
#endif\
\
#include "libgettext.h"\
\
const struct _msg_ent _msg_tbl[] = {
h
s/.*/0/
x
}
#
# Write msgid entries in C array form.
#
/^msgid/ {
s/msgid[ ]*\(".*"\)/ {\1/
tb
# Append the next line
:b
N
# Look whether second part is continuation line.
s/\(.*\)"\(\n\)"\(.*"\)/\1\2\3/
# Yes, then branch.
ta
# Because we assume that the input file correctly formed the line
# just read cannot be again be a msgid line. So it's safe to ignore
# it.
s/\(.*\)\n.*/\1/
bc
# We found a continuation line. But before printing insert '\'.
:a
s/\(.*\)\(\n.*\)/\1\\\2/
P
# We cannot use D here.
s/.*\n\(.*\)/\1/
# Some buggy seds do not clear the `successful substitution since last ``t'''
# flag on `N', so we do a `t' here to clear it.
tb
# Not reached
:c
x
# The following nice solution is by
# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
td
# Increment a decimal number in pattern space.
# First hide trailing `9' digits.
:d
s/9\(_*\)$/_\1/
td
# Assure at least one digit is available.
s/^\(_*\)$/0\1/
# Increment the last digit.
s/8\(_*\)$/9\1/
s/7\(_*\)$/8\1/
s/6\(_*\)$/7\1/
s/5\(_*\)$/6\1/
s/4\(_*\)$/5\1/
s/3\(_*\)$/4\1/
s/2\(_*\)$/3\1/
s/1\(_*\)$/2\1/
s/0\(_*\)$/1\1/
# Convert the hidden `9' digits to `0's.
s/_/0/g
x
G
s/\(.*\)\n\([0-9]*\)/\1, \2},/
s/\(.*\)"$/\1/
p
}
#
# Last line.
#
$ {
i\
};\
g
s/0*\(.*\)/int _msg_tbl_length = \1;/p
}
d

31
intl/ref-add.sin Normal file
View File

@@ -0,0 +1,31 @@
# Add this package to a list of references stored in a text file.
#
# Copyright (C) 2000 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU Library General Public License as published
# by the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
# USA.
#
# Written by Bruno Haible <haible@clisp.cons.org>.
#
/^# Packages using this file: / {
s/# Packages using this file://
ta
:a
s/ @PACKAGE@ / @PACKAGE@ /
tb
s/ $/ @PACKAGE@ /
:b
s/^/# Packages using this file:/
}

26
intl/ref-del.sin Normal file
View File

@@ -0,0 +1,26 @@
# Remove this package from a list of references stored in a text file.
#
# Copyright (C) 2000 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU Library General Public License as published
# by the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
# USA.
#
# Written by Bruno Haible <haible@clisp.cons.org>.
#
/^# Packages using this file: / {
s/# Packages using this file://
s/ @PACKAGE@ / /
s/^/# Packages using this file:/
}

View File

@@ -1,42 +1,51 @@
/* Implementation of the textdomain(3) function.
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#if defined STDC_HEADERS || defined _LIBC
# include <stdlib.h>
#endif
#if defined STDC_HEADERS || defined HAVE_STRING_H || defined _LIBC
# include <string.h>
#else
# include <strings.h>
# ifndef memcpy
# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
# endif
#endif
#include <stdlib.h>
#include <string.h>
#ifdef _LIBC
# include <libintl.h>
#else
# include "libgettext.h"
# include "libgnuintl.h"
#endif
#include "gettextP.h"
#ifdef _LIBC
/* We have to handle multi-threaded applications. */
# include <bits/libc-lock.h>
#else
/* Provide dummy implementation if this is outside glibc. */
# define __libc_rwlock_define(CLASS, NAME)
# define __libc_rwlock_wrlock(NAME)
# define __libc_rwlock_unlock(NAME)
#endif
/* The internal variables in the standalone libintl.a must have different
names than the internal variables in GNU libc, otherwise programs
using libintl.a cannot be linked statically. */
#if !defined _LIBC
# define _nl_default_default_domain _nl_default_default_domain__
# define _nl_current_default_domain _nl_current_default_domain__
#endif
/* @@ end of prolog @@ */
@@ -61,6 +70,9 @@ extern const char *_nl_current_default_domain;
# define TEXTDOMAIN textdomain__
#endif
/* Lock variable to protect the global data in the gettext implementation. */
__libc_rwlock_define (extern, _nl_state_lock)
/* Set the current default message catalog to DOMAINNAME.
If DOMAINNAME is null, return the current default.
If DOMAINNAME is "", reset to the default of "messages". */
@@ -68,38 +80,60 @@ char *
TEXTDOMAIN (domainname)
const char *domainname;
{
char *old;
char *new_domain;
char *old_domain;
/* A NULL pointer requests the current setting. */
if (domainname == NULL)
return (char *) _nl_current_default_domain;
old = (char *) _nl_current_default_domain;
__libc_rwlock_wrlock (_nl_state_lock);
old_domain = (char *) _nl_current_default_domain;
/* If domain name is the null string set to default domain "messages". */
if (domainname[0] == '\0'
|| strcmp (domainname, _nl_default_default_domain) == 0)
_nl_current_default_domain = _nl_default_default_domain;
{
_nl_current_default_domain = _nl_default_default_domain;
new_domain = (char *) _nl_current_default_domain;
}
else if (strcmp (domainname, old_domain) == 0)
/* This can happen and people will use it to signal that some
environment variable changed. */
new_domain = old_domain;
else
{
/* If the following malloc fails `_nl_current_default_domain'
will be NULL. This value will be returned and so signals we
are out of core. */
#if defined _LIBC || defined HAVE_STRDUP
_nl_current_default_domain = strdup (domainname);
new_domain = strdup (domainname);
#else
size_t len = strlen (domainname) + 1;
char *cp = (char *) malloc (len);
if (cp != NULL)
memcpy (cp, domainname, len);
_nl_current_default_domain = cp;
new_domain = (char *) malloc (len);
if (new_domain != NULL)
memcpy (new_domain, domainname, len);
#endif
if (new_domain != NULL)
_nl_current_default_domain = new_domain;
}
if (old != _nl_default_default_domain)
free (old);
/* We use this possibility to signal a change of the loaded catalogs
since this is most likely the case and there is no other easy we
to do it. Do it only when the call was successful. */
if (new_domain != NULL)
{
++_nl_msg_cat_cntr;
return (char *) _nl_current_default_domain;
if (old_domain != new_domain && old_domain != _nl_default_default_domain)
free (old_domain);
}
__libc_rwlock_unlock (_nl_state_lock);
return new_domain;
}
#ifdef _LIBC

View File

@@ -1,104 +0,0 @@
# po2msg.sed - Convert Uniforum style .po file to X/Open style .msg file
# Copyright (C) 1995 Free Software Foundation, Inc.
# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
#
# The first directive in the .msg should be the definition of the
# message set number. We use always set number 1.
#
1 {
i\
$set 1 # Automatically created by po2msg.sed
h
s/.*/0/
x
}
#
# We copy all comments into the .msg file. Perhaps they can help.
#
/^#/ s/^#[ ]*/$ /p
#
# We copy the original message as a comment into the .msg file.
#
/^msgid/ {
# Does not work now
# /"$/! {
# s/\\$//
# s/$/ ... (more lines following)"/
# }
s/^msgid[ ]*"\(.*\)"$/$ Original Message: \1/
p
}
#
# The .msg file contains, other then the .po file, only the translations
# but each given a unique ID. Starting from 1 and incrementing by 1 for
# each message we assign them to the messages.
# It is important that the .po file used to generate the cat-id-tbl.c file
# (with po-to-tbl) is the same as the one used here. (At least the order
# of declarations must not be changed.)
#
/^msgstr/ {
s/msgstr[ ]*"\(.*\)"/\1/
x
# The following nice solution is by
# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
td
# Increment a decimal number in pattern space.
# First hide trailing `9' digits.
:d
s/9\(_*\)$/_\1/
td
# Assure at least one digit is available.
s/^\(_*\)$/0\1/
# Increment the last digit.
s/8\(_*\)$/9\1/
s/7\(_*\)$/8\1/
s/6\(_*\)$/7\1/
s/5\(_*\)$/6\1/
s/4\(_*\)$/5\1/
s/3\(_*\)$/4\1/
s/2\(_*\)$/3\1/
s/1\(_*\)$/2\1/
s/0\(_*\)$/1\1/
# Convert the hidden `9' digits to `0's.
s/_/0/g
x
# Bring the line in the format `<number> <message>'
G
s/^[^\n]*$/& /
s/\(.*\)\n\([0-9]*\)/\2 \1/
# Clear flag from last substitution.
tb
# Append the next line.
:b
N
# Look whether second part is a continuation line.
s/\(.*\n\)"\(.*\)"/\1\2/
# Yes, then branch.
ta
P
D
# Note that `D' includes a jump to the start!!
# We found a continuation line. But before printing insert '\'.
:a
s/\(.*\)\(\n.*\)/\1\\\2/
P
# We cannot use the sed command `D' here
s/.*\n\(.*\)/\1/
tb
}
d

2
m4/.cvsignore Normal file
View File

@@ -0,0 +1,2 @@
Makefile.in
Makefile

2
m4/Makefile.am Normal file
View File

@@ -0,0 +1,2 @@
EXTRA_DIST = codeset.m4 glibc21.m4 progtest.m4 gettext.m4 iconv.m4 \
lcmessage.m4

6
m4/aclocal_inc.m4 Normal file
View File

@@ -0,0 +1,6 @@
dnl AM_ACLOCAL_INCLUDE(macrodir)
AC_DEFUN([AM_ACLOCAL_INCLUDE],
[
test -n "$ACLOCAL_FLAGS" && ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
for k in $1 ; do ACLOCAL="$ACLOCAL -I $k" ; done
])

17
m4/codeset.m4 Normal file
View File

@@ -0,0 +1,17 @@
#serial AM1
dnl From Bruno Haible.
AC_DEFUN([NANO_AM_LANGINFO_CODESET],
[
AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
[AC_TRY_LINK([#include <langinfo.h>],
[char* cs = nl_langinfo(CODESET);],
am_cv_langinfo_codeset=yes,
am_cv_langinfo_codeset=no)
])
if test $am_cv_langinfo_codeset = yes; then
AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
[Define if you have <langinfo.h> and nl_langinfo(CODESET).])
fi
])

370
m4/gettext.m4 Normal file
View File

@@ -0,0 +1,370 @@
# Macro to add for using GNU gettext.
# Ulrich Drepper <drepper@cygnus.com>, 1995.
#
# This file can be copied and used freely without restrictions. It can
# be used in projects which are not available under the GNU General Public
# License or the GNU Library General Public License but which still want
# to provide support for the GNU gettext functionality.
# Please note that the actual code of the GNU gettext library is covered
# by the GNU Library General Public License, and the rest of the GNU
# gettext package package is covered by the GNU General Public License.
# They are *not* in the public domain.
# serial 10
dnl Usage: NANO_AM_WITH_NLS([TOOLSYMBOL], [NEEDSYMBOL], [LIBDIR]).
dnl If TOOLSYMBOL is specified and is 'use-libtool', then a libtool library
dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static,
dnl depending on --{enable,disable}-{shared,static} and on the presence of
dnl AM-DISABLE-SHARED). Otherwise, a static library
dnl $(top_builddir)/intl/libintl.a will be created.
dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
dnl implementations (in libc or libintl) without the ngettext() function
dnl will be ignored.
dnl LIBDIR is used to find the intl libraries. If empty,
dnl the value `$(top_builddir)/intl/' is used.
dnl
dnl The result of the configuration is one of three cases:
dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
dnl and used.
dnl Catalog format: GNU --> install in $(datadir)
dnl Catalog extension: .mo after installation, .gmo in source tree
dnl 2) GNU gettext has been found in the system's C library.
dnl Catalog format: GNU --> install in $(datadir)
dnl Catalog extension: .mo after installation, .gmo in source tree
dnl 3) No internationalization, always use English msgid.
dnl Catalog format: none
dnl Catalog extension: none
dnl The use of .gmo is historical (it was needed to avoid overwriting the
dnl GNU format catalogs when building on a platform with an X/Open gettext),
dnl but we keep it in order not to force irrelevant filename changes on the
dnl maintainers.
dnl
AC_DEFUN([NANO_AM_WITH_NLS],
[AC_MSG_CHECKING([whether NLS is requested])
dnl Default is enabled NLS
AC_ARG_ENABLE(nls,
[ --disable-nls do not use Native Language Support],
USE_NLS=$enableval, USE_NLS=yes)
AC_MSG_RESULT($USE_NLS)
AC_SUBST(USE_NLS)
BUILD_INCLUDED_LIBINTL=no
USE_INCLUDED_LIBINTL=no
INTLLIBS=
dnl If we use NLS figure out what method
if test "$USE_NLS" = "yes"; then
AC_DEFINE(ENABLE_NLS, 1,
[Define to 1 if translation of program messages to the user's native language
is requested.])
AC_MSG_CHECKING([whether included gettext is requested])
AC_ARG_WITH(included-gettext,
[ --with-included-gettext use the GNU gettext library included here],
nls_cv_force_use_gnu_gettext=$withval,
nls_cv_force_use_gnu_gettext=no)
AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
dnl User does not insist on using GNU NLS library. Figure out what
dnl to use. If GNU gettext is available we use this. Else we have
dnl to fall back to GNU NLS library.
CATOBJEXT=NONE
dnl Add a version number to the cache macros.
define(gt_cv_func_gnugettext_libc, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libc])
define(gt_cv_func_gnugettext_libintl, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libintl])
AC_CHECK_HEADER(libintl.h,
[AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
[AC_TRY_LINK([#include <libintl.h>
extern int _nl_msg_cat_cntr;],
[bindtextdomain ("", "");
return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],
gt_cv_func_gnugettext_libc=yes,
gt_cv_func_gnugettext_libc=no)])
if test "$gt_cv_func_gnugettext_libc" != "yes"; then
AC_CACHE_CHECK([for GNU gettext in libintl],
gt_cv_func_gnugettext_libintl,
[gt_save_LIBS="$LIBS"
LIBS="$LIBS -lintl $LIBICONV"
AC_TRY_LINK([#include <libintl.h>
extern int _nl_msg_cat_cntr;],
[bindtextdomain ("", "");
return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],
gt_cv_func_gnugettext_libintl=yes,
gt_cv_func_gnugettext_libintl=no)
LIBS="$gt_save_LIBS"])
fi
dnl If an already present or preinstalled GNU gettext() is found,
dnl use it. But if this macro is used in GNU gettext, and GNU
dnl gettext is already preinstalled in libintl, we update this
dnl libintl. (Cf. the install rule in intl/Makefile.in.)
if test "$gt_cv_func_gnugettext_libc" = "yes" \
|| { test "$gt_cv_func_gnugettext_libintl" = "yes" \
&& test "$PACKAGE" != gettext; }; then
AC_DEFINE(HAVE_GETTEXT, 1,
[Define if the GNU gettext() function is already present or preinstalled.])
if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
dnl If iconv() is in a separate libiconv library, then anyone
dnl linking with libintl{.a,.so} also needs to link with
dnl libiconv.
INTLLIBS="-lintl $LIBICONV"
fi
gt_save_LIBS="$LIBS"
LIBS="$LIBS $INTLLIBS"
AC_CHECK_FUNCS(dcgettext)
LIBS="$gt_save_LIBS"
dnl Search for GNU msgfmt in the PATH.
NANO_AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
[$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :)
AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
dnl Search for GNU xgettext in the PATH.
NANO_AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
[$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :)
CATOBJEXT=.gmo
fi
])
if test "$CATOBJEXT" = "NONE"; then
dnl GNU gettext is not found in the C library.
dnl Fall back on GNU gettext library.
nls_cv_use_gnu_gettext=yes
fi
fi
if test "$nls_cv_use_gnu_gettext" = "yes"; then
dnl Mark actions used to generate GNU NLS library.
INTLOBJS="\$(GETTOBJS)"
NANO_AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
[$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :)
AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
NANO_AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
[$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :)
AC_SUBST(MSGFMT)
BUILD_INCLUDED_LIBINTL=yes
USE_INCLUDED_LIBINTL=yes
CATOBJEXT=.gmo
INTLLIBS="ifelse([$3],[],\$(top_builddir)/intl,[$3])/libintl.ifelse([$1], use-libtool, [l], [])a $LIBICONV"
LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
fi
dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
dnl Test whether we really found GNU msgfmt.
if test "$GMSGFMT" != ":"; then
dnl If it is no GNU msgfmt we define it as : so that the
dnl Makefiles still can work.
if $GMSGFMT --statistics /dev/null >/dev/null 2>&1; then
: ;
else
AC_MSG_RESULT(
[found msgfmt program is not GNU msgfmt; ignore it])
GMSGFMT=":"
fi
fi
dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
dnl Test whether we really found GNU xgettext.
if test "$XGETTEXT" != ":"; then
dnl If it is no GNU xgettext we define it as : so that the
dnl Makefiles still can work.
if $XGETTEXT --omit-header /dev/null >/dev/null 2>&1; then
: ;
else
AC_MSG_RESULT(
[found xgettext program is not GNU xgettext; ignore it])
XGETTEXT=":"
fi
fi
dnl We need to process the po/ directory.
POSUB=po
fi
AC_OUTPUT_COMMANDS(
[for ac_file in $CONFIG_FILES; do
# Support "outfile[:infile[:infile...]]"
case "$ac_file" in
*:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
esac
# PO directories have a Makefile.in generated from Makefile.in.in.
case "$ac_file" in */Makefile.in)
# Adjust a relative srcdir.
ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
# In autoconf-2.13 it is called $ac_given_srcdir.
# In autoconf-2.50 it is called $srcdir.
test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
case "$ac_given_srcdir" in
.) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
/*) top_srcdir="$ac_given_srcdir" ;;
*) top_srcdir="$ac_dots$ac_given_srcdir" ;;
esac
if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
rm -f "$ac_dir/POTFILES"
test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," -e "\$s/\(.*\) \\\\/\1/" < "$ac_given_srcdir/$ac_dir/POTFILES.in" > "$ac_dir/POTFILES"
test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
fi
;;
esac
done])
dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
dnl to 'yes' because some of the testsuite requires it.
if test "$PACKAGE" = gettext; then
BUILD_INCLUDED_LIBINTL=yes
fi
dnl intl/plural.c is generated from intl/plural.y. It requires bison,
dnl because plural.y uses bison specific features. It requires at least
dnl bison-1.26 because earlier versions generate a plural.c that doesn't
dnl compile.
dnl bison is only needed for the maintainer (who touches plural.y). But in
dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
dnl the rule in general Makefile. Now, some people carelessly touch the
dnl files or have a broken "make" program, hence the plural.c rule will
dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
dnl present or too old.
AC_CHECK_PROGS([INTLBISON], [bison])
if test -z "$INTLBISON"; then
ac_verc_fail=yes
else
dnl Found it, now check the version.
AC_MSG_CHECKING([version of bison])
changequote(<<,>>)dnl
ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
changequote([,])dnl
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
esac
AC_MSG_RESULT([$ac_prog_version])
fi
if test $ac_verc_fail = yes; then
INTLBISON=:
fi
dnl These rules are solely for the distribution goal. While doing this
dnl we only have to keep exactly one list of the available catalogs
dnl in configure.in.
for lang in $ALL_LINGUAS; do
GMOFILES="$GMOFILES $lang.gmo"
POFILES="$POFILES $lang.po"
done
dnl Make all variables we use known to autoconf.
AC_SUBST(BUILD_INCLUDED_LIBINTL)
AC_SUBST(USE_INCLUDED_LIBINTL)
AC_SUBST(CATALOGS)
AC_SUBST(CATOBJEXT)
AC_SUBST(GMOFILES)
AC_SUBST(INTLLIBS)
AC_SUBST(INTLOBJS)
AC_SUBST(POFILES)
AC_SUBST(POSUB)
dnl For backward compatibility. Some configure.ins may be using this.
nls_cv_header_intl=
nls_cv_header_libgt=
dnl For backward compatibility. Some Makefiles may be using this.
DATADIRNAME=share
AC_SUBST(DATADIRNAME)
dnl For backward compatibility. Some Makefiles may be using this.
INSTOBJEXT=.mo
AC_SUBST(INSTOBJEXT)
dnl For backward compatibility. Some Makefiles may be using this.
GENCAT=gencat
AC_SUBST(GENCAT)
])
dnl Usage: Just like AM_WITH_NLS, which see.
AC_DEFUN([NANO_AM_GNU_GETTEXT],
[AC_REQUIRE([AC_PROG_MAKE_SET])dnl
AC_REQUIRE([AC_PROG_CC])dnl
AC_REQUIRE([AC_CANONICAL_HOST])dnl
AC_REQUIRE([AC_PROG_RANLIB])dnl
AC_REQUIRE([AC_ISC_POSIX])dnl
AC_REQUIRE([AC_HEADER_STDC])dnl
AC_REQUIRE([AC_C_CONST])dnl
AC_REQUIRE([AC_C_INLINE])dnl
AC_REQUIRE([AC_TYPE_OFF_T])dnl
AC_REQUIRE([AC_TYPE_SIZE_T])dnl
AC_REQUIRE([AC_FUNC_ALLOCA])dnl
AC_REQUIRE([AC_FUNC_MMAP])dnl
AC_REQUIRE([nano_jm_GLIBC21])dnl
AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
stdlib.h string.h unistd.h sys/param.h])
AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getcwd getegid geteuid \
getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \
strdup strtoul tsearch __argz_count __argz_stringify __argz_next])
NANO_AM_ICONV
NANO_AM_LANGINFO_CODESET
NANO_AM_LC_MESSAGES
NANO_AM_WITH_NLS([$1],[$2],[$3])
if test "x$CATOBJEXT" != "x"; then
if test "x$ALL_LINGUAS" = "x"; then
LINGUAS=
else
AC_MSG_CHECKING(for catalogs to be installed)
NEW_LINGUAS=
for presentlang in $ALL_LINGUAS; do
useit=no
for desiredlang in ${LINGUAS-$ALL_LINGUAS}; do
# Use the presentlang catalog if desiredlang is
# a. equal to presentlang, or
# b. a variant of presentlang (because in this case,
# presentlang can be used as a fallback for messages
# which are not translated in the desiredlang catalog).
case "$desiredlang" in
"$presentlang"*) useit=yes;;
esac
done
if test $useit = yes; then
NEW_LINGUAS="$NEW_LINGUAS $presentlang"
fi
done
LINGUAS=$NEW_LINGUAS
AC_MSG_RESULT($LINGUAS)
fi
dnl Construct list of names of catalog files to be constructed.
if test -n "$LINGUAS"; then
for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
fi
fi
dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
dnl Try to locate is.
MKINSTALLDIRS=
if test -n "$ac_aux_dir"; then
MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
fi
if test -z "$MKINSTALLDIRS"; then
MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
fi
AC_SUBST(MKINSTALLDIRS)
dnl Enable libtool support if the surrounding package wishes it.
INTL_LIBTOOL_SUFFIX_PREFIX=ifelse([$1], use-libtool, [l], [])
AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
])

26
m4/glibc21.m4 Normal file
View File

@@ -0,0 +1,26 @@
#serial 2
# Test for the GNU C Library, version 2.1 or newer.
# From Bruno Haible.
AC_DEFUN([nano_jm_GLIBC21],
[
AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
ac_cv_gnu_library_2_1,
[AC_EGREP_CPP([Lucky GNU user],
[
#include <features.h>
#ifdef __GNU_LIBRARY__
#if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
Lucky GNU user
#endif
#endif
],
ac_cv_gnu_library_2_1=yes,
ac_cv_gnu_library_2_1=no)
]
)
AC_SUBST(GLIBC21)
GLIBC21="$ac_cv_gnu_library_2_1"
]
)

69
m4/iconv.m4 Normal file
View File

@@ -0,0 +1,69 @@
#serial AM2
dnl From Bruno Haible.
AC_DEFUN([NANO_AM_ICONV],
[
dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
dnl those with the standalone portable GNU libiconv installed).
AC_ARG_WITH([libiconv-prefix],
[ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib], [
for dir in `echo "$withval" | tr : ' '`; do
if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi
done
])
AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
am_cv_func_iconv="no, consider installing GNU libiconv"
am_cv_lib_iconv=no
AC_TRY_LINK([#include <stdlib.h>
#include <iconv.h>],
[iconv_t cd = iconv_open("","");
iconv(cd,NULL,NULL,NULL,NULL);
iconv_close(cd);],
am_cv_func_iconv=yes)
if test "$am_cv_func_iconv" != yes; then
am_save_LIBS="$LIBS"
LIBS="$LIBS -liconv"
AC_TRY_LINK([#include <stdlib.h>
#include <iconv.h>],
[iconv_t cd = iconv_open("","");
iconv(cd,NULL,NULL,NULL,NULL);
iconv_close(cd);],
am_cv_lib_iconv=yes
am_cv_func_iconv=yes)
LIBS="$am_save_LIBS"
fi
])
if test "$am_cv_func_iconv" = yes; then
AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
AC_MSG_CHECKING([for iconv declaration])
AC_CACHE_VAL(am_cv_proto_iconv, [
AC_TRY_COMPILE([
#include <stdlib.h>
#include <iconv.h>
extern
#ifdef __cplusplus
"C"
#endif
#if defined(__STDC__) || defined(__cplusplus)
size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
#else
size_t iconv();
#endif
], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
AC_MSG_RESULT([$]{ac_t:-
}[$]am_cv_proto_iconv)
AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
[Define as const if the declaration of iconv() needs const.])
fi
LIBICONV=
if test "$am_cv_lib_iconv" = yes; then
LIBICONV="-liconv"
fi
AC_SUBST(LIBICONV)
])

24
m4/lcmessage.m4 Normal file
View File

@@ -0,0 +1,24 @@
# Check whether LC_MESSAGES is available in <locale.h>.
# Ulrich Drepper <drepper@cygnus.com>, 1995.
#
# This file can be copied and used freely without restrictions. It can
# be used in projects which are not available under the GNU General Public
# License or the GNU Library General Public License but which still want
# to provide support for the GNU gettext functionality.
# Please note that the actual code of the GNU gettext library is covered
# by the GNU Library General Public License, and the rest of the GNU
# gettext package package is covered by the GNU General Public License.
# They are *not* in the public domain.
# serial 2
AC_DEFUN([NANO_AM_LC_MESSAGES],
[if test $ac_cv_header_locale_h = yes; then
AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
[AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
if test $am_cv_val_LC_MESSAGES = yes; then
AC_DEFINE(HAVE_LC_MESSAGES, 1,
[Define if your <locale.h> file defines LC_MESSAGES.])
fi
fi])

51
m4/progtest.m4 Normal file
View File

@@ -0,0 +1,51 @@
# Search path for a program which passes the given test.
# Ulrich Drepper <drepper@cygnus.com>, 1996.
#
# This file can be copied and used freely without restrictions. It can
# be used in projects which are not available under the GNU General Public
# License or the GNU Library General Public License but which still want
# to provide support for the GNU gettext functionality.
# Please note that the actual code of the GNU gettext library is covered
# by the GNU Library General Public License, and the rest of the GNU
# gettext package package is covered by the GNU General Public License.
# They are *not* in the public domain.
# serial 2
dnl NANO_AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
AC_DEFUN([NANO_AM_PATH_PROG_WITH_TEST],
[# Extract the first word of "$2", so it can be a program name with args.
set dummy $2; ac_word=[$]2
AC_MSG_CHECKING([for $ac_word])
AC_CACHE_VAL(ac_cv_path_$1,
[case "[$]$1" in
/*)
ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
;;
*)
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
for ac_dir in ifelse([$5], , $PATH, [$5]); do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
if [$3]; then
ac_cv_path_$1="$ac_dir/$ac_word"
break
fi
fi
done
IFS="$ac_save_ifs"
dnl If no 4th arg is given, leave the cache variable unset,
dnl so AC_PATH_PROGS will keep looking.
ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
])dnl
;;
esac])dnl
$1="$ac_cv_path_$1"
if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
AC_MSG_RESULT([$]$1)
else
AC_MSG_RESULT(no)
fi
AC_SUBST($1)dnl
])

190
missing
View File

@@ -1,190 +0,0 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
# Franc,ois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
if test $# -eq 0; then
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
fi
case "$1" in
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
error status if there is no known handling for PROGRAM.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
Supported PROGRAM values:
aclocal touch file \`aclocal.m4'
autoconf touch file \`configure'
autoheader touch file \`config.h.in'
automake touch all \`Makefile.in' files
bison create \`y.tab.[ch]', if possible, from existing .[ch]
flex create \`lex.yy.c', if possible, from existing .c
lex create \`lex.yy.c', if possible, from existing .c
makeinfo touch the output file
yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing - GNU libit 0.0"
;;
-*)
echo 1>&2 "$0: Unknown \`$1' option"
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
;;
aclocal)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`acinclude.m4' or \`configure.in'. You might want
to install the \`Automake' and \`Perl' packages. Grab them from
any GNU archive site."
touch aclocal.m4
;;
autoconf)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`configure.in'. You might want to install the
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
archive site."
touch configure
;;
autoheader)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`acconfig.h' or \`configure.in'. You might want
to install the \`Autoconf' and \`GNU m4' packages. Grab them
from any GNU archive site."
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in`
test -z "$files" && files="config.h"
touch_files=
for f in $files; do
case "$f" in
*:*) touch_files="$touch_files "`echo "$f" |
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
*) touch_files="$touch_files $f.in";;
esac
done
touch $touch_files
;;
automake)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'.
You might want to install the \`Automake' and \`Perl' packages.
Grab them from any GNU archive site."
find . -type f -name Makefile.am -print |
sed 's/\.am$/.in/' |
while read f; do touch "$f"; done
;;
bison|yacc)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.y' file. You may need the \`Bison' package
in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site."
rm -f y.tab.c y.tab.h
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.y)
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.c
fi
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.h
fi
;;
esac
fi
if [ ! -f y.tab.h ]; then
echo >y.tab.h
fi
if [ ! -f y.tab.c ]; then
echo 'main() { return 0; }' >y.tab.c
fi
;;
lex|flex)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.l' file. You may need the \`Flex' package
in order for those modifications to take effect. You can get
\`Flex' from any GNU archive site."
rm -f lex.yy.c
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.l)
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" lex.yy.c
fi
;;
esac
fi
if [ ! -f lex.yy.c ]; then
echo 'main() { return 0; }' >lex.yy.c
fi
;;
makeinfo)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.texi' or \`.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy \`make' (AIX,
DU, IRIX). You might want to install the \`Texinfo' package or
the \`GNU make' package. Grab either from any GNU archive site."
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
fi
touch $file
;;
*)
echo 1>&2 "\
WARNING: \`$1' is needed, and you do not seem to have it handy on your
system. You might have modified some files without having the
proper tools for further handling them. Check the \`README' file,
it often tells you about the needed prerequirements for installing
this package. You may also peek at any GNU archive site, in case
some other package would contain this missing \`$1' program."
exit 1
;;
esac
exit 0

View File

@@ -1,40 +0,0 @@
#! /bin/sh
# mkinstalldirs --- make directory hierarchy
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created: 1993-05-16
# Public domain
# $Id$
errstatus=0
for file
do
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
shift
pathcomp=
for d
do
pathcomp="$pathcomp$d"
case "$pathcomp" in
-* ) pathcomp=./$pathcomp ;;
esac
if test ! -d "$pathcomp"; then
echo "mkdir $pathcomp"
mkdir "$pathcomp" || lasterr=$?
if test ! -d "$pathcomp"; then
errstatus=$lasterr
fi
fi
pathcomp="$pathcomp/"
done
done
exit $errstatus
# mkinstalldirs ends here

91
move.c
View File

@@ -1,10 +1,11 @@
/* $Id$ */
/**************************************************************************
* move.c *
* *
* Copyright (C) 1999 Chris Allegretta *
* Copyright (C) 1999-2002 Chris Allegretta *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 1, or (at your option) *
* the Free Software Foundation; either version 2, or (at your option) *
* any later version. *
* *
* This program is distributed in the hope that it will be useful, *
@@ -18,34 +19,39 @@
* *
**************************************************************************/
#include "config.h"
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include "config.h"
#include "proto.h"
#include "nano.h"
#ifndef NANO_SMALL
#ifdef ENABLE_NLS
#include <libintl.h>
#define _(string) gettext(string)
#else
#define _(string) (string)
#endif
void page_down_center(void)
void page_down(void)
{
if (editbot != filebot) {
edit_update(editbot->next);
center_cursor();
if (!ISSET(SMOOTHSCROLL)) {
if (editbot != filebot) {
edit_update(editbot->next, CENTER);
center_cursor();
} else {
while (current != filebot)
current = current->next;
edit_update(current, CENTER);
}
} else {
while (current != filebot)
current = current->next;
edit_update(current);
edit_update(editbot, NONE);
}
update_cursor();
}
int page_down(void)
int do_page_down(void)
{
wrap_reset();
current_x = 0;
@@ -54,15 +60,27 @@ int page_down(void)
if (current == filebot)
return 0;
if (editbot != filebot) {
/* AHEM, if we only have a screen or less of text, DON'T do an
edit_update, just move the cursor to editbot! */
if (edittop == fileage && editbot == filebot && totlines < editwinrows) {
current = editbot;
reset_cursor();
} else if (editbot != filebot || edittop == fileage) {
current_y = 0;
current = editbot;
edit_update_top(current);
} else
if (current->prev != NULL)
current = current->prev;
if (current->prev != NULL)
current = current->prev;
edit_update(current, TOP);
} else {
while (current != filebot) {
current = current->next;
current_y++;
}
edit_update(edittop, TOP);
}
update_cursor();
UNSET(KEEP_CUTBUFFER);
@@ -72,6 +90,7 @@ int page_down(void)
int do_home(void)
{
UNSET(KEEP_CUTBUFFER);
current_x = 0;
placewewant = 0;
update_line(current, current_x);
@@ -80,6 +99,7 @@ int do_home(void)
int do_end(void)
{
UNSET(KEEP_CUTBUFFER);
current_x = strlen(current->data);
placewewant = xplustabs();
update_line(current, current_x);
@@ -93,12 +113,8 @@ int do_down(void)
wrap_reset();
if (current->next != NULL) {
update_line(current->prev, 0);
if (placewewant > 0)
current_x = actual_x(current->next, placewewant);
if (current_x > strlen(current->next->data))
current_x = strlen(current->next->data);
} else {
UNSET(KEEP_CUTBUFFER);
check_statblank();
@@ -108,7 +124,7 @@ int do_down(void)
if (current_y < editwinrows - 1 && current != editbot)
current_y++;
else
page_down_center();
page_down();
update_cursor();
update_line(current->prev, 0);
@@ -118,11 +134,23 @@ int do_down(void)
return 1;
}
void page_up_center(void)
void page_up(void)
{
if (edittop != fileage) {
edit_update(edittop);
center_cursor();
if (!ISSET(SMOOTHSCROLL)) {
edit_update(edittop, CENTER);
/* Now that we've updated the edit window, edittop might be
at the top of the file; if so, just move the cursor up one
line and don't center it. */
if (edittop != fileage)
center_cursor();
else {
current = current->prev;
reset_cursor();
}
} else {
edit_update(edittop->prev, NONE);
}
} else
current_y = 0;
@@ -130,8 +158,10 @@ void page_up_center(void)
}
int page_up(void)
int do_page_up(void)
{
int i;
wrap_reset();
current_x = 0;
placewewant = 0;
@@ -140,7 +170,11 @@ int page_up(void)
return 0;
current_y = 0;
edit_update_bot(edittop);
current = edittop;
for (i = 0; i <= editwinrows - 3 && current->prev != NULL; i++)
current = current->prev;
edit_update(current, TOP);
update_cursor();
UNSET(KEEP_CUTBUFFER);
@@ -153,18 +187,13 @@ int do_up(void)
{
wrap_reset();
if (current->prev != NULL) {
update_line(current, 0);
if (placewewant > 0)
current_x = actual_x(current->prev, placewewant);
if (current_x > strlen(current->prev->data))
current_x = strlen(current->prev->data);
}
if (current_y > 0)
current_y--;
else
page_up_center();
page_up();
update_cursor();
update_line(current->next, 0);

131
nano.1
View File

@@ -1,20 +1,14 @@
.\" Hey, EMACS: -*- nroff -*-
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH NANO 1 "January 4, 2000"
.\" Hey, EMACS: -*- nroff -*-
.\" nano.1 is copyright 1999-2002 by
.\" Chris Allegretta <chrisa@asty.org>
.\"
.\" This is free documentation, see the latest version of the GNU General
.\" Public License for copying conditions. There is NO warranty.
.\"
.\" $Id$
.TH NANO 1 "January 3, 2002"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
.\" .nh disable hyphenation
.\" .hy enable hyphenation
.\" .ad l left justify
.\" .ad b justify to both left and right margins
.\" .nf disable filling
.\" .fi enable filling
.\" .br insert line break
.\" .sp <n> insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.SH NAME
nano \- Nano's ANOther editor, an enhanced free Pico Clone
.SH SYNOPSIS
@@ -27,53 +21,92 @@ This manual page documents briefly the
command.
.PP
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
.\" \fI<whatever>\fP escape sequences to invoke bold face and italics,
.\" respectively.
\fBnano\fP was originally known as TIP (TIP Isn't Pico). It is a small,
free and friendly editor which aims to replace Pico, the default editor
included in the non-free Pine package. Rather than just copying Pico's
look and feel,
\fBnano\fP is a small, free and friendly editor which aims to replace
Pico, the default editor included in the non-free Pine package. Rather
than just copying Pico's look and feel,
.B nano
also implements some missing (or disabled by
default) features in Pico, such as "search and replace" and "goto line
number".
also implements some missing (or disabled by default) features in Pico,
such as "search and replace" and "goto line number".
.SH OPTIONS
.TP
.B \-T (\-\-tabsize)
Set the size (width) of a tab, if supported by your curses library.
.B \-D (\-\-dos)
Write file in DOS format.
.TP
.B \-F (\-\-multibuffer)
Enable multiple file buffers (if available).
.TP
.B \-K (\-\-keypad)
Do not use the ncurses keypad() call unless necessary. Try this flag if
you find that the arrow keys on the numeric keypad do not work for you
under nano.
.TP
.B \-M (\-\-mac)
Write file in Mac format.
.TP
.B \-N (\-\-noconvert)
Disable automatic conversion of files from DOS/Mac format.
.TP
.B \-Q [str] (\-\-quotestr=[str])
Set the quoting string for justifying. The default is "> ".
.TP
.B \-R (\-\-regexp)
Enable regular expression matching for search strings, as well as
\\n subexpression replacement for replace strings, if available.
.TP
.B \-S (\-\-smooth)
Enable smooth scrolling. Text will scroll line-by-line, instead of the
usual chunk-by-chunk behaviour.
.TP
.B \-T [num] (\-\-tabsize=[num])
Set the size (width) of a tab.
.TP
.B \-V (\-\-version)
Show the current version number and author.
.TP
.B \-h (\-\-help)
Display a summary of commandline options.
.B \-Y (\-\-syntax=[str])
Specify a specific syntax hilighting from the .nanorc to use (if available).
.TP
.B \-c (\-\-const)
Constantly show the cursor position.
.TP
.B \-h (\-\-help)
Display a summary of command line options.
.TP
.B \-i (\-\-autoindent)
Indent new lines to the previous line's indentation. Useful when editing
source code.
.TP
.B \-k (\-\-cut)
Enable cut from cursor to end of line with ^K.
.TP
.B \-l (\-\-nofollow)
If the file being edited is a symbolic link, replace the link with a
a new file, do not follow it. Good for editing files in /tmp perhaps?
If the file being edited is a symbolic link, replace the link with
a new file, do not follow it. Good for editing files in /tmp, perhaps?
.TP
.B \-m (\-\-mouse)
Enable mouse support (if available for your system).
.TP
.B \-p (\-\-pico)
Display the same shortcut lists as Pico does.
.B \-o [dir] (\-\-operatingdir=[dir])
Set operating directory. Makes nano set up something similar to a chroot.
.TP
.B \-s (\-\-speller)
.B \-p (\-\-pico)
Emulate Pico as closely as possible. This affects both the "shortcut list"
at the bottom of the screen, as well as the display and entry of previous
search and replace strings.
.TP
.B \-r [#cols] (\-\-fill=[#cols])
Wrap lines at column #cols. By default, this is the width of the screen,
less eight. If this value is negative, wrapping will occur at #cols from
the right of the screen, allowing it to vary along with the screen width
if the screen is resized.
.TP
.B \-s [prog] (\-\-speller=[prog])
Enable alternative spell checker command.
.TP
.B \-t (\-\-tempfile)
Always save changed buffer without prompting. Same as Pico -t option.
Always save changed buffer without prompting. Same as Pico -t option.
.TP
.B \-v (\-\-view)
View file (read only) mode.
@@ -87,18 +120,36 @@ Disable help screen at bottom of editor.
.B \-z (\-\-suspend)
Enable suspend ability.
.TP
.B \-a, \-b, \-e, \-f, \-g, \-j
Ignored, for compatibility with Pico.
.TP
.B \+LINE
Places cursor at LINE on startup.
.SH NOTES
Nano will try to dump the buffer into an emergency file in some cases.
Mainly, this will happen if Nano receives a SIGHUP or runs out of
memory, when it will write the buffer into a file named "nano.save" if the
buffer didn't have a name already, or will add a ".save" suffix to the
current filename. If an emergency file with that name already exists in
the current directory, ".save" and a number (e.g. ".save.1") will be
suffixed to the current filename in order to make it unique. In
multibuffer mode, nano will write all the open buffers to the respective
emergency files.
.SH BUGS
Please send any comments or bug reports to
.B nano@asty.org.
.br
.B nano@nano-editor.org.
.br
The nano mailing list is available from
.B nano-devel@lists.sourceforge.net.
To subscribe, email to nano-devel-request@lists.sourceforge.net with a
.br
.B nano-devel@gnu.org.
To subscribe, email to nano-devel-request@gnu.org with a
subject of "subscribe".
.SH HOMEPAGE
http://www.asty.org/nano
http://www.nano-editor.org
.SH AUTHOR
Chris Allegretta <chrisa@asty.org>, et al. This manual page was
originally written by Jordi Mallach <jordi@sindominio.net>, for the Debian
GNU/Linux system (but may be used by others).
Chris Allegretta <chrisa@asty.org>, et al (see AUTHORS and THANKS for
details).
This manual page was originally written by Jordi Mallach
<jordi@sindominio.net>, for the Debian GNU system (but may be
used by others).

View File

@@ -3,21 +3,11 @@ Content-type: text/html
<HTML><HEAD><TITLE>Manpage of NANO</TITLE>
</HEAD><BODY>
<H1>NANO</H1>
Section: User Commands (1)<BR>Updated: January 4, 2000<BR><A HREF="#index">Index</A>
Section: User Commands (1)<BR>Updated: January 3, 2002<BR><A HREF="#index">Index</A>
<A HREF="http://localhost/cgi-bin/man/man2html">Return to Main Contents</A><HR>
<A NAME="lbAB">&nbsp;</A>
<H2>NAME</H2>
@@ -43,66 +33,116 @@ command.
<B>nano</B> was originally known as TIP (TIP Isn't Pico). It is a small,
free and friendly editor which aims to replace Pico, the default editor
included in the non-free Pine package. Rather than just copying Pico's
look and feel,
<B>nano</B> is a small, free and friendly editor which aims to replace
Pico, the default editor included in the non-free Pine package. Rather
than just copying Pico's look and feel,
<B>nano</B>
also implements some missing (or disabled by
default) features in Pico, such as &quot;search and replace&quot; and &quot;goto line
number&quot;.
also implements some missing (or disabled by default) features in Pico,
such as &quot;search and replace&quot; and &quot;goto line number&quot;.
<A NAME="lbAE">&nbsp;</A>
<H2>OPTIONS</H2>
<DL COMPACT>
<DT><B>-T (--tabsize)</B>
<DT><B>-D (--dos)</B>
<DD>
Set the size (width) of a tab, if supported by your curses library.
Write file in DOS format.
<DT><B>-F (--multibuffer)</B>
<DD>
Enable multiple file buffers (if available).
<DT><B>-K (--keypad)</B>
<DD>
Do not use the ncurses keypad() call unless necessary. Try this flag if
you find that the arrow keys on the numeric keypad do not work for you
under nano.
<DT><B>-M (--mac)</B>
<DD>
Write file in Mac format.
<DT><B>-N (--noconvert)</B>
<DD>
Disable automatic conversion of files from DOS/Mac format.
<DT><B>-Q [str] (--quotestr=[str])</B>
<DD>
Set the quoting string for justifying. The default is &quot;&gt; &quot;.
<DT><B>-R (--regexp)</B>
<DD>
Enable regular expression matching for search strings, as well as
\n subexpression replacement for replace strings, if available.
<DT><B>-S (--smooth)</B>
<DD>
Enable smooth scrolling. Text will scroll line-by-line, instead of the
usual chunk-by-chunk behaviour.
<DT><B>-T [num] (--tabsize=[num])</B>
<DD>
Set the size (width) of a tab.
<DT><B>-V (--version)</B>
<DD>
Show the current version number and author.
<DT><B>-h (--help)</B>
<DT><B>-Y (--syntax=[str])</B>
<DD>
Display a summary of commandline options.
Specify a specific syntax hilighting from the .nanorc to use (if available).
<DT><B>-c (--const)</B>
<DD>
Constantly show the cursor position.
<DT><B>-h (--help)</B>
<DD>
Display a summary of command line options.
<DT><B>-i (--autoindent)</B>
<DD>
Indent new lines to the previous line's indentation. Useful when editing
source code.
<DT><B>-k (--cut)</B>
<DD>
Enable cut from cursor to end of line with ^K.
<DT><B>-l (--nofollow)</B>
<DD>
If the file being edited is a symbolic link, replace the link with a
a new file, do not follow it. Good for editing files in /tmp perhaps?
If the file being edited is a symbolic link, replace the link with
a new file, do not follow it. Good for editing files in /tmp, perhaps?
<DT><B>-m (--mouse)</B>
<DD>
Enable mouse support (if available for your system).
<DT><B>-o [dir] (--operatingdir=[dir])</B>
<DD>
Set operating directory. Makes nano set up something similar to a chroot.
<DT><B>-p (--pico)</B>
<DD>
Display the same shortcut lists as Pico does.
<DT><B>-s (--speller)</B>
Emulate Pico as closely as possible. This affects both the &quot;shortcut list&quot;
at the bottom of the screen, as well as the display and entry of previous
search and replace strings.
<DT><B>-r [#cols] (--fill=[#cols])</B>
<DD>
Wrap lines at column #cols. By default, this is the width of the screen,
less eight. If this value is negative, wrapping will occur at #cols from
the right of the screen, allowing it to vary along with the screen width
if the screen is resized.
<DT><B>-s [prog] (--speller=[prog])</B>
<DD>
Enable alternative spell checker command.
<DT><B>-t (--tempfile)</B>
<DD>
Always save changed buffer without prompting. Same as Pico -t option.
Always save changed buffer without prompting. Same as Pico -t option.
<DT><B>-v (--view)</B>
<DD>
@@ -119,32 +159,56 @@ Disable help screen at bottom of editor.
<DD>
Enable suspend ability.
<DT><B>-a, -b, -e, -f, -g, -j</B>
<DD>
Ignored, for compatibility with Pico.
<DT><B>+LINE</B>
<DD>
Places cursor at LINE on startup.
</DL>
<A NAME="lbAF">&nbsp;</A>
<H2>NOTES</H2>
Nano will try to dump the buffer into an emergency file in some cases.
Mainly, this will happen if Nano receives a SIGHUP or runs out of
memory, when it will write the buffer into a file named &quot;nano.save&quot; if the
buffer didn't have a name already, or will add a &quot;.save&quot; suffix to the
current filename. If an emergency file with that name already exists in
the current directory, &quot;.save&quot; and a number (e.g. &quot;.save.1&quot;) will be
suffixed to the current filename in order to make it unique. In
multibuffer mode, nano will write all the open buffers to the respective
emergency files.
<A NAME="lbAG">&nbsp;</A>
<H2>BUGS</H2>
Please send any comments or bug reports to
<B><A HREF="mailto:nano@asty.org">nano@asty.org</A>.</B>
<BR>
<B><A HREF="mailto:nano@nano-editor.org">nano@nano-editor.org</A>.</B>
<BR>
The nano mailing list is available from
<B><A HREF="mailto:nano-devel@lists.sourceforge.net">nano-devel@lists.sourceforge.net</A>.</B>
<BR>
To subscribe, email to <A HREF="mailto:nano-devel-request@lists.sourceforge.net">nano-devel-request@lists.sourceforge.net</A> with a
<B><A HREF="mailto:nano-devel@gnu.org">nano-devel@gnu.org</A>.</B>
To subscribe, email to <A HREF="mailto:nano-devel-request@gnu.org">nano-devel-request@gnu.org</A> with a
subject of &quot;subscribe&quot;.
<A NAME="lbAG">&nbsp;</A>
<A NAME="lbAH">&nbsp;</A>
<H2>HOMEPAGE</H2>
<A HREF="http://www.asty.org/nano">http://www.asty.org/nano</A>
<A NAME="lbAH">&nbsp;</A>
<A HREF="http://www.nano-editor.org">http://www.nano-editor.org</A>
<A NAME="lbAI">&nbsp;</A>
<H2>AUTHOR</H2>
Chris Allegretta &lt;<A HREF="mailto:chrisa@asty.org">chrisa@asty.org</A>&gt;, et al. This manual page was
originally written by Jordi Mallach &lt;<A HREF="mailto:jordi@sindominio.net">jordi@sindominio.net</A>&gt;, for the Debian
GNU/Linux system (but may be used by others).
Chris Allegretta &lt;<A HREF="mailto:chrisa@asty.org">chrisa@asty.org</A>&gt;, et al (see AUTHORS and THANKS for
details).
This manual page was originally written by Jordi Mallach
&lt;<A HREF="mailto:jordi@sindominio.net">jordi@sindominio.net</A>&gt;, for the Debian GNU system (but may be
used by others).
<P>
<HR>
@@ -154,14 +218,15 @@ GNU/Linux system (but may be used by others).
<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
<DT><A HREF="#lbAE">OPTIONS</A><DD>
<DT><A HREF="#lbAF">BUGS</A><DD>
<DT><A HREF="#lbAG">HOMEPAGE</A><DD>
<DT><A HREF="#lbAH">AUTHOR</A><DD>
<DT><A HREF="#lbAF">NOTES</A><DD>
<DT><A HREF="#lbAG">BUGS</A><DD>
<DT><A HREF="#lbAH">HOMEPAGE</A><DD>
<DT><A HREF="#lbAI">AUTHOR</A><DD>
</DL>
<HR>
This document was created by
<A HREF="http://localhost/cgi-bin/man/man2html">man2html</A>,
using the manual pages.<BR>
Time: 04:20:00 GMT, July 07, 2000
Time: 19:17:30 GMT, May 08, 2002
</BODY>
</HTML>

3073
nano.c

File diff suppressed because it is too large Load Diff

202
nano.h
View File

@@ -1,10 +1,11 @@
/* $Id$ */
/**************************************************************************
* nano.h *
* *
* Copyright (C) 1999 Chris Allegretta *
* Copyright (C) 1999-2002 Chris Allegretta *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 1, or (at your option) *
* the Free Software Foundation; either version 2, or (at your option) *
* any later version. *
* *
* This program is distributed in the hope that it will be useful, *
@@ -33,6 +34,7 @@
#define SET(bit) flags |= bit
#define UNSET(bit) flags &= ~bit
#define ISSET(bit) (flags & bit)
#define TOGGLE(bit) flags ^= bit
#ifdef USE_SLANG /* Slang support enabled */
@@ -44,11 +46,6 @@
#include <curses.h>
#endif /* CURSES_H */
#ifndef HAVE_TABSIZE
static int TABSIZE = 8;
#endif
#ifdef HAVE_LIBINTL_H
#include <libintl.h>
#endif
@@ -65,16 +62,45 @@
# endif
#endif
#define VERMSG "nano " VERSION
#define VERMSG "GNU nano " VERSION
#if defined(DISABLE_WRAPPING) && defined(DISABLE_JUSTIFY)
#define DISABLE_WRAPJUSTIFY 1
#endif
/* Structure types */
typedef struct filestruct {
char *data;
struct filestruct *next; /* Next node */
struct filestruct *prev; /* Previous node */
long lineno; /* The line number */
int lineno; /* The line number */
} filestruct;
#ifdef ENABLE_MULTIBUFFER
typedef struct openfilestruct {
char *filename;
struct openfilestruct *next; /* Next node */
struct openfilestruct *prev; /* Previous node */
struct filestruct *fileage; /* Current file */
struct filestruct *filebot; /* Current file's last line */
#ifndef NANO_SMALL
struct filestruct *file_mark_beginbuf;
/* Current file's beginning marked line */
int file_mark_beginx; /* Current file's beginning marked line's
x-coordinate position */
#endif
int file_current_x; /* Current file's x-coordinate position */
int file_current_y; /* Current file's y-coordinate position */
int file_flags; /* Current file's flags: modification
status (and marking status, if
available) */
int file_placewewant; /* Current file's place we want */
int file_totlines; /* Current file's total number of lines */
long file_totsize; /* Current file's total size */
int file_lineno; /* Current file's line number */
} openfilestruct;
#endif
typedef struct shortcut {
int val; /* Actual sequence that generates the keystroke */
int altval; /* Alt key # for this function, or 0 for none */
@@ -82,10 +108,59 @@ typedef struct shortcut {
int misc2;
int viewok; /* is this function legal in view mode? */
int (*func) (void); /* Function to call when we catch this key */
char *desc; /* Description, e.g. "Page Up" */
char *help; /* Help file entry text */
const char *desc; /* Description, e.g. "Page Up" */
#ifndef DISABLE_HELP
const char *help; /* Help file entry text */
#endif
struct shortcut *next;
} shortcut;
typedef struct toggle {
int val; /* Sequence to toggle the key. Should only need 1 */
const char *desc; /* Description for when toggle is, uh, toggled,
e.g. "Pico Messages"; we'll append Enabled or
Disabled */
int flag; /* What flag actually gets toggled */
struct toggle *next;
} toggle;
#ifdef ENABLE_NANORC
typedef struct rcoption {
char *name;
int flag;
} rcoption;
#endif /* ENABLE_NANORC */
#ifdef ENABLE_COLOR
#define COLORSTRNUM 16
typedef struct colortype {
int fg; /* fg color */
int bg; /* bg color */
int bright; /* Is this color A_BOLD? */
int pairnum; /* Color pair number used for this fg/bg */
char *start; /* Start (or all) of the regex string */
char *end; /* End of the regex string */
struct colortype *next;
} colortype;
typedef struct exttype {
char *val;
struct exttype *next;
} exttype;
typedef struct syntaxtype {
char *desc; /* Name of this syntax type */
struct exttype *extensions; /* List of extensions that this applies to */
colortype *color; /* color struct for this syntax */
struct syntaxtype *next;
} syntaxtype;
#endif /* ENABLE_COLOR */
/* Bitwise flags so we can save space (or more correctly, not waste it) */
#define MODIFIED (1<<0)
@@ -94,7 +169,7 @@ typedef struct shortcut {
#define MARK_ISSET (1<<3)
#define CONSTUPDATE (1<<4)
#define NO_HELP (1<<5)
#define PICO_MSGS (1<<6)
#define PICO_MODE (1<<6)
#define FOLLOW_SYMLINKS (1<<7)
#define SUSPEND (1<<8)
#define NO_WRAP (1<<9)
@@ -104,9 +179,23 @@ typedef struct shortcut {
#define USE_MOUSE (1<<13)
#define USE_REGEXP (1<<14)
#define REGEXP_COMPILED (1<<15)
#define TEMP_OPT (1<<16)
#define CUT_TO_END (1<<17)
#define REVERSE_SEARCH (1<<18)
#define MULTIBUFFER (1<<19)
#define CLEAR_BACKUPSTRING (1<<20)
#define DOS_FILE (1<<21)
#define MAC_FILE (1<<22)
#define SMOOTHSCROLL (1<<23)
#define DISABLE_CURPOS (1<<24) /* Damn, we still need it */
#define ALT_KEYPAD (1<<25)
#define NO_CONVERT (1<<26)
/* Control key sequences, chaning these would be very very bad */
/* Control key sequences, changing these would be very very bad */
#ifndef NANO_SMALL
# define NANO_CONTROL_SPACE 0
#endif
#define NANO_CONTROL_A 1
#define NANO_CONTROL_B 2
#define NANO_CONTROL_C 3
@@ -165,8 +254,16 @@ typedef struct shortcut {
#define NANO_ALT_X 'x'
#define NANO_ALT_Y 'y'
#define NANO_ALT_Z 'z'
#define NANO_ALT_PERIOD '.'
#define NANO_ALT_COMMA ','
#define NANO_ALT_LCARAT '<'
#define NANO_ALT_RCARAT '>'
#define NANO_ALT_BRACKET ']'
#ifndef NANO_SMALL
# define NANO_ALT_SPACE ' '
#endif
/* Some semi-changeable keybindings, dont play with unless you're sure you
/* Some semi-changeable keybindings; don't play with unless you're sure you
know what you're doing */
#define NANO_INSERTFILE_KEY NANO_CONTROL_R
@@ -201,15 +298,16 @@ know what you're doing */
#define NANO_FIRSTLINE_KEY NANO_PREVPAGE_KEY
#define NANO_LASTLINE_KEY NANO_NEXTPAGE_KEY
#define NANO_CANCEL_KEY NANO_CONTROL_C
#define NANO_CASE_KEY NANO_CONTROL_A
#define NANO_REFRESH_KEY NANO_CONTROL_L
#define NANO_JUSTIFY_KEY NANO_CONTROL_J
#define NANO_JUSTIFY_FKEY KEY_F(4)
#define NANO_UNJUSTIFY_KEY NANO_CONTROL_U
#define NANO_UP_KEY NANO_CONTROL_P
#define NANO_DOWN_KEY NANO_CONTROL_N
#define NANO_FORWARD_KEY NANO_CONTROL_F
#define NANO_BACK_KEY NANO_CONTROL_B
#define NANO_MARK_KEY NANO_CONTROL_6
#define NANO_ALT_MARK_KEY NANO_ALT_A
#define NANO_HOME_KEY NANO_CONTROL_A
#define NANO_END_KEY NANO_CONTROL_E
#define NANO_DELETE_KEY NANO_CONTROL_D
@@ -218,17 +316,75 @@ know what you're doing */
#define NANO_SUSPEND_KEY NANO_CONTROL_Z
#define NANO_ENTER_KEY NANO_CONTROL_M
#define NANO_FROMSEARCHTOGOTO_KEY NANO_CONTROL_T
#define NANO_TOFILES_KEY NANO_CONTROL_T
#define NANO_APPEND_KEY NANO_ALT_A
#define NANO_PREPEND_KEY NANO_ALT_P
#define NANO_OPENPREV_KEY NANO_ALT_LCARAT
#define NANO_OPENNEXT_KEY NANO_ALT_RCARAT
#define NANO_OPENPREV_ALTKEY NANO_ALT_COMMA
#define NANO_OPENNEXT_ALTKEY NANO_ALT_PERIOD
#define NANO_BRACKET_KEY NANO_ALT_BRACKET
#define NANO_EXTCMD_KEY NANO_CONTROL_X
#ifndef NANO_SMALL
# define NANO_NEXTWORD_KEY NANO_CONTROL_SPACE
# define NANO_PREVWORD_KEY NANO_ALT_SPACE
#endif
#define TOGGLE_CONST_KEY NANO_ALT_C
#define TOGGLE_AUTOINDENT_KEY NANO_ALT_I
#define TOGGLE_SUSPEND_KEY NANO_ALT_Z
#define TOGGLE_NOHELP_KEY NANO_ALT_X
#define TOGGLE_PICOMODE_KEY NANO_ALT_P
#define TOGGLE_MOUSE_KEY NANO_ALT_M
#define TOGGLE_CUTTOEND_KEY NANO_ALT_K
#define TOGGLE_REGEXP_KEY NANO_ALT_E
#define TOGGLE_WRAP_KEY NANO_ALT_W
#define TOGGLE_BACKWARDS_KEY NANO_ALT_B
#define TOGGLE_CASE_KEY NANO_ALT_A
#define TOGGLE_LOAD_KEY NANO_ALT_F
#define TOGGLE_DOS_KEY NANO_ALT_D
#define TOGGLE_MAC_KEY NANO_ALT_O
#define TOGGLE_SMOOTH_KEY NANO_ALT_S
#define TOGGLE_NOCONVERT_KEY NANO_ALT_N
#define MAIN_LIST_LEN 26
#define MAIN_VISIBLE 12
#define WHEREIS_LIST_LEN 6
#define REPLACE_LIST_LEN 6
#define GOTO_LIST_LEN 3
#define WRITEFILE_LIST_LEN 1
#define HELP_LIST_LEN 3
#define SPELL_LIST_LEN 3
#define VIEW 1
#define NOVIEW 0
#endif
#define NONE 3
#define TOP 2
#define CENTER 1
#define BOTTOM 0
/* Minimum editor window rows required for Nano to work correctly */
#define MIN_EDITOR_ROWS 3
/* Default number of characters from end-of-line where text wrapping occurs */
#define CHARS_FROM_EOL 8
/* Minimum fill length (space available for text before wrapping occurs) */
#define MIN_FILL_LENGTH 10
/* Color specific defines */
#ifdef ENABLE_COLOR
typedef struct colorstruct {
int fg;
int bg;
int bold;
int set;
} colorstruct;
#define FIRST_COLORNUM 16
#define COLOR_TITLEBAR 16
#define COLOR_BOTTOMBARS 17
#define COLOR_STATUSBAR 18
#define COLOR_TEXT 19
#define COLOR_MARKER 20
#define NUM_NCOLORS 5
#endif /* ENABLE_COLOR */
#endif /* ifndef NANO_H */

44
nano.spec.in Normal file
View File

@@ -0,0 +1,44 @@
%define name @PACKAGE@
%define ver @VERSION@
%define rel 1
Summary : Pico editor clone with enhancements
Name : %{name}
Version : %{ver}
Release : %{rel}
Copyright : GPL
Group : Console/Editors
URL : http://www.nano-editor.org
Source : http://www.nano-editor.org/dist/v1.1/%{name}-%{ver}.tar.gz
BuildRoot : /var/tmp/%{name}-buildroot
Requires : ncurses
%description
GNU nano is a small and friendly text editor. It aims to emulate the Pico
text editor while also offering a few enhancements.
%prep
%setup -q
%build
%configure --enable-extra
make RPM_OPT_FLAGS="$RPM_OPT_FLAGS"
%install
rm -rf "$RPM_BUILD_ROOT"
make DESTDIR="$RPM_BUILD_ROOT" install
%files
%defattr(-,root,root)
%doc AUTHORS BUGS COPYING ChangeLog INSTALL NEWS README THANKS TODO nanorc.sample
%{_bindir}/nano
%{_mandir}/*/*
%{_datadir}/locale/*/LC_MESSAGES/nano.mo
%{_infodir}/nano.info*
%changelog
* Sat Mar 30 2002 Chris Allegretta <chrisa@asty.org>
- Accepted into main distribution
- Added Packager and URL tage from original spec file.
* Tue Mar 06 2002 Brett Pemberton <generica@email.com>
- Initial spec-file

489
nano.texi Normal file
View File

@@ -0,0 +1,489 @@
\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename nano.info
@settitle nano Command Manual
@c %**end of header
@c This file has the new style title page commands.
@c Run `makeinfo' rather than `texinfo-format-buffer'.
@smallbook
@set EDITION 0.1
@set VERSION 1.1.9
@set UPDATED 4 Jan 2002
@dircategory Editors
@direntry
* Nano: (nano). Small and friendly text editor.
@end direntry
@c tex
@c \overfullrule=0pt
@c end tex
@titlepage
@title GNU @code{nano}
@subtitle a small and friendly text editor.
@subtitle version 1.1.9
@author Chris Allegretta
@page
This manual documents GNU @code{nano}, a small and friendly text
editor.
This manual is part of the GNU @code{nano} distribution.@*
@sp4
Copyright (C) 1999, 2000, 2001, 2002 Chris Allegretta.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
@iftex
Permission is granted to process this file through TeX and print the
results, provided the printed document carries copying permission
notice identical to this one except for the removal of this paragraph
(this paragraph not being relevant to the printed manual).
@end iftex
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the entire
resulting derived work is distributed under the terms of a permission
notice identical to this one.
Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions,
except that this permission notice may be stated in a translation approved
by the Foundation.
You may contact the author by:
e-mail: @email{chrisa@@asty.org}@*
@end titlepage
@node Top, Introduction, (dir), (dir)
This manual documents GNU nano, a small and friendly text editor.
@menu
* Introduction::
* Editor Basics::
* Online Help::
* Feature Toggles::
* The File Browser::
* Pico Compatibility::
* Building and Configure Options::
@end menu
@node Introduction, Editor Basics, Top, Top
@chapter Introduction
GNU @code{nano} is a small and friendly text editor. Besides basic
text editing, @code{nano} offers many extra features like an
interactive search and replace, goto line number, auto-indentation,
feature toggles, internationalization support, and filename tab
completion.
@menu
* Overview::
* Command Line Options::
@end menu
@node Overview, Command Line Options, Introduction, Introduction
@section Overview
@code{nano} [GNU long option] [option] +LINE [ @var{ file ...} ]
The original goal for @code{nano} was a complete bug-for-bug compatible
emulation of Pico, but consistency is now a slightly higher priority.
There is a flag to implement (nearly) complete Pico emulation, (option -p
or GNU long option --pico). This can also be toggled from within
@code{nano} by typing Meta-P. @xref{Pico Compatibility}, for more
info.
Email bug reports to @email{nano@@nano-editor.org}.
@node Command Line Options, , Overview, Introduction
@section Command Line Options
@code{nano} takes the following options from the command line:
@table @code
@item -D, --dos
Write file in DOS format.
@item -F, --multibuffer
Enable multiple file buffers.
@item -K, --keypad
Do not use the ncurses keypad() call unless necessary. Try this flag if
you find that the arrow keys on the numeric keypad do not work for you
under nano.
@item -M, --mac
Write file in Mac format.
@item -N, --noconvert
Do not convert files from DOS/Mac format.
@item -Q [str], --quotestr [str]
Set the quoting string for justifying. The default is "> ".
@item -R, --regexp
Turns on regular expression search and search/replace.
@item -S, --smooth
Enables smooth scrolling.
@item -T [num], --tabsize=[num]
Set the displayed tab length to [num] columns.
@item -V, --version
Print the version number and copyright and quit.
@item -c, --const
Constantly display the cursor position and line number on the statusbar.
@item -h, --help
Print the usage and exit.
@item -i, --autoindent
Automatically indent new lines to the same number of spaces and tabs as
the previous line.
@item -k, --cut
Makes ^K cut from the current cursor position to the end of the current
line.
@item -l, --nofollow
When writing files, if the given file is a symbolic link it is removed
and a new file is created.
@item -m, --mouse
Enables the use of the mouse to select text (currently only useful for
running under the X window system).
@item -o [dir], --operatingdir=[dir]
Set operating directory. Makes nano set up something similar to a chroot.
@item -p, --pico
Emulate Pico as closely as possible, sacrificing consistency for correct
emulation. @xref{Pico Compatibility}, for more info.
@item -r [#cols], --fill=[#cols].
Wrap lines at column #cols. By default this is the width of the screen,
less eight. If this value is negative, wrapping will occur at #cols from
the right of the screen, allowing it to vary along with the screen width
if the screen is resized.
@item -s [prog], --speller=[prog]
Invoke [prog] as the spell checker. By default, @code{nano} uses its
own interactive spell checker that requires the @code{spell} program be
installed on your system.
@item -t, --tempfile
Do not ask whether or not to save the current contents of the file when
exiting, assume yes. This is most useful when using @code{nano} as the
composer of a mailer program.
@anchor{Expert Mode}
@item -x, --nohelp
In Expert Mode, the Shortcut Lists will not appear at the bottom of the
screen. This affects the location of the statusbar as well, as in Expert
Mode it is located at the very bottom of the editor.
Note: When accessing the help system, Expert Mode is temporarily disabled
to display the help system navigation keys.
@item -v, --view
Do not allow the contents of the file to be altered. Note that this
flag should NOT be used in place of correct file permissions to implement
a read-only file.
@item -w, --nowrap
Do not wrap long lines at any length. This option overrides any value for
-r.
@item -z, --suspend
Enable suspend ability of @code{nano} using the system's suspend
keystroke (usually ^Z).
@item -a, -b, -e, -f, -g, -j
Ignored, for compatibility with Pico.
@item +LINE
Start at line number LINE instead of the default of line 1.
@end table
@node Editor Basics, Online Help, Introduction, Top
@chapter Editor Basics
@menu
* Entering Text::
* Special Functions::
* The Titlebar::
* The Statusbar::
* Shortcut Lists::
@end menu
@node Entering Text, Special Functions, Editor Basics, Editor Basics
@section Entering Text
All key sequences in @code{nano} are entered using the keyboard.
@code{nano} is a "modeless" editor, all keys with the exception of
Control and Meta key sequences will enter text into the file being
edited.
@node Special Functions, The Titlebar, Entering Text, Editor Basics
@section Special Functions
Special functions use the Control key (displayed in the help and
shortcut lists as ^) or the Meta key (displayed as M).
@itemize @bullet
@item
Control key sequences are entered by holding down the Control key and
pressing the desired letter.
@item
Meta key sequences can be entered in a number of
possible ways: Pressing the Escape key, then releasing it and pressing
the desired key, or holding down the Alt key while pressing the desired
key. This varies from keyboard to keyboard, and certain commercial
operating systems "swallow" the Alt key so that it never reaches the
application. If your operating system does this, you should use the
Escape key to generate Meta key sequences.
@end itemize
@node The Titlebar, The Statusbar, Special Functions, Editor Basics
@section The Titlebar
The titlebar is the line displayed at the top of the editor. There are
three sections: left, center and right. The section on the left displays
the version of @code{nano} being used. The center section displays the
current file name, or "New Buffer" if the file has not yet been named.
The section on the right will display "Modified" if the file has been
modified since it was last saved or opened.
Special modes: When nano is in "File browser" mode, the center section
will display the current directory instead of the filename.
@xref{The File Browser}.
@node The Statusbar, Shortcut Lists, The Titlebar, Editor Basics
@section The Statusbar
The statusbar is located three lines from the bottom of the screen (or the
bottom line in Expert Mode. @xref{Expert Mode}, for more info.
The Statusbar shows important and informational messages. Any error
messages that occur from using the editor will appear on the statusbar.
Any questions that are asked of the user will be asked on the statusbar,
and any user input (search strings, file names, etc) will be input on the
statusbar.
@node Shortcut Lists, , The Statusbar, Editor Basics
@section Shortcut Lists
The Shortcut Lists are the two lines at the bottom of the screen which show
some of the more commonly used functions in the editor. The exact
functions which are displayed depend on whether Pico Compatibility Mode mode
is enabled. @xref{Pico Compatibility}, for more info.
@node Online Help, Feature Toggles, Editor Basics, Top
@chapter Online Help
The online help system in @code{nano} is available by pressing ^G.
It is fairly self explanatory, documenting the various parts of the
editor and available keystrokes. Navigation is via the ^Y (Page Up)
and ^V (Page Down) keys. ^X exits the help system.
@node Feature Toggles, The File Browser, Online Help, Top
@chapter Feature Toggles
Toggles allow you to change certain aspects of the editor that
would normally be done via command line flags. They are invoked via
certain Meta key sequenced. @xref{Special Functions}, for more info.
The following toggles are available:
@table @code
@item Case Sensitive Search Toggle (Meta-A)
toggles case sensistive searching functionality on/off.
@item Backwards Search Toggle (Meta-B)
toggles backwards searching fuctionality on/off.
@item Constant Update Toggle (Meta-C)
toggles the -c (--const) command line flag.
@item DOS Format Toggle (Meta-D)
toggles the -D (--dos) command line flag.
@item Regular Expressions Toggle (Meta-E)
toggles the -R (--regexp) command line flag.
@item Multiple Files Toggle (Meta-F)
toggles the -F (--multibuffer) command line flag.
@item AutoIndent Toggle (Meta-I)
toggles the -i (--autoindent) command line flag.
@item Cut To End Toggle (Meta-K)
toggles the -k (--cut) command line flag.
@item Mouse Toggle (Meta-M)
toggles the -m (--mouse) command line flag.
@item Mac Format Toggle (Meta-O)
toggles the -M (--mac) command line flag.
@item Pico Mode Toggle (Meta-P)
toggles the -p (--pico) command line flag.
@xref{Pico Compatibility}, for more info.
@item Smooth Scrolling Toggle (Meta-S)
toggles the -s (--smooth) command line flag.
@item AutoWrap Toggle (Meta-W)
toggles the -w (--nowrap) command line flag.
@item Expert/Nohelp Toggle (Meta-X)
toggles the -x (--nohelp) command line flag.
@item Suspend Toggle (Meta-Z)
toggles the -z (--suspend) command line flag.
@item Open Previous File Toggle (Meta-<)
changes buffer to previously loaded file.
@item Open Next File Toggle (Meta->)
changes buffer to next loaded file.
@end table
@node The File Browser, Pico Compatibility, Feature Toggles, Top
@chapter The File Browser
When reading or writing files, pressing ^T will invoke the file browser.
Here, one can navigate directories in a graphical manner in order to find
the desired file.
Basic movement in the file browser is accomplished with he arrow keys
and page up/down. The behavior of the enter (or 's') key varies by what
is currently selected. If the currently selected object is a directory,
the file browser will enter and display the contents of the directory. If
the object is a file, this filename and path are copied to the statusbar
and the file browser is exited.
@node Pico Compatibility, Building and Configure Options, The File Browser, Top
@chapter Pico Compatibility
Nano does not completely emulate Pico by default. The following differences
apply to the default mode and Pico Compatibility mode:
@table @code
@item Displayed Shortcuts
By default, the following shortcuts are displayed in the Shortcut Lists:
^G ^O ^\ ^Y ^K ^C@*
^X ^R ^W ^V ^U ^T
Related functions are listed above or below each other by default. The
Justify function is not listed, instead the "Replace" function is
displayed. Also, he "Read File" and "WriteOut" functions are aligned for
consistency.
In Pico Compatibility mode, the default Pico shortcuts are displayed:
^G ^O ^R ^Y ^K ^C@*
^X ^J ^W ^V ^U ^T
@item Previous String Text
By default, previously entered string for a function (search string,
file name) will be placed on the statusbar, and is editable. This is
done so there is consistency across all functions. For example: even if
there is a previous replace string, it can always be deleted if one
wishes to perform an empty string replace.
In Pico Compatibility Mode, the previously entered text in a search or
replace will appear in brackets, and is not editable. It is not a
simple matter to do an empty string replace when a previous replace
string exists, for example. When writing a file, the previous filename
will be displayed in the editable text portion of the editor.
@item Interactive Replace and Spell Checker
It is worth noting that the @code{nano} replace function is interactive,
i.e. it does not stop after one search string is found and automatically
replace it. The @code{nano} implementation will stop at each search
string found and query whether to replace this instance or not. The
internal spell checker operates similarly. Note that these is no way
to force these functions to behave in the Pico fashion.
@end table
@node Building and Configure Options, , Pico Compatibility, Top
@chapter Building and Configure Options
Building nano from source is fairly straightforward if you are familiar
with compiling programs with autoconf support:
tar xvfz nano-x.y.z.tar.gz (where x.y.z is the version of nano)
cd nano-x.y.z/
./configure
make
make install
if you are looking to optimize nano for size, you may want to consider
the following command line options:
@table @code
@item --disable-tabcomp
Disable the tab completion code when reading or writing files.
@item --disable-justify
Disable the justify (^J)/unjustify (^U) functions in the editor.
@item --disable-speller
Disables spell checker ability.
@item --disable-help
Disables the help function (^G). Disabling this option makes the
binary much smaller, but makes it difficult for new users
to learn more than very basic things about using the editor.
@item --disable-browser
Disables the mini file browser (^O) when reading or writing files.
@item --enable-tiny
This options disables all the above. It also disables some of
the larger internals of the editor, like the marker code (^^) and
the cut to line (-k) option which it depends on to work properly.
It also disables the function toggles and mouse support.
@item --disable-wrapping
Disables all word wrapping in the editor. This also eliminates the
-w command line flag, as nonwrapping is then the default behavior.
@item --disable-mouse
Disables all mouse functionality. This also disables the -m commands line
flag which enables the mouse functions.
@item --disable-operatingdir
Disables setting of operating directory. This also disables the -o command
line flag.
@item --disable-nls
Disables Native Language support. This will make the available GNU nano
translations unusable.
@item --with-slang
Compiling GNU nano with Slang is supported, and will make the binary notably
smaller than if compiled with ncurses or other curses libraries.
@end table
@contents
@bye

106
nanorc.sample Normal file
View File

@@ -0,0 +1,106 @@
# Sample initialization file for GNU nano
# Please note that you must have configured nano with
# --enable-nanorc for this file to be read!
#
# To make sure a value is not enabled, use "unset <option>"
# Use regular expressions by default
# set regexp
# Constantly update the cursor position
# set const
# Show column position relative to the current line, not the whole file
# set relative
# Use cut to end of line with ^K by default
# set cut
# Use Auto-indentation
# set autoindent
# Don't follow symlinks when writing files
# set nofollow
# Set operating directory (chroot of sorts)
# set operatingdir "~"
# Use Pico Compatibility mode for the shortcut lists and search text
# set pico
# Use this value instead of the default
# set fill -8
# Use this tab size instead of the default
# set tabsize 4
# Use this spelling checker instead of the default one
# set speller aspell
# Save automatically on exit, don't prompt
# set tempfile
# Disallow file modification, why would you want this in an rc file? ;)
# set view
# Don't wrap text at all
# set nowrap
# Don't display the help lists at the bottom of the screen
# set nohelp
# Allow nano to be suspended with ^Z
# set suspend
# Use smooth scrolling as the default
# set smooth
# Use alternate keypad routines
# set keypad
# Don't convert files from DOS/Mac format
# set noconvert
# Allow multiple file buffers (using ^R inserts into separate buffer)
# You must have configured with --enable-multibuffer or --enable-extra for
# this to work
#
# set multibuffer
# Use this as the quoting string. You shouldn't need to change this,
# but...... default "> "
# set quotestr "// "
#
# Color setup
# Format:
# syntax "short description" ["filename regex" ...]
# color foreground,background "regex" ["regex"...]
#
# Legal colors are: white, black, red, blue, green, yellow, purple, cyan
# You may use the prefix "bright" to mean a stronger color highlight
#
# To use multi-line regexes use the start="regex" end="regex" format.
#
# If your system supports transparency, not specifying a background
# color will use a transparent color. If you don't want this, be sure
# to set the background color to black or white.
#
# syntax "c-file" ".*\.c" ".*\.h"
# color brightred "float " "char " "int " "void " "NULL" "[A-Z_]\{2,\}"
# color brightred "static" "const" "[\ ]struct" "^struct" "if " "while[\ \n\(]"
# color brightred "do[\ \n\(]" "else[\ \n]" "case " "switch " "break;"
# color brightcyan "#define" "#include" "#ifn*def" "#endif" "#elif" "#else" "#if "
# You will in general want your comments and strings to come last, becase
# syntax highlighting rules will be applied in the order they are read in
# color brightyellow "<.*[^=\ ]*>" "\".*\""
# color brightblue "//.*"
# color brightblue start="/\*.*" end="\*/"
# For this you will probably want to set your editor to "nano -Y mutt"
#
# syntax "mutt"
# color green "^>.*"

9
po/.cvsignore Normal file
View File

@@ -0,0 +1,9 @@
Makefile
Makefile.in
POTFILES
*.gmo
*.pot
cat-id*
messages
messages.mo
stamp-cat*

View File

@@ -0,0 +1,199 @@
2002-05-13 Jordi Mallach <jordi@sindominio.net>
* sv.po: Updated translation by Christian Rose.
2002-05-05 Jordi Mallach <jordi@sindominio.net>
* sv.po: Updated translation by Christian Rose.
2002-04-25 Jordi Mallach <jordi@sindominio.net>
* id.po: Updated translation by Tedi Heriyanto.
2002-04-19 Jordi Mallach <jordi@sindominio.net>
* ru.po: Updated translation by Sergey A. Ribalchenko.
* uk.po: Updated translation by Sergey A. Ribalchenko.
2002-04-13 Jordi Mallach <jordi@sindominio.net>
* it.po: Updated translation by Marco Colombo.
2002-04-13 Jordi Mallach <jordi@sindominio.net>
* nl.po: Updated translation by Guus Sliepen.
2002-04-10 Jordi Mallach <jordi@sindominio.net>
* sv.po: Updated translation by Christian Rose.
2002-04-05 Jordi Mallach <jordi@sindominio.net>
* gl.po: Updated translation by Jacobo Tarrio.
* de.po: Updated translation by Michael Piefel.
* fr.po: Updated translation by Jean-Philippe Guérard.
* ca.po: Updated.
* es.po: Updated.
2002-03-29 Jordi Mallach <jordi@sindominio.net>
* da.po: Updated translation by Keld Simonsen.
2002-03-27 Jordi Mallach <jordi@sindominio.net>
* it.po: Updated translation by Marco Colombo.
2002-03-25 Jordi Mallach <jordi@sindominio.net>
* id.po: Updated translation by Tedi Heriyanto.
2002-03-17 Jordi Mallach <jordi@sindominio.net>
* fr.po: Updated translation by Jean-Philippe Guérard.
2002-03-15 Jordi Mallach <jordi@sindominio.net>
* pl.po: Updated translation by Wojciech Kotwica.
2002-03-14 Jordi Mallach <jordi@sindominio.net>
* uk.po, ru.po: Updated translations by Sergey A.
Ribalchenko.
2002-03-12 Jordi Mallach <jordi@sindominio.net>
* ca.po: Updated to current CVS.
* es.po: Updated to current CVS.
* gl.po: Updated translation to current CVS by Jacobo Tarrio.
2002-03-12 Jordi Mallach <jordi@sindominio.net>
* gl.po: Updated translation by Jacobo Tarrio.
2002-03-11 Jordi Mallach <jordi@sindominio.net>
* fr.po: Updated translation by Jean-Philippe Guérard.
2002-03-09 Jordi Mallach <jordi@sindominio.net>
* id.po: Updated translation by Tedi Heriyanto.
* ca.po: Updated.
* es.po: Updated.
2002-03-07 Jordi Mallach <jordi@sindominio.net>
* sv.po: Updated translation by Christian Rose.
* de.po: Updated translation by Michael Piefel.
2002-03-05 Jordi Mallach <jordi@sindominio.net>
* pl.po: Updated translation by Wojciech Kotwica.
2002-02-20 Jordi Mallach <jordi@sindominio.net>
* nl.po: Updated translation by Guus Sliepen.
2002-02-15 Jordi Mallach <jordi@sindominio.net>
* nb.po: Updated translation by Stig E Sandoe.
2002-02-15 Jordi Mallach <jordi@sindominio.net>
* nb.po: Updated translation by Stig E Sandoe.
2002-02-14 Jordi Mallach <jordi@sindominio.net>
* da.po: Updated translation by Keld Simonsen.
2002-02-10 Jordi Mallach <jordi@sindominio.net>
* hu.po: Updated translation by Gergely Nagy.
2002-02-07 Jordi Mallach <jordi@sindominio.net>
* uk.po, ru.po: Updated translations by Sergey A.
Ribalchenko.
2002-02-06 Jordi Mallach <jordi@sindominio.net>
* hu.po: Updated translation by Gergely Nagy.
2002-02-06 Jordi Mallach <jordi@sindominio.net>
* cs.po: Incomplete update by Václav Haisman.
2002-01-27 Jordi Mallach <jordi@sindominio.net>
* it.po: Updated translation by Marco Colombo.
2002-01-26 Jordi Mallach <jordi@sindominio.net>
* fr.po: Updated translation by Jean-Philippe Guérard.
* nn.po: Updated translation by Kjetil Torgrim Homme.
* de.po: Updated translation by Michael Piefel.
2002-01-25 Jordi Mallach <jordi@sindominio.net>
* sv.po: Updated translation by Christian Rose.
* fr.po: Updated translation by Jean-Philippe Guérard.
2002-01-25 Jordi Mallach <jordi@sindominio.net>
* ca.po: Updated.
* es.po: Updated.
2002-01-23 Jordi Mallach <jordi@sindominio.net>
* ca.po: Updated.
* es.po: Updated.
2002-01-19 gettextize <bug-gnu-utils@gnu.org>
* Makefile.in.in: Upgrade to gettext-0.10.40.
* cat-id-tbl.c: Remove file.
* stamp-cat-id: Remove file.
2002-01-19 Jordi Mallach <jordi@sindominio.net>
* ca.po: Updated.
* es.po: Updated.
2002-01-19 Jordi Mallach <jordi@sindominio.net>
* da.po: Updated translation by Keld Simonsen.
2002-01-17 Jordi Mallach <jordi@sindominio.net>
* no.po: Removed, replaced by nn.po.
* nn.po: Updated translation by Kjetil Torgrim Homme.
* nb.po: New Norwegian bokmål translation by Stig E Sandoe.
2002-01-12 Jordi Mallach <jordi@sindominio.net>
* fr.po: Updated translation by Jean-Philippe Guérard.
2002-01-10 Jordi Mallach <jordi@sindominio.net>
* fr.po: Updated translation by Jean-Philippe Guérard.
2002-01-08 Jordi Mallach <jordi@sindominio.net>
* ru.po, uk.po: Updated translations by Sergey A.
Ribalchenko.
* fr.po: Updated translation by Jean-Philippe Guérard.
2002-01-07 Jordi Mallach <jordi@sindominio.net>
* de.po: Updated translation by Michael Piefel.
2002-01-07 Jordi Mallach <jordi@sindominio.net>
* sv.po: Updated translation by Christian Rose.
2002-01-07 Jordi Mallach <jordi@sindominio.net>
* ca.po: Updated.
* es.po: Updated.
$Id$

View File

@@ -1,14 +1,18 @@
# Makefile for program source directory in GNU NLS utilities package.
# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
# Copyright (C) 1995-1997, 2000, 2001 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
#
# This file file be copied and used freely without restrictions. It can
# be used in projects which are not available under the GNU Public License
# be used in projects which are not available under the GNU General Public License
# but which still want to provide support for the GNU gettext functionality.
# Please note that the actual code is *not* freely available.
PACKAGE = @PACKAGE@
VERSION = @VERSION@
# These two variables depend on the location of this directory.
subdir = po
top_builddir = ..
SHELL = /bin/sh
@SET_MAKE@
@@ -18,22 +22,20 @@ VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
datadir = $(prefix)/@DATADIRNAME@
datadir = @datadir@
localedir = $(datadir)/locale
gnulocaledir = $(prefix)/share/locale
gettextsrcdir = $(prefix)/share/gettext/po
subdir = po
gettextsrcdir = $(datadir)/gettext/po
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@
MKINSTALLDIRS = @MKINSTALLDIRS@
mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac`
CC = @CC@
GENCAT = @GENCAT@
GMSGFMT = PATH=../src:$$PATH @GMSGFMT@
GMSGFMT = @GMSGFMT@
MSGFMT = @MSGFMT@
XGETTEXT = PATH=../src:$$PATH @XGETTEXT@
MSGMERGE = PATH=../src:$$PATH msgmerge
XGETTEXT = @XGETTEXT@
MSGMERGE = msgmerge
DEFS = @DEFS@
CFLAGS = @CFLAGS@
@@ -43,20 +45,17 @@ INCLUDES = -I.. -I$(top_srcdir)/intl
COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
SOURCES = cat-id-tbl.c
POFILES = @POFILES@
GMOFILES = @GMOFILES@
DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \
stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES)
$(POFILES) $(GMOFILES)
POTFILES = \
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
INSTOBJEXT = @INSTOBJEXT@
.SUFFIXES:
.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat
.SUFFIXES: .c .o .po .pox .gmo .mo
.c.o:
$(COMPILE) $<
@@ -70,19 +69,19 @@ INSTOBJEXT = @INSTOBJEXT@
.po.gmo:
file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
&& rm -f $$file && $(GMSGFMT) -o $$file $<
.po.cat:
sed -f ../intl/po2msg.sed < $< > $*.msg \
&& rm -f $@ && $(GENCAT) $@ $*.msg
&& rm -f $$file && $(GMSGFMT) --statistics -o $$file $<
all: all-@USE_NLS@
all-yes: cat-id-tbl.c $(CATALOGS)
all-yes: $(CATALOGS)
all-no:
$(srcdir)/$(PACKAGE).pot: $(POTFILES)
# Note: Target 'all' must not depend on target '$(srcdir)/$(PACKAGE).pot',
# otherwise packages like GCC can not be built if only parts of the source
# have been downloaded.
$(srcdir)/$(PACKAGE).pot: $(POTFILES) $(srcdir)/POTFILES.in
$(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \
--add-comments --keyword=_ --keyword=N_ \
--files-from=$(srcdir)/POTFILES.in \
@@ -90,78 +89,35 @@ $(srcdir)/$(PACKAGE).pot: $(POTFILES)
|| ( rm -f $(srcdir)/$(PACKAGE).pot \
&& mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot )
$(srcdir)/cat-id-tbl.c: stamp-cat-id; @:
$(srcdir)/stamp-cat-id: $(PACKAGE).pot
rm -f cat-id-tbl.tmp
sed -f ../intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \
| sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp
if cmp -s cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; then \
rm cat-id-tbl.tmp; \
else \
echo cat-id-tbl.c changed; \
rm -f $(srcdir)/cat-id-tbl.c; \
mv cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; \
fi
cd $(srcdir) && rm -f stamp-cat-id && echo timestamp > stamp-cat-id
install: install-exec install-data
install-exec:
install-data: install-data-@USE_NLS@
install-data-no: all
install-data-yes: all
if test -r "$(MKINSTALLDIRS)"; then \
$(MKINSTALLDIRS) $(datadir); \
else \
$(SHELL) $(top_srcdir)/mkinstalldirs $(datadir); \
fi
@catalogs='$(CATALOGS)'; \
for cat in $$catalogs; do \
cat=`basename $$cat`; \
case "$$cat" in \
*.gmo) destdir=$(gnulocaledir);; \
*) destdir=$(localedir);; \
esac; \
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
dir=$$destdir/$$lang/LC_MESSAGES; \
if test -r "$(MKINSTALLDIRS)"; then \
$(MKINSTALLDIRS) $$dir; \
else \
$(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \
fi; \
if test -r $$cat; then \
$(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \
else \
$(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
echo "installing $(srcdir)/$$cat as" \
"$$dir/$(PACKAGE)$(INSTOBJEXT)"; \
fi; \
if test -r $$cat.m; then \
$(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
else \
if test -r $(srcdir)/$$cat.m ; then \
$(INSTALL_DATA) $(srcdir)/$$cat.m \
$$dir/$(PACKAGE)$(INSTOBJEXT).m; \
echo "installing $(srcdir)/$$cat as" \
"$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
else \
true; \
fi; \
fi; \
done
if test "$(PACKAGE)" = "gettext"; then \
if test -r "$(MKINSTALLDIRS)"; then \
$(MKINSTALLDIRS) $(gettextsrcdir); \
else \
$(SHELL) $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \
fi; \
$(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
$(INSTALL_DATA) $(srcdir)/Makefile.in.in \
$(gettextsrcdir)/Makefile.in.in; \
$(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
else \
: ; \
fi
install-data-no: all
install-data-yes: all
$(mkinstalldirs) $(DESTDIR)$(datadir)
@catalogs='$(CATALOGS)'; \
for cat in $$catalogs; do \
cat=`basename $$cat`; \
lang=`echo $$cat | sed 's/\.gmo$$//'`; \
dir=$(localedir)/$$lang/LC_MESSAGES; \
$(mkinstalldirs) $(DESTDIR)$$dir; \
if test -r $$cat; then \
$(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
echo "installing $$cat as $(DESTDIR)$$dir/$(PACKAGE).mo"; \
else \
$(INSTALL_DATA) $(srcdir)/$$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
echo "installing $(srcdir)/$$cat as" \
"$(DESTDIR)$$dir/$(PACKAGE).mo"; \
fi; \
done
# Define this as empty until I found a useful application.
installcheck:
@@ -170,76 +126,68 @@ uninstall:
catalogs='$(CATALOGS)'; \
for cat in $$catalogs; do \
cat=`basename $$cat`; \
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
lang=`echo $$cat | sed 's/\.gmo$$//'`; \
rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE).mo; \
done
rm -f $(gettextsrcdir)/po-Makefile.in.in
if test "$(PACKAGE)" = "gettext"; then \
rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
else \
: ; \
fi
check: all
cat-id-tbl.o: ../intl/libgettext.h
dvi info tags TAGS ID:
mostlyclean:
rm -f core core.* *.pox $(PACKAGE).po *.old.po cat-id-tbl.tmp
rm -f core core.* *.pox $(PACKAGE).po *.new.po
rm -fr *.o
clean: mostlyclean
distclean: clean
rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m
rm -f Makefile Makefile.in POTFILES *.mo
maintainer-clean: distclean
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
rm -f $(GMOFILES)
distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
dist distdir: update-po $(DISTFILES)
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
dist distdir:
$(MAKE) update-po
@$(MAKE) dist2
# This is a separate target because 'update-po' must be executed before.
dist2: $(DISTFILES)
dists="$(DISTFILES)"; \
for file in $$dists; do \
ln $(srcdir)/$$file $(distdir) 2> /dev/null \
|| cp -p $(srcdir)/$$file $(distdir); \
if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
cp -p $$dir/$$file $(distdir); \
done
update-po: Makefile
$(MAKE) $(PACKAGE).pot
PATH=`pwd`/../src:$$PATH; \
if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \
cd $(srcdir); \
catalogs='$(CATALOGS)'; \
catalogs='$(GMOFILES)'; \
for cat in $$catalogs; do \
cat=`basename $$cat`; \
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
mv $$lang.po $$lang.old.po; \
lang=`echo $$cat | sed 's/\.gmo$$//'`; \
echo "$$lang:"; \
if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \
rm -f $$lang.old.po; \
if $(MSGMERGE) $$lang.po $(PACKAGE).pot -o $$lang.new.po; then \
mv -f $$lang.new.po $$lang.po; \
else \
echo "msgmerge for $$cat failed!"; \
rm -f $$lang.po; \
mv $$lang.old.po $$lang.po; \
rm -f $$lang.new.po; \
fi; \
done
$(MAKE) update-gmo
POTFILES: POTFILES.in
( if test 'x$(srcdir)' != 'x.'; then \
posrcprefix='$(top_srcdir)/'; \
else \
posrcprefix="../"; \
fi; \
rm -f $@-t $@ \
&& (sed -e '/^#/d' -e '/^[ ]*$$/d' \
-e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \
| sed -e '$$s/\\$$//') > $@-t \
&& chmod a-w $@-t \
&& mv $@-t $@ )
update-gmo: Makefile $(GMOFILES)
@:
Makefile: Makefile.in.in ../config.status POTFILES
cd .. \
Makefile: Makefile.in.in $(top_builddir)/config.status POTFILES.in
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
$(SHELL) ./config.status

View File

@@ -1,3 +1,4 @@
# $Id$
# List of source files containing translatable strings.
# Package source files
@@ -6,7 +7,9 @@ files.c
global.c
move.c
nano.c
rcfile.c
search.c
utils.c
winio.c
# Package header files

1748
po/ca.po Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,215 +0,0 @@
/* Automatically generated by po2tbl.sed from nano.pot. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include "libgettext.h"
const struct _msg_ent _msg_tbl[] = {
{"", 1},
{"add_to_cutbuffer called with inptr->data = %s\n", 2},
{"Blew away cutbuffer =)\n", 3},
{"read_line: not on first line and prev is NULL", 4},
{"Read %d lines", 5},
{"\"%s\" not found", 6},
{"New File", 7},
{"File \"%s\" is a directory", 8},
{"Reading File", 9},
{"File to insert [from ./] ", 10},
{"Cancelled", 11},
{"Could not open file for writing: %s", 12},
{"Could not open file: Path length exceeded.", 13},
{"Wrote >%s\n", 14},
{"Could not close %s: %s", 15},
{"Could not open %s for writing: %s", 16},
{"Could not set permissions %o on %s: %s", 17},
{"Wrote %d lines", 18},
{"File Name to write", 19},
{"filename is %s", 20},
{"File exists, OVERWRITE ?", 21},
{"Invoke the help menu", 22},
{"Write the current file to disk", 23},
{"Exit from nano", 24},
{"Goto a specific line number", 25},
{"Justify the current paragraph", 26},
{"Replace text within the editor", 27},
{"Insert another file into the current one", 28},
{"Search for text within the editor", 29},
{"Move to the previous screen", 30},
{"Move to the next screen", 31},
{"Cut the current line and store it in the cutbuffer", 32},
{"Uncut from the cutbuffer into the current line", 33},
{"Show the posititon of the cursor", 34},
{"Invoke the spell checker (if available)", 35},
{"Move up one line", 36},
{"Move down one line", 37},
{"Move forward one character", 38},
{"Move back one character", 39},
{"Move to the beginning of the current line", 40},
{"Move to the end of the current line", 41},
{"Go to the first line of the file", 42},
{"Go to the last line of the file", 43},
{"Refresh (redraw) the current screen", 44},
{"Mark text at the current cursor location", 45},
{"Delete the character under the cursor", 46},
{"Delete the character to the left of the cursor", 47},
{"Insert a tab character", 48},
{"Insert a carriage return at the cursor position", 49},
{"Make the current search or replace case (in)sensitive", 50},
{"Cancel the current function", 51},
{"Get Help", 52},
{"WriteOut", 53},
{"Exit", 54},
{"Goto Line", 55},
{"Justify", 56},
{"Replace", 57},
{"Read File", 58},
{"Where Is", 59},
{"Prev Page", 60},
{"Next Page", 61},
{"Cut Text", 62},
{"UnCut Txt", 63},
{"Cur Pos", 64},
{"To Spell", 65},
{"Up", 66},
{"Down", 67},
{"Forward", 68},
{"Back", 69},
{"Home", 70},
{"End", 71},
{"Refresh", 72},
{"Mark Text", 73},
{"Delete", 74},
{"Backspace", 75},
{"Tab", 76},
{"Enter", 77},
{"First Line", 78},
{"Last Line", 79},
{"Case Sens", 80},
{"Cancel", 81},
{"No Replace", 82},
{"\
\n\
Buffer written to 'nano.save'\n", 83},
{"Key illegal in VIEW mode", 84},
{"\
nano help text\n\
\n\
The nano editor is designed to emulate the functionality and ease-of-use of \
the UW Pico text editor. There are four main sections of the editor: The \
top line shows the program version, the current filename being edited, and \
whether or not the file has been modified. Next is the main editor window \
showing the file being edited. The status line is the third line from the \
bottom and shows important messages. The bottom two lines show the most \
commonly used shortcuts in the editor.\n\
\n\
The notation for shortcuts is as follows: Control-key sequences are notated \
with a caret (^) symbol. Alt-key sequences are notated with an at (@) \
symbol. The following keystrokes are available in the main editor window. \
Optional keys are shown in parentheses:\n\
\n", 85},
{"free_node(): free'd a node, YAY!\n", 86},
{"free_node(): free'd last node.\n", 87},
{"\
Usage: nano [GNU long option] [option] +LINE <file>\n\
\n", 88},
{"Option\t\tLong option\t\tMeaning\n", 89},
{" -T \t\t--tabsize=[num]\t\tSet width of a tab to num\n", 90},
{" -R\t\t--regexp\t\tUse regular expressions for search\n", 91},
{" -V \t\t--version\t\tPrint version information and exit\n", 92},
{" -c \t\t--const\t\t\tConstantly show cursor position\n", 93},
{" -h \t\t--help\t\t\tShow this message\n", 94},
{" -i \t\t--autoindent\t\tAutomatically indent new lines\n", 95},
{" -l \t\t--nofollow\t\tDon't follow symbolic links, overwrite.\n", 96},
{" -m \t\t--mouse\t\t\tEnable mouse\n", 97},
{"\
-r [#cols] \t--fill=[#cols]\t\tSet fill cols to (wrap lines at) #cols\n", 98},
{" -p\t \t--pico\t\t\tMake bottom 2 lines more Pico-like\n", 99},
{" -s [prog] \t--speller=[prog]\tEnable alternate speller\n", 100},
{" -t \t\t--tempfile\t\tAuto save on exit, don't prompt\n", 101},
{" -v \t\t--view\t\t\tView (read only) mode\n", 102},
{" -w \t\t--nowrap\t\tDon't wrap long lines\n", 103},
{" -x \t\t--nohelp\t\tDon't show help window\n", 104},
{" -z \t\t--suspend\t\tEnable suspend\n", 105},
{" +LINE\t\t\t\t\tStart at line number LINE\n", 106},
{"\
Usage: nano [option] +LINE <file>\n\
\n", 107},
{"Option\t\tMeaning\n", 108},
{" -T [num]\tSet width of a tab to num\n", 109},
{" -R\t\tUse regular expressions for search\n", 110},
{" -V \t\tPrint version information and exit\n", 111},
{" -c \t\tConstantly show cursor position\n", 112},
{" -h \t\tShow this message\n", 113},
{" -i \t\tAutomatically indent new lines\n", 114},
{" -l \t\tDon't follow symbolic links, overwrite.\n", 115},
{" -m \t\tEnable mouse\n", 116},
{" -r [#cols] \tSet fill cols to (wrap lines at) #cols\n", 117},
{" -s [prog] \tEnable alternate speller\n", 118},
{" -p \t\tMake bottom 2 lines more Pico-like\n", 119},
{" -t \t\tAuto save on exit, don't prompt\n", 120},
{" -v \t\tView (read only) mode\n", 121},
{" -w \t\tDon't wrap long lines\n", 122},
{" -x \t\tDon't show help window\n", 123},
{" -z \t\tEnable suspend\n", 124},
{" +LINE\t\tStart at line number LINE\n", 125},
{" nano version %s by Chris Allegretta (compiled %s, %s)\n", 126},
{" Email: nano@asty.org\tWeb: http://www.asty.org/nano\n", 127},
{"Mark Set", 128},
{"Mark UNset", 129},
{"check_wrap called with inptr->data=\"%s\"\n", 130},
{"current->data now = \"%s\"\n", 131},
{"After, data = \"%s\"\n", 132},
{"Error deleting tempfile, ack!", 133},
{"Could not create a temporary filename: %s", 134},
{"Could not invoke spell program \"%s\"", 135},
{"Could not invoke \"ispell\"", 136},
{"Finished checking spelling", 137},
{"Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? ", 138},
{"Cannot resize top win", 139},
{"Cannot move top win", 140},
{"Cannot resize edit win", 141},
{"Cannot move edit win", 142},
{"Cannot resize bottom win", 143},
{"Cannot move bottom win", 144},
{"Main: set up windows\n", 145},
{"Main: bottom win\n", 146},
{"Main: open file\n", 147},
{"I got Alt-[-%c! (%d)\n", 148},
{"I got Alt-%c! (%d)\n", 149},
{"Case Sensitive Regexp Search%s", 150},
{"Regexp Search%s", 151},
{"Case Sensitive Search%s", 152},
{"Search%s", 153},
{"Search Cancelled", 154},
{"Search Wrapped", 155},
{"Replaced %d occurences", 156},
{"Replaced 1 occurence", 157},
{"Replace Cancelled", 158},
{"Replace with [%s]", 159},
{"Replace with", 160},
{"Replace this instance?", 161},
{"Enter line number", 162},
{"Aborted", 163},
{"Come on, be reasonable", 164},
{"Only %d lines available, skipping to last line", 165},
{"actual_x_from_start for xplus=%d returned %d\n", 166},
{"input '%c' (%d)\n", 167},
{"New Buffer", 168},
{" File: ...", 169},
{"Modified", 170},
{"Moved to (%d, %d) in edit buffer\n", 171},
{"current->data = \"%s\"\n", 172},
{"I got \"%s\"\n", 173},
{"Yes", 174},
{"All", 175},
{"No", 176},
{"do_cursorpos: linepct = %f, bytepct = %f\n", 177},
{"line %d of %d (%.0f%%), character %d of %d (%.0f%%)", 178},
{"Dumping file buffer to stderr...\n", 179},
{"Dumping cutbuffer to stderr...\n", 180},
{"Dumping a buffer to stderr...\n", 181},
};
int _msg_tbl_length = 181;

1800
po/cs.po Normal file

File diff suppressed because it is too large Load Diff

1776
po/da.po Normal file

File diff suppressed because it is too large Load Diff

BIN
po/de.gmo

Binary file not shown.

1869
po/de.po

File diff suppressed because it is too large Load Diff

BIN
po/es.gmo

Binary file not shown.

1781
po/es.po

File diff suppressed because it is too large Load Diff

BIN
po/fi.gmo

Binary file not shown.

1621
po/fi.po

File diff suppressed because it is too large Load Diff

BIN
po/fr.gmo

Binary file not shown.

1949
po/fr.po

File diff suppressed because it is too large Load Diff

1769
po/gl.po Normal file

File diff suppressed because it is too large Load Diff

1767
po/hu.po Normal file

File diff suppressed because it is too large Load Diff

BIN
po/id.gmo

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More