Compare commits

...

335 Commits

Author SHA1 Message Date
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
48 changed files with 16546 additions and 3460 deletions

10
.cvsignore Normal file
View File

@@ -0,0 +1,10 @@
Makefile
Makefile.in
confdefs.h
config.cache
config.h
config.log
config.status
configure
nano
stamp-h

View File

@@ -19,3 +19,8 @@ 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.

60
BUGS
View File

@@ -1,7 +1,13 @@
- 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) [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) [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)
@@ -11,6 +17,8 @@
(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]
- Cutting a file with marked text and both marker ends on the same line
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:
@@ -40,8 +48,11 @@
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]
@@ -55,19 +66,42 @@
properly update the inverted text (39). [FIXED]
- Searches for a string that only exist on one line multiple times will
fail after finding the last occurance (discovered by Ken Tyler) (40). [FIXED]
- Alt-Z is current 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 Kev 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 serahc or replace and hitting CASE_SENSITVE
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].
** Open BUGS **
- 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 }
- 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)
- Cutting a file with marked text and both marker ends on the same line
causes a random segfault (16) [FIXED?]
- In replace, there is no way to accept the default replace string. (27)
- totsize problems still abound in do_justify (33)
- Alt-Z is current broken to toggle suspend. I guess I still don't know
signals very well =-) (41).
$Id$
- When using autoindent (-i), wrapped text does not get auto-indented
(55, discovered by Mark Senior).

540
ChangeLog
View File

@@ -1,3 +1,542 @@
nano-0.9.99pre3 - 02/19/2001
- General
GNU compliance issues:
- Reworked shortcut list, put "Get Help" into default list,
removed "Goto Line", aligned "Read File" with "Write Out" and
"Replace" with "Where is" for consistency.
- Added texinfo manual nano.texi. Added texi options to
Makefile.am.
- configure.in:
- Autoconf compatibility fixes (Pavel Roskin)
- Added separate check for resizeterm().
- ALL_LINGUAS: added hu and ca.
- cut.c:
do_cut_text()
- marked text cut fixes (Rocco) (Fixes bug #54).
- nano.c:
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).
do_justify()
- If the keystroke after the justify is not the unjustify key,
blank the statsubar (bug reported by Neil Parks).
main()
- Added ENABLE_NLS check around gettext stuff.
- winio.c:
do_yesno()
- Added localized yes, no and all strings to function and rewrote
handler for the new format.
- de.po:
- Translation updates by Florian König.
- fi.po:
- Translation updates by Pauli Virtanen.
- hu.po:
- Hungarian translation by Horvath Szabolcs.
- id.po:
- Translation updates by Tedi Heriyanto.
- es.po:
- Translation updates and grammatical/typo fixes (Jordi).
- ca.po:
- Catalan translation by Jordi Mallach :)
- Miquel Vidal <miquel@sindominio.net> went over it and corrected
many typos and completed bits that remained untranslated by error.
nano-0.9.99pre2 - 01/31/2001
General
- Removed center_x and center_y globals. center_y was
completely unused and center_x was only used a few places,
easily replaced with COLS / 2 (oops, not current_x & y (Rob)).
- Deleted free_node, duplicate of delete_node, and changed all
free_node calls to delete_node.
- Fix for resizing the window in modes other than normal edit mode
Changes to handle_sigwinch(), main(). Fixes bug #52 (Rocco).
- files.c:
write_file()
- Don't free() realname on error, if it needs to be free()d later
it will be (fixes crash on successful write after failed write,
discovered by David Sobon).
username_tab_completion()
- Optimization and removal of useless vars (Rocco).
- Rewritten using getpwent (suggested by Rocco).
- Removed redundant conditional (Rocco).
real_dir_from_tilde()
- Rewritten using getpwent (suggested by Adam, much optimized by Rocco).
- global.c:
- Don't define toggles global or toggle_init_one if using --tiny.
- nano.c:
do_justify()
- Added restoration of totsize after unjustify command.
usage()
- Add arg to -T help (Rocco).
global_init(), handle_sigwinch()
- Messy loops replaced with memset calls (Rocco).
do_alt_speller()
- Added code to parse multi-word alt_speller strings.
- Fix initialization before fork() (Rocco).
- proto.h:
- Fix do_credits() proto (oops!)
- winio.c:
nanogetstr()
- Sanity check for x overrunning the string buffer len.
nano 0.9.99pre1 - 01/17/2001
General
- Changed #ifdefs to check for both DISABLE_TABCOMP and
NANO_SMALL, makes tiny option leave out tab completion, which
should be left out in that circumstance. Saves at least 5k.
- Previous change to #ifdefs DISABLE_TABCOMP and NANO_SMALL rolled
back. (Rocco)
- Various #ifdef & #ifndef cleanups. (Rocco)
- Added message for when keypad goes awry. Added code in main and
function print_numlock_warning() to notify user, and added an
apropriate section in the faq to refer to this brokenness.
- Added macros in nano.h for magic values that might be unclear in
nano.c:global_init(). (Rocco)
- configure.in:
- Fix for _use_keypad check breaking slang support (Christian
Weisgerber).
- Changed to automatically define the 5 DISABLE varibles when
NANO_SMALL (enable-tiny) is requested at configure.
- faq.html:
- Added some info on making the binary smaller with the configure
script.
- Added section on keypad bugginess.
- files.c:
real_dir_from_tilde()
- Oops, fix case where buf ="~", silly crash (bug discovered by
Neil Parks).
do_browser()
- Added space and - keys to do page up and down.
cwd_tab_completion(), input_tab()
- Changed bare malloc/calloc calls to nmalloc (found by Rocco).
- Added memset() to matchBuf to ensure sanity (Rocco, Adam).
- nano.c:
ABCD()
- New function, figures out what kbinput to return given
input common to several switch statements, allows us to
support the default Konsole key settings.
main()
- Alternate speller option no longer valid if DISABLE_SPELLER is
active. (Rocco)
- Removed direct calls to usage() (#else) for -k (cut) or -s (speller)
options when these have been disabled. (Rocco)
- Initialized kbinput to get around stupid compiler warning.
nano_small_msg()
- This function has been removed. All references now call
nano_disabled_msg. (Rocco)
version()
- When NANO_SMALL (enable-tiny) is defined, the 5 main DISABLE
variables (SPELLER, HELP, JUSTIFY, BROWSER, TABCOMP) are not
reported as enabled when Nano is called with -V (--version)
command-line option. (Rocco)
usage()
- Alternate speller option no longer valid if DISABLE_SPELLER is
active. (Rocco)
window_init(), handle_sigwinch()
- Added check for not having enough LINES to do anything useful,
if so die with an error. (Rocco)
die_too_small()
- Function to print the window too small error message, avoids
repeated string defs and globals.
do_justify()
- Small fix for totsize calculation (Rob)
- fi.po:
- Update by Pauli Virtanen.
nano 0.9.25 - 01/07/2001
General -
- New file browser code. New functions in files.c:do_browser(),
helper functions browser_init(), tail(), striponedir(),
filestat(). New shortcut list browser_list. Some new
strings to translate. Added function do_browse_from().
- Keypad code has been changed slightly. Now checks for
_use_keypad flag in window to see whether or not to turn
the keypad() back off when finished (taken from aumix). Moved
to winio.c where it should probably be anyway. New confgure
check for _use_keypad in window sstruct. This will have to do
for now.
- Moved keypad() calls for PDCURSES from main() to window_init()
so the keypad continues to work after a Meta-X, for example.
Fixed bug #51.
- faq.html:
- Fix typos and small mistakes (Jordi).
- files.c:
username_tab_completion()
- Added the (char *) sizeof when allocating memory for the filename
array (Rocco).
cwd_tab_completion()
- removed skipping . and .. when tabulating matches.
- Added the (char *) sizeof when allocating memory for the filename
array (Rocco).
do_writeout()
- Now takes an argument so the string typed in can be retained
when calling the browser.
do_browser()
- Don't decrement longest by the length of path. Fixes crashes
on entering various dirs (Rocco).
- Don't ungetch() the exit key, unneeded, fixes inerting a file
causes exit code.
- move.c:
page_down()
- Don't do an edit_update when there is only one page of text
(fileage == edittop && filebot == editbot). Fixes Bug #50.
- nano.c:
main()
- Reorder the getopt options to be more or less alphabetical
(suggested by Sven Guckes).
- winio.c:
do_cursorpos()
- Optimizations and cleanups by Rocco Corsi.
do_credits()
- Spell Erik Andersen's name right.
titlebar()
- Now takes an arg, needed for browser function.
do_help()
- Changed way of temporarily bringing up shortcuts at the
bottom in the help screen (actually works).
- utils.c:
mallocstrcpy()
- Takes char pointers now instead of void (makes debugging a
helluva lot easier)
- Duh, don't do anything if src == dest!
- es.po:
- Updates for file browser (Jordi).
nano 0.9.24 - 12/18/2000
General
- Added --disable-help option, affects acconfig.h, configure(.in),
winio.c:do_help, nano.c:help_init,help_text_init,version.
- Changed filename to no longer use PATH_MAX, so it can work on the
HURD. Changes in files.c:write_file(), new function
nano.c:clear_filename(), many changed in main(), a few other
places. Please test this!
- Added -b, -e, and -f flags, which we ignore as nano provides
their functionality already.
- cut.c:
do_uncut_text()
- Fix renumbering bug when uncutting marked text at filebot.
- Fix screen not being displayed when we are uncutting marked
text at editbot (Bug discovered by Ken Tyler).
- Fix magic line not getting created when (you guessed it)
uncutting marked text at filebot (Ryan Krebs).
- files.c:
read_file()
- If we encounter an error and insert is not set, run new_file().
(bug discovered by Ben Roberts).
write_file()
- Change open call flags, basically copy joe's way of doing it so
a more recent version will actually be included in (un)stable.
- Remove useless fstat call.
open_file()
- Added check for S_ISBLK and S_ISCHR, don't open device files!
- nano.c:
renumber()
- Dont stupidly assign the value of prev->lineno if prev == NULL!
main()
- Added code to check for Alt-Alt (27-27) keystrokes and set the
next keystroke as a control sequence. New variable
modify_control_key. Removed #ifdef _POSIX_VDISABLE check
around Control-S,Q,Z handlers because we need it now for
the Alt-Alt-x code.
- Added --view option to getopt_long()call . Bug discovered
by Rocco Corsi.
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 (bug discovered by
Rocco Corsi).
do_toggle()
- Added fix_editbot() call to fix improper redisplay of edit
window when using nohelp toggle (bug discovered by Rocco Corsi).
- nano.1, nano.1.html:
- Updated man page for -b, -e, -f and expanded explanation for -p.
- winio.c
do_help()
- Force keypad on so F-keys and PageUp/Down will work properly.
Added check for NANO_EXIT_FKEY to loop.
- utils.c:
new_magicline()
- Increment totsize!! We decrement it when we've read a file,
everywhere else it should automatically be incremented
nano 0.9.23 - 12/08/2000
General
- Changed --disable-spell to --disable speller. The term is
"speller" for -s, so it should be --disable-speller.
- files.c:
write_file()
- Added tmp check to TMP_OPT section (how apropriate).
- Added new consistency checking code from securityfocus
article by Oliver Friedrichs, and use O_EXCL if tmp == 1.
- We now run check on result of lstat(), not stat(), to be
safer. New variable anyexists, we use still use realexists
later in the program.
- OOPS, line up link/unlink/rename check if conditional with
top if conditional. Option -l has been broken for 9 versions,
no one noticed?!
- Added saving perms at end of link so we can apply them to the
new file if --nofollow is used.
- winio.c:
edit_add()
- Off by one display error (fix by Rocco Corsi).
do_replace_highlight()
- New code to handle being past COLS (Roco Corsi).
- Moved from search.c, as it's definitely a winio function now =)
update_line()
- More '$' display fixes (Rocco Corsi).
nano 0.9.22 - 12/02/2000
- General
- Username tab completion code, and cleaned up existing tabcomp
code. New functions real_dir_from_tide(), append_slash_if_dir(),
username_tab_completion is more than a stub now =-).
- Ignore key sequence 543 & 545, right control and alt keys in
windows. Affects main() and winio.c:nanogetstr().
- Took out help from spell_list and changed SPELL_LIST_LEN to 1.
Is using a spell checker THAT difficult? =-)
- New function nano_disabled_msg(), to alert that certain
functions have been disabled, similaer to nano_tiny feature.
- New configure options:
- Added configure argument --disable-tabcomp. Affects
bottom of files.c and write_file, utils.c:check_wildcard_match()
and winio.c:nanogettsr().
- New options --enable-extra. New code in nano.c:version() to
print out various options from ./configure, function do_credits().
- Added --disable-spell option for those who want to just disable
the spell check feature. Affects the spellinf fucntions
do_spell, do_int_speller and do_alt_speller.
- Added --disable-justify to get rid of the justify function.
Affects do_justify() (not surprisingly).
- files.c:
write_file()
- Unsetting modified on temp files bug fixed (Rocco Corsi).
- Okay, if tmp == 1 and the file exists, we abort.
do_insertfile()
- Added call to real_name_from tilde, oops. Added check for
DISABLE_TABCOMP.
read_file()
- Added check for fileptr == NULL.
- global.c:
shortcut_init()
- Now takes an argument as to whether to display the unjustify
shortcut or the normal uncut text one. Needed to accomodate
the klugey unjustify code.
- nano.1, nano.1.html:
- Updated date on pages because of -p changes.
- Added "NOTES" section, where I explain what nano.save & friends
are.
- Added a copyright notice for the manpage, under the GPL.
- Other minor changes.
- nano.c:
do_justify()
- Wrote unjustify code. Borrows cutbuffer and stores the unjustified
text there, then grabs the next keystroke and, if the unjustify
key, gets rid of the justified text and calls do_uncut_text.
Added macro NANO_UNJUSTIFY_KEY.
do_int_spell*
- Various fixes (Rocco Corsi).
- Changed abort of program to aborting based on value of "edit a
replacement" question, and not caring about the replace loop
return value. That way the user can get out of the replace loop
and continue spell checking (very important to me anyway).
version()
- Took out huge check for the various --disabled macros,
eventually there will be too many to reasonably check for.
nano_small_msg(), nano_disabled_msg()
- Added checks for disabled functions to see whether or not to
declare them.
do_next_word()
- Update the previous line as well as the current one in case we
have moved beyond COLS or back from COLS, patch submitted
by Ryan Krebs.
die()
- Now creates .save file using variable-length strings. Also
calls write_file with tmp == 1, which happens to do exactly what
we want (abort on save file exists and use mode 0600).
handle_sighup()
- Now calls die instead of writing on its own and exiting normally.
- search.c:
do_replace_hilight()
- New function, displays the currently selected word as hilighted
in the spell check. Called from do_replace_loop (Rocco Corsi).
- Added calls to curs_set(0) and (1) to diable the cursor when
hilighting, looks much better.
- es.po:
- Traditional Spanish strings updates.
nano 0.9.21 - 11/23/2000
- AUTHORS
- Added Rocco Corsi.
- nano.c:
main()
- Changed check for argc == 1 to argv[optind] == NULL to decide
whether or not to display "New File" in the statusbar.
- search.c:
findnextstr()
- Fix curent_x increment bug by using another variable (Rocco Corsi).
search_init()
- Silly typo in our "one simple call" of statusq. Stopped
previous search string from being displayed.
do_replace()
- Copy back the previous value of last_replace into answer if
using PICO_MODE and answer == ""
- winio.c:
do_up()
- Deleted first update_line() call, screws up display when marker is set.
- nano.1, nano.1.html
- Updated man page for new -p definition.
nano 0.9.20 - 11/18/2000
- General
- Ran source through indent -kr again. Make everything pretty.
- Changed behavior of "search" and "replace" prompts to make all
previous values editable. This change was made so that you can
replace with the null string without needing a special key for it.
changed code in search_init(), do_replace(), nanogetstr (see
below).
- Added some missing gettext calls here and there (Jordi).
- Revamped nanogetsr() and calls to it to use variable length strings.
MANY changes in nanogetstr(), many chances in search.c, new
function mallocstrcpy which is sure to be a programmatic
nightmare, changed last_search, last_replace, answer to
pointers. New function not_found_msg in search.c for displaying
truncated strings in satusbar when the string is not found
(-pedantic fixes by Rocco Corsi). We disable this feature when
using PICO_MODE (-p).
- New spelling code by Rocco Corsi. New functions
do_int_speller, do_alt_speller, changes to do_spell in nano.c,
New functions search_init_globals and do_replace_loop, changes
to search_init(), do_replace, findnextstr, moved last_search and
last_replace back to nano.c (*shrug*).
- New tab completion code. Used check_wildcard_match, input_tab,
cwd_tab_completion, username_tab_completion from busybox,
hacked them a lot, changes to nanogetstr(). nanogetstr() and
statusq() now take an arg for whether or not to allow tab
completion.
- Fixed value being input in statusbar during a search or replace
and CASE_SENSITIVE or the other search is called and the
string being typed in is blown away. Reported by Ken Tyler.
- Changed PICO_MSGS flag to PICO_MODE, changed help strings
accordingly.
- files.c:
do_writeout()
- Change strcpy to answer to mallocstrcpy.
- global.c
- New global replace_list_2, for 2nd half of the replace dialog
("Replace with:"), has fewer options than first half because
they were inapropriate.
toggle_init()
- Added #ifdef around toggle_regex_msg to get rid of compiler
warning.
- nano.c:
keypad_on()
- New function, toggles turning the keypad on and off in edit and
bottomwin(). Added call to this in finish(), fixes bug #45.
- search.c
findnexstr()
- New arg for begin_x variable, basically a rewrite that
makes a little more sense and isn't quite as messy (Rocco Corsi).
- Update the line we're checking if not the whole screen, because
it's quite possible the search team could exist somewhere way
to the right on the same line, for example.
replace_abort()
- Add reset of placewewant, stops cursor from jumping when moving
cursor after a replace.
do_replace()
- Added code for Gotoline key after entering the search term.
Fixes bug #46.
- Removed redundant code involving processing replacemenet string.
Converted if statements to switch statements.
- Optimizations by Rocco Corsi.
- Removed code for deleted shortcuts from in replace_list_2.
do_search()
- Converted if statements to one switch statement.
- winio.c
nanogetstr()
- Added check for 343 in while loop to get rid of getting "locked"
into statusbar" bug in odd $TERMs like iris-ansi.
- Changed check to return -2 on "enter" from answer == ""
to answer == def.
- Fixed fallthrough code because there was no break. Make much
more sense now.
- Added check for ASCII 54[124] when using PDCURSES, ignore them
if noticed.
nanoget_repaint()
- New function, removes about 30 lines of duplicate code in
nanogetstr().
- Black magic code to make $ appear in prompt if we're past
COLS.
blank_edit()
- Removed wrefresh() call, much less choppy now. If there's a need
for a wrefresh after a specific call, let me know.
- es.po:
- Updated translation for 0.9.20 (Jordi).
nano 0.9.19 - 10/02/2000
- General
- Added PDCurses support under cygwin, which allows building
a nice stand-alone nano.exe for those poor Windows users.
Extra check in configure.in for initscr() in -lcurses (as
PDcurses has no tgetent), some #ifdef PDCURSES statements
in main().
- Changed web site and email to new nano-editor.org domain.
- nano.c
- Added (int) casts to remove compile warnings with -Wall.
main()
- Added check for _POSIX_VDISABLE around term variable definition.
- search.c
- Added initializations for last_search and last_replace (Rocco Corsi)
nano 0.9.18 - 09/18/2000
- General
- Changed _POSIX_VERSION checks in regex code to HAVE_REGEX_H,
added check for regex.h in configure.in.
- configure.in:
- Added default case for cross-compiling to get rid of annoying
AC_TRY_RUN warning.
- cut.c:
do_cut_text()
- Don't immediately abort if we're on filebot and the marker is
set (fixes bug #42).
- files.c:
open_file()
- Fix for bug #44 (Rocco Corsi).
- global.c:
shortcut_init()
- Added in FKEYs that for some reason were left out. *boggle*
- nano.c:
main()
- Added check for _POSIX_VDISABLE and use raw mode if not
available, allows nano to work with cygwin.
- Added gettext calls to enable/disable strings (Jordi).
- Revamped a great deal of the F-key and keypad key handling,
because we not longer use keypad() (see below).
- Removed keypad() call because nano was not working with the
keypad in many terms, which is very bad.
- Made insert key call do_insertfile().
do_toggle()
- Rewrote function to allow NOHELP toggle to wotk on systems
without a working resizewin(). New function window_init().
mouse_init()
- Add keypad only if mouse support is on, otherwise mouse doesn't
work. I guess you have to choose between having the mouse and
having a working keypad for the time being (thank god for Meta-m).
- winio.c:
total_refresh()
- Added titlebar() call.
onekey()
- Off by one error fix fix ;-) (Rocco Corsi).
- search.c:
findnextstr()
- Reset starting at current for search instead of begin.
- es.po:
- Translated new strings and minor updates (Jordi).
- de.po
- Revised translations by floki@bigfoot.com
nano-0.9.17 - 09/04/2000
- General
- New shortcuts to toggle certain options that are normally only
@@ -38,6 +577,7 @@ nano-0.9.17 - 09/04/2000
lack of reversed text on searching with MARK_ISSET.
onekey()
- Off by one error fix (Rocco Corsi).
update_line()
- Added check for binary data >= 1 and <= 26, and use ^+letter
to display it. Should fix editing text files with binary

View File

@@ -14,6 +14,9 @@ nano_SOURCES = cut.c \
man_MANS = nano.1
nano_LDADD = @INTLLIBS@
info_TEXINFOS = nano.texi
MAKEINFO = makeinfo --no-split
EXTRA_DIST = AUTHORS BUGS COPYING ChangeLog INSTALL NEWS README \
TODO install-sh missing mkinstalldirs nano.1 nano.1.html \
faq.html

View File

@@ -75,7 +75,6 @@ INSTOBJEXT = @INSTOBJEXT@
INTLDEPS = @INTLDEPS@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
PACKAGE = @PACKAGE@
@@ -94,6 +93,9 @@ nano_SOURCES = cut.c files.c global.c move.c nano.c nano.h proto.h
man_MANS = nano.1
nano_LDADD = @INTLLIBS@
info_TEXINFOS = nano.texi
MAKEINFO = makeinfo --no-split
EXTRA_DIST = AUTHORS BUGS COPYING ChangeLog INSTALL NEWS README TODO install-sh missing mkinstalldirs nano.1 nano.1.html faq.html
@@ -120,13 +122,18 @@ CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
TEXI2DVI = texi2dvi
INFO_DEPS = nano.info
DVIS = nano.dvi
TEXINFOS = nano.texi
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
config.h.in configure configure.in install-sh missing mkinstalldirs \
texinfo.tex
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
@@ -138,7 +145,7 @@ OBJECTS = $(nano_OBJECTS)
all: all-redirect
.SUFFIXES:
.SUFFIXES: .S .c .o .s
.SUFFIXES: .S .c .dvi .info .o .ps .s .texi .texinfo .txi
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps Makefile
@@ -230,6 +237,122 @@ nano: $(nano_OBJECTS) $(nano_DEPENDENCIES)
@rm -f nano
$(LINK) $(nano_LDFLAGS) $(nano_OBJECTS) $(nano_LDADD) $(LIBS)
nano.info: nano.texi
nano.dvi: nano.texi
DVIPS = dvips
.texi.info:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texi.dvi:
TEXINPUTS=.:$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.texi:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texinfo.info:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texinfo:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texinfo.dvi:
TEXINPUTS=.:$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.txi.info:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.txi.dvi:
TEXINPUTS=.:$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.txi:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.dvi.ps:
$(DVIPS) $< -o $@
install-info-am: $(INFO_DEPS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(infodir)
@list='$(INFO_DEPS)'; \
for file in $$list; do \
d=$(srcdir); \
for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
if test -f $$d/$$ifile; then \
echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \
$(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \
else : ; fi; \
done; \
done
@$(POST_INSTALL)
@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
list='$(INFO_DEPS)'; \
for file in $$list; do \
echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
done; \
else : ; fi
uninstall-info:
$(PRE_UNINSTALL)
@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
ii=yes; \
else ii=; fi; \
list='$(INFO_DEPS)'; \
for file in $$list; do \
test -z "$ii" \
|| install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
done
@$(NORMAL_UNINSTALL)
list='$(INFO_DEPS)'; \
for file in $$list; do \
(cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \
done
dist-info: $(INFO_DEPS)
list='$(INFO_DEPS)'; \
for base in $$list; do \
d=$(srcdir); \
for file in `cd $$d && eval echo $$base*`; do \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file; \
done; \
done
mostlyclean-aminfo:
-rm -f nano.aux nano.cp nano.cps nano.dvi nano.fn nano.fns nano.ky \
nano.kys nano.ps nano.log nano.pg nano.toc nano.tp nano.tps \
nano.vr nano.vrs nano.op nano.tr nano.cv nano.cn
clean-aminfo:
distclean-aminfo:
maintainer-clean-aminfo:
cd $(srcdir) && for i in $(INFO_DEPS); do \
rm -f $$i; \
if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
rm -f $$i-[0-9]*; \
fi; \
done
install-man1:
$(mkinstalldirs) $(DESTDIR)$(man1dir)
@list='$(man1_MANS)'; \
@@ -416,9 +539,10 @@ distdir: $(DISTFILES)
|| exit 1; \
fi; \
done
info-am:
$(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info
info-am: $(INFO_DEPS)
info: info-recursive
dvi-am:
dvi-am: $(DVIS)
dvi: dvi-recursive
check-am: all-am
check: check-recursive
@@ -430,21 +554,22 @@ all-recursive-am: config.h
install-exec-am: install-binPROGRAMS
install-exec: install-exec-recursive
install-data-am: install-man
install-data-am: install-info-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-am: uninstall-binPROGRAMS uninstall-info uninstall-man
uninstall: uninstall-recursive
all-am: Makefile $(PROGRAMS) $(MANS) config.h
all-am: Makefile $(INFO_DEPS) $(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
$(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(infodir) \
$(DESTDIR)$(mandir)/man1
mostlyclean-generic:
@@ -457,25 +582,27 @@ distclean-generic:
maintainer-clean-generic:
mostlyclean-am: mostlyclean-hdr mostlyclean-binPROGRAMS \
mostlyclean-compile mostlyclean-tags \
mostlyclean-compile mostlyclean-aminfo mostlyclean-tags \
mostlyclean-generic
mostlyclean: mostlyclean-recursive
clean-am: clean-hdr clean-binPROGRAMS clean-compile clean-tags \
clean-generic mostlyclean-am
clean-am: clean-hdr clean-binPROGRAMS clean-compile clean-aminfo \
clean-tags clean-generic mostlyclean-am
clean: clean-recursive
distclean-am: distclean-hdr distclean-binPROGRAMS distclean-compile \
distclean-tags distclean-generic clean-am
distclean-aminfo 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
maintainer-clean-compile maintainer-clean-aminfo \
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."
@@ -486,7 +613,9 @@ maintainer-clean: maintainer-clean-recursive
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 \
maintainer-clean-compile install-info-am uninstall-info \
mostlyclean-aminfo distclean-aminfo clean-aminfo \
maintainer-clean-aminfo 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 \

119
NEWS
View File

@@ -1,3 +1,122 @@
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 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 versions 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 probelm 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 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

61
README
View File

@@ -1,29 +1,24 @@
The nano editor (Nano's ANOther editor) by Chris Allegretta
GNU nano - an enhanced clone of the Pico text editor.
Manifesto
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
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,12 +29,12 @@ 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 configutr 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
@@ -54,20 +49,15 @@ Mailing List and Bug Reports
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.
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.
nano is currently at the 1.0 prerelease level. This mean it has all
features that the 1.0 version will have and only bug fixes and updates
will be added before the official 1.0 is released. There are still a
few lingering bugs, but for the most part your data should be safe.
Backups are still your friend though.
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,
@@ -76,8 +66,7 @@ Current Status
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 ;)
everyone if there weren't five versions of the same program.
Chris Allegretta (chrisa@asty.org)

12
TODO
View File

@@ -2,7 +2,7 @@ TODO file (? means the feature may be implemented, but not definitely)
-----------------------------------------------------------------------------
Current Version:
- Implement Spelling [DONE, mostly...]
- Implement Spelling [DONE]
- Implement Help [DONE]
- Internationalization [In progress, translators welcome!]
- Allow nano to be resized in X. [DONE]
@@ -11,12 +11,18 @@ Current Version:
- Rewrite edit_refresh, if at all possible [DONE]
- Implement justify function [DONE]
- Cut to end of line [DONE]
- Unjustify command (^U after ^J)
- 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?
- Single line scroll up/down?
- Color syntax highlighting? (certainly seems like there's a demand for it.)
- .nanorc ?????
- Backup making (filename~)?
$Id$

View File

@@ -3,6 +3,12 @@
/* 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
@@ -24,3 +30,20 @@
/* Define to use the slang wrappers for curses instead of native curses */
#undef USE_SLANG
/* 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

View File

@@ -55,6 +55,12 @@
/* 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
@@ -76,6 +82,24 @@
/* Define to use the slang wrappers for curses instead of native curses */
#undef USE_SLANG
/* 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 if you have the __argz_count function. */
#undef HAVE___ARGZ_COUNT
@@ -154,6 +178,9 @@
/* Define if you have the <nl_types.h> header file. */
#undef HAVE_NL_TYPES_H
/* Define if you have the <regex.h> header file. */
#undef HAVE_REGEX_H
/* Define if you have the <string.h> header file. */
#undef HAVE_STRING_H

599
configure vendored

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,9 @@
# $Id$
dnl Process this file with autoconf to produce a configure script.
AC_INIT(nano.c)
AM_INIT_AUTOMAKE(nano, 0.9.16-cvs)
AM_INIT_AUTOMAKE(nano, 0.9.99pre3)
AM_CONFIG_HEADER(config.h:config.h.in)
ALL_LINGUAS="es de fr it id fi"
ALL_LINGUAS="es de fr it id fi hu ca"
dnl Checks for programs.
AC_PROG_CC
@@ -11,7 +11,7 @@ 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)
AC_CHECK_HEADERS(fcntl.h unistd.h malloc.h termios.h termio.h limits.h getopt.h regex.h)
dnl options
AC_ARG_ENABLE(tiny,
@@ -19,9 +19,50 @@ AC_ARG_ENABLE(tiny,
(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)
fi])
AC_MSG_CHECKING(whether to use slang)
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
fi])
AC_ARG_ENABLE(tabcomp,
[ --disable-tabcomp Disables 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 Disables spell checker function],
[if test x$enableval != xyes; then
AC_DEFINE(DISABLE_SPELLER)
fi])
AC_ARG_ENABLE(help,
[ --disable-help Disables help function (^G)],
[if test x$enableval != xyes; then
AC_DEFINE(DISABLE_HELP)
fi])
AC_ARG_ENABLE(browser,
[ --disable-browser Disables mini file browser],
[if test x$enableval != xyes; then
AC_DEFINE(DISABLE_BROWSER)
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],
@@ -39,7 +80,7 @@ AC_ARG_WITH(slang,
fi
AC_CHECK_HEADER(slcurses.h,
AC_MSG_CHECKING(for SLtt_initialize in -lslang)
AC_MSG_CHECKING([for SLtt_initialize in -lslang])
_libs=$LIBS
LIBS="$LIBS -lslang"
AC_TRY_RUN([
@@ -58,11 +99,11 @@ int main () { SLtt_initialize (NULL); return 0; }],
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"])
AC_CHECK_LIB([${termlib}], tputs, [tcap="-l$termlib"])
test -n "$tcap" && break
done
AC_MSG_CHECKING(for SLtt_initialize in -lslang $tcap)
AC_MSG_CHECKING([for SLtt_initialize in -lslang $tcap])
LIBS="$LIBS $tcap"
AC_TRY_RUN([
#include <stdio.h>
@@ -79,7 +120,7 @@ int main () { SLtt_initialize (NULL); return 0; }],
CURSES_LIB_NAME=slang], [
AC_MSG_RESULT(no)
# We might need the math library
AC_MSG_CHECKING(for SLtt_initialize in -lslang $tcap -lm)
AC_MSG_CHECKING([for SLtt_initialize in -lslang $tcap -lm])
LIBS="$LIBS -lm"
AC_TRY_RUN([
#include <stdio.h>
@@ -94,7 +135,10 @@ int main () { SLtt_initialize (NULL); return 0; }],
CURSES_LIB="-lslang $tcap -lm"
fi
CURSES_LIB_NAME=slang],
[AC_MSG_RESULT(no)])])]),
[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
@@ -108,17 +152,17 @@ int main () { SLtt_initialize (NULL); return 0; }],
LDFLAGS=${_ldflags}
fi
;;
esac], AC_MSG_RESULT(no))
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([
[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/.]),
*** 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`
@@ -137,17 +181,23 @@ 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)
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)
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)
AC_CHECK_LIB(termcap, tgetent, [CURSES_LIB="-ltermcap" CURSES_LIB_NAME=termcap])
fi
if eval "test x$CURSES_LIB_NAME = x"
@@ -157,11 +207,28 @@ then
*** 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")
AC_MSG_RESULT([Using $CURSES_LIB_NAME as the termcap library])
fi
AC_CHECK_LIB($CURSES_LIB_NAME, wresize, AC_DEFINE(HAVE_WRESIZE))
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

46
cut.c
View File

@@ -123,7 +123,7 @@ void cut_marked_segment(filestruct * top, int top_x, filestruct * bot,
filebot = top;
}
}
if (top->lineno < edittop->lineno)
if (top->lineno < edittop->lineno)
edit_update(top, CENTER);
}
#endif
@@ -152,20 +152,17 @@ int do_cut_text(void)
}
/* Must let cutbuffer get blown away first before we do this... */
if (fileptr == filebot)
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 (current_x == strlen(current->data)) {
do_delete();
SET(KEEP_CUTBUFFER);
marked_cut = 2;
return 1;
}
else
{
} else {
SET(MARK_ISSET);
SET(KEEP_CUTBUFFER);
@@ -177,24 +174,23 @@ int do_cut_text(void)
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]));
newsize = abs(mark_beginx - current_x) + 1;
tmpstr = nmalloc(newsize);
tmpstr = nmalloc(newsize + 1);
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));
strlen(&current->data[mark_beginx]) + 1);
} else {
strncpy(tmpstr, &current->data[mark_beginx], newsize);
memmove(&current->data[mark_beginx],
&current->data[current_x],
strlen(&current->data[current_x] - newsize));
strlen(&current->data[current_x]) + 1);
current_x = mark_beginx;
update_cursor();
}
tmpstr[newsize] = 0;
tmpstr[newsize - 1] = 0;
tmp->data = tmpstr;
add_to_cutbuffer(tmp);
dump_buffer(cutbuffer);
@@ -227,7 +223,7 @@ 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;
current = fileptr;
@@ -247,10 +243,10 @@ int do_cut_text(void)
(fileptr->next)->prev = fileptr->prev;
current = fileptr->next;
totlines--;
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 */
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);
}
@@ -277,6 +273,7 @@ int do_uncut_text(void)
filestruct *tmp = current, *fileptr = current, *newbuf, *newend;
#ifndef NANO_SMALL
char *tmpstr, *tmpstr2;
filestruct *hold = current;
#endif
int i;
@@ -342,8 +339,13 @@ int do_uncut_text(void)
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)
@@ -371,7 +373,9 @@ int do_uncut_text(void)
current_x = 0;
placewewant = 0;
}
renumber(current->prev);
/* Renumber from BEFORE where we pasted ;) */
renumber(hold);
dump_buffer(fileage);
dump_buffer(cutbuffer);
set_modified();
@@ -404,7 +408,7 @@ int do_uncut_text(void)
i = editbot->lineno;
renumber(newbuf);
if (i < newend->lineno)
if (i < newend->lineno)
edit_update(fileptr, CENTER);
dump_buffer_reverse(fileptr);

199
faq.html
View File

@@ -1,5 +1,6 @@
<!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]">
@@ -16,18 +17,19 @@
<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 nano?</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
<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 man page
without having to download the program!</a></font></blockquote>
<h2>
<font color="#330000"><a href="#2">2. Where to get nano</a></font></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>
@@ -46,7 +48,11 @@ THE HECK DO I DO NOW?</a></font>
<br><font color="#330000"><a href="#3.2">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></blockquote>
'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></blockquote>
<h2>
<font color="#330000"><a href="#4">4. Running</a></font></h2>
@@ -59,8 +65,14 @@ bucky/meta key doesn't seem to work!&nbsp; What can I do?</a></font>
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 ^\ and
^_ in the shortcut list instead of ^G and ^J?</a></font>
<br><a href="#4.5">4.5 How do I make nano my default editor (in Pine, mutt,
etc.)?</a></blockquote>
<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>
@@ -118,17 +130,18 @@ will volunteer to maintain this FAQ someday, who knows...</font></blockquote>
<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@asty.org">nano@asty.org</a> and if
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 nano?</font></h2>
<a NAME="1.3"></a><font color="#330000">1.3. What is GNU nano?</font></h2>
<blockquote><font color="#330000">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 WITHOUT breaking compatibility
with Pico.</font></blockquote>
<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
@@ -140,7 +153,7 @@ nano?</font></h2>
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 Linux in the mid to
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>
@@ -165,7 +178,11 @@ and hacked like a madman for many hours straight one weekend to make a
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 almost stable
state it is today.</font></blockquote>
state it is today.
<p><font color="#330000">In February 2001, nano has been declared an
official GNU program by Richard Stallman. Nano is also nearing its 1.0
release as of this writing (Valentine's Day 2001).
</font></blockquote>
<h2>
<a NAME="1.5"></a><font color="#330000">1.5. Why the name change from TIP?</font></h2>
@@ -175,7 +192,7 @@ 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 Linux distributions (where
there is no 'tip' utility included with most GNU/Linux distributions (where
nano was developed).</font></blockquote>
<h2>
@@ -183,7 +200,7 @@ nano was developed).</font></blockquote>
of nano?</font></h2>
<blockquote><font color="#330000">The current version of nano *should*
be 0.9.16.&nbsp; Of course you should always check the nano hompage to
be 0.9.99pre3.&nbsp; Of course you should always check the nano hompage to
see what the latest and greatest version is.</font></blockquote>
<h2>
@@ -191,11 +208,11 @@ see what the latest and greatest version is.</font></blockquote>
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.asty.org/nano/dist/nano.1.html">here</a>.</font></blockquote>
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 nano</font></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
@@ -205,13 +222,13 @@ nano.</font></h2>
at the following fine web and ftp sites:</font>
<ul>
<li>
<font color="#330000"><a href="http://www.asty.org/nano/dist">http://www.asty.org/nano/dist</a></font></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.asty.org/pub/nano">ftp://ftp.asty.org/pub/nano</a></font></li>
<font color="#330000"><a href="ftp://ftp.nano-editor.org/pub/nano">ftp://ftp.nano-editor.org/pub/nano</a></font></li>
<li>
<font color="#330000"><a href="ftp://nano.sourceforge.net/pub/nano/">ftp://nano.sourceforge.net/pub/nano</a></font></li>
@@ -225,13 +242,13 @@ packages.</font></h2>
<blockquote>
<ul>
<li>
<font color="#330000"><a href="http://www.asty.org/nano/dist/RPMS">http://www.asty.org/nano/dist/RPMS</a></font></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>
<li>
<font color="#330000"><a href="ftp://ftp.asty.org/pub/nano/RPMS">ftp://ftp.asty.org/pub/nano/RPMS</a></font></li>
<font color="#330000"><a href="ftp://ftp.nano-editor.org/pub/nano/RPMS">ftp://ftp.nano-editor.org/pub/nano/RPMS</a></font></li>
<li>
<font color="#330000"><a href="ftp://nano.sourceforge.net/pub/nano/RPMS">ftp://nano.sourceforge.net/pub/nano/RPMS</a></font></li>
@@ -254,14 +271,14 @@ at:</font>
current nano packages for:</font>
<ul>
<li>
<font color="#330000"><a href="http://www.debian.org/Packages/frozen/editors/nano.html">frozen</a></font></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/unstable/editors/nano.html">unstable</a></font></li>
</ul>
<font color="#330000">Note that versions &lt; 0.9.10 are probably not for
those wanting to get serious work done, so until the frozen/stable distributions
have an updated version of nano, you are best off using the one in unstable
those wanting to get serious work done, so until the stable distribution
has an updated version of nano, you are best off using the one in unstable
for now.</font></blockquote>
<h2>
@@ -288,7 +305,7 @@ DEB package?</font></h2>
<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 programs,
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>
@@ -304,7 +321,8 @@ try this:</font>
<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">./configure</font></b>
<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>
@@ -326,8 +344,39 @@ install</b>.</font></blockquote>
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>
<hr WIDTH="100%">
<h1>
<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
</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.
</font></blockquote> <hr WIDTH="100%"> <h1>
<a NAME="4"></a><font color="#330000">4. Running</font></h1>
<h2>
@@ -347,15 +396,15 @@ 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 nano-devel list or
to <a href="mailto:nano@asty.org">nano@asty.org</a>.</font></blockquote>
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>
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 ^\ and
@@ -368,8 +417,41 @@ shortcut list.&nbsp;&nbsp; If you use the <b>-p</b> option to nano you
will get the same shortcuts at the bottom as Pico.</font></blockquote>
<h2>
<a NAME="4.5"></a>4.5 How do I make nano my default editor (in Pine, mutt,
etc)?</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
@@ -406,7 +488,7 @@ my language!</font></h2>
language to write one =-).&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; Then send it to the nano devel list or <a href="mailto:nano@asty.org">nano@asty.org</a>.</font></blockquote>
line.&nbsp; Then send it to the nano devel list or <a href="mailto:nano@nano-editor.org">nano@nano-editor.org</a>.</font></blockquote>
<h2>
<a NAME="5.2"></a><font color="#330000">5.2. I don't like the translation
@@ -426,47 +508,46 @@ or the devel list.</font></blockquote>
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.asty.org/nano">nano
of Pico, a more complete list can be found at the <a href="http://www.nano-edior.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.asty.org/nano">nano
<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 and a little stability), nano is the way to go.</blockquote>
mailer integration and a little stability), 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">Technically there is nothing "wrong"
with the U of W license for Pine and Pico.&nbsp; However, it is&nbsp; not
considered truly "free" according to the <a href="http://www.debian.org/social_contract#guidelines">Debian
Free Software Guidelines</a>.&nbsp; The only real problem as far as I'm
aware as that there are limitations on the redistribution of programs based
on the Pine and Pico source.&nbsp;&nbsp; So at a real nitty gritty level,
these programs are not considered Free Software.&nbsp; This is why Pico
isn't distributed in binary form in debian, and hence one of the main reasons
nano was started.</font></blockquote>
<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 modfify 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">Well, there is nothing stopping you from
using Pine with nano (or Pine with Pico for that matter).&nbsp; But if
you want to use programs that are considered Free Software, you may want
to look into <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>
<blockquote><font color="#330000"> If you are looking to use a Free
Software program similar to PINE and emacs is not your things, 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
@@ -498,7 +579,7 @@ any changes in the past few years in a positive direction.</font></blockquote>
<blockquote><font color="#330000">There are two mailing lists for nano
hosted at <a href="http://www.sourceforge.net">SourceForge</a>, nano-announce
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 sometimes
versions of nano are announced (surprise!)&nbsp; Nano-devel is a normally
low, sometimes very high traffic list for dicussing the present and future
development of nano.&nbsp; Here are links to where you can sign up for
a given list:</font><font color="#330000"></font>
@@ -510,8 +591,8 @@ a given list:</font><font color="#330000"></font>
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@lists.sourceforge.net">our
way</a>!&nbsp; Better yet, fix a <a href="http://www.asty.org/nano/dist/BUGS">bug</a>
in the program or implement a <a href="http://www.asty.org/nano/dist/TODO">cool
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>

1025
files.c

File diff suppressed because it is too large Load Diff

180
global.c
View File

@@ -35,11 +35,10 @@
* Global variables
*/
int flags = 0; /* Our new flag containig many options */
int center_x = 0, center_y = 0; /* Center of screen */
WINDOW *edit; /* The file portion of the editor */
WINDOW *topwin; /* Top line of screen */
WINDOW *bottomwin; /* Bottom buffer */
char filename[PATH_MAX]; /* Name of the file */
char *filename = NULL; /* Name of the file */
int editwinrows = 0; /* How many rows long is the edit
window? */
filestruct *current; /* Current buffer pointer */
@@ -54,7 +53,7 @@ filestruct *editbot = NULL; /* Same for the bottom */
filestruct *filebot = NULL; /* Last node in the file struct */
filestruct *cutbuffer = NULL; /* A place to store cut text */
char answer[132]; /* Answer str to many questions */
char *answer = NULL; /* Answer str to many questions */
int totlines = 0; /* Total number of lines in the file */
int totsize = 0; /* Total number of bytes in the file */
int placewewant = 0; /* The collum we'd like the cursor
@@ -74,17 +73,26 @@ int mark_beginx; /* X value in the string to start */
shortcut main_list[MAIN_LIST_LEN];
shortcut whereis_list[WHEREIS_LIST_LEN];
shortcut replace_list[REPLACE_LIST_LEN];
shortcut replace_list_2[REPLACE_LIST_LEN]; /* 2nd half of replace dialog */
shortcut goto_list[GOTO_LIST_LEN];
shortcut writefile_list[WRITEFILE_LIST_LEN];
shortcut help_list[HELP_LIST_LEN];
shortcut spell_list[SPELL_LIST_LEN];
#ifndef DISABLE_BROWSER
shortcut browser_list[BROWSER_LIST_LEN];
#endif
#ifndef NANO_SMALL
toggle toggles[TOGGLE_LEN];
#endif
/* Regular expressions */
regex_t search_regexp; /* Global to store compiled search regexp */
regmatch_t regmatches[10]; /* Match positions for parenthetical
subexpressions, max of 10 */
#ifdef HAVE_REGEX_H
regex_t search_regexp; /* Global to store compiled search regexp */
regmatch_t regmatches[10]; /* Match positions for parenthetical
subexpressions, max of 10 */
#endif
/* Initialize a struct *without* our lovely braces =( */
void sc_init_one(shortcut * s, int key, char *desc, char *help, int alt,
@@ -100,6 +108,7 @@ void sc_init_one(shortcut * s, int key, char *desc, char *help, int alt,
s->func = func;
}
#ifndef NANO_SMALL
/* Initialize the toggles in the same manner */
void toggle_init_one(toggle * t, int val, char *desc, int flag)
{
@@ -107,46 +116,54 @@ void toggle_init_one(toggle * t, int val, char *desc, int flag)
t->desc = desc;
t->flag = flag;
}
#endif
void toggle_init(void)
{
#ifndef NANO_SMALL
char *toggle_const_msg, *toggle_autoindent_msg, *toggle_suspend_msg,
*toggle_nohelp_msg, *toggle_picomode_msg, *toggle_mouse_msg,
*toggle_cuttoend_msg, *toggle_regexp_msg, *toggle_wrap_msg;
*toggle_cuttoend_msg, *toggle_wrap_msg;
#ifdef HAVE_REGEX_H
char *toggle_regexp_msg;
#endif
toggle_const_msg = _("Constant cursor position");
toggle_autoindent_msg = _("Auto indent");
toggle_suspend_msg = _("Suspend");
toggle_nohelp_msg = _("Help mode");
toggle_picomode_msg = _("Pico messages");
toggle_picomode_msg = _("Pico mode");
toggle_mouse_msg = _("Mouse support");
toggle_cuttoend_msg = _("Cut to end");
toggle_regexp_msg = _("Regular expressions");
#ifdef HAVE_REGEX_H
toggle_regexp_msg = _("Regular expressions");
#endif
toggle_wrap_msg = _("Auto wrap");
toggle_init_one(&toggles[0], TOGGLE_CONST_KEY, toggle_const_msg,
CONSTUPDATE);
toggle_init_one(&toggles[1], TOGGLE_AUTOINDENT_KEY, toggle_autoindent_msg,
AUTOINDENT);
toggle_init_one(&toggles[2], TOGGLE_SUSPEND_KEY, toggle_suspend_msg,
SUSPEND);
toggle_init_one(&toggles[3], TOGGLE_NOHELP_KEY, toggle_nohelp_msg,
NO_HELP);
toggle_init_one(&toggles[4], TOGGLE_PICOMODE_KEY, toggle_picomode_msg,
PICO_MSGS);
toggle_init_one(&toggles[5], TOGGLE_WRAP_KEY, toggle_wrap_msg,
NO_WRAP);
toggle_init_one(&toggles[6], TOGGLE_MOUSE_KEY, toggle_mouse_msg,
USE_MOUSE);
toggle_init_one(&toggles[7], TOGGLE_CUTTOEND_KEY, toggle_cuttoend_msg,
CUT_TO_END);
toggle_init_one(&toggles[8], TOGGLE_REGEXP_KEY, toggle_regexp_msg,
USE_REGEXP);
toggle_init_one(&toggles[0], TOGGLE_CONST_KEY, toggle_const_msg,
CONSTUPDATE);
toggle_init_one(&toggles[1], TOGGLE_AUTOINDENT_KEY,
toggle_autoindent_msg, AUTOINDENT);
toggle_init_one(&toggles[2], TOGGLE_SUSPEND_KEY, toggle_suspend_msg,
SUSPEND);
toggle_init_one(&toggles[3], TOGGLE_NOHELP_KEY, toggle_nohelp_msg,
NO_HELP);
toggle_init_one(&toggles[4], TOGGLE_PICOMODE_KEY, toggle_picomode_msg,
PICO_MODE);
toggle_init_one(&toggles[5], TOGGLE_WRAP_KEY, toggle_wrap_msg,
NO_WRAP);
toggle_init_one(&toggles[6], TOGGLE_MOUSE_KEY, toggle_mouse_msg,
USE_MOUSE);
toggle_init_one(&toggles[7], TOGGLE_CUTTOEND_KEY, toggle_cuttoend_msg,
CUT_TO_END);
#ifdef HAVE_REGEX_H
toggle_init_one(&toggles[8], TOGGLE_REGEXP_KEY, toggle_regexp_msg,
USE_REGEXP);
#endif
#endif
}
void shortcut_init(void)
void shortcut_init(int unjustify)
{
char *nano_help_msg = "", *nano_writeout_msg = "", *nano_exit_msg = "",
*nano_goto_msg = "", *nano_justify_msg = "", *nano_replace_msg =
@@ -160,14 +177,17 @@ void shortcut_init(void)
"", *nano_mark_msg = "", *nano_delete_msg =
"", *nano_backspace_msg = "", *nano_tab_msg =
"", *nano_enter_msg = "", *nano_case_msg =
"", *nano_cancel_msg = "";
"", *nano_cancel_msg = "", *nano_unjustify_msg = "";
#ifndef NANO_SMALL
char *nano_tofiles_msg = "";
nano_help_msg = _("Invoke the help menu");
nano_writeout_msg = _("Write the current file to disk");
nano_exit_msg = _("Exit from nano");
nano_goto_msg = _("Goto a specific line number");
nano_justify_msg = _("Justify the current paragraph");
nano_unjustify_msg = _("Unjustify after a justify");
nano_replace_msg = _("Replace text within the editor");
nano_insert_msg = _("Insert another file into the current one");
nano_whereis_msg = _("Search for text within the editor");
@@ -194,41 +214,39 @@ void shortcut_init(void)
nano_enter_msg = _("Insert a carriage return at the cursor position");
nano_case_msg =
_("Make the current search or replace case (in)sensitive");
nano_tofiles_msg = _("Go to file browser");
nano_cancel_msg = _("Cancel the current function");
#endif
if (ISSET(PICO_MSGS))
sc_init_one(&main_list[0], NANO_HELP_KEY, _("Get Help"),
nano_help_msg, 0, 0, 0, VIEW, do_help);
else
sc_init_one(&main_list[0], NANO_WRITEOUT_KEY, _("WriteOut"),
nano_writeout_msg,
0, NANO_WRITEOUT_FKEY, 0, NOVIEW, do_writeout_void);
nano_help_msg, 0, NANO_HELP_FKEY, 0, VIEW, do_help);
sc_init_one(&main_list[1], NANO_EXIT_KEY, _("Exit"),
nano_exit_msg, 0, NANO_EXIT_FKEY, 0, VIEW, do_exit);
if (ISSET(PICO_MSGS))
sc_init_one(&main_list[2], NANO_WRITEOUT_KEY, _("WriteOut"),
sc_init_one(&main_list[2], NANO_WRITEOUT_KEY, _("WriteOut"),
nano_writeout_msg,
0, NANO_WRITEOUT_FKEY, 0, NOVIEW, do_writeout_void);
else
sc_init_one(&main_list[2], NANO_GOTO_KEY, _("Goto Line"),
nano_goto_msg,
NANO_ALT_G, NANO_GOTO_FKEY, 0, VIEW, do_gotoline_void);
if (ISSET(PICO_MSGS))
if (ISSET(PICO_MODE))
sc_init_one(&main_list[3], NANO_JUSTIFY_KEY, _("Justify"),
nano_justify_msg, 0, 0, 0, NOVIEW, do_justify);
nano_justify_msg, 0, NANO_JUSTIFY_FKEY, 0,
NOVIEW, do_justify);
else
sc_init_one(&main_list[3], NANO_REPLACE_KEY, _("Replace"),
nano_replace_msg,
NANO_ALT_R, NANO_REPLACE_FKEY, 0, NOVIEW, do_replace);
sc_init_one(&main_list[4], NANO_INSERTFILE_KEY, _("Read File"),
sc_init_one(&main_list[3], NANO_INSERTFILE_KEY, _("Read File"),
nano_insert_msg,
0, NANO_INSERTFILE_FKEY, 0, NOVIEW, do_insertfile);
if (ISSET(PICO_MODE))
sc_init_one(&main_list[4], NANO_INSERTFILE_KEY, _("Read File"),
nano_insert_msg,
0, NANO_INSERTFILE_FKEY, 0, NOVIEW, do_insertfile);
else
sc_init_one(&main_list[4], NANO_REPLACE_KEY, _("Replace"),
nano_replace_msg,
NANO_ALT_R, NANO_REPLACE_FKEY, 0, NOVIEW, do_replace);
sc_init_one(&main_list[5], NANO_WHEREIS_KEY, _("Where Is"),
nano_whereis_msg,
0, NANO_WHEREIS_FKEY, 0, VIEW, do_search);
@@ -244,7 +262,11 @@ void shortcut_init(void)
sc_init_one(&main_list[8], NANO_CUT_KEY, _("Cut Text"),
nano_cut_msg, 0, NANO_CUT_FKEY, 0, NOVIEW, do_cut_text);
sc_init_one(&main_list[9], NANO_UNCUT_KEY, _("UnCut Txt"),
if (unjustify)
sc_init_one(&main_list[9], NANO_UNJUSTIFY_KEY, _("UnJustify"),
nano_unjustify_msg, 0, 0, 0, NOVIEW, do_uncut_text);
else
sc_init_one(&main_list[9], NANO_UNCUT_KEY, _("UnCut Txt"),
nano_uncut_msg,
0, NANO_UNCUT_FKEY, 0, NOVIEW, do_uncut_text);
@@ -291,25 +313,23 @@ void shortcut_init(void)
sc_init_one(&main_list[22], NANO_TAB_KEY, _("Tab"),
nano_tab_msg, 0, 0, 0, NOVIEW, do_tab);
if (ISSET(PICO_MSGS))
if (ISSET(PICO_MODE))
sc_init_one(&main_list[23], NANO_REPLACE_KEY, _("Replace"),
nano_replace_msg,
NANO_ALT_R, NANO_REPLACE_FKEY, 0, NOVIEW, do_replace);
else
sc_init_one(&main_list[23], NANO_JUSTIFY_KEY, _("Justify"),
nano_justify_msg, 0, 0, 0, NOVIEW, do_justify);
nano_justify_msg, 0, NANO_JUSTIFY_FKEY, 0,
NOVIEW, do_justify);
sc_init_one(&main_list[24], NANO_ENTER_KEY, _("Enter"),
nano_enter_msg,
0, KEY_ENTER, NANO_CONTROL_M, NOVIEW, do_enter_void);
if (ISSET(PICO_MSGS))
sc_init_one(&main_list[25], NANO_GOTO_KEY, _("Goto Line"),
sc_init_one(&main_list[25], NANO_GOTO_KEY, _("Goto Line"),
nano_goto_msg,
NANO_ALT_G, NANO_GOTO_FKEY, 0, VIEW, do_gotoline_void);
else
sc_init_one(&main_list[25], NANO_HELP_KEY, _("Get Help"),
nano_help_msg, 0, 0, 0, VIEW, do_help);
sc_init_one(&whereis_list[0], NANO_FIRSTLINE_KEY, _("First Line"),
@@ -325,8 +345,9 @@ void shortcut_init(void)
sc_init_one(&whereis_list[3], NANO_OTHERSEARCH_KEY, _("Replace"),
nano_replace_msg, 0, 0, 0, VIEW, do_replace);
sc_init_one(&whereis_list[4], NANO_FROMSEARCHTOGOTO_KEY, _("Goto Line"),
nano_goto_msg, 0, 0, 0, VIEW, do_gotoline_void);
sc_init_one(&whereis_list[4], NANO_FROMSEARCHTOGOTO_KEY,
_("Goto Line"), nano_goto_msg, 0, 0, 0, VIEW,
do_gotoline_void);
sc_init_one(&whereis_list[5], NANO_CANCEL_KEY, _("Cancel"),
nano_cancel_msg, 0, 0, 0, VIEW, 0);
@@ -344,13 +365,25 @@ void shortcut_init(void)
sc_init_one(&replace_list[3], NANO_OTHERSEARCH_KEY, _("No Replace"),
nano_whereis_msg, 0, 0, 0, VIEW, do_search);
sc_init_one(&replace_list[4], NANO_FROMSEARCHTOGOTO_KEY, _("Goto Line"),
nano_goto_msg, 0, 0, 0, VIEW, do_gotoline_void);
sc_init_one(&replace_list[4], NANO_FROMSEARCHTOGOTO_KEY,
_("Goto Line"), nano_goto_msg, 0, 0, 0, VIEW,
do_gotoline_void);
sc_init_one(&replace_list[5], NANO_CANCEL_KEY, _("Cancel"),
nano_cancel_msg, 0, 0, 0, VIEW, 0);
sc_init_one(&replace_list_2[0], NANO_FIRSTLINE_KEY, _("First Line"),
nano_firstline_msg, 0, 0, 0, VIEW, do_first_line);
sc_init_one(&replace_list_2[1], NANO_LASTLINE_KEY, _("Last Line"),
nano_lastline_msg, 0, 0, 0, VIEW, do_last_line);
sc_init_one(&replace_list_2[2], NANO_CANCEL_KEY, _("Cancel"),
nano_cancel_msg, 0, 0, 0, VIEW, 0);
sc_init_one(&goto_list[0], NANO_FIRSTLINE_KEY, _("First Line"),
nano_firstline_msg, 0, 0, 0, VIEW, &do_first_line);
@@ -373,18 +406,31 @@ void shortcut_init(void)
nano_exit_msg, 0, NANO_EXIT_FKEY, 0, VIEW, do_exit);
sc_init_one(&writefile_list[0], NANO_CANCEL_KEY, _("Cancel"),
#ifndef DISABLE_BROWSER
sc_init_one(&writefile_list[0], NANO_TOFILES_KEY, _("To Files"),
nano_tofiles_msg, 0, 0, 0, NOVIEW, 0);
#endif
sc_init_one(&writefile_list[WRITEFILE_LIST_LEN - 1], NANO_CANCEL_KEY, _("Cancel"),
nano_cancel_msg, 0, 0, 0, VIEW, 0);
sc_init_one(&writefile_list[0], NANO_CANCEL_KEY, _("Cancel"),
sc_init_one(&spell_list[0], NANO_CANCEL_KEY, _("Cancel"),
nano_cancel_msg, 0, 0, 0, VIEW, 0);
sc_init_one(&spell_list[0], NANO_HELP_KEY, _("Get Help"),
nano_help_msg, 0, 0, 0, VIEW, do_help);
#ifndef DISABLE_BROWSER
sc_init_one(&browser_list[0], NANO_PREVPAGE_KEY, _("Prev Page"),
nano_prevpage_msg,
0, NANO_PREVPAGE_FKEY, KEY_PPAGE, VIEW, 0);
sc_init_one(&browser_list[1], NANO_NEXTPAGE_KEY, _("Next Page"),
nano_nextpage_msg,
0, NANO_NEXTPAGE_FKEY, KEY_NPAGE, VIEW, 0);
sc_init_one(&browser_list[2], NANO_EXIT_KEY, _("Exit"),
nano_exit_msg, 0, NANO_EXIT_FKEY, 0, VIEW, 0);
#endif
sc_init_one(&spell_list[1], NANO_CANCEL_KEY, _("Cancel"),
nano_cancel_msg, 0, 0, 0, VIEW, 0);
toggle_init();
}

3
intl/.cvsignore Normal file
View File

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

11
move.c
View File

@@ -55,9 +55,14 @@ int page_down(void)
if (current == filebot)
return 0;
if (editbot != filebot || edittop == fileage) {
/* AHEM, if we only have a screen or less of text, DONT do an
edit_update, just move the cursor to editbot! */
if (edittop == fileage && editbot == filebot) {
current = editbot;
reset_cursor();
} else if (editbot != filebot || edittop == fileage) {
current_y = 0;
current = editbot;
current = editbot;
if (current->prev != NULL)
current = current->prev;
@@ -168,8 +173,6 @@ int do_up(void)
{
wrap_reset();
if (current->prev != NULL) {
update_line(current, 0);
if (placewewant > 0)
current_x = actual_x(current->prev, placewewant);

60
nano.1
View File

@@ -1,20 +1,16 @@
.\" Hey, EMACS: -*- nroff -*-
.\" Hey, EMACS: -*- nroff -*-
.\" nano.1 is copyright 1999-2000 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.
.\"
.\" 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 "July 28, 2000"
.TH NANO 1 "December 2, 2000"
.\" 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
@@ -29,14 +25,12 @@ command.
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
.\" \fI<whatever>\fP escape sequences to invode 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)
@@ -70,7 +64,9 @@ a new file, do not follow it. Good for editing files in /tmp perhaps?
Enable mouse support (if available for your system).
.TP
.B \-p (\-\-pico)
Display the same shortcut lists as Pico does.
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 \-s (\-\-speller)
Enable alternative spell checker command.
@@ -90,18 +86,32 @@ Disable help screen at bottom of editor.
.B \-z (\-\-suspend)
Enable suspend ability.
.TP
.B \-b, \-e, \-f
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 recieves 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 finename. Nano will \fBnot\fP write this file if a previous one
exists in the current directory.
.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
.br
.B nano-devel@lists.sourceforge.net.
To subscribe, email to nano-devel-request@lists.sourceforge.net 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 for details).
This manual page was originally written by Jordi Mallach
<jordi@sindominio.net>, for the Debian GNU/Linux 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: July 28, 2000<BR><A HREF="#index">Index</A>
Section: User Commands (1)<BR>Updated: December 2, 2000<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,15 +33,13 @@ 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>
@@ -98,7 +86,9 @@ Enable mouse support (if available for your system).
<DT><B>-p (--pico)</B>
<DD>
Display the same shortcut lists as Pico does.
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>-s (--speller)</B>
<DD>
@@ -123,32 +113,52 @@ Disable help screen at bottom of editor.
<DD>
Enable suspend ability.
<DT><B>-b, -e, -f</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 recieves 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 finename. Nano will <B>not</B> write this file if a previous one
exists in the current directory.
<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
<BR>
<B><A HREF="mailto:nano-devel@lists.sourceforge.net">nano-devel@lists.sourceforge.net</A>.</B>
To subscribe, email to <A HREF="mailto:nano-devel-request@lists.sourceforge.net">nano-devel-request@lists.sourceforge.net</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 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/Linux system (but may be
used by others).
<P>
<HR>
@@ -158,14 +168,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: 17:29:02 GMT, July 28, 2000
Time: 02:16:52 GMT, December 18, 2000
</BODY>
</HTML>

1136
nano.c

File diff suppressed because it is too large Load Diff

33
nano.h
View File

@@ -61,7 +61,7 @@
# endif
#endif
#define VERMSG "nano " VERSION
#define VERMSG "GNU nano " VERSION
/* Structure types */
typedef struct filestruct {
@@ -98,7 +98,7 @@ typedef struct toggle {
#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)
@@ -212,6 +212,7 @@ know what you're doing */
#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
@@ -225,6 +226,7 @@ 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 TOGGLE_CONST_KEY NANO_ALT_C
#define TOGGLE_AUTOINDENT_KEY NANO_ALT_I
@@ -240,15 +242,22 @@ know what you're doing */
#define MAIN_VISIBLE 12
#define WHEREIS_LIST_LEN 6
#define REPLACE_LIST_LEN 6
#define REPLACE_LIST_2_LEN 3
#define GOTO_LIST_LEN 3
#define WRITEFILE_LIST_LEN 1
#define HELP_LIST_LEN 3
#define SPELL_LIST_LEN 3
#define SPELL_LIST_LEN 1
#ifndef SMALL_NANO
#ifndef DISABLE_BROWSER
#define WRITEFILE_LIST_LEN 2
#define BROWSER_LIST_LEN 3
#else
#define WRITEFILE_LIST_LEN 1
#endif
#ifdef HAVE_REGEX_H
#define TOGGLE_LEN 9
#else
#define TOGGLE_LEN 6
#define TOGGLE_LEN 8
#endif
#define VIEW 1
@@ -257,4 +266,14 @@ know what you're doing */
#define TOP 2
#define CENTER 1
#define BOTTOM 0
#endif
/* 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
#endif /* ifndef NANO_H */

396
nano.info Normal file
View File

@@ -0,0 +1,396 @@
This is nano.info, produced by makeinfo version 4.0 from nano.texi.

File: nano.info, Node: Top, Next: Introduction, Prev: (dir), Up: (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::

File: nano.info, Node: Introduction, Next: Editor Basics, Prev: Top, Up: Top
Introduction
************
GNU `nano' is a small and friendly text editor. Besides basic text
editing, `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::

File: nano.info, Node: Overview, Next: Command Line Options, Prev: Introduction, Up: Introduction
Overview
========
`nano' [GNU long option] [option] +LINE [ FILE ... ]
The original goal for `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
`nano' by typing Meta-P. *Note Pico Compatibility::, for more info.
Email bug reports to <nano@nano-editor.org>.

File: nano.info, Node: Command Line Options, Prev: Overview, Up: Introduction
Command Line Options
====================
`nano' takes the following options from the command line:
`-T [num, --tabsize=[num]'
Set the displayed tab length to [num] columns.
`-R, --regexp'
Turns on regular expression search and search/replace.
`-V, --version'
Print the version number and copyright and quit.
`-c, --const'
Constantly display the cursor posititon and line number on the
statusbar.
`-h, --help'
Print the usage and exit.
`-i, --autoindent'
Automatically indent new lines to the same number of spaces and
tabs as the previous line.
`-k, --cut'
Makes ^K cut from the current cursor position to the end of the
current line.
`-l, --nofollow'
When writing files, if the given file is a symbolic link it is
removed and a new file is created.
`-m, --mouse'
Enables the use of the mouse to select text (currently only useful
for running under the X window system).
`-p, --pico'
Emulate Pico as closely as possible, sacrificing consistency for
correct emulation. *Note Pico Compatibility::, for more info.
`-r [#cols], --fill=[#cols].'
Wrap lines at column #cols. By default this is the width of the
screen, less eight.
`-s [prog], --speller=[prog]'
Invoke [prog] as the spell checker. By default, `nano' uses its
own interactive spell checker that requires the `spell' program be
installed on your system.
`-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 `nano'
as the composer of a mailer program.
`-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 accesing the help system, Expert Mode is temporarily
disabled to display the help system navigation keys.
`-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.
`-w, --nowrap'
Do not wrap long lines at any length. This option overrides any
value for -r.
`-z, --suspend'
Enable suspend ability of `nano' using the system's suspend
keystroke (usually ^Z).
`+LINE'
Start at line number LINE instead of the default of line 1.

File: nano.info, Node: Editor Basics, Next: Online Help, Prev: Introduction, Up: Top
Editor Basics
*************
* Menu:
* Entering Text::
* Special Functions::
* The Titlebar::
* The Statusbar::
* Shortcut Lists::

File: nano.info, Node: Entering Text, Next: Special Functions, Prev: Editor Basics, Up: Editor Basics
Entering Text
=============
All key sequences in `nano' are entered using the keyboard. `nano'
is a "modeless" editor, all keys with the exception of Control and Meta
key sequences will enter text into the file being edited.

File: nano.info, Node: Special Functions, Next: The Titlebar, Prev: Entering Text, Up: Editor Basics
Special Functions
=================
Special functions use the Control key (displayed in the help and
shotcut lists as ^) or the Meta key (displayed as M).
* Control key sequences are entered by holding down the Control key
and pressing the desired letter.
* 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.

File: nano.info, Node: The Titlebar, Next: The Statusbar, Prev: Special Functions, Up: Editor Basics
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 `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 ws 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.
*Note The File Browser::.

File: nano.info, Node: The Statusbar, Next: Shortcut Lists, Prev: The Titlebar, Up: Editor Basics
The Statusbar
=============
The statusbar is located three lines from the bottom of the screen
(or the bottom line in Expert Mode. *Note 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 (serch strings, file names, etc) will be input on the
statusbar.

File: nano.info, Node: Shortcut Lists, Prev: The Statusbar, Up: Editor Basics
Shortcut Lists
==============
The Shorcut 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. *Note Pico Compatibility::, for
more info.

File: nano.info, Node: Online Help, Next: Feature Toggles, Prev: Editor Basics, Up: Top
Online Help
***********
The online help system in `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.

File: nano.info, Node: Feature Toggles, Next: The File Browser, Prev: Online Help, Up: Top
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. *Note Special Functions::, for more info. The
following toggles are available:
`Constant Update Toggle (Meta-C)'
toggles the -c (-const) command line flag.
`Regular Expressions Toggle (Meta-E)'
toggles the -R (-regexp) command line flag.
`AutoIndent Toggle (Meta-I)'
toggles the -i (-autoindent) command line flag.
`Cut To End Toggle (Meta-K)'
toggles the -k (-cut) command line flag.
`Cut To End Toggle (Meta-M)'
toggles the -m (-mouse) command line flag.
`Pico Mode Toggle (Meta-P)'
toggles the -p (-pico) command line flag. *Note Pico
Compatibility::, for more info.
`AutoWrap Toggle (Meta-W)'
toggles the -w (-nowrap) command line flag.
`Expert/Nohelp Toggle (Meta-X)'
toggles the -x (-nohelp) command line flag.
`Suspend Toggle (Meta-Z)'
toggles the -i (-autoindent) command line flag.

File: nano.info, Node: The File Browser, Next: Pico Compatibility, Prev: Feature Toggles, Up: Top
The File Browser
****************
When reading or writilg 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 contects of the directory.
If the object is a file, this filename and path are copied to the
statusbar and the file browser is exited.

File: nano.info, Node: Pico Compatibility, Next: Building and Configure Options, Prev: The File Browser, Up: Top
Pico Compatibility
******************
Nano does not completely emulate Pico by default. The following
differences apply to the default mode and Pico Compatibility mode:
`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
`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.
`Interactive Replace and Spell Checker'
It is worth noting that the `nano' replace function is interactive,
i.e. it does not stop after one search string is found and
automatically replace it. The `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.

File: nano.info, Node: Building and Configure Options, Prev: Pico Compatibility, Up: Top
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:
`--disable-tabcomp'
Disable the tab completion code when reading or writing files.
`--disable-justify'
Disable the justify (^J)/unjustify (^U) functions in the editor.
`--disable-speller'
Disables spell checker abillity.
`--disable-help'
Disables the help function (^G). Disabling this option maks the
binary much smaller, but makes it difficult for new users to learn
more than very basic things about using the editor.
`--disable-browser'
Disables the mini file browser (^O) when reading or writing files.
`--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 depends on the it to work properly.
It also disables the function toggles and mouse support.

Tag Table:
Node: Top69
Node: Introduction377
Node: Overview803
Node: Command Line Options1383
Ref: Expert Mode3106
Node: Editor Basics3948
Node: Entering Text4173
Node: Special Functions4513
Node: The Titlebar5367
Node: The Statusbar6064
Node: Shortcut Lists6644
Node: Online Help7036
Node: Feature Toggles7412
Node: The File Browser8558
Node: Pico Compatibility9267
Node: Building and Configure Options11309

End Tag Table

408
nano.texi Normal file
View File

@@ -0,0 +1,408 @@
\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 0.9.99pre3
@set UPDATED 12 Feb 2001
@c tex
@c \overfullrule=0pt
@c end tex
@titlepage
@title GNU @code{nano}
@subtitle a small and friendly text editor.
@subtitle version 0.9.99pre3
@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 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 -T [num, --tabsize=[num]
Set the displayed tab length to [num] columns.
@item -R, --regexp
Turns on regular expression search and search/replace.
@item -V, --version
Print the version number and copyright and quit.
@item -c, --const
Constantly display the cursor posititon 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 -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.
@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 accesing 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 +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
shotcut 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 ws 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 (serch strings, file names, etc) will be input on the
statusbar.
@node Shortcut Lists, , The Statusbar, Editor Basics
@section Shortcut Lists
The Shorcut 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 Constant Update Toggle (Meta-C)
toggles the -c (--const) command line flag.
@item Regular Expressions Toggle (Meta-E)
toggles the -R (--regexp) 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 Cut To End Toggle (Meta-M)
toggles the -m (--mouse) command line flag.
@item Pico Mode Toggle (Meta-P)
toggles the -p (--pico) command line flag.
@xref{Pico Compatibility}, for more info.
@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 -i (--autoindent) command line flag.
@end table
@node The File Browser, Pico Compatibility, Feature Toggles, Top
@chapter The File Browser
When reading or writilg 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 contects 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 abillity.
@item --disable-help
Disables the help function (^G). Disabling this option maks 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 depends on the it to work properly.
It also disables the function toggles and mouse support.
@end table
@contents
@bye

7
po/.cvsignore Normal file
View File

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

1029
po/ca.po Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,229 +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},
{"Constant cursor position", 22},
{"Auto indent", 23},
{"Suspend", 24},
{"Help mode", 25},
{"Pico messages", 26},
{"Mouse support", 27},
{"Cut to end", 28},
{"Regular expressions", 29},
{"Auto wrap", 30},
{"Invoke the help menu", 31},
{"Write the current file to disk", 32},
{"Exit from nano", 33},
{"Goto a specific line number", 34},
{"Justify the current paragraph", 35},
{"Replace text within the editor", 36},
{"Insert another file into the current one", 37},
{"Search for text within the editor", 38},
{"Move to the previous screen", 39},
{"Move to the next screen", 40},
{"Cut the current line and store it in the cutbuffer", 41},
{"Uncut from the cutbuffer into the current line", 42},
{"Show the posititon of the cursor", 43},
{"Invoke the spell checker (if available)", 44},
{"Move up one line", 45},
{"Move down one line", 46},
{"Move forward one character", 47},
{"Move back one character", 48},
{"Move to the beginning of the current line", 49},
{"Move to the end of the current line", 50},
{"Go to the first line of the file", 51},
{"Go to the last line of the file", 52},
{"Refresh (redraw) the current screen", 53},
{"Mark text at the current cursor location", 54},
{"Delete the character under the cursor", 55},
{"Delete the character to the left of the cursor", 56},
{"Insert a tab character", 57},
{"Insert a carriage return at the cursor position", 58},
{"Make the current search or replace case (in)sensitive", 59},
{"Cancel the current function", 60},
{"Get Help", 61},
{"WriteOut", 62},
{"Exit", 63},
{"Goto Line", 64},
{"Justify", 65},
{"Replace", 66},
{"Read File", 67},
{"Where Is", 68},
{"Prev Page", 69},
{"Next Page", 70},
{"Cut Text", 71},
{"UnCut Txt", 72},
{"Cur Pos", 73},
{"To Spell", 74},
{"Up", 75},
{"Down", 76},
{"Forward", 77},
{"Back", 78},
{"Home", 79},
{"End", 80},
{"Refresh", 81},
{"Mark Text", 82},
{"Delete", 83},
{"Backspace", 84},
{"Tab", 85},
{"Enter", 86},
{"First Line", 87},
{"Last Line", 88},
{"Case Sens", 89},
{"Cancel", 90},
{"No Replace", 91},
{"\
\n\
Buffer written to 'nano.save'\n", 92},
{"Key illegal in VIEW mode", 93},
{"\
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 and are entered with the Control (Ctrl) key. \
Escape-key sequences are notated with the Meta (M) symbol and can be entered \
using either the Esc, Alt or Meta key depending on your keyboard setup. The \
following keystrokes are available in the main editor window. Optional keys \
are shown in parentheses:\n\
\n", 94},
{"free_node(): free'd a node, YAY!\n", 95},
{"free_node(): free'd last node.\n", 96},
{"\
Usage: nano [GNU long option] [option] +LINE <file>\n\
\n", 97},
{"Option\t\tLong option\t\tMeaning\n", 98},
{" -T \t\t--tabsize=[num]\t\tSet width of a tab to num\n", 99},
{" -R\t\t--regexp\t\tUse regular expressions for search\n", 100},
{" -V \t\t--version\t\tPrint version information and exit\n", 101},
{" -c \t\t--const\t\t\tConstantly show cursor position\n", 102},
{" -h \t\t--help\t\t\tShow this message\n", 103},
{" -k \t\t--cut\t\t\tLet ^K cut from cursor to end of line\n", 104},
{" -i \t\t--autoindent\t\tAutomatically indent new lines\n", 105},
{" -l \t\t--nofollow\t\tDon't follow symbolic links, overwrite.\n", 106},
{" -m \t\t--mouse\t\t\tEnable mouse\n", 107},
{"\
-r [#cols] \t--fill=[#cols]\t\tSet fill cols to (wrap lines at) #cols\n", 108},
{" -p\t \t--pico\t\t\tMake bottom 2 lines more Pico-like\n", 109},
{" -s [prog] \t--speller=[prog]\tEnable alternate speller\n", 110},
{" -t \t\t--tempfile\t\tAuto save on exit, don't prompt\n", 111},
{" -v \t\t--view\t\t\tView (read only) mode\n", 112},
{" -w \t\t--nowrap\t\tDon't wrap long lines\n", 113},
{" -x \t\t--nohelp\t\tDon't show help window\n", 114},
{" -z \t\t--suspend\t\tEnable suspend\n", 115},
{" +LINE\t\t\t\t\tStart at line number LINE\n", 116},
{"\
Usage: nano [option] +LINE <file>\n\
\n", 117},
{"Option\t\tMeaning\n", 118},
{" -T [num]\tSet width of a tab to num\n", 119},
{" -R\t\tUse regular expressions for search\n", 120},
{" -V \t\tPrint version information and exit\n", 121},
{" -c \t\tConstantly show cursor position\n", 122},
{" -h \t\tShow this message\n", 123},
{" -k \t\tLet ^K cut from cursor to end of line\n", 124},
{" -i \t\tAutomatically indent new lines\n", 125},
{" -l \t\tDon't follow symbolic links, overwrite.\n", 126},
{" -m \t\tEnable mouse\n", 127},
{" -r [#cols] \tSet fill cols to (wrap lines at) #cols\n", 128},
{" -s [prog] \tEnable alternate speller\n", 129},
{" -p \t\tMake bottom 2 lines more Pico-like\n", 130},
{" -t \t\tAuto save on exit, don't prompt\n", 131},
{" -v \t\tView (read only) mode\n", 132},
{" -w \t\tDon't wrap long lines\n", 133},
{" -x \t\tDon't show help window\n", 134},
{" -z \t\tEnable suspend\n", 135},
{" +LINE\t\tStart at line number LINE\n", 136},
{" nano version %s by Chris Allegretta (compiled %s, %s)\n", 137},
{" Email: nano@asty.org\tWeb: http://www.asty.org/nano\n", 138},
{"Mark Set", 139},
{"Mark UNset", 140},
{"check_wrap called with inptr->data=\"%s\"\n", 141},
{"current->data now = \"%s\"\n", 142},
{"After, data = \"%s\"\n", 143},
{"Error deleting tempfile, ack!", 144},
{"Could not create a temporary filename: %s", 145},
{"Could not invoke spell program \"%s\"", 146},
{"Could not invoke \"ispell\"", 147},
{"Finished checking spelling", 148},
{"Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? ", 149},
{"Cannot resize top win", 150},
{"Cannot move top win", 151},
{"Cannot resize edit win", 152},
{"Cannot move edit win", 153},
{"Cannot resize bottom win", 154},
{"Cannot move bottom win", 155},
{"Main: set up windows\n", 156},
{"Main: bottom win\n", 157},
{"Main: open file\n", 158},
{"I got Alt-[-%c! (%d)\n", 159},
{"I got Alt-%c! (%d)\n", 160},
{"Case Sensitive Regexp Search%s%s", 161},
{"Regexp Search%s%s", 162},
{"Case Sensitive Search%s%s", 163},
{"Search%s%s", 164},
{" (to replace)", 165},
{"Search Cancelled", 166},
{"Search Wrapped", 167},
{"Replaced %d occurences", 168},
{"Replaced 1 occurence", 169},
{"Replace Cancelled", 170},
{"Replace with [%s]", 171},
{"Replace with", 172},
{"Replace this instance?", 173},
{"Enter line number", 174},
{"Aborted", 175},
{"Come on, be reasonable", 176},
{"Only %d lines available, skipping to last line", 177},
{"actual_x_from_start for xplus=%d returned %d\n", 178},
{"input '%c' (%d)\n", 179},
{"New Buffer", 180},
{" File: ...", 181},
{"Modified", 182},
{"Moved to (%d, %d) in edit buffer\n", 183},
{"current->data = \"%s\"\n", 184},
{"I got \"%s\"\n", 185},
{"Yes", 186},
{"All", 187},
{"No", 188},
{"do_cursorpos: linepct = %f, bytepct = %f\n", 189},
{"line %d of %d (%.0f%%), character %d of %d (%.0f%%)", 190},
{"Dumping file buffer to stderr...\n", 191},
{"Dumping cutbuffer to stderr...\n", 192},
{"Dumping a buffer to stderr...\n", 193},
};
int _msg_tbl_length = 193;

BIN
po/de.gmo

Binary file not shown.

774
po/de.po

File diff suppressed because it is too large Load Diff

BIN
po/es.gmo

Binary file not shown.

717
po/es.po

File diff suppressed because it is too large Load Diff

BIN
po/fi.gmo

Binary file not shown.

761
po/fi.po

File diff suppressed because it is too large Load Diff

BIN
po/fr.gmo

Binary file not shown.

661
po/fr.po

File diff suppressed because it is too large Load Diff

1030
po/hu.po Normal file

File diff suppressed because it is too large Load Diff

BIN
po/id.gmo

Binary file not shown.

757
po/id.po

File diff suppressed because it is too large Load Diff

BIN
po/it.gmo

Binary file not shown.

658
po/it.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1 +0,0 @@
timestamp

59
proto.h
View File

@@ -22,20 +22,27 @@
/* Externs */
#include <sys/stat.h>
#ifdef HAVE_REGEX_H
#include <regex.h>
#endif
#include "nano.h"
extern int center_x, center_y, editwinrows;
extern int editwinrows;
extern int current_x, current_y, posible_max, totlines;
extern int placewewant;
extern int mark_beginx, samelinewrap;
extern int totsize, temp_opt;
extern int fill, flags,tabsize;
extern int search_last_line;
extern WINDOW *edit, *topwin, *bottomwin;
extern char filename[PATH_MAX];
extern char answer[132];
extern char *filename;
extern char *answer;
extern char *hblank, *help_text;
extern char *last_search;
extern char *last_replace;
extern struct stat fileinfo;
extern filestruct *current, *fileage, *edittop, *editbot, *filebot;
extern filestruct *cutbuffer, *mark_beginbuf;
@@ -43,10 +50,17 @@ extern shortcut *shortcut_list;
extern shortcut main_list[MAIN_LIST_LEN], whereis_list[WHEREIS_LIST_LEN];
extern shortcut replace_list[REPLACE_LIST_LEN], goto_list[GOTO_LIST_LEN];
extern shortcut writefile_list[WRITEFILE_LIST_LEN], help_list[HELP_LIST_LEN];
extern shortcut spell_list[SPELL_LIST_LEN];
extern shortcut spell_list[SPELL_LIST_LEN], replace_list_2[REPLACE_LIST_LEN];
#ifndef DISABLE_BROWSER
extern shortcut browser_list[BROWSER_LIST_LEN];
#endif
#ifdef HAVE_REGEX_H
extern int use_regexp, regexp_compiled;
extern regex_t search_regexp;
extern regmatch_t regmatches[10];
#endif
extern toggle toggles[TOGGLE_LEN];
/* Programs we want available */
@@ -60,23 +74,28 @@ int xplustabs(void);
int do_yesno(int all, int leavecursor, char *msg, ...);
int actual_x(filestruct * fileptr, int xplus);
int strlenpt(char *buf);
int statusq(shortcut s[], int slen, char *def, char *msg, ...);
int statusq(int allowtabs, shortcut s[], int slen, char *def, char *msg, ...);
int write_file(char *name, int tmpfile);
int do_cut_text(void);
int do_uncut_text(void);
int no_help(void);
int renumber_all(void);
int open_file(char *filename, int insert, int quiet);
int do_writeout(int exiting);
int do_writeout(char *path, int exiting);
int do_gotoline(long defline);
int do_replace_loop(char *prevanswer, filestruct *begin, int *beginx,
int wholewords, int *i);
/* Now in move.c */
int do_up(void);
int do_down(void);
int do_left(void);
int do_right(void);
int check_wildcard_match(const char *text, const char *pattern);
char *input_tab(char *buf, int place, int *lastWasTab, int *newplace);
char *real_dir_from_tilde(char *buf);
void shortcut_init(void);
void shortcut_init(int unjustify);
void lowercase(char *src);
void blank_bottombars(void);
void check_wrap(filestruct * inptr, char ch);
@@ -93,15 +112,18 @@ void check_statblank(void);
void update_line(filestruct * fileptr, int index);
void fix_editbot(void);
void statusbar(char *msg, ...);
void titlebar(void);
void blank_statusbar(void);
void titlebar(char *path);
void previous_line(void);
void center_cursor(void);
void bottombars(shortcut s[], int slen);
void blank_statusbar_refresh(void);
void *nmalloc (size_t howmuch);
void *mallocstrcpy(char *dest, char *src);
void wrap_reset(void);
void display_main_list(void);
void nano_small_msg(void);
void nano_disable_msg(void);
void do_early_abort(void);
void *nmalloc(size_t howmuch);
void *nrealloc(void *ptr, size_t howmuch);
@@ -111,6 +133,16 @@ void new_magicline(void);
void splice_node(filestruct *begin, filestruct *new, filestruct *end);
void null_at(char *data, int index);
void page_up_center(void);
void blank_edit(void);
void search_init_globals(void);
void replace_abort(void);
void add_to_cutbuffer(filestruct * inptr);
void do_replace_highlight(int highlight_flag, char *word);
void nano_disabled_msg(void);
void window_init(void);
#ifdef NANO_EXTRA
void do_credits(void);
#endif
int do_writeout_void(void), do_exit(void), do_gotoline_void(void);
int do_insertfile(void), do_search(void), page_up(void), page_down(void);
@@ -120,7 +152,18 @@ int do_home(void), do_end(void), total_refresh(void), do_mark(void);
int do_delete(void), do_backspace(void), do_tab(void), do_justify(void);
int do_first_line(void), do_last_line(void);
int do_replace(void), do_help(void), do_enter_void(void);
int keypad_on(WINDOW * win, int new);
#ifndef DISABLE_BROWSER
char *do_browser(char *path);
struct stat filestat(const char *path);
char *do_browse_from(char *inpath);
#endif
RETSIGTYPE main_loop (int junk);
filestruct *copy_node(filestruct * src);
filestruct *copy_filestruct(filestruct * src);
filestruct *make_new_node(filestruct * prevnode);
filestruct *findnextstr(int quiet, filestruct * begin,
int beginx, char *needle);

600
search.c
View File

@@ -23,6 +23,7 @@
#include <string.h>
#include <unistd.h>
#include <stdio.h>
#include <ctype.h>
#include "config.h"
#include "proto.h"
#include "nano.h"
@@ -34,12 +35,9 @@
#define _(string) (string)
#endif
static char last_search[132]; /* Last string we searched for */
static char last_replace[132]; /* Last replacement string */
/* Regular expression helper functions */
#ifdef _POSIX_VERSION
#ifdef HAVE_REGEX_H
void regexp_init(const char *regexp)
{
regcomp(&search_regexp, regexp, ISSET(CASE_SENSITIVE) ? 0 : REG_ICASE);
@@ -53,6 +51,18 @@ void regexp_cleanup()
}
#endif
void search_init_globals(void)
{
if (last_search == NULL) {
last_search = nmalloc(1);
last_search[0] = 0;
}
if (last_replace == NULL) {
last_replace = nmalloc(1);
last_replace[0] = 0;
}
}
/* Set up the system variables for a search or replace. Returns -1 on
abort, 0 on success, and 1 on rerun calling program
Return -2 to run opposite program (searchg -> replace, replace -> search)
@@ -61,54 +71,93 @@ void regexp_cleanup()
*/
int search_init(int replacing)
{
int i;
char buf[BUFSIZ];
int i = 0;
char *buf;
char *prompt, *reprompt = "";
if (last_search[0]) {
snprintf(buf, BUFSIZ, " [%s]", last_search);
} else {
buf[0] = '\0';
static char *backupstring = NULL;
search_init_globals();
buf = nmalloc(strlen(last_search) + 5);
buf[0] = 0;
/* Okay, fun time. backupstring is our holder for what is being
returned from the statusq call. Using answer for this would be tricky.
Here, if we're using PICO_MODE, we only want nano to put the
old string back up as editable if it's not the same as last_search.
Otherwise, if we don't already have a backupstring, set it to
last_search. */
if (ISSET(PICO_MODE)) {
if (backupstring == NULL || !strcmp(backupstring, last_search))
backupstring = mallocstrcpy(backupstring, "");
}
else if (backupstring == NULL)
backupstring = mallocstrcpy(backupstring, last_search);
/* If using Pico messages, we do things the old fashioned way... */
if (ISSET(PICO_MODE)) {
if (last_search[0]) {
/* We use COLS / 3 here because we need to see more on the line */
if (strlen(last_search) > COLS / 3) {
snprintf(buf, COLS / 3 + 3, " [%s", last_search);
sprintf(&buf[COLS / 3 + 2], "...]");
} else
sprintf(buf, " [%s]", last_search);
} else {
buf[0] = '\0';
}
}
else
strcpy(buf, "");
if (ISSET(USE_REGEXP) && ISSET(CASE_SENSITIVE))
prompt = _("Case Sensitive Regexp Search%s%s");
prompt = _("Case Sensitive Regexp Search%s%s");
else if (ISSET(USE_REGEXP))
prompt = _("Regexp Search%s%s");
else
if (ISSET(CASE_SENSITIVE))
prompt = _("Case Sensitive Search%s%s");
prompt = _("Regexp Search%s%s");
else if (ISSET(CASE_SENSITIVE))
prompt = _("Case Sensitive Search%s%s");
else
prompt = _("Search%s%s");
prompt = _("Search%s%s");
if (replacing)
reprompt = _(" (to replace)");
i = statusq(replacing ? replace_list : whereis_list,
replacing ? REPLACE_LIST_LEN : WHEREIS_LIST_LEN, "",
prompt, reprompt, buf);
/* This is now one simple call. It just does a lot */
i = statusq(0, replacing ? replace_list : whereis_list,
replacing ? REPLACE_LIST_LEN : WHEREIS_LIST_LEN, backupstring,
prompt, reprompt, buf);
/* Cancel any search, or just return with no previous search */
if ((i == -1) || (i < 0 && !last_search[0])) {
statusbar(_("Search Cancelled"));
reset_cursor();
free(backupstring);
backupstring = NULL;
return -1;
} else if (i == -2) { /* Same string */
strncpy(answer, last_search, 132);
#ifdef _POSIX_VERSION
if (ISSET(USE_REGEXP))
regexp_init(answer);
#ifdef HAVE_REGEX_H
if (ISSET(USE_REGEXP))
regexp_init(answer);
#else
;
#endif
} else if (i == 0) { /* They entered something new */
strncpy(last_search, answer, 132);
#ifdef _POSIX_VERSION
if (ISSET(USE_REGEXP))
regexp_init(answer);
#ifdef HAVE_REGEX_H
if (ISSET(USE_REGEXP))
regexp_init(answer);
#endif
/* Blow away last_replace because they entered a new search
string....uh, right? =) */
free(backupstring);
backupstring = NULL;
last_replace[0] = '\0';
} else if (i == NANO_CASE_KEY) { /* They want it case sensitive */
free(backupstring);
backupstring = NULL;
backupstring = mallocstrcpy(backupstring, answer);
if (ISSET(CASE_SENSITIVE))
UNSET(CASE_SENSITIVE);
else
@@ -116,82 +165,115 @@ int search_init(int replacing)
return 1;
} else if (i == NANO_OTHERSEARCH_KEY) {
backupstring = mallocstrcpy(backupstring, answer);
return -2; /* Call the opposite search function */
} else if (i == NANO_FROMSEARCHTOGOTO_KEY) {
free(backupstring);
backupstring = NULL;
do_gotoline_void();
return -3;
} else { /* First line key, etc. */
do_early_abort();
free(backupstring);
backupstring = NULL;
return -3;
}
return 0;
}
filestruct *findnextstr(int quiet, filestruct * begin, char *needle)
void not_found_msg(char *str)
{
if (strlen(str) <= COLS / 2)
statusbar(_("\"%s\" not found"), str);
else {
char *foo = NULL;
foo = mallocstrcpy(foo, str);
foo[COLS / 2] = 0;
statusbar(_("\"%s...\" not found"), foo);
free(foo);
}
}
filestruct *findnextstr(int quiet, filestruct * begin, int beginx,
char *needle)
{
filestruct *fileptr;
char *searchstr, *found = NULL, *tmp;
int past_editbot = 0;
int past_editbot = 0, current_x_find;
fileptr = begin;
fileptr = current;
searchstr = &current->data[current_x + 1];
/* Look for searchstr until EOF */
while (fileptr != NULL &&
(found = strstrwrapper(searchstr, needle)) == NULL) {
current_x_find = current_x + 1;
/* Are we searching the last line? (i.e. the line where search started) */
if ((fileptr == begin) && (current_x_find < beginx))
search_last_line = 1;
/* Make sure we haven't passed the end of the string */
if (strlen(fileptr->data) < current_x_find)
current_x_find--;
searchstr = &fileptr->data[current_x_find];
/* Look for needle in searchstr */
while ((found = strstrwrapper(searchstr, needle)) == NULL) {
/* finished processing file, get out */
if (search_last_line) {
if (!quiet)
not_found_msg(needle);
return NULL;
}
fileptr = fileptr->next;
if (!past_editbot && (fileptr == editbot))
past_editbot = 1;
if (fileptr == begin)
return NULL;
/* EOF reached, wrap around once */
if (fileptr == NULL) {
fileptr = fileage;
if (fileptr != NULL)
searchstr = fileptr->data;
}
/* If we're not at EOF, we found an instance */
if (fileptr != NULL) {
current = fileptr;
current_x = 0;
for (tmp = fileptr->data; tmp != found; tmp++)
current_x++;
if (past_editbot)
edit_update(current, CENTER);
placewewant = xplustabs();
reset_cursor();
} else { /* We're at EOF, go back to the top, once */
fileptr = fileage;
while (fileptr != begin->next &&
(found = strstrwrapper(fileptr->data, needle)) == NULL)
fileptr = fileptr->next;
if (fileptr == begin->next) {
if (!quiet)
statusbar(_("\"%s\" not found"), needle);
return NULL;
}
else { /* We found something */
current = fileptr;
current_x = 0;
for (tmp = fileptr->data; tmp != found; tmp++)
current_x++;
edit_update(current, CENTER);
reset_cursor();
past_editbot = 1;
if (!quiet)
statusbar(_("Search Wrapped"));
}
}
/* Original start line reached */
if (fileptr == begin)
search_last_line = 1;
searchstr = fileptr->data;
}
/* We found an instance */
current_x_find = 0;
for (tmp = fileptr->data; tmp != found; tmp++)
current_x_find++;
/* Ensure we haven't wrap around again! */
if ((search_last_line) && (current_x_find >= beginx)) {
if (!quiet)
not_found_msg(needle);
return NULL;
}
/* Set globals now that we are sure we found something */
current = fileptr;
current_x = current_x_find;
if (past_editbot)
edit_update(fileptr, CENTER);
else
update_line(current, current_x);
placewewant = xplustabs();
reset_cursor();
return fileptr;
}
@@ -200,12 +282,12 @@ void search_abort(void)
UNSET(KEEP_CUTBUFFER);
display_main_list();
wrefresh(bottomwin);
if (ISSET(MARK_ISSET))
if (ISSET(MARK_ISSET))
edit_refresh_clearok();
#ifdef _POSIX_VERSION
#ifdef HAVE_REGEX_H
if (ISSET(REGEXP_COMPILED))
regexp_cleanup();
regexp_cleanup();
#endif
}
@@ -216,22 +298,41 @@ int do_search(void)
filestruct *fileptr = current;
wrap_reset();
if ((i = search_init(0)) == -1) {
i = search_init(0);
switch (i) {
case -1:
current = fileptr;
search_abort();
return 0;
} else if (i == -3) {
case -3:
search_abort();
return 0;
} else if (i == -2) {
case -2:
do_replace();
return 0;
} else if (i == 1) {
case 1:
do_search();
search_abort();
return 1;
}
findnextstr(0, current, answer);
/* The sneaky user deleted the previous search string */
if (!ISSET(PICO_MODE) && !strcmp(answer, "")) {
statusbar(_("Search Cancelled"));
search_abort();
return 0;
}
/* If answer is now == "", then PICO_MODE is set. So, copy
last_search into answer... */
if (!strcmp(answer, ""))
answer = mallocstrcpy(answer, last_search);
else
last_search = mallocstrcpy(last_search, answer);
search_last_line = 0;
findnextstr(0, current, current_x, answer);
search_abort();
return 1;
}
@@ -250,9 +351,10 @@ void replace_abort(void)
does something different later, we can change it back. For now
it's just a waste to duplicat code */
search_abort();
placewewant = xplustabs();
}
#ifdef _POSIX_VERSION
#ifdef HAVE_REGEX_H
int replace_regexp(char *string, int create_flag)
{
/* split personality here - if create_flag is null, just calculate
@@ -261,8 +363,7 @@ int replace_regexp(char *string, int create_flag)
char *c;
int new_size = strlen(current->data) + 1;
int search_match_count = regmatches[0].rm_eo -
regmatches[0].rm_so;
int search_match_count = regmatches[0].rm_eo - regmatches[0].rm_so;
new_size -= search_match_count;
@@ -271,75 +372,74 @@ int replace_regexp(char *string, int create_flag)
c = last_replace;
while (*c) {
if (*c != '\\') {
if (create_flag)
*string++=*c;
c++;
new_size++;
} else {
int num = (int)*(c+1) - (int)'0';
if (num >= 1 && num <= 9) {
if (*c != '\\') {
if (create_flag)
*string++ = *c;
c++;
new_size++;
} else {
int num = (int) *(c + 1) - (int) '0';
if (num >= 1 && num <= 9) {
int i = regmatches[num].rm_so;
int i = regmatches[num].rm_so;
if (num > search_regexp.re_nsub) {
/* Ugh, they specified a subexpression that doesn't
exist. */
return -1;
}
if (num > search_regexp.re_nsub) {
/* Ugh, they specified a subexpression that doesn't
exist. */
return -1;
}
/* Skip over the replacement expression */
c+=2;
/* Skip over the replacement expression */
c += 2;
/* But add the length of the subexpression to new_size */
new_size += regmatches[num].rm_eo - regmatches[num].rm_so;
/* But add the length of the subexpression to new_size */
new_size += regmatches[num].rm_eo - regmatches[num].rm_so;
/* And if create_flag is set, append the result of the
* subexpression match to the new line */
while (create_flag && i < regmatches[num].rm_eo )
*string++=*(current->data + i++);
} else {
if (create_flag)
*string++=*c;
c++;
new_size++;
}
}
/* And if create_flag is set, append the result of the
* subexpression match to the new line */
while (create_flag && i < regmatches[num].rm_eo)
*string++ = *(current->data + i++);
} else {
if (create_flag)
*string++ = *c;
c++;
new_size++;
}
}
}
if (create_flag)
*string = 0;
*string = 0;
return new_size;
}
#endif
char *replace_line()
char *replace_line(void)
{
char *copy, *tmp;
int new_line_size;
int search_match_count;
/* Calculate size of new line */
#ifdef _POSIX_VERSION
#ifdef HAVE_REGEX_H
if (ISSET(USE_REGEXP)) {
search_match_count = regmatches[0].rm_eo -
regmatches[0].rm_so;
new_line_size = replace_regexp(NULL, 0);
/* If they specified an invalid subexpression in the replace
* text, return NULL indicating an error */
if (new_line_size < 0)
return NULL;
search_match_count = regmatches[0].rm_eo - regmatches[0].rm_so;
new_line_size = replace_regexp(NULL, 0);
/* If they specified an invalid subexpression in the replace
* text, return NULL indicating an error */
if (new_line_size < 0)
return NULL;
} else {
#else
{
#endif
search_match_count = strlen(last_search);
new_line_size = strlen(current->data) - strlen(last_search) +
strlen(last_replace) + 1;
search_match_count = strlen(last_search);
new_line_size = strlen(current->data) - strlen(last_search) +
strlen(last_replace) + 1;
}
/* Create buffer */
copy = nmalloc(new_line_size);
@@ -349,10 +449,10 @@ char *replace_line()
/* Replacement Text */
if (!ISSET(USE_REGEXP))
strcat(copy, last_replace);
#ifdef _POSIX_VERSION
strcat(copy, last_replace);
#ifdef HAVE_REGEX_H
else
(void)replace_regexp(copy + current_x, 1);
(void) replace_regexp(copy + current_x, 1);
#endif
/* The tail of the original line */
@@ -368,109 +468,84 @@ char *replace_line()
return copy;
}
/* Replace a string */
int do_replace(void)
/* step through each replace word and prompt user before replacing word */
int do_replace_loop(char *prevanswer, filestruct *begin, int *beginx,
int wholewords, int *i)
{
int i, replaceall = 0, numreplaced = 0, beginx;
filestruct *fileptr, *begin;
char *copy, prevanswer[132] = "";
int replaceall = 0, numreplaced = 0;
filestruct *fileptr;
char *copy;
if ((i = search_init(1)) == -1) {
switch (*i) {
case -1: /* Aborted enter */
if (strcmp(last_replace, ""))
answer = mallocstrcpy(answer, last_replace);
statusbar(_("Replace Cancelled"));
replace_abort();
return 0;
} else if (i == 1) {
do_replace();
return 1;
} else if (i == -2) {
do_search();
return 0;
} else if (i == -3) {
replace_abort();
return 0;
}
strncpy(prevanswer, answer, 132);
if (strcmp(last_replace, "")) { /* There's a previous replace str */
i = statusq(replace_list, REPLACE_LIST_LEN, "",
_("Replace with [%s]"), last_replace);
if (i == -1) { /* Aborted enter */
strncpy(answer, last_replace, 132);
statusbar(_("Replace Cancelled"));
replace_abort();
return 0;
} else if (i == 0) /* They actually entered something */
strncpy(last_replace, answer, 132);
else if (i == NANO_CASE_KEY) { /* They asked for case sensitivity */
if (ISSET(CASE_SENSITIVE))
UNSET(CASE_SENSITIVE);
else
SET(CASE_SENSITIVE);
do_replace();
return 0;
} else if (i != -2 ) { /* First page, last page, for example could get here */
case 0: /* They actually entered something */
break;
default:
if (*i != -2) { /* First page, last page, for example
could get here */
do_early_abort();
replace_abort();
return 0;
}
} else { /* last_search is empty */
i = statusq(replace_list, REPLACE_LIST_LEN, "", _("Replace with"));
if (i == -1) {
statusbar(_("Replace Cancelled"));
reset_cursor();
replace_abort();
return 0;
} else if (i == 0) /* They entered something new */
strncpy(last_replace, answer, 132);
else if (i == NANO_CASE_KEY) { /* They want it case sensitive */
if (ISSET(CASE_SENSITIVE))
UNSET(CASE_SENSITIVE);
else
SET(CASE_SENSITIVE);
do_replace();
return 1;
} else { /* First line key, etc. */
do_early_abort();
replace_abort();
return 0;
}
}
}
/* save where we are */
begin = current;
beginx = current_x;
if (ISSET(PICO_MODE) && !strcmp(answer, ""))
answer = mallocstrcpy(answer, last_replace);
last_replace = mallocstrcpy(last_replace, answer);
while (1) {
if (replaceall)
fileptr = findnextstr(1, begin, prevanswer);
else
fileptr = findnextstr(0, begin, prevanswer);
/* Sweet optimization by Rocco here */
fileptr = findnextstr(replaceall, begin, *beginx, prevanswer);
/* No more matches. Done! */
if (!fileptr)
break;
/* If we're here, we've found the search string */
if (!replaceall)
i = do_yesno(1, 1, _("Replace this instance?"));
/* Make sure only wholewords are found */
if (wholewords)
{
/* start of line or previous character not a letter */
if ((current_x == 0) || (!isalpha((int) fileptr->data[current_x-1])))
{
/* end of line or next character not a letter */
if (((current_x + strlen(prevanswer)) == strlen(fileptr->data))
|| (!isalpha((int) fileptr->data[current_x + strlen(prevanswer)])))
;
else
continue;
}
else
continue;
}
if (i > 0 || replaceall) { /* Yes, replace it!!!! */
if (i == 2)
/* If we're here, we've found the search string */
if (!replaceall) {
curs_set(0);
do_replace_highlight(TRUE, prevanswer);
*i = do_yesno(1, 1, _("Replace this instance?"));
do_replace_highlight(FALSE, prevanswer);
curs_set(1);
}
if (*i > 0 || replaceall) { /* Yes, replace it!!!! */
if (*i == 2)
replaceall = 1;
copy = replace_line();
if (!copy) {
statusbar("Replace failed: unknown subexpression!");
replace_abort();
copy = replace_line();
if (!copy) {
statusbar(_("Replace failed: unknown subexpression!"));
replace_abort();
return 0;
}
}
/* Cleanup */
free(current->data);
@@ -479,15 +554,98 @@ int do_replace(void)
/* Stop bug where we replace a substring of the replacement text */
current_x += strlen(last_replace) - 1;
/* Adjust the original cursor position - COULD BE IMPROVED */
if (search_last_line) {
*beginx += strlen(last_replace) - strlen(last_search);
/* For strings that cross the search start/end boundary */
/* Don't go outside of allocated memory */
if (*beginx < 1)
*beginx = 1;
}
edit_refresh();
set_modified();
numreplaced++;
} else if (i == -1) /* Abort, else do nothing and continue loop */
} else if (*i == -1) /* Abort, else do nothing and continue loop */
break;
}
return numreplaced;
}
/* Replace a string */
int do_replace(void)
{
int i, numreplaced, beginx;
filestruct *begin;
char *prevanswer = NULL, *buf = NULL;
i = search_init(1);
switch (i) {
case -1:
statusbar(_("Replace Cancelled"));
replace_abort();
return 0;
case 1:
do_replace();
return 1;
case -2:
do_search();
return 0;
case -3:
replace_abort();
return 0;
}
/* Again, there was a previous string but they deleted it and hit enter */
if (!ISSET(PICO_MODE) && !strcmp(answer, "")) {
statusbar(_("Replace Cancelled"));
replace_abort();
return 0;
}
/* If answer is now == "", then PICO_MODE is set. So, copy
last_search into answer (and prevanswer)... */
if (!strcmp(answer, "")) {
answer = mallocstrcpy(answer, last_search);
prevanswer = mallocstrcpy(prevanswer, last_search);
} else {
last_search = mallocstrcpy(last_search, answer);
prevanswer = mallocstrcpy(prevanswer, answer);
}
if (ISSET(PICO_MODE)) {
buf = nmalloc(strlen(last_replace) + 5);
if (strcmp(last_replace, "")) {
if (strlen(last_replace) > (COLS / 3)) {
strncpy(buf, last_replace, COLS / 3);
sprintf(&buf[COLS / 3 - 1], "...");
} else
sprintf(buf, "%s", last_replace);
i = statusq(0, replace_list_2, REPLACE_LIST_2_LEN, "",
_("Replace with [%s]"), buf);
}
else
i = statusq(0, replace_list_2, REPLACE_LIST_2_LEN, "",
_("Replace with"));
}
else
i = statusq(0, replace_list_2, REPLACE_LIST_2_LEN, last_replace,
_("Replace with"));
/* save where we are */
begin = current;
beginx = current_x + 1;
search_last_line = 0;
numreplaced = do_replace_loop(prevanswer, begin, &beginx, FALSE, &i);
/* restore where we were */
current = begin;
current_x = beginx;
current_x = beginx - 1;
renumber_all();
edit_update(current, CENTER);
print_replaced(numreplaced);
@@ -510,7 +668,7 @@ int do_gotoline(long defline)
line = defline;
else { /* Ask for it */
j = statusq(goto_list, GOTO_LIST_LEN, "", _("Enter line number"));
j = statusq(0, goto_list, GOTO_LIST_LEN, "", _("Enter line number"));
if (j == -1) {
statusbar(_("Aborted"));
goto_abort();

5992
texinfo.tex Normal file

File diff suppressed because it is too large Load Diff

146
utils.c
View File

@@ -82,13 +82,13 @@ char *strcasestr(char *haystack, char *needle)
char *strstrwrapper(char *haystack, char *needle)
{
#ifdef _POSIX_VERSION
#ifdef HAVE_REGEX_H
if (ISSET(USE_REGEXP)) {
int result=regexec(&search_regexp, haystack, 10, regmatches, 0);
if (!result)
return haystack+regmatches[0].rm_so;
return 0;
}
int result = regexec(&search_regexp, haystack, 10, regmatches, 0);
if (!result)
return haystack + regmatches[0].rm_so;
return 0;
}
#endif
if (ISSET(CASE_SENSITIVE))
return strstr(haystack, needle);
@@ -114,13 +114,40 @@ void *nrealloc(void *ptr, size_t howmuch)
void *r;
if (!(r = realloc(ptr, howmuch)))
die("nano: realloc: out of memory!");
die(_("nano: realloc: out of memory!"));
return r;
}
/* Copy one malloced string to another pointer.
Should be used as dest = mallocstrcpy(dest, src);
*/
void *mallocstrcpy(char *dest, char *src)
{
if (src == dest)
return src;
if (dest != NULL)
free(dest);
if (src == NULL) {
dest = NULL;
return(dest);
}
dest = nmalloc(strlen(src) + 1);
strcpy(dest, src);
return dest;
}
/* Append a new magic-line to filebot */
void new_magicline(void) {
void new_magicline(void)
{
filebot->next = nmalloc(sizeof(filestruct));
filebot->next->data = nmalloc(1);
filebot->next->data[0] = '\0';
@@ -129,4 +156,107 @@ void new_magicline(void) {
filebot->next->lineno = filebot->lineno + 1;
filebot = filebot->next;
totlines++;
totsize++;
}
#ifndef DISABLE_TABCOMP
/*
* Routine to see if a text string is matched by a wildcard pattern.
* Returns TRUE if the text is matched, or FALSE if it is not matched
* or if the pattern is invalid.
* * matches zero or more characters
* ? matches a single character
* [abc] matches 'a', 'b' or 'c'
* \c quotes character c
* Adapted from code written by Ingo Wilken, and
* then taken from sash, Copyright (c) 1999 by David I. Bell
* Permission is granted to use, distribute, or modify this source,
* provided that this copyright notice remains intact.
* Permission to distribute this code under the GPL has been granted.
*/
int check_wildcard_match(const char *text, const char *pattern)
{
const char *retryPat;
const char *retryText;
int ch;
int found;
int len;
retryPat = NULL;
retryText = NULL;
while (*text || *pattern) {
ch = *pattern++;
switch (ch) {
case '*':
retryPat = pattern;
retryText = text;
break;
case '[':
found = FALSE;
while ((ch = *pattern++) != ']') {
if (ch == '\\')
ch = *pattern++;
if (ch == '\0')
return FALSE;
if (*text == ch)
found = TRUE;
}
len = strlen(text);
if (found == FALSE && len != 0) {
return FALSE;
}
if (found == TRUE) {
if (strlen(pattern) == 0 && len == 1) {
return TRUE;
}
if (len != 0) {
text++;
continue;
}
}
/* fall into next case */
case '?':
if (*text++ == '\0')
return FALSE;
break;
case '\\':
ch = *pattern++;
if (ch == '\0')
return FALSE;
/* fall into next case */
default:
if (*text == ch) {
if (*text)
text++;
break;
}
if (*text) {
pattern = retryPat;
text = ++retryText;
break;
}
return FALSE;
}
if (pattern == NULL)
return FALSE;
}
return TRUE;
}
#endif

691
winio.c

File diff suppressed because it is too large Load Diff