Compare commits

...

713 Commits

Author SHA1 Message Date
David Lawrence Ramsey
8a890962f8 GNU nano 2.0.3
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4054 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-29 12:33:45 +00:00
David Lawrence Ramsey
50ee461ff5 cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4053 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-29 12:19:24 +00:00
David Lawrence Ramsey
15c9b9a3a2 in ru.po, fix incorrect "Project-Id-Version" entry and misplaced space
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4052 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-29 12:18:36 +00:00
David Lawrence Ramsey
f8770d632e add updated Russian translation
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4051 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-29 12:17:46 +00:00
David Lawrence Ramsey
2ceb858030 cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4050 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-28 20:20:30 +00:00
David Lawrence Ramsey
35bd350c03 add missing blank line
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4049 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-28 19:49:05 +00:00
David Lawrence Ramsey
b995263309 update README.CVS for the 2.0 branch of nano
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4048 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-28 19:47:39 +00:00
David Lawrence Ramsey
b1eb0ee20b formatting fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4047 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-28 16:27:04 +00:00
David Lawrence Ramsey
86058fa97f formatting fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4046 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-17 16:24:24 +00:00
David Lawrence Ramsey
ec71964386 in Makefile.am, add README.CVS to EXTRA_DIST, so that nano's CVS
checkout instructions aren't only available in its CVS snapshots


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4045 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-16 19:09:11 +00:00
David Lawrence Ramsey
a4ede3c21e cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4044 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-16 18:59:41 +00:00
David Lawrence Ramsey
99c61e207f fix still more misplaced space
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4043 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-14 15:06:32 +00:00
David Lawrence Ramsey
2aa69bcf27 fix yet more misplaced space
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4042 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-14 01:21:05 +00:00
David Lawrence Ramsey
3c019ef217 fix still more misplaced space
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4041 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-14 01:18:06 +00:00
David Lawrence Ramsey
870dc48ef0 fix more misplaced space
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4040 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-14 01:12:11 +00:00
David Lawrence Ramsey
6dfd398531 fix typos and/or misplaced space
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4039 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-13 20:39:19 +00:00
David Lawrence Ramsey
a9003419e1 fix typos and more misplaced space
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4038 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-13 20:05:23 +00:00
David Lawrence Ramsey
33b0c6874a typo fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4037 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-13 16:46:17 +00:00
David Lawrence Ramsey
0e1df431a8 cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4036 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-12 02:58:12 +00:00
David Lawrence Ramsey
d8d19ba324 add missing changelog entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4035 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-11 23:12:51 +00:00
David Lawrence Ramsey
5314b8dd8a still more miscellaneous comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4034 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-11 23:11:46 +00:00
David Lawrence Ramsey
cc91cf41a0 in do_writeout(), when setting retval to the return value of
write_(marked_)?file(), use the "?" operator instead of an if/else
clause


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4033 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-11 23:10:03 +00:00
David Lawrence Ramsey
e44cd2dfba yet more miscellaneous comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4032 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-11 22:54:55 +00:00
David Lawrence Ramsey
9e7b2d572c more miscellaneous minor fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4031 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-11 22:46:22 +00:00
David Lawrence Ramsey
30ca7d5219 still more miscellaneous comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4030 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-11 21:52:29 +00:00
David Lawrence Ramsey
6e1cd2d2f3 more miscellaneous comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4029 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-11 21:47:06 +00:00
David Lawrence Ramsey
4154d08362 miscellaneous minor fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4028 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-11 21:36:29 +00:00
David Lawrence Ramsey
8310cd3de6 simplify the commands that generate HTML documentation in order to
remove unnecessary usage of cat


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4027 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-11 19:32:32 +00:00
David Lawrence Ramsey
f38b27e0a1 add missing changelog entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4026 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-09 23:42:50 +00:00
David Lawrence Ramsey
9eaa50d69c more miscellaneous comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4025 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-09 23:42:34 +00:00
David Lawrence Ramsey
61848f172a typo fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4024 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-09 23:40:24 +00:00
David Lawrence Ramsey
0ec34ac28a make regexp_init() return a bool instead of an int
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4023 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-09 23:35:02 +00:00
David Lawrence Ramsey
cb04b56c92 more miscellaneous comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4022 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-09 22:56:56 +00:00
David Lawrence Ramsey
5d7a1017ef don't generate the HTML versions of the nanorc manpages if nano is built
without nanorc support


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4021 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-06 23:21:24 +00:00
David Lawrence Ramsey
9009890726 don't install the nanorc manpages if nano is built without nanorc
support


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4020 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-06 18:06:02 +00:00
David Lawrence Ramsey
4554520805 in doc/man/fr/Makefile.am, set mandir before setting man_MANS, to more
closely match doc/man/Makefile.am


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4019 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-06 16:23:34 +00:00
David Lawrence Ramsey
70afb990b3 typo fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4018 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-06 13:00:59 +00:00
David Lawrence Ramsey
b5ba9df80f fix misplaced space
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4017 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-06 12:59:03 +00:00
David Lawrence Ramsey
904a510ee1 typo fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4016 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-02 20:10:11 +00:00
David Lawrence Ramsey
c4592f3a55 fix changelog entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4015 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-01 22:22:34 +00:00
David Lawrence Ramsey
44e671f2de in doc/faq.html, update section 4.1 to describe how to open files with
names beginning with '+' at specified columns as well as lines


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4014 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-01 16:57:57 +00:00
David Lawrence Ramsey
ce270393be import the latest version of glib-2.0.m4
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4013 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-01 14:25:58 +00:00
David Lawrence Ramsey
6335fb54d5 miscellaneous comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4012 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-01-01 05:15:32 +00:00
David Lawrence Ramsey
4b1c73ee17 more miscellaneous cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4011 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-12-30 23:24:50 +00:00
David Lawrence Ramsey
bd34da7d1d in README, add another cosmetic fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4010 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-12-30 23:23:02 +00:00
David Lawrence Ramsey
0c7e6d7aed preemptively update the version number
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4009 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-12-30 23:07:22 +00:00
David Lawrence Ramsey
fc77fde448 per Mike Frysinger's patch, in doc/syntax/python.nanorc, improve string
highlighting regexes


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4008 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-12-24 18:17:28 +00:00
David Lawrence Ramsey
e9252c55e2 Back to CVS
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4007 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-12-21 02:48:02 +00:00
David Lawrence Ramsey
518b7fac9d GNU nano 2.0.2
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4005 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-12-21 02:47:14 +00:00
David Lawrence Ramsey
0c426782c4 still more cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4004 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-12-15 05:03:08 +00:00
David Lawrence Ramsey
2aca11e800 more comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4003 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-12-15 04:53:47 +00:00
David Lawrence Ramsey
4078d60d69 fix breakage
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4002 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-12-15 04:50:57 +00:00
David Lawrence Ramsey
46104dcc8e still more miscellaneous minor fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4001 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-12-15 02:54:08 +00:00
David Lawrence Ramsey
26b3ead8d2 revert erroneous change
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4000 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-12-15 02:49:44 +00:00
David Lawrence Ramsey
ad64cd97b8 more miscellaneous minor fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3999 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-12-14 22:11:44 +00:00
David Lawrence Ramsey
8060d66158 miscellaneous minor fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3998 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-12-14 21:57:03 +00:00
David Lawrence Ramsey
4c19415ecf in do_writeout(), fix a segfault when we can't get the full path of
either the filename we want to save under or the original filename


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3997 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-12-14 20:03:30 +00:00
David Lawrence Ramsey
b513778b56 in update_history(), fix minor memory leak
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3996 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-12-13 00:27:45 +00:00
David Lawrence Ramsey
6642e88561 fix changelog entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3995 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-12-12 20:13:13 +00:00
David Lawrence Ramsey
f85a1eb48a fix more problems with strings that contain nulls but shouldn't
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3994 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-12-11 22:11:32 +00:00
David Lawrence Ramsey
5ab28f2716 update README for the 2.0 branch of nano
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3993 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-12-11 18:39:35 +00:00
David Lawrence Ramsey
f1982f01d1 still more comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3992 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-12-10 17:57:09 +00:00
David Lawrence Ramsey
e3e3128629 really fixed incorrect "Project-Id-Version" entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3991 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-12-08 03:54:31 +00:00
David Lawrence Ramsey
4b6a00cb72 fixed incorrect "Project-Id-Version" entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3990 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-12-07 03:23:13 +00:00
David Lawrence Ramsey
4ef023478c remove unneeded duplicate plural forms again
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3989 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-12-07 03:22:46 +00:00
Jordi Mallach
cfeebc6055 Hungarian and Malay translation updates from the TP.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3988 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-12-06 21:44:16 +00:00
David Lawrence Ramsey
bd5398050a add missing blank lines
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3987 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-12-02 23:39:16 +00:00
David Lawrence Ramsey
ad36bdc773 per Itay Perl's patch with a few additions of mine, fix various minor
memory leaks


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3986 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-12-02 17:22:21 +00:00
David Lawrence Ramsey
916c7c26bf in parse_kbinput(), add missing break
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3985 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-12-02 17:17:09 +00:00
David Lawrence Ramsey
b6fb6884ca still more comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3984 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-27 07:28:52 +00:00
David Lawrence Ramsey
3d267dc323 still more comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3983 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-27 07:13:28 +00:00
David Lawrence Ramsey
9a2d0aff00 simplify
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3982 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-27 06:02:33 +00:00
David Lawrence Ramsey
f7eef5d04c fix breakage
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3981 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-27 05:49:58 +00:00
David Lawrence Ramsey
9d4b8fb434 still more comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3980 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-27 05:49:32 +00:00
David Lawrence Ramsey
8ad3b78626 cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3979 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-27 05:40:09 +00:00
David Lawrence Ramsey
6ad82142c0 still more comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3978 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-27 05:25:48 +00:00
David Lawrence Ramsey
0e48bc18be fix breakage
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3977 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-27 05:19:24 +00:00
David Lawrence Ramsey
4fd1ca07a7 more comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3976 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-27 05:09:16 +00:00
David Lawrence Ramsey
8db126b09d in write_file(), properly handle filenames that contain nulls
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3975 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-27 05:03:54 +00:00
David Lawrence Ramsey
d97649859d in do_insertfile(), properly handle files that contain nulls
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3974 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-27 04:57:22 +00:00
David Lawrence Ramsey
81371020bb revert erroneous changes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3973 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-27 04:56:16 +00:00
David Lawrence Ramsey
013613ec40 in do_insertfile(), properly handle executable commands that contain
nulls


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3972 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-27 04:35:11 +00:00
David Lawrence Ramsey
50d78a6f9a don't allow filenames entered at the "Write File" prompt or the "Insert
File" prompt to contain nulls


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3971 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-27 02:41:59 +00:00
David Lawrence Ramsey
b6c4dbffdb in do_spell(), when setting i to the return value of
write_(marked_)?file(), use the "?" operator instead of an if/else
clause


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3970 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-25 22:38:17 +00:00
David Lawrence Ramsey
8125e08bfa miscellaneous comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3969 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-25 22:27:22 +00:00
David Lawrence Ramsey
90c5a908ee fix changelog entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3968 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-25 21:55:25 +00:00
David Lawrence Ramsey
cfc9fd2780 preemptively update the version number
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3967 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-25 18:28:01 +00:00
David Lawrence Ramsey
173bd2f003 typo fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3966 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-25 18:27:42 +00:00
David Lawrence Ramsey
d21eea02ac more miscellaneous documentation updates
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3965 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-25 18:26:07 +00:00
David Lawrence Ramsey
1c9dd109bf in edit_draw(), fix potential warnings when assigning -1 to paintlen by
using if/else clauses instead of "?" operators


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3964 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-21 17:05:04 +00:00
David Lawrence Ramsey
5a8182e7df in nano.h, rename NANO_.*ALTKEY to NANO_.*METAKEY, for consistency
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3963 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-21 04:20:53 +00:00
David Lawrence Ramsey
292f7ef414 in nano.h, rename NANO_ALT_.* to NANO_META_.*, for consistency
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3962 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-21 04:15:04 +00:00
David Lawrence Ramsey
b7f6bf794d more miscellaneous cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3961 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-21 04:11:18 +00:00
David Lawrence Ramsey
79f946b682 miscellaneous cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3960 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-21 04:06:13 +00:00
David Lawrence Ramsey
3a2dc3e0a7 remove unneeded blank plural forms, as gettext 0.15 generates errors
upon encountering them


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3959 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-21 03:41:28 +00:00
David Lawrence Ramsey
6b8b3ec105 Back to CVS
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3958 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-20 14:40:40 +00:00
David Lawrence Ramsey
16fd49b854 GNU nano 2.0.1
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3956 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-20 14:38:31 +00:00
David Lawrence Ramsey
f3af804378 preemptively update the version number
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3955 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-20 14:37:44 +00:00
David Lawrence Ramsey
21b946e45d in do_replace_highlight(), include the code to display zero-length
matches even when regex.h isn't found, as it can also be used to display
zero-length Unicode characters


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3954 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-10 20:13:38 +00:00
David Lawrence Ramsey
8269ae3cea more cosmetic copyright notice fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3953 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-10 03:40:41 +00:00
David Lawrence Ramsey
606d5a1e22 more cosmetic copyright notice fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3952 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-10 03:01:16 +00:00
David Lawrence Ramsey
458e850b83 more cosmetic copyright notice fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3951 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-10 02:49:07 +00:00
David Lawrence Ramsey
cb801d63a3 cosmetic copyright notice fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3950 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-10 02:47:11 +00:00
David Lawrence Ramsey
6c6d2bc4db in NEWS, add missing entries for nano 1.0.2 and 1.0.3, since 1.1.0
includes their changes


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3949 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-08 18:03:53 +00:00
David Lawrence Ramsey
84d22e3f53 cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3948 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-08 13:05:50 +00:00
David Lawrence Ramsey
89eb5a96fb simplify still more
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3947 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-08 13:03:37 +00:00
David Lawrence Ramsey
d23dcc5a25 simplify more
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3946 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-08 02:58:42 +00:00
David Lawrence Ramsey
6f751500cc fix changelog entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3945 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-08 02:52:46 +00:00
David Lawrence Ramsey
a93023f14b in get_full_path(), fix problem where only paths would be returned when
both paths and filenames should have been


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3944 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-08 02:48:15 +00:00
David Lawrence Ramsey
b31b128a78 simplify
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3943 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-08 01:02:13 +00:00
David Lawrence Ramsey
b24cb0cd19 in do_writeout(), fix problem where a file could sometimes be
overwritten without a warning prompt


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3942 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-07 22:57:13 +00:00
David Lawrence Ramsey
2bf7e975eb yet more cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3941 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-07 22:56:25 +00:00
David Lawrence Ramsey
ba48aa9743 still more cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3940 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-07 22:36:44 +00:00
David Lawrence Ramsey
6c3a399817 in get_full_path(), remove unneeded assert
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3939 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-07 21:41:05 +00:00
David Lawrence Ramsey
137694d15b more cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3938 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-07 21:32:43 +00:00
David Lawrence Ramsey
8965af5874 in do_writeout(), for consistency, when saving a file with no name,
don't allow overwriting an existing file when in restricted mode


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3937 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-07 21:22:14 +00:00
David Lawrence Ramsey
4967eb8fc0 cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3936 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-07 21:08:17 +00:00
David Lawrence Ramsey
366c509304 Back to CVS
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3935 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-06 16:04:17 +00:00
David Lawrence Ramsey
f8df4a0fcb GNU nano 2.0.0
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3933 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-06 16:03:12 +00:00
David Lawrence Ramsey
f0c6e78a6e clean up nano.spec.in some more
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3932 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-05 17:13:44 +00:00
David Lawrence Ramsey
e88bc62258 more cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3931 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-05 17:00:41 +00:00
David Lawrence Ramsey
ca74e42a84 cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3930 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-05 03:51:28 +00:00
David Lawrence Ramsey
6b9e7cf5be update nano.spec.in for newer RPM-based distributions, adapted from the
nano 1.3.12-1.1.spec file in Fedora Rawhide


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3929 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-05 03:44:41 +00:00
David Lawrence Ramsey
1bb4db6409 add POV-Ray syntax from Donnie Berkholz, with a few tweaks of mine
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3928 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-11-02 06:21:43 +00:00
David Lawrence Ramsey
e693023de8 fix changelog entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3927 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-30 17:08:32 +00:00
David Lawrence Ramsey
e54f1c4eaa more comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3926 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-29 21:14:53 +00:00
David Lawrence Ramsey
08cf2528e1 update AUTHORS for the 2.0 branch of nano
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3925 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-28 22:55:08 +00:00
Jordi Mallach
40dcea0e2e Update French manpages by Jean-Philippe Guérard.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3924 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-28 22:03:25 +00:00
David Lawrence Ramsey
cb6ad31a8e fix changelog entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3923 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-28 21:57:24 +00:00
David Lawrence Ramsey
057f239b43 update faq.html for the 2.0 branch of nano
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3922 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-28 21:55:22 +00:00
David Lawrence Ramsey
890eab8270 update nano.spec.in for the 2.0 branch of nano
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3921 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-28 21:51:21 +00:00
David Lawrence Ramsey
32612ddcde preemptively update the version number
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3920 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-28 19:32:47 +00:00
David Lawrence Ramsey
3660bc6a46 in nano.1, nanorc.5, and rnano.1, add minor wording fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3919 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-28 19:21:12 +00:00
David Lawrence Ramsey
cca9bdd177 fix the version number
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3918 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-27 05:01:48 +00:00
David Lawrence Ramsey
9f0fccd713 in nano.texi, add minor punctuation fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3917 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-27 03:07:49 +00:00
David Lawrence Ramsey
65ab1c87b7 in nano.texi, add minor wording fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3916 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-27 02:57:35 +00:00
David Lawrence Ramsey
0c0cafbc19 comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3915 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-26 15:55:39 +00:00
David Lawrence Ramsey
76520a8ec4 Back to CVS
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3914 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-25 15:28:20 +00:00
David Lawrence Ramsey
1295699d03 GNU nano 1.9.99pre3
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3912 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-25 15:27:08 +00:00
David Lawrence Ramsey
ee8edfc64c preemptively update the version number
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3911 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-25 14:40:49 +00:00
Jordi Mallach
273b9e8d5b French and Norwegian bokmaal updates from the TP.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3910 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-24 22:14:50 +00:00
David Lawrence Ramsey
85f9f0f941 simplify
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3909 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-18 20:27:52 +00:00
David Lawrence Ramsey
385e772e54 fix changelog entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3908 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-17 15:28:49 +00:00
David Lawrence Ramsey
ab8c7162d3 in do_cut_text(), when uncutting text in the process of copying it,
always set placewewant, as do_uncut_text() does, so that the current
line is always updated properly


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3907 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-16 19:44:13 +00:00
Jordi Mallach
152f57bf9c New Galician update from Fran.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3906 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-16 18:43:03 +00:00
Jordi Mallach
8ee8915c49 Updated Galician translation from Fran.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3905 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-16 09:36:06 +00:00
Jordi Mallach
a447a2d810 Updated Basque from the TP.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3904 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-15 22:49:48 +00:00
David Lawrence Ramsey
22066a2cad fix changelog entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3903 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-14 16:04:44 +00:00
David Lawrence Ramsey
c603fefbf6 import the latest version of ac_define_dir.m4
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3902 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-14 01:13:13 +00:00
David Lawrence Ramsey
b5652a4d56 fix breakage
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3901 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-13 16:35:57 +00:00
David Lawrence Ramsey
98bca94758 in input_tab(), if the tab-completed path is a directory, make sure
enough space is allocated before tacking a slash onto the end of it


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3900 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-13 16:18:40 +00:00
Jordi Mallach
8c9256a731 Updated Galician translation from Fran Tsao, while his paperwork gets to GNU offices.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3899 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-10 08:14:00 +00:00
David Lawrence Ramsey
89ae4a343c miscellaneous minor fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3898 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-08 15:21:23 +00:00
David Lawrence Ramsey
61525a1e29 add missing line break
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3897 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-06 17:49:53 +00:00
David Lawrence Ramsey
97e0d665de typo fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3896 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-06 16:00:13 +00:00
David Lawrence Ramsey
e4769dfeab in faq.html, update the question in section 4.13 to match the version of
it in the answer section


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3895 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-06 15:52:41 +00:00
David Lawrence Ramsey
ee35aa3b01 yet one more TODO list entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3894 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-04 14:19:13 +00:00
David Lawrence Ramsey
23b9907048 add missing blank line
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3893 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-03 19:15:01 +00:00
David Lawrence Ramsey
85307fe28e in input_tab(), since the field precision operator used in the sprintf()
uses ints and not size_t's, replace it with two strncpy()s, which use
size_t's


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3892 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-03 18:46:00 +00:00
David Lawrence Ramsey
1755e28ad9 in parse_help_input(), add 'E' and 'e' as aliases for Exit, for
consistency with the file browser


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3891 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-02 21:25:41 +00:00
David Lawrence Ramsey
6db9ebbe04 formatting fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3890 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-02 19:45:34 +00:00
Jordi Mallach
77369f425b Updated pt_BR from the TP, using the correct file.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3889 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-02 17:15:27 +00:00
David Lawrence Ramsey
52804ab8e8 in doc/syntax/c.nanorc, simplify "undef", "ifn?def", "elif", and "else"
in the preprocessor regexes


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3888 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-02 17:01:58 +00:00
David Lawrence Ramsey
6e379c254e Back to CVS
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3887 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-02 04:09:48 +00:00
David Lawrence Ramsey
2953f783e3 GNU nano 1.9.99pre2
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3885 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-02 04:08:20 +00:00
David Lawrence Ramsey
48f67a5c4c restore previous version of pt_BR, as it was for nano 1.9.99pre0, and
the current version is for 1.3.11pre1


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3884 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-10-02 04:07:09 +00:00
David Lawrence Ramsey
d09eb8374a one more TODO list entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3883 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-09-29 15:52:33 +00:00
David Lawrence Ramsey
b9f007430b in do_statusbar_input(), if we get a verbatim input sequence ending with
Ctrl-J, remove the Ctrl-J from the buffer before interpreting it as
Enter, so that it doesn't erroneously fall through to the edit window
and get interpreted as Justify


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3882 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-09-29 15:45:10 +00:00
Jordi Mallach
0061bf5b71 Updated pt_BR from the TP.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3881 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-09-27 07:50:17 +00:00
David Lawrence Ramsey
4ab14c6ad0 preemptively update the version number
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3880 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-09-26 14:55:30 +00:00
David Lawrence Ramsey
768a75ff5f comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3879 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-09-21 01:48:54 +00:00
David Lawrence Ramsey
012425c401 in doc/syntax/c.nanorc, add "size_t" and "ssize_t" to the types regexes,
and simplify "signed" and "unsigned" in them


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3878 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-09-16 02:40:31 +00:00
David Lawrence Ramsey
f5a720dfda remove unneeded duplicate plural forms again
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3877 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-09-11 01:55:02 +00:00
Jordi Mallach
b7a5be6739 Hungarian update from the TP.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3876 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-09-10 22:11:38 +00:00
Jordi Mallach
ce1c9ac363 Brazilian Portuguese from the TP.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3875 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-09-02 18:22:38 +00:00
David Lawrence Ramsey
1b36fc16f5 fix email address
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3874 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-09-01 22:47:07 +00:00
David Lawrence Ramsey
7f0cfd5304 per Benno Schulenberg's patch, in po/ChangeLog, fix incorrect years in
two entries


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3873 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-09-01 21:10:56 +00:00
David Lawrence Ramsey
b011e440b4 fix misplaced space
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3872 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-09-01 03:34:18 +00:00
Jordi Mallach
464c8a808c Update ca, de, es from the TP.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3871 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-31 19:01:03 +00:00
David Lawrence Ramsey
d2b1f52d17 add missing changelog entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3870 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-30 14:10:49 +00:00
David Lawrence Ramsey
7d15d1d8d8 in get_input(), simplify to avoid an unnecessary key_buffer_len check
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3869 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-30 13:52:33 +00:00
David Lawrence Ramsey
a1b6997066 comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3868 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-29 21:18:24 +00:00
David Lawrence Ramsey
9054e3a2ae fix breakage
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3867 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-29 21:14:12 +00:00
David Lawrence Ramsey
1b3e4e117a fix misplaced do_prompt_abort()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3866 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-29 21:11:27 +00:00
David Lawrence Ramsey
3879528945 make sure that the statusbar cursor position is always properly reset
when we get out of all statusbar prompts


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3865 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-29 20:54:38 +00:00
David Lawrence Ramsey
185dc6acd0 Back to CVS
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3864 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-29 17:31:41 +00:00
David Lawrence Ramsey
890ea443d7 GNU nano 1.9.99pre1
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3862 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-29 17:29:57 +00:00
Jordi Mallach
495fe91e97 French manpage translation updates.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3861 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-28 23:33:39 +00:00
Jordi Mallach
4d5cd6be1e Update French from the TP.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3860 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-28 15:57:38 +00:00
David Lawrence Ramsey
89ca96bd88 in handle_sigwinch(), just in case we're in the statusbar prompt, reset
the statusbar cursor position when resizing the window


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3859 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-28 14:31:29 +00:00
David Lawrence Ramsey
8fd5193b74 clarify TODO list entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3858 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-27 18:25:00 +00:00
David Lawrence Ramsey
1512503b2b add one more TODO list entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3857 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-27 01:35:10 +00:00
David Lawrence Ramsey
d6972ae74f cosmetic fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3856 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-26 16:57:33 +00:00
David Lawrence Ramsey
5187b504d4 add missing changelog entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3855 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-26 16:51:42 +00:00
David Lawrence Ramsey
fa38795ef5 miscellaneous minor fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3854 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-26 16:50:51 +00:00
David Lawrence Ramsey
e1e2cb7064 simplify, and add comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3853 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-26 16:42:12 +00:00
David Lawrence Ramsey
17408b52e5 in do_browser(), fix potential segfault when going to a directory that
doesn't begin with '/'


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3852 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-26 15:46:20 +00:00
David Lawrence Ramsey
e5e6d9b696 remove now-unneeded entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3851 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-26 15:16:28 +00:00
David Lawrence Ramsey
98332d40dc properly preserve the cursor position when going from the "Read File" or
"Save File As" prompt to the file browser to the "Go To Directory"
prompt, and then canceling back to the "Read File" or "Save File As"
prompt


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3850 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-26 15:14:55 +00:00
Jordi Mallach
62591da0fe Dutch update from the TP.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3849 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-26 10:22:27 +00:00
Jordi Mallach
fa67260c53 Translation updates from the TP.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3848 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-25 19:32:48 +00:00
David Lawrence Ramsey
56ec5925f3 in shortcut_init(), make the help shortcut for the "Go to Directory"
prompt call do_browser_help() instead of do_help_void(), as this prompt
is only accessible inside the file browser


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3847 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-25 19:26:48 +00:00
David Lawrence Ramsey
f7b8783eaa in shortcut_init(), remove the ^X shortcut for CutTillEnd at the search
prompt, as official Pico doesn't include it, and it can be confused with
Exit


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3846 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-22 18:48:13 +00:00
David Lawrence Ramsey
6835102ce5 cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3845 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-21 21:37:39 +00:00
David Lawrence Ramsey
0bbd290168 cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3844 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-21 14:04:28 +00:00
David Lawrence Ramsey
5c55e85410 in help_init(), adjust the first two chunks of the main help text so
that they're no more than 509 characters again


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3843 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-19 11:11:51 +00:00
David Lawrence Ramsey
5a22dbb159 in digits(), remove the assumption that n is always positive, although
it always is in this particular case


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3842 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-18 20:30:25 +00:00
David Lawrence Ramsey
73e337594e cosmetic fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3841 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-18 13:59:27 +00:00
David Lawrence Ramsey
dbc415fc47 remove unneeded duplicate plural forms, as gettext 0.15 generates errors
upon encountering them


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3840 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-15 19:06:28 +00:00
David Lawrence Ramsey
f351176756 wording fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3839 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-07 12:58:28 +00:00
David Lawrence Ramsey
69583ad664 add one last TODO list item
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3838 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-05 16:48:57 +00:00
David Lawrence Ramsey
30d7f33954 in doc/syntax/c.nanorc, remove redundancy from the file extension
regexes


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3837 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-03 02:44:22 +00:00
David Lawrence Ramsey
6da4e56f1e revert redundant change
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3836 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-02 19:30:24 +00:00
David Lawrence Ramsey
c6bef76a6c another comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3835 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-02 19:13:31 +00:00
David Lawrence Ramsey
2ea7fb0154 comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3834 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-02 18:41:55 +00:00
David Lawrence Ramsey
cbab273a08 in edit_draw(), simplify the setting of paintlen
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3833 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-02 18:38:45 +00:00
David Lawrence Ramsey
28a6802307 in doc/syntax/c.nanorc, tweak the multiline comment regex to not color
lines so aggressively


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3832 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-08-02 17:02:49 +00:00
David Lawrence Ramsey
2578025e7f cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3831 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-31 23:29:22 +00:00
David Lawrence Ramsey
5b17ef85e7 revert erroneous change
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3830 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-31 23:28:27 +00:00
David Lawrence Ramsey
3714e07d7b in parse_kbinput(), translate KEY_EVENT to ERR if we get it, so that
it's properly ignored


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3829 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-31 18:25:25 +00:00
David Lawrence Ramsey
7b0531aa0b per Benno Schulenberg's patch with a few tweaks by me, add various
clarifications to translated strings


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3828 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-31 01:30:31 +00:00
David Lawrence Ramsey
e517613c01 comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3827 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-30 23:30:23 +00:00
David Lawrence Ramsey
57703086e2 make all the descriptions of -O/--morespace consistent
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3826 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-30 23:26:18 +00:00
David Lawrence Ramsey
550ca10378 in nano.texi, add missing description of the -O/--morespace command line
option


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3825 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-30 23:18:15 +00:00
David Lawrence Ramsey
f9f8cc36e4 fix inaccurate comment
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3824 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-29 21:40:32 +00:00
David Lawrence Ramsey
ad344e9d1d make bad_mbchar a static const char* const in chars.c, as its value
doesn't change


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3823 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-29 14:37:47 +00:00
David Lawrence Ramsey
6827146dd2 fix changelog entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3822 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-28 17:07:46 +00:00
David Lawrence Ramsey
b159f941e8 per Benno Schulenberg's patch with a few additions by me, fix
punctuation relating to "i.e." in comments and documentation


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3821 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-28 17:06:27 +00:00
David Lawrence Ramsey
c7c49c48da in doc/Makefile.am, don't include nanorc.sample in EXTRA_DIST, as it's
only useful when we're building from source, as opposed to building a
distribution; also, tweak doc/Makefile.am and doc/man/Makefile.am to
remove usage of the += operator again


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3819 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-26 17:42:16 +00:00
David Lawrence Ramsey
4ce755072c add miscellaneous minor fixes to the faq, and preemptively update its
version number


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3818 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-26 03:20:37 +00:00
David Lawrence Ramsey
2f702285eb in toggle_init(), make sure that a blank line is not displayed after the
Meta-Q toggle when mouse support is disabled and we're in restricted
mode, and that it is displayed all other times


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3817 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-25 22:24:48 +00:00
David Lawrence Ramsey
592ccf9a5e update changelog entry: the renaming of the scroll_dir enums also fixes
compilation on NetBSD 3.0, as reported by Adam Wysocki


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3816 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-25 21:19:02 +00:00
David Lawrence Ramsey
bd28ee472b when DISABLE_HELP is defined, leave out some unused shortcut and toggle
list parameters


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3815 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-25 21:13:30 +00:00
David Lawrence Ramsey
1b4ae6997e in parse_escape_seq_kbinput(), Don't ignore escape sequences anymore;
instead, return the corresponding key so that parse_kbinput() can
translate it


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3814 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-25 19:23:35 +00:00
David Lawrence Ramsey
722b728a1c another cosmetic fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3813 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-24 21:22:49 +00:00
David Lawrence Ramsey
97cd67c3d4 fix changelog entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3812 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-24 19:15:35 +00:00
David Lawrence Ramsey
f28ff9dece in parse_kbinput(), properly handle combined control character and
escape sequences, so that e.g. Esc Esc / will work properly when the /
is on the numeric keypad and NumLock is off


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3811 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-24 18:53:54 +00:00
David Lawrence Ramsey
ec177be416 in do_help(), don't allow moving down a page when the last line of the
help text is onscreen


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3810 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-23 19:57:30 +00:00
David Lawrence Ramsey
1dc7c1225a cosmetic fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3809 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-23 19:55:44 +00:00
David Lawrence Ramsey
8a72370040 typo fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3808 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-23 18:00:50 +00:00
David Lawrence Ramsey
5370b0cd19 in parse_escape_seq_kbinput(), handle unknown and unignored escape
sequences once instead of handling them twice in parse_kbinput()


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3807 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-23 17:54:35 +00:00
David Lawrence Ramsey
19f3bd6546 in parse_kbinput(), translate extended keypad keys to their ASCII
equivalents even when we hit Escape once or twice before typing them,
for consistency; also, if they're defined, translate KEY_SUP into
NANO_PREVLINE_KEY and KEY_SDOWN into NANO_NEXTLINE_KEY, since they are
sometimes generated by Shift-Up and Shift-Down


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3806 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-23 17:25:38 +00:00
David Lawrence Ramsey
a44ca78a50 in parse_kbinput(), properly handle combined meta and escape sequences,
so that e.g. Meta-+ will work properly when the + is on the numeric
keypad and NumLock is off


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3805 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-23 16:00:03 +00:00
David Lawrence Ramsey
006fc2338c typo fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3804 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-22 16:50:17 +00:00
David Lawrence Ramsey
118cb37e63 in mbstrncasecmp(), mbstrcasestr(), and mbrevstrcasestr(), don't
allocate space for multibyte characters until we've asserted that the
parameters we're using aren't NULL


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3803 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-22 16:45:11 +00:00
David Lawrence Ramsey
d3887dc695 update UPGRADE to fix the description of +LINE,COLUMN
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3802 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-22 15:57:28 +00:00
David Lawrence Ramsey
c81aa0641c update UPGRADE to account for the ability to indent unmarked lines
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3801 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-21 16:44:44 +00:00
David Lawrence Ramsey
f8758833cd fix changelog entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3800 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-19 19:42:47 +00:00
David Lawrence Ramsey
4ac129c4bf when using slang 2.x, call SLutf8_enable() with an argument of 1 instead
of TRUE, as that's the proper way to force its UTF-8 support on


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3799 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-19 19:40:54 +00:00
David Lawrence Ramsey
e53e12559f rename the DISABLE_ROOTWRAP #define to DISABLE_ROOTWRAPPING
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3798 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-19 15:50:19 +00:00
David Lawrence Ramsey
23994bd8a0 miscellaneous minor fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3797 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-19 13:34:55 +00:00
David Lawrence Ramsey
6e308c0442 comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3796 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-19 02:44:56 +00:00
David Lawrence Ramsey
7c06be5ff7 fix changelog entries
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3795 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-19 00:38:27 +00:00
David Lawrence Ramsey
3bb45ae00b per Daniel Richard G.'s patch, in parse_rcfile(), add missing
ENABLE_COLOR #ifdef around the second check for a syntax with no color
commands, to fix compilation without color support


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3794 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-19 00:21:17 +00:00
David Lawrence Ramsey
6ff22e7020 rename the values of the scroll_dir enum to UP_DIR and DOWN_DIR, since
UP is defined as a termcap value in Tru64's curses.h, which breaks
compilation


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3793 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-19 00:14:52 +00:00
David Lawrence Ramsey
0a4b737b73 cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3792 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-18 18:28:10 +00:00
David Lawrence Ramsey
32a3ce4cd2 revert unneeded #ifdef fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3791 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-18 18:25:56 +00:00
David Lawrence Ramsey
935594b14a add various cosmetic and #ifdef fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3790 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-18 18:16:30 +00:00
David Lawrence Ramsey
a5ad825f30 improve the display of bools in debugging statements
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3789 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-13 13:28:13 +00:00
David Lawrence Ramsey
f968a18a3f in replace_regexp(), remove unnecessary casting of c to int
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3788 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-13 13:27:16 +00:00
David Lawrence Ramsey
eec40df2a1 in do_insertfile(), remove redundant code: we only mark the file as
modified if we're not in multibuffer mode, in which case view mode
should never be on


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3787 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-13 12:18:57 +00:00
David Lawrence Ramsey
c346701d09 in do_insertfile(), if we don't insert a file into a new buffer,
properly update the x-coordinate to account for the number of characters
inserted on the current line


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3786 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-13 04:19:53 +00:00
David Lawrence Ramsey
9a145d906f in do_insertfile(), if we're in view mode, as we can be if multibuffer
mode is on, don't mark the file as modified (and remove the code that
does this in execute_command()); also, if we execute a command in a new
buffer, move back to the beginning of the first line of the buffer
afterwards, for consistency


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3785 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-13 03:06:36 +00:00
David Lawrence Ramsey
49172cad95 more typo fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3784 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-13 02:10:27 +00:00
David Lawrence Ramsey
0d8feb9a85 remove unneeded blank lines
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3783 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-12 19:30:54 +00:00
David Lawrence Ramsey
1e1117775f in nano.h, remove the manual disabling of color support if regex.h isn't
found, as configure.ac now handles that


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3782 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-12 19:12:40 +00:00
David Lawrence Ramsey
84b9f4bd17 in configure.ac, if regex.h isn't found, display an error message if we
try to enable color support; also, fix the spacing of the error message
displayed when slcurses.h isn't found


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3781 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-12 18:59:29 +00:00
David Lawrence Ramsey
82697f2fcd don't include sys/ioctl.h in nano.c when NANO_TINY is defined, as
ioctl() is never used then


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3780 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-12 18:57:04 +00:00
David Lawrence Ramsey
1a473483b1 in nano.h, if we don't have nanorc support, disable color support, as it
depends on the use of the nanorc


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3779 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-12 18:09:37 +00:00
David Lawrence Ramsey
c6c98f7c7a make Jordi's email address, and the description of what the manual pages
were written for, consistent in the documentation


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3778 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-12 16:50:43 +00:00
David Lawrence Ramsey
b8592ce2bb in do_browse_from(), don't bother freeing path if it's NULL
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3777 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-11 18:17:56 +00:00
David Lawrence Ramsey
b08c9f004c revert erroneous change
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3776 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-11 18:12:24 +00:00
David Lawrence Ramsey
87b37bde9b add miscellaneous minor cleanups to do_browser(), do_browse_from(), and
browser_init()


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3775 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-11 17:25:12 +00:00
David Lawrence Ramsey
35c9fa6da3 clean up the TODO list a bit more
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3774 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-11 17:01:45 +00:00
David Lawrence Ramsey
083cc12861 mention the need to handle resizes better in the TODO list, and clean it
up a bit


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3773 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-11 16:58:20 +00:00
David Lawrence Ramsey
4ea2eac360 comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3772 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-09 00:52:16 +00:00
David Lawrence Ramsey
e328169b6d remove unneeded #ifdef
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3771 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-09 00:50:23 +00:00
David Lawrence Ramsey
4e68588596 revert erroneous change
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3770 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-09 00:47:21 +00:00
David Lawrence Ramsey
7f3fdb4790 in titlebar(), don't display any blank space for the state if we're in
the file browser, as Pico doesn't, and since path is always assumed to
be NULL if DISABLE_BROWSER is defined, put the check for its being NULL
in a DISABLE_BROWSER #define


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3769 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-08 23:45:15 +00:00
David Lawrence Ramsey
d59c42363b typo fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3768 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-08 21:23:53 +00:00
David Lawrence Ramsey
c284e1ddb8 fix inaccurate comments
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3767 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-07 16:21:45 +00:00
David Lawrence Ramsey
664e0da48e still more cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3766 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-07 16:12:24 +00:00
David Lawrence Ramsey
a5322ee5ad another cosmetic fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3765 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-07 15:54:32 +00:00
David Lawrence Ramsey
c2e585ef6c per John M. Gabriele's patch with a few tweaks by me, in
doc/syntax/ruby.nanorc, improve highlighting of constants


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3764 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-07 13:54:38 +00:00
David Lawrence Ramsey
2c36e2eb00 consolidate do_scroll_(up|down)() into do_(up|down)(), as they have a
lot of common code


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3763 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-06 22:17:47 +00:00
David Lawrence Ramsey
bf104950fd in do_scroll_up() and do_scroll_down(), fix problems where, after
scrolling, the previous and current lines would not be updated properly
if the current line was not the first or last line of the edit window


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3762 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-06 20:40:53 +00:00
David Lawrence Ramsey
ec15fdb30b comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3761 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-06 20:36:01 +00:00
David Lawrence Ramsey
b006367878 comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3760 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-06 18:29:37 +00:00
David Lawrence Ramsey
99a06d344f add another post-2.0 item
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3759 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-05 19:52:27 +00:00
David Lawrence Ramsey
aee00d4d14 if the mark isn't on, allow Meta-} and Meta-{ to indent and unindent
only the current line, just as it would if the mark covered only the
current line, instead of displaying a statusbar message and quitting


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3758 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-05 18:42:22 +00:00
David Lawrence Ramsey
7f80174373 another cosmetic fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3757 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-05 16:46:22 +00:00
David Lawrence Ramsey
a89e39a35e cosmetic fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3756 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-05 16:09:36 +00:00
David Lawrence Ramsey
afeed5f640 comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3755 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-05 15:21:18 +00:00
David Lawrence Ramsey
aa4eb40e71 another cosmetic fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3754 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-05 15:20:16 +00:00
David Lawrence Ramsey
19cb1e6de6 cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3753 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-05 14:27:14 +00:00
David Lawrence Ramsey
85e35e67a2 in get_full_path(), don't return NULL when the current directory doesn't
exist, as we can still recover from that, and also add various cleanups


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3752 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-05 14:14:06 +00:00
David Lawrence Ramsey
51b7b0e7d8 in browser_refresh() and titlebar(), don't display overly long filenames
with ellipses if the number of columns is extremely small; also, in
certain places, call wnoutrefresh(bottomwin) after calling
blank_statusbar(), in order to ensure that the statusbar is actually
blanked


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3751 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-05 06:38:47 +00:00
David Lawrence Ramsey
0cae087784 cosmetic fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3750 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-05 05:43:20 +00:00
David Lawrence Ramsey
567d471681 in display_string(), properly handle buf[start_index]'s being a null
terminator


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3749 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-05 05:31:21 +00:00
David Lawrence Ramsey
f1a8e7221d still more miscellaneous minor fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3748 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-05 05:14:11 +00:00
David Lawrence Ramsey
ca53a6e35a another miscellaneous minor fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3747 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-05 04:04:30 +00:00
David Lawrence Ramsey
a7bdd2e9c6 in do_browse_from(), during the operating directory check, if path isn't
NULL, don't bother freeing it before mallocstrcpy()ing operating_dir
into it, as the latter operation will free it


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3746 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-05 03:38:49 +00:00
David Lawrence Ramsey
4953e49d92 miscellaneous minor fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3745 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-05 03:24:39 +00:00
David Lawrence Ramsey
051e953f17 yet another comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3744 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-05 02:35:03 +00:00
David Lawrence Ramsey
bc7dc36c7d make the file browser's mouse support consistent with other mouse
support, and add a few comment fixes


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3743 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-05 02:34:37 +00:00
David Lawrence Ramsey
60d22f012a in do_browser() and do_help(), detect the previous selected file or
directory and the previous help text line properly again


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3742 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-05 02:24:23 +00:00
David Lawrence Ramsey
2f7c1a0613 calculate width in browser_init(), as it's more consistent
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3741 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-05 02:05:24 +00:00
David Lawrence Ramsey
b520d509cc still more cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3740 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-05 01:13:19 +00:00
David Lawrence Ramsey
c0ba4bf3e0 simplify and remove redundancies from various bits
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3739 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-05 01:10:18 +00:00
David Lawrence Ramsey
f8d085d2ed in browser_refresh(), fix problem where width wouldn't be properly
initialized sometimes


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3738 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-04 23:47:22 +00:00
David Lawrence Ramsey
3528a034f2 more comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3737 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-04 23:44:17 +00:00
David Lawrence Ramsey
49c85d076c comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3736 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-04 23:05:27 +00:00
David Lawrence Ramsey
015c434be1 cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3735 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-04 23:03:59 +00:00
David Lawrence Ramsey
afa1542b76 simplify
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3734 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-04 22:17:39 +00:00
David Lawrence Ramsey
9f2e3f7654 comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3733 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-04 21:47:06 +00:00
David Lawrence Ramsey
458d004efe cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3732 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-04 21:46:34 +00:00
David Lawrence Ramsey
139dc4a844 add another missing comment
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3731 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-04 13:54:34 +00:00
David Lawrence Ramsey
a0283b7710 simplify, and add missing comments
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3730 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-04 03:49:15 +00:00
David Lawrence Ramsey
345a5b84bf comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3729 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-04 03:47:36 +00:00
David Lawrence Ramsey
d44f322f6d remove unneeded blank lines
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3728 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-03 18:49:55 +00:00
David Lawrence Ramsey
ed467e50ff in browser_refresh(), add translator comments explaining the maximum
intended lengths of "(dir)" and "(parent dir)"; also add various
formatting fixes


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3727 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-03 18:40:53 +00:00
David Lawrence Ramsey
7d6dd41a4a still more comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3726 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-02 21:15:36 +00:00
David Lawrence Ramsey
a43827d1cb more comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3725 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-02 21:12:58 +00:00
David Lawrence Ramsey
224b6d5b77 add missing comment
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3724 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-02 20:56:34 +00:00
David Lawrence Ramsey
5ee89c6898 yet another cosmetic fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3723 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-02 20:41:21 +00:00
David Lawrence Ramsey
6fa1144d1a more cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3722 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-02 19:04:28 +00:00
David Lawrence Ramsey
96514a242f add clarifying comment
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3721 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-02 18:49:30 +00:00
David Lawrence Ramsey
6b90657d94 more miscellaneous minor fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3720 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-02 18:45:45 +00:00
David Lawrence Ramsey
85ffaeeefc in browser_refresh(), if a filename is too long, truncate and display an
ellipsis before it, as titlebar() does; also add various miscellaneous
minor fixes


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3719 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-02 18:29:49 +00:00
David Lawrence Ramsey
fef3c8679d fix breakage
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3718 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-02 17:36:55 +00:00
David Lawrence Ramsey
c021925abb in browser_init(), fix off-by-one error when calculating longest that
kept the rightmost column of the screen from being used


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3717 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-02 17:00:07 +00:00
David Lawrence Ramsey
46c29c4351 still more comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3716 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-02 15:54:14 +00:00
David Lawrence Ramsey
17e12691b0 fix breakage
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3715 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-02 15:50:55 +00:00
David Lawrence Ramsey
3d7c2bd2d6 more comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3714 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-07-02 15:39:34 +00:00
David Lawrence Ramsey
21cdee5517 update changelog entries
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3713 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-30 22:36:29 +00:00
David Lawrence Ramsey
0457eb97af comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3712 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-30 22:34:10 +00:00
David Lawrence Ramsey
a43b10854f add more miscellaneous cleanups
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3711 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-30 22:28:37 +00:00
David Lawrence Ramsey
a662c5579a add miscellaneous cleanups
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3710 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-30 21:13:55 +00:00
David Lawrence Ramsey
990a695f54 in do_browser() and do_refresh(), further simplify screen update
handling


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3709 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-30 21:06:15 +00:00
David Lawrence Ramsey
6f499096ad in do_browser() and do_help(), simplify screen update handling
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3708 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-30 21:01:55 +00:00
David Lawrence Ramsey
296ee153b0 simplify
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3707 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-30 14:28:32 +00:00
David Lawrence Ramsey
8f975a11f0 comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3706 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-30 14:25:34 +00:00
David Lawrence Ramsey
2458b295d9 fix breakage
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3705 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-30 14:21:29 +00:00
David Lawrence Ramsey
a4e92c8ad6 in striponedir(), return the stripped path instead of modifying path
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3704 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-30 14:14:40 +00:00
David Lawrence Ramsey
fef232a672 in striponedir(), since all the strings passed to this are dynamically
allocated, use null_at() to strip the directory from the string


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3703 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-30 13:58:29 +00:00
David Lawrence Ramsey
8cd0d2c751 cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3702 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-30 07:27:15 +00:00
David Lawrence Ramsey
0fd5d60477 revert last changes, as the "Go to Directory" prompt can allow movement
anywhere, so the error message won't make sense in some cases


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3701 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-30 07:26:14 +00:00
David Lawrence Ramsey
780f1d3f78 fix breakage
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3700 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-30 07:12:14 +00:00
David Lawrence Ramsey
6cefb9f21a in do_browser(), display an error messsage on the statusbar if we try to
move up from "/" via the "Go to Directory" prompt, for consistency


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3699 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-30 07:03:42 +00:00
David Lawrence Ramsey
d04037760d in do_browser(), after entering "..", select the directory we were in
before instead of the first filename in the list, as Pico does; add new
function browser_select_filename() to help do this properly


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3698 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-30 06:41:31 +00:00
David Lawrence Ramsey
ef45a2528c add missing comments
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3697 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-30 05:12:53 +00:00
David Lawrence Ramsey
727c244ab6 in findnextfile(), simplify the uses of tail()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3696 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-30 04:46:24 +00:00
David Lawrence Ramsey
68e2c375e7 in browser_refresh(), for the ".." entry, display "(parent dir)" instead
of "(dir)", as Pico does


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3695 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-30 03:19:28 +00:00
David Lawrence Ramsey
99c87ccb0c in browser_refresh(), fix problems where translated versions of "(dir)"
could be truncated, and where file sizes could be too long


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3694 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-30 02:44:11 +00:00
David Lawrence Ramsey
4e71ab6891 add missing blank line
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3693 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-30 02:26:26 +00:00
David Lawrence Ramsey
b0c1bc28f8 in browser_refresh(), simplify more things
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3692 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-29 15:46:05 +00:00
David Lawrence Ramsey
0e92adf153 in browser_refresh(), simplify the for loop
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3691 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-29 15:28:39 +00:00
David Lawrence Ramsey
3b722460b8 in do_browser(), remove unneeded call to blank_edit()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3690 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-29 15:08:00 +00:00
David Lawrence Ramsey
865ad94100 in get_mouseinput(), handle both releases and clicks of mouse button 1,
as the mouse support works better that way


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3689 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-29 01:38:58 +00:00
David Lawrence Ramsey
6c8f92c092 cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3688 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-28 23:27:07 +00:00
David Lawrence Ramsey
2f94f42730 in do_browser(), refactor and simplify the mouse support, modeling it
after do_mouse() for consistency


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3687 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-28 22:38:11 +00:00
David Lawrence Ramsey
98e4d4f3b1 fix mouse support so that it really ignores everything except releases
of button 1 (i.e, left clicks)


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3686 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-28 21:54:55 +00:00
David Lawrence Ramsey
f23cc46655 comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3685 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-27 00:39:42 +00:00
David Lawrence Ramsey
decae6c25e per Mike Frysinger's patch, in doc/syntax/c.nanorc, since .i and .ii are
preprocessed C and C++ output, colorize them there


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3684 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-26 23:40:31 +00:00
David Lawrence Ramsey
74d8ebc041 add various option description fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3683 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-26 04:39:31 +00:00
David Lawrence Ramsey
899d0360ec Back to CVS
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3682 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-26 04:03:31 +00:00
David Lawrence Ramsey
db5b54767c GNU nano 1.3.12
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3680 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-26 04:01:31 +00:00
David Lawrence Ramsey
1df1c9e4c0 fix #ifdefs
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3679 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-25 17:25:13 +00:00
David Lawrence Ramsey
5c8d316a27 per John M. Gabriele's patch with a few tweaks by me, in README and
README.CVS, add various cosmetic and wording improvements


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3678 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-25 04:37:05 +00:00
David Lawrence Ramsey
d76de38109 in edit_draw(), don't display any statusbar message when we get a
zero-length regex, as we can get one under legitimate circumstances


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3677 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-21 20:51:36 +00:00
David Lawrence Ramsey
5c878088a1 in update_line(), remove unneeded assert, and now-unused function
check_linenumbers()


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3676 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-21 16:54:51 +00:00
Jordi Mallach
d4401008a4 ca, fr, hu, nl updates from the TP.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3675 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-21 16:49:00 +00:00
David Lawrence Ramsey
a4fc77a5da in digits(), return the proper number of digits when n is exactly 10,
and simplify it to use a for loop instead of a while loop


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3674 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-21 16:01:20 +00:00
David Lawrence Ramsey
5aaa1d7dab comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3673 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-21 01:30:00 +00:00
David Lawrence Ramsey
6885a1523c fix erroneous version number
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3672 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-20 16:12:22 +00:00
David Lawrence Ramsey
af72c16da4 fix incorrect "Project-Id-Version" entries in several translations
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3671 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-20 13:25:49 +00:00
Jordi Mallach
9e2f8ea668 Bulgarian and Irish updates from the TP.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3670 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-19 17:46:13 +00:00
David Lawrence Ramsey
23ed015725 in help_init(), display the shortcut list help text even when we have
fewer than 24 columns, for consistency with the toggle help text, and
add various minor consistency fixes


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3669 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-19 16:04:42 +00:00
David Lawrence Ramsey
bd2c8f3d2d in help_init(), make sure we have enough memory in all cases when
displaying the shortcut and toggle lists; and wrap the shortcut list
help text, for consistency with the toggle help text


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3668 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-19 15:35:35 +00:00
David Lawrence Ramsey
df7aaed743 comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3667 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-19 14:24:12 +00:00
David Lawrence Ramsey
186c795b88 in help_line_len(), properly handle the case where we can't break the
line of help text, and wrap the line of help text at (COLS - 1) instead
of (COLS - 8), for consistency


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3666 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-19 14:18:22 +00:00
Jordi Mallach
832994804e Updated Bulgarian translation from the TP.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3665 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-19 13:01:45 +00:00
David Lawrence Ramsey
bac8908814 cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3664 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-18 15:26:51 +00:00
David Lawrence Ramsey
ee995b7d27 fix screen update problem when copying the last line on the screen with
the mark off and CUT_TO_END set to FALSE


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3663 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-18 15:21:11 +00:00
Jordi Mallach
5b0781dbf3 French manpages update by Jean-Philippe.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3662 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-17 19:27:38 +00:00
Jordi Mallach
3dd9d710a1 Several translation updates submitted by translators for the 1.3.12 release.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3661 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-17 02:19:17 +00:00
David Lawrence Ramsey
4f2a073cf9 per Benno Schulenberg's patch, in do_writeout(), fix problem where the
modifiers at the "Write File" prompt were marked for translation via
gettext no-ops but never actually translated; also, in do_insertfile(),
use actual gettext calls instead of no-ops, for consistency


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3660 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-14 13:19:43 +00:00
David Lawrence Ramsey
b0226fb86a in faq.html, update section 5.3, due to the display fix for two-column
Unicode characters


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3659 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-12 20:26:38 +00:00
Jordi Mallach
386cc99385 Hungarian and French updates from the TP.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3658 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-12 09:07:01 +00:00
David Lawrence Ramsey
03979d7a08 another comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3657 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-11 19:15:59 +00:00
David Lawrence Ramsey
d4686b8e51 comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3656 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-11 19:14:14 +00:00
David Lawrence Ramsey
503bad02fe disable mouse support while suspended
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3655 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-09 18:24:37 +00:00
David Lawrence Ramsey
9134781eaf typo fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3654 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-09 17:27:17 +00:00
David Lawrence Ramsey
f073884e03 more comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3653 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-09 17:22:32 +00:00
David Lawrence Ramsey
f9d13f02f3 comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3652 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-09 17:10:45 +00:00
David Lawrence Ramsey
f32e1dd589 in do_spell(), set currshortcut to main_list before calling
total_refresh() near the end of the function, so that we don't display
the wrong shortcut list


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3651 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-09 17:09:51 +00:00
David Lawrence Ramsey
b5e66d05cb make the changed suspend/continue routines work properly under slang
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3650 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-09 16:57:41 +00:00
David Lawrence Ramsey
3ce7e9dcac in do_spell(), call total_redraw() instead of total_refresh() after
running the spell-checker, since the latter will display the wrong
shortcut list


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3649 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-09 16:34:00 +00:00
David Lawrence Ramsey
85c775a3a3 make suspension clear the screen and put the cursor on the last line
before displaying anything, as Pico does


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3648 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-09 16:04:19 +00:00
David Lawrence Ramsey
8d42a3bfaa remove erroneous #ifdefs
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3647 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-09 15:52:00 +00:00
David Lawrence Ramsey
a6a06a99af add one last TODO entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3646 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-09 12:48:55 +00:00
David Lawrence Ramsey
c9855a7e46 fix changelog entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3645 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-09 12:46:31 +00:00
David Lawrence Ramsey
9c2f7ab341 per Benno Schulenberg's patch, in help_init(), if one of the help
strings ends in newlines followed by a space, move the space to the next
help string to make it easier for translators to see


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3644 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-09 12:44:34 +00:00
Jordi Mallach
11516e0384 ca, ga, it and nl from the TP.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3643 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-09 09:37:06 +00:00
David Lawrence Ramsey
1d60d78dbd fix typo
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3642 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-08 16:56:00 +00:00
David Lawrence Ramsey
9368217972 add various minor regex and comment tweaks, mostly by John M. Gabriele
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3641 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-08 12:49:57 +00:00
David Lawrence Ramsey
131909fdea remove now-unneeded changelog entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3640 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-08 02:56:19 +00:00
David Lawrence Ramsey
69395f457d yet more wording fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3639 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-08 02:55:42 +00:00
David Lawrence Ramsey
fed0195f2d still more wording fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3638 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-08 02:54:20 +00:00
David Lawrence Ramsey
4bb60db078 more minor wording fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3637 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-08 02:50:56 +00:00
David Lawrence Ramsey
25bc37e7c8 add minor documentation fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3636 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-08 02:45:38 +00:00
David Lawrence Ramsey
69e1ce56df per Benno Schulenberg's patch with a few tweaks by me, add minor wording
fixes to various messages


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3635 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-08 02:37:45 +00:00
David Lawrence Ramsey
9e553b21f3 per Benno Schulenberg's patch, add a wording fix to help_init()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3634 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-08 02:16:37 +00:00
David Lawrence Ramsey
f94b993535 per Benno Schulenberg's patch, add single quotes around the invalid
string argument in the error message about unterminated strings, to
avoid confusion


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3633 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-08 02:13:37 +00:00
David Lawrence Ramsey
2d0d60b796 fix breakage
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3632 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-08 02:05:34 +00:00
David Lawrence Ramsey
f102208c05 don't display "Unknown Command" on the statusbar if we get an unknown
escape sequence at the statusbar prompt


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3631 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-08 02:01:49 +00:00
David Lawrence Ramsey
c504e40a81 add one more comment tweak by John M. Gabriele
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3630 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-07 02:58:39 +00:00
David Lawrence Ramsey
c923eb9c6a add minor documentation fixes from John M. Gabriele
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3629 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-06 22:15:44 +00:00
David Lawrence Ramsey
6cca33745c wording fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3628 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-06 19:42:22 +00:00
David Lawrence Ramsey
96dce26401 various minor include fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3627 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-06 18:41:58 +00:00
David Lawrence Ramsey
b9c5a5c879 add a few more items to the TODO list
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3626 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-05 20:35:28 +00:00
David Lawrence Ramsey
0e963be59d mention the removal of the workaround for glibc 2.2.3's broken regexec()
in UPGRADE too


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3625 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-05 15:44:55 +00:00
David Lawrence Ramsey
b5a7bbf4f3 remove the workaround for glibc 2.2.3's broken regexec(), and replace it
with a FAQ entry explaining the problem, since it could break anything
using extended regular expressions, and glibc 2.2.3 is old


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3624 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-05 15:41:23 +00:00
David Lawrence Ramsey
57d81ecef9 update changelog entries
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3623 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-04 18:05:17 +00:00
David Lawrence Ramsey
f94fbbc9f4 fix typos from when the old section 4.4 was removed
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3622 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-04 17:27:58 +00:00
David Lawrence Ramsey
7d9e5bfb36 in faq.html, add minor punctuation and wording fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3621 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-04 17:22:16 +00:00
David Lawrence Ramsey
0517d09788 update to deal with nano.html
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3620 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-04 15:39:36 +00:00
David Lawrence Ramsey
888bc14416 amother cosmetic fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3619 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-04 13:40:39 +00:00
David Lawrence Ramsey
4dbdbd4660 per Benno Schulenberg's patch, fix changelog entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3618 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-04 13:27:50 +00:00
David Lawrence Ramsey
497a9a2032 in ngetdelim(), set errno to EINVAL if stream is not a valid file
stream; this matches the manual page


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3617 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-04 00:15:56 +00:00
David Lawrence Ramsey
106c1bf3d1 beep when we get an unhandled shortcut or toggle, as Pico does
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3616 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-03 19:36:02 +00:00
David Lawrence Ramsey
f70f67bd10 more miscellaneous minor fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3615 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-03 17:31:52 +00:00
David Lawrence Ramsey
299ab27363 add minor nanorc regex tweaks by John M. Gabriele, and minor sh regex
tweaks by Benno Schulenberg


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3614 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-03 12:41:02 +00:00
David Lawrence Ramsey
a95bdee2cf cosmetic fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3613 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-03 02:09:10 +00:00
David Lawrence Ramsey
76436426de cosmetic fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3612 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-02 21:21:53 +00:00
David Lawrence Ramsey
5031ddf8ea don't display "Unknown Command" after a mouse click
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3611 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-02 03:09:27 +00:00
David Lawrence Ramsey
8f07329d00 comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3610 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-01 20:23:24 +00:00
David Lawrence Ramsey
a004334024 fix breakage
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3609 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-01 19:54:14 +00:00
David Lawrence Ramsey
cb11a20333 add missing blank line
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3608 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-01 18:37:37 +00:00
David Lawrence Ramsey
e4157968fb move the nanorc regexes to a separate file too
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3607 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-01 18:35:39 +00:00
David Lawrence Ramsey
cf876d5396 update to deal with rnano.1.html
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3606 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-01 17:42:22 +00:00
David Lawrence Ramsey
97eb8e6551 update, since we now use nanorc.sample.in instead of nanorc.sample
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3605 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-01 17:40:42 +00:00
David Lawrence Ramsey
5e6434cf54 move color regexes into separate files, and restructure things so that
they're installed properly and nanorc.sample references them properly


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3604 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-01 17:23:28 +00:00
David Lawrence Ramsey
17ab6ed580 in doc/man/Makefile.am, simplify the setting of SUBDIRS
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3603 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-01 16:53:03 +00:00
David Lawrence Ramsey
6119fabdcc in nanorc.sample, per John M. Gabriele's patch with a few tweaks by me,
add regexes for Ruby


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3602 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-01 02:19:54 +00:00
David Lawrence Ramsey
5f90b4fbd8 in nanorc.sample, per John M. Gabriele's patch, tweak the "nanorc"
regexes to color keywords bright green instead of cyan


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3601 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-01 01:58:42 +00:00
David Lawrence Ramsey
3dc0e23e0c in nanorc.sample, simplify the extensions associated with the "nanorc"
regexes


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3600 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-01 01:54:41 +00:00
David Lawrence Ramsey
c1662f2eb7 in nanorc.sample, per John M. Gabriele's patch, tweak the "nanorc"
regexes to color comments bright blue instead of blue


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3599 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-01 01:51:41 +00:00
David Lawrence Ramsey
95ff10ec47 in nanorc.sample, per Benno Schulenberg's patch, tweak the "shellscript"
regexes to properly color all special variables, such as $? and $@


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3598 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-01 01:26:35 +00:00
David Lawrence Ramsey
1f5cf0d111 redundancy fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3597 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-06-01 01:15:06 +00:00
David Lawrence Ramsey
2888964c76 miscellaneous minor fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3596 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-30 20:51:15 +00:00
David Lawrence Ramsey
f397dae5c5 in src/Makefile.am, remove "-Iintl" from INCLUDES, as we don't use an
intl directory inside the source directory anymore


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3595 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-28 22:33:14 +00:00
David Lawrence Ramsey
a8239c313d another cosmetic fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3594 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-28 22:24:03 +00:00
David Lawrence Ramsey
8d2d0d9a11 in various functions in rcfile.c, add quotes around invalid string
arguments in error messages, for consistency; also, move
color_to_short() dowm so that it's near parse_colors(), for consistency


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3593 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-28 19:00:16 +00:00
David Lawrence Ramsey
5cadadd4c2 in color_update(), fix incorrect setting of defcolor, which prevented
the reserved "default" syntax from being handled correctly


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3592 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-28 18:51:48 +00:00
David Lawrence Ramsey
8602fd6aaa typo fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3591 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-28 18:43:21 +00:00
David Lawrence Ramsey
7f1b1198a7 more cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3590 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-28 17:30:28 +00:00
David Lawrence Ramsey
a5b1ca2808 cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3589 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-28 17:09:49 +00:00
David Lawrence Ramsey
5c7d88dc16 in parse_verbatim_kbinput(), don't include the ability to enter a
Unicode sequence via verbatim input mode if we're not in a UTF-8 locale


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3588 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-28 16:25:15 +00:00
David Lawrence Ramsey
a620e683e7 don't blank the statusbar after getting verbatim input if constant
cursor position display is on


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3587 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-27 18:19:03 +00:00
David Lawrence Ramsey
100bc30d63 in check_statusblank(), avoid redundant updates when statusblank is 0
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3586 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-27 18:06:11 +00:00
David Lawrence Ramsey
184955d0c1 in faq.html, update section 3.8 to mention the new "Unicode Input"
prompt, and how Unicode input only works when Unicode support is enabled


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3585 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-27 17:58:41 +00:00
David Lawrence Ramsey
6fb6689f0f various input/output fixes: allow normal typing of high-bit control
characters, as Pico does; in do_verbatim_input(), unconditionally blank
the statusbar as soon as we're finished getting input; and in
parse_verbatim_kbinput(), don't include the ability to enter a Unicode
sequence via verbatim input mode if ENABLE_UTF8 isn't defined


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3584 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-27 17:39:19 +00:00
David Lawrence Ramsey
a7ca9008bc remove unneeded comment
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3583 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-27 17:17:06 +00:00
David Lawrence Ramsey
f451d6a64a add Benno Schulenberg's translator comments, and fix typos in the last
changelog entry


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3582 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-27 16:02:48 +00:00
David Lawrence Ramsey
12e3708ead per Benno Schulenberg's patch with a few tweaks by me, if we're using
verbatim input to enter a Unicode sequence, indicate it on the
statusbar; also, refactor the Unicode sequence handler function to
remove redundant code


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3581 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-27 15:52:26 +00:00
David Lawrence Ramsey
9a5139e9d3 add missing changelog entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3580 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-27 15:18:05 +00:00
David Lawrence Ramsey
e2afdbb14b another typo fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3579 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-27 14:46:56 +00:00
David Lawrence Ramsey
5b1d876045 typo fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3578 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-26 18:50:44 +00:00
David Lawrence Ramsey
f4cf5edd06 error message improvements
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3577 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-26 17:06:05 +00:00
David Lawrence Ramsey
5566e442b1 in parse_rcfile(), properly handle rcfiles that don't end in newlines
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3576 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-26 13:49:00 +00:00
David Lawrence Ramsey
db39a5e80d in parse_rcfile(), change variable i from an int to a size_t, for
consistency


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3575 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-26 13:38:49 +00:00
David Lawrence Ramsey
558d34f5ba handle all syntaxes without associated colors in parse_rcfile()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3574 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-26 13:27:28 +00:00
David Lawrence Ramsey
0b4920adc9 in parse_rcfile(), properly generate an error if we've read in a syntax
without any associated color command


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3573 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-26 12:56:30 +00:00
David Lawrence Ramsey
2ef7dae971 more comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3572 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-26 11:58:37 +00:00
David Lawrence Ramsey
3c780e1d10 fix edit_redraw() breakage
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3571 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-26 03:46:03 +00:00
David Lawrence Ramsey
561db3a7c4 comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3570 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-26 03:22:44 +00:00
David Lawrence Ramsey
bd6e968506 redundancy fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3569 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-26 03:12:35 +00:00
David Lawrence Ramsey
d5228b3d82 in edit_redraw(), fix problem where not all lines would be updated
properly if we'd scrolled off the screen and the mark was on


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3568 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-26 03:04:24 +00:00
David Lawrence Ramsey
964722a281 add missing blank line
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3567 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-26 03:02:50 +00:00
David Lawrence Ramsey
1320d29267 remove duplicate escape sequence-interpreting code
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3566 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-25 22:10:27 +00:00
David Lawrence Ramsey
d6eb17515d in parse_kbinput(), if we get Escape followed by an escape sequence,
interpret the escape sequence for consistency; also ignore unhandled
function keys for consistency


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3565 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-25 21:39:25 +00:00
David Lawrence Ramsey
e328ae9423 in shortcut_init(), remove the "Go To Line" shortcut in the replace
shortcut list, for compatibility with Pico


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3564 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-25 04:02:50 +00:00
David Lawrence Ramsey
c7251fa4fc comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3563 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-24 21:12:08 +00:00
David Lawrence Ramsey
0c9551a4dd per Benno Schulenberg's patch, with a few tweaks by me, add miscellaneous
minor fixes to nanorc.sample


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3562 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-24 21:07:10 +00:00
David Lawrence Ramsey
2a56ce79c5 per Benno Schulenberg's patch with some additions of mine, explain the
mouse support in more detail, and sync the text of its description across
all documentation


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3561 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-24 20:55:44 +00:00
David Lawrence Ramsey
0b65402b60 fix more breakage
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3560 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-24 20:39:03 +00:00
David Lawrence Ramsey
305d889e9d more cleanly ignore unhandled meta key sequences and escape sequences;
to get this to work properly, add a shortcut for moving to the next
search/replace string


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3559 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-24 19:48:03 +00:00
David Lawrence Ramsey
8aa9ac3657 don't call wrap_reset() if we use verbatim input
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3558 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-24 18:36:38 +00:00
David Lawrence Ramsey
3af1e50855 per Benno Schulenberg's patch, fix the statusbar's not blanking properly
after verbatim input


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3557 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-24 18:23:21 +00:00
David Lawrence Ramsey
b4428a0268 fix breakage
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3556 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-24 18:10:41 +00:00
David Lawrence Ramsey
592f46bf35 capitalization fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3555 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-24 17:37:39 +00:00
David Lawrence Ramsey
8e341e1b22 ignore unhandled meta key sequences and escape sequences, and indicate
it on the statusbar when we get an unhandled shortcut or toggle, as Pico
does


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3554 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-24 17:36:00 +00:00
David Lawrence Ramsey
5538150e0a more miscellaneous documentation fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3553 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-23 16:23:10 +00:00
David Lawrence Ramsey
4567277310 more various wording fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3552 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-23 16:17:37 +00:00
David Lawrence Ramsey
8816564bf2 comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3551 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-22 18:30:09 +00:00
David Lawrence Ramsey
f1e5627ebe add missing blank line to the help text when NANO_TINY is defined and
DISABLE_HELP isn't, plus a formatting fix


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3550 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-22 18:28:20 +00:00
David Lawrence Ramsey
9133cbe258 add missing #ifdef
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3549 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-22 15:45:24 +00:00
David Lawrence Ramsey
6fe4e2be04 avoid unnecessary scrolling when moving to the last line of the help
text


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3548 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-22 02:23:56 +00:00
David Lawrence Ramsey
ef0d5a7637 handle prepending of wrapped text in one place instead of many, so that
it always works consistently


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3547 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-22 02:08:49 +00:00
David Lawrence Ramsey
6b49e9e54e cosmetic fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3546 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-22 01:29:30 +00:00
David Lawrence Ramsey
139fa65c66 more comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3545 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-22 01:26:24 +00:00
David Lawrence Ramsey
2829aae635 comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3544 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-22 01:24:09 +00:00
David Lawrence Ramsey
be231d39ad per Benno Schulenberg's patch, add more shortcut description and
translator comment tweaks


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3543 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-21 21:37:21 +00:00
David Lawrence Ramsey
b7acc735db per Benno Schulenberg's patch, in nano.texi, change all occurrences of
"file name" to "filename"


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3542 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-21 21:32:13 +00:00
David Lawrence Ramsey
ce8623669b handle statusbar blanking in one place instead of many, so that it
always works consistently, per Benno Schulenberg's patch (with a few
tweaks of mine); also, blank the statusbar after 26 keystrokes instead
of 25, for compatibility with Pico


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3541 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-21 21:23:21 +00:00
David Lawrence Ramsey
41b8972dc9 various miscellaneous cutting fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3540 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-21 20:03:43 +00:00
David Lawrence Ramsey
83635c2155 in do_input(), don't blow away the cutbuffer when the shortcut we get is
do_cut_till_end()


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3539 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-21 17:58:08 +00:00
David Lawrence Ramsey
124978a5bc in nanorc.sample, further simplify the "groff" regexes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3538 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-21 17:51:54 +00:00
David Lawrence Ramsey
44abeea53c in nanorc.sample, remove unneeded foreground color for the Java source
regex used to highlight trailing whitespace, since we now support
background colors without foreground colors


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3537 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-21 17:27:04 +00:00
David Lawrence Ramsey
252ecebaf7 wording fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3536 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-21 17:15:41 +00:00
David Lawrence Ramsey
376eea3d25 properly highlight the "include" command
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3535 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-21 17:15:06 +00:00
David Lawrence Ramsey
f320d31ef0 in nanorc.sample, replace instances of "\w" with its equivalent
"[0-9A-Za-z_]", and instances of "\W" with its equivalent
"[^0-9A-Za-z_]", for greater readability


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3534 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-21 16:50:16 +00:00
David Lawrence Ramsey
c0899cb8eb remove unneeded blank line
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3533 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-20 17:29:14 +00:00
David Lawrence Ramsey
51cb7fd293 in get_control_kbinput(), fix Ctrl-? breakage
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3532 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-20 17:19:09 +00:00
David Lawrence Ramsey
39bd1b3597 cosmetic fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3531 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-20 13:11:56 +00:00
David Lawrence Ramsey
cd243f558a in break_line(), handle newlines consistently when searching for the
last blank in the first group of blanks in the range of (goal - 1)


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3530 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-19 23:27:16 +00:00
David Lawrence Ramsey
af7677ecb6 in help_init(), add various wording fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3529 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-19 23:07:02 +00:00
David Lawrence Ramsey
d99b0e1cf3 in display_string(), properly display double-column characters if
they're past the first virtual page and their first column is covered by
the "$" displayed at the beginning of the line


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3528 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-19 17:50:01 +00:00
David Lawrence Ramsey
b9446ac429 really fix handling of NANO_CONTROL_8
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3527 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-19 14:26:16 +00:00
David Lawrence Ramsey
c9d76207f3 in src/Makefile.am, if we're uninstalling, remove the "rnano" symlink
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3526 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-18 20:18:36 +00:00
David Lawrence Ramsey
75e9dfe5a4 comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3525 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-18 17:50:08 +00:00
David Lawrence Ramsey
c074edfe36 wording fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3524 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-18 17:29:34 +00:00
David Lawrence Ramsey
2d3d1e9324 in break_line(), fix problem where tab widths in columns are always
calculated as tabsize


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3523 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-18 17:28:16 +00:00
David Lawrence Ramsey
139bae0826 update TODO and UPGRADE for nano 2.0, since we're now in a feature
freeze


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3522 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-17 13:38:07 +00:00
Jordi Mallach
b6aaa8f365 Added Irish translation from the TP.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3521 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-17 06:54:47 +00:00
David Lawrence Ramsey
60edb0a989 improve NANO_REFRESH_KEY handling
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3520 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-15 15:17:50 +00:00
David Lawrence Ramsey
10f8e880ba cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3519 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-15 14:47:16 +00:00
David Lawrence Ramsey
e2c9c58104 typo fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3518 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-15 14:34:11 +00:00
David Lawrence Ramsey
8803dd8768 remove unneeded blank lines
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3517 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-15 14:16:55 +00:00
David Lawrence Ramsey
c1c818ebd5 comment and formatting fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3516 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-14 18:22:01 +00:00
David Lawrence Ramsey
d8d1e26e54 in help_init(), properly use mbstrlen() instead of strlen() when
calculating the amount of space available for "^Space" and "M-Space"


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3515 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-14 17:48:01 +00:00
David Lawrence Ramsey
4239c3c218 remove unneeded whitespace
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3514 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-14 15:38:54 +00:00
David Lawrence Ramsey
e77ebfa3fa more documentation updates from Benno Schulenberg, with a few tweaks and
additions by me


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3513 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-14 15:19:38 +00:00
David Lawrence Ramsey
3fe5acebea cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3512 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-13 18:06:43 +00:00
David Lawrence Ramsey
4f4a0b9abb fix copyright notice in do_credits()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3511 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-13 16:32:24 +00:00
David Lawrence Ramsey
a01f131960 more comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3510 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-13 15:03:09 +00:00
David Lawrence Ramsey
f70eca06be comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3509 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-13 14:59:17 +00:00
David Lawrence Ramsey
9dbd0d26c2 fix bad #ifdef
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3508 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-13 13:02:14 +00:00
David Lawrence Ramsey
b7d8926209 typo fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3507 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-12 23:59:01 +00:00
David Lawrence Ramsey
660e05be3d miscellaneous cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3506 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-12 19:30:28 +00:00
David Lawrence Ramsey
75850e501a in faq.html, make the link to the nano CVS page a bit more readable
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3505 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-12 15:36:32 +00:00
David Lawrence Ramsey
797c9dd0f6 typo fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3504 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-12 14:04:08 +00:00
David Lawrence Ramsey
f5d6d9985b drop the Meta-] and Meta-[ aliases for Meta-} and Meta-}, and change the
shortcut to find the matching bracket from Ctrl-] back to Meta-], since
Ctrl-] is used as the telnet escape key


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3503 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-12 12:37:53 +00:00
David Lawrence Ramsey
5b94b8e322 cosmetic fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3502 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-11 12:42:08 +00:00
David Lawrence Ramsey
0547f51816 cosmetic fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3501 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-11 11:13:54 +00:00
David Lawrence Ramsey
08f16e2fc7 in free_chararray(), assert that array isn't NULL, for consistency with
the other free_.*() functions; also fix potential memory corruption
problem when copying text


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3500 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-11 01:53:33 +00:00
David Lawrence Ramsey
bbabf9562a fix bracket matching breakage in do_statusbar_input() since its shortcut
was changed to Ctrl-]


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3499 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-11 00:58:26 +00:00
David Lawrence Ramsey
4218206fec still more comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3498 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-10 16:09:36 +00:00
David Lawrence Ramsey
31efe99e20 more comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3497 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-10 16:03:59 +00:00
David Lawrence Ramsey
1c5af644b5 avoid unnecessary state saving for when we resize
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3496 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-10 15:15:06 +00:00
David Lawrence Ramsey
fc0f8f8c57 allow unjustifying if we resize the window immediately after justifying,
as Pico does, and make input handling across resizes more consistent


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3495 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-10 13:41:53 +00:00
David Lawrence Ramsey
d29e861376 in do_(statusbar_)?input(), remove redundant check for allow_funcs'
being TRUE when we get KEY_MOUSE


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3494 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-10 13:06:58 +00:00
David Lawrence Ramsey
8992d0adaa formatting fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3493 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-10 12:48:47 +00:00
David Lawrence Ramsey
02a7f84412 in browser_refresh(), make sure the highlighting of the currently
selected file or directory respects the -D/--boldtext option


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3492 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-10 12:37:15 +00:00
David Lawrence Ramsey
26dd1b66de simplify
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3491 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-10 04:17:21 +00:00
David Lawrence Ramsey
0df4de37c3 in browser_refresh(), change variable i from an int to a size_t in order
to match selected, which it's compared against


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3490 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-10 03:57:16 +00:00
David Lawrence Ramsey
f2fe1fd263 cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3489 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-10 03:44:49 +00:00
David Lawrence Ramsey
3cba266d4d comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3488 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-10 03:40:17 +00:00
Jordi Mallach
cf8082f87f Updated Dutch translation by Benno Schulenberg.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3487 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-09 23:25:25 +00:00
David Lawrence Ramsey
560e83f143 in usage(), fix inaccuracies in the usage example
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3486 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-08 19:55:18 +00:00
David Lawrence Ramsey
b02a1950e7 cosmetic fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3485 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-08 16:25:12 +00:00
David Lawrence Ramsey
a5f833de42 in edit_draw(), properly ignore zero-length regexes in multi-line
regexes as well as single-line ones; this avoids a segfault when trying
to color e.g. "start="$" end="$""


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3484 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-08 15:57:04 +00:00
David Lawrence Ramsey
c7b9e15e9a formatting fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3483 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-08 15:19:42 +00:00
David Lawrence Ramsey
27d5be5e36 per Benno Schulenberg's patch (with a few tweaks by me), add a new
section 4.5, and move all section 4 entries after it down one number, to
explain a problem that can occur when holding down keys to generate Meta
sequences; also add a few more capitalization and wording fixes


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3482 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-08 14:12:36 +00:00
David Lawrence Ramsey
f22fa1341e typo fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3481 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-08 13:18:01 +00:00
David Lawrence Ramsey
602199da12 comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3480 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-06 15:31:32 +00:00
David Lawrence Ramsey
0ec909cb98 add the ability to move to the first and last file in the file browser
via Meta-\ (Meta-|) and Meta-/ (Meta-?)


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3479 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-06 15:07:26 +00:00
David Lawrence Ramsey
5bb7727740 another formatting fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3478 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-06 14:37:33 +00:00
David Lawrence Ramsey
b22c80ad1d remove various redundant key checks
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3477 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-06 13:41:59 +00:00
David Lawrence Ramsey
90b60edc3f fix do_help() meta key breakage
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3476 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-06 02:51:33 +00:00
David Lawrence Ramsey
f629aad27b cosmetic fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3475 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-06 02:42:42 +00:00
David Lawrence Ramsey
6e7d24dcdc add the ability to move to the first and last line of the help text via
Meta-\ (Meta-|) and Meta-/ (Meta-?)


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3474 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-06 02:26:18 +00:00
David Lawrence Ramsey
3f77c77f11 wording fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3473 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-06 02:25:32 +00:00
David Lawrence Ramsey
0a208b3b62 formatting fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3472 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-06 02:22:02 +00:00
David Lawrence Ramsey
2545686481 comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3471 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-05 15:43:52 +00:00
David Lawrence Ramsey
80669c34bb in do_indent_marked(), only use line_indent and line_indent_len when
necessary


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3470 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-05 15:41:43 +00:00
David Lawrence Ramsey
9e73d98a60 better handle position shifting when indenting marked text
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3469 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-05 15:20:36 +00:00
David Lawrence Ramsey
eb4f90e182 better handle position shifting when unindenting marked text
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3468 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-05 14:22:42 +00:00
David Lawrence Ramsey
aa4dc9596f typo fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3467 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-04 03:18:58 +00:00
David Lawrence Ramsey
f0e3ca6e88 clarify error messages
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3466 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-03 13:11:00 +00:00
David Lawrence Ramsey
ac37b04737 typo fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3465 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-03 12:59:05 +00:00
David Lawrence Ramsey
c7d6f985c7 in faq.html, add a new section 4.4, and move all section 4 entries after
it down one number, to explain how to deal with problems typing Meta-[;
also add a few capitalization and wording fixes


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3464 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-02 00:08:13 +00:00
David Lawrence Ramsey
af9052d7c7 cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3463 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-01 17:14:25 +00:00
David Lawrence Ramsey
2ca3fc9fa6 consistency fix for do_indent_marked(): remove indentation from just
before the non-whitespace text on lines instead of the beginnings of
lines


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3462 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-01 16:48:12 +00:00
David Lawrence Ramsey
7a9422b77d more various wording fixes for documentation
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3461 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-01 13:43:02 +00:00
David Lawrence Ramsey
e7f9813284 various wording fixes for documentation
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3460 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-05-01 13:22:47 +00:00
David Lawrence Ramsey
12c1b5913a consistency fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3459 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-30 23:30:47 +00:00
David Lawrence Ramsey
fd3cceee44 fix yet more do_indent_marked() breakage
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3458 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-30 01:29:51 +00:00
David Lawrence Ramsey
7194a617c4 fix still more do_indent_marked() breakage
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3457 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-29 16:11:21 +00:00
David Lawrence Ramsey
2e8fac6487 fix more do_indent_marked() breakage
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3456 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-29 15:44:58 +00:00
David Lawrence Ramsey
5c819b53e1 really fix do_indent_marked() breakage
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3455 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-29 15:12:07 +00:00
David Lawrence Ramsey
d9eca4b8bf fix do_indent_marked() breakage
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3454 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-29 15:07:37 +00:00
David Lawrence Ramsey
bf7842090b another wording fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3453 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-29 13:59:04 +00:00
David Lawrence Ramsey
5f274c4b49 handle NANO_CONTROL_8 even better by doing it in parse_kbinput()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3452 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-28 19:27:41 +00:00
David Lawrence Ramsey
fbf46a5d88 in do_(statusbar_)?input(), if we get NANO_CONTROL_8, handle it instead
of ignoring it, for consistency


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3451 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-28 18:59:34 +00:00
David Lawrence Ramsey
4d9ef69f8e various fixes for get_control_kbinput()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3450 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-28 18:26:07 +00:00
David Lawrence Ramsey
4527da5e9b when indenting lines, properly keep track of the mark coordinates
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3449 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-28 13:37:42 +00:00
David Lawrence Ramsey
8bf39a38fe in configure.ac, remove the other old warning about color support
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3448 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-28 13:27:20 +00:00
David Lawrence Ramsey
6d1112314b typo fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3447 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-28 13:23:17 +00:00
David Lawrence Ramsey
f85001a368 add the ability to indent and unindent all marked lines of text, via
Meta-[ (Meta-}) and Meta-] (Meta-}), per Chris' patch with some changes
by me


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3446 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-28 13:19:56 +00:00
David Lawrence Ramsey
cf1879b706 tweak the shortcut list a bit more, and add Space and - as aliases for
PageDown and PageUp in the help browser, per Benno Schulenberg's
suggestions


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3445 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-27 23:39:49 +00:00
David Lawrence Ramsey
9dd268730c preemptively update version numbers and modification dates
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3444 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-27 19:06:05 +00:00
David Lawrence Ramsey
190fae0043 document wording fixes in nanorc.5
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3443 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-27 18:54:24 +00:00
David Lawrence Ramsey
0d0d636e72 in nano.texi, add a "Nanorc Files" section to explain the nanorc file
format in detail, using text from nanorc.5


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3442 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-27 18:52:50 +00:00
David Lawrence Ramsey
3bcca171ae in nanorc.5 and nanorc.sample, mention that the nanorc file should not
be in DOS or Mac format


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3441 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-27 17:29:19 +00:00
David Lawrence Ramsey
c208ef7f23 fix breakage when NO_NEWLINES is FALSE and we copy text that would
require adding a new magicline then


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3440 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-26 19:03:50 +00:00
David Lawrence Ramsey
c838a4cd45 comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3439 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-26 18:33:50 +00:00
David Lawrence Ramsey
fe48da7d74 cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3438 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-26 18:27:35 +00:00
David Lawrence Ramsey
58fabec261 formatting fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3437 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-26 17:39:41 +00:00
David Lawrence Ramsey
bd5966061c in shortcut_init(), add Meta-} as an alias for Meta-]
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3436 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-26 17:24:46 +00:00
David Lawrence Ramsey
95b9850517 fix inaccurate comment
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3435 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-25 13:07:31 +00:00
David Lawrence Ramsey
7504714882 fix segfault if we try to copy an empty selection
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3432 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-25 02:56:54 +00:00
David Lawrence Ramsey
714c522413 add missing #ifdef
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3431 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-25 02:40:58 +00:00
David Lawrence Ramsey
fcff1e7401 cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3430 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-25 02:35:33 +00:00
David Lawrence Ramsey
c87e0c0965 add the ability to copy text into the cutbuffer without cutting it, via
Meta-^ (Meta-6); note that this is disabled when NANO_TINY is defined


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3429 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-25 02:23:28 +00:00
David Lawrence Ramsey
bc80cb1ba7 readd the Cancel -> Exit aliases for the file browser and help browser,
per Benno Schulenberg's suggestion, and clean up a few other
miscellaneous things


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3428 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-24 23:03:21 +00:00
David Lawrence Ramsey
854a44a414 more cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3427 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-24 21:14:55 +00:00
David Lawrence Ramsey
939d4239d4 in shortcut_init(), tweak the descriptions of two more shortcut keys to
make them more uniform, per one of Benno Schulenberg's suggestions and
one of mine


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3426 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-24 21:00:17 +00:00
David Lawrence Ramsey
8137876426 another cosmetic fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3425 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-24 20:53:43 +00:00
David Lawrence Ramsey
bf487985bc better handle the insertion of blank lines after shortcuts when certain
features are disabled


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3424 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-24 20:50:52 +00:00
David Lawrence Ramsey
9adc445c5c add missing #ifdef
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3423 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-24 20:17:50 +00:00
David Lawrence Ramsey
9ea05902ec comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3422 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-24 19:44:04 +00:00
David Lawrence Ramsey
18dae628d2 reduce NO_RCFILE to a static bool in nano.c, since it's only used there
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3421 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-24 18:54:29 +00:00
David Lawrence Ramsey
891e0ec281 in get_prompt_string(), include the handling of the help key even when
help is disabled, so that we aren't erroneously kicked out of the
statusbar prompt under any circumstances


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3420 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-23 19:32:50 +00:00
David Lawrence Ramsey
40e0572100 in shortcut_init(), tweak the descriptions of some shortcut keys to make
them more uniform, per Benno Schulenberg's patch with minor tweaks by me


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3419 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-23 19:21:12 +00:00
David Lawrence Ramsey
2ca2356802 adjust the main shortcut list a bit more, per Benno Schulenberg's patch,
and better handle the insertion of blank lines after toggles when
certain features are disabled


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3418 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-23 19:15:15 +00:00
David Lawrence Ramsey
5a2dbe26d8 typo fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3417 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-23 14:53:26 +00:00
David Lawrence Ramsey
b88152d82d more typo fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3416 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-23 01:33:37 +00:00
David Lawrence Ramsey
241771ceb5 typo fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3415 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-23 01:14:49 +00:00
David Lawrence Ramsey
4fd74e0db4 in help_init(), if we have at least two entries' worth of blank space,
use it to display more of "^Space" and "M-Space"


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3414 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-23 01:10:55 +00:00
David Lawrence Ramsey
97415dfdc7 really fix #ifdef
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3413 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-22 20:03:05 +00:00
David Lawrence Ramsey
03252d4fbc fix #ifdef
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3412 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-22 20:00:23 +00:00
David Lawrence Ramsey
bdf84dd8fb fix more breakage
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3411 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-22 19:52:27 +00:00
David Lawrence Ramsey
1df3e2d0bf reorganize the main shortcut list to make it easier for new users, per
Benno Schulenberg's suggestion


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3410 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-22 19:45:26 +00:00
David Lawrence Ramsey
d7b804ab6d add missing #ifdefs
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3409 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-22 18:20:14 +00:00
David Lawrence Ramsey
3ea0b1d6d8 fix breakage and typos
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3408 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-21 02:30:53 +00:00
David Lawrence Ramsey
5f0a58b055 add missing alternate meta key sequences
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3407 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-21 02:24:34 +00:00
David Lawrence Ramsey
df45365592 add shortcuts to go to the first or last line of the file from the main
list, make all the equivalent shortcuts elsewhere consistent, and
simplify input parsing in do_help()


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3406 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-21 02:05:09 +00:00
David Lawrence Ramsey
6397b592fb cleanups: fix M-M/M-N toggle inversion, and reorder toggle #defines in
nano.h to match the new order in toggle_init()


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3405 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-20 22:36:10 +00:00
David Lawrence Ramsey
e313f5b2c8 reorganize the global toggle list to make it easier for new users, per
Benno Schulenberg's suggestion


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3404 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-20 22:29:02 +00:00
David Lawrence Ramsey
4879660c9a comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3403 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-20 16:09:32 +00:00
David Lawrence Ramsey
1f09769052 in nano.texi, add minor updates to put some text back in sync with
nano's current feature set


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3402 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-20 15:45:24 +00:00
David Lawrence Ramsey
fe52ae0d54 update modification date again
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3401 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-20 14:43:09 +00:00
David Lawrence Ramsey
728c85a119 in nano.texi, add minor updates to put some text back in sync with
nano's help text


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3400 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-20 14:33:36 +00:00
David Lawrence Ramsey
0aeb50342a still another miscellaneous minor fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3399 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-20 14:15:16 +00:00
David Lawrence Ramsey
e30c308089 another typo fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3398 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-20 03:20:13 +00:00
David Lawrence Ramsey
57f97538b1 fix changelog entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3397 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-20 03:03:57 +00:00
David Lawrence Ramsey
e904888324 in renumber(), remove invalid assert
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3396 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-20 03:02:33 +00:00
David Lawrence Ramsey
8ff785cf40 in toggle_init(), in the global toggle list, move the "Constant cursor
position display" toggle up to after the "Use more space for editing"
toggle, for consistency


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3395 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-19 23:13:44 +00:00
David Lawrence Ramsey
b9eb2be295 in shortcut_init(), in the main shortcut list, move the "Refresh"
shortcut down to after the "Enter" shortcut, for consistency


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3394 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-19 22:55:37 +00:00
David Lawrence Ramsey
9461dbd72d remove back references from sample Python regex
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3393 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-19 20:56:31 +00:00
David Lawrence Ramsey
efb4b0a96c add several blank entries to the main shortcut list, in order to make
its help text easier to read


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3392 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-19 14:09:01 +00:00
David Lawrence Ramsey
e6757b94d3 still more comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3391 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-19 13:36:56 +00:00
David Lawrence Ramsey
e806ab8473 adjust the shortcut list display and related mouse support to not waste
the last few characters of bottomwin when the screen width isn't a clean
multiple of the column width, per Benno Schulenberg's patch (with a few
tweaks by me)


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3390 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-18 16:13:35 +00:00
David Lawrence Ramsey
172aa93f4a another comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3389 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-18 15:58:50 +00:00
David Lawrence Ramsey
e916d67389 in nano.texi, mention that backup files and spell checking are disabled
in restricted mode, as rnano.1 does


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3388 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-16 22:39:15 +00:00
David Lawrence Ramsey
51b1b2f1aa change nano.texi's the license to GPL, in order to match the rest of the
documentation, and because the current license is incompatible with
everything else in any case


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3387 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-16 22:13:10 +00:00
David Lawrence Ramsey
3a0da8bb3b update modification date
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3386 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-16 20:50:36 +00:00
David Lawrence Ramsey
b1bf7cf791 still more miscellaneous minor fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3385 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-16 20:40:29 +00:00
David Lawrence Ramsey
73ff694ce1 more miscellaneous minor fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3384 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-15 18:02:06 +00:00
David Lawrence Ramsey
b61dc89f9a comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3383 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-15 17:21:52 +00:00
David Lawrence Ramsey
39b7189a13 in parse_syntax(), don't generate an error if we find a duplicate syntax
name, since we might be trying to override a syntax in the global nanorc
with one in our local nanorc; instead, free any duplicate syntaxes we
find, so that we always use the last syntax with a given name


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3382 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-15 16:02:02 +00:00
David Lawrence Ramsey
8f6fb3c6b6 change translator-specific comments in search.c so that they show up in
nano.pot


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3381 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-14 22:22:00 +00:00
David Lawrence Ramsey
57c9afb9e6 wording fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3380 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-14 20:21:45 +00:00
David Lawrence Ramsey
f50bd4be88 clarify some help text and documentation
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3379 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-14 20:15:44 +00:00
David Lawrence Ramsey
b43648aae2 in configure.ac, remove old warning about color support
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3378 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-14 18:44:02 +00:00
David Lawrence Ramsey
a33ec1deff in parse_syntax(), properly generate an error if we've read in a
previous syntax without any associated color commands


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3377 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-14 17:20:53 +00:00
David Lawrence Ramsey
33619f1ac5 another error message consistency fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3376 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-13 14:09:45 +00:00
David Lawrence Ramsey
9e9f4e22ad minor wording fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3375 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-13 03:57:12 +00:00
David Lawrence Ramsey
a33671376e comment fixes, plus an explanation of the "include" command
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3374 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-13 03:00:00 +00:00
David Lawrence Ramsey
8e05c315b2 in nanorc.sample, simplify the "nanorc" regex for commands
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3373 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-13 02:50:36 +00:00
David Lawrence Ramsey
cee20e50c6 at long last, add the ability to use self-contained color syntaxes from
separate files, accessible in the nanorc via the "include" command


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3372 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-13 02:43:54 +00:00
David Lawrence Ramsey
03ee332640 another comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3371 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-12 22:03:47 +00:00
David Lawrence Ramsey
f0134ea9b2 comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3370 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-12 21:45:41 +00:00
David Lawrence Ramsey
5fac171c8b in do_rcfile(), check for the rcfile's being a directory or device file
and reject it if it is, for consistency with file handling elsewhere;
also remove SYSCONFDIR #ifdef, as SYSCONFDIR should always be set


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3369 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-12 21:44:07 +00:00
David Lawrence Ramsey
4d72de73b1 add the ability to use bold text instead of reverse video text, via the
-D/--boldtext command line option and the "boldtext" rcfile option, and
reduce USE_UTF8 to a static bool in chars.c


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3368 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-12 15:27:40 +00:00
David Lawrence Ramsey
61a70388fe remove inaccurate comment
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3367 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-12 14:34:08 +00:00
David Lawrence Ramsey
af318aaa5c make all translator comments consistent
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3366 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-12 12:54:23 +00:00
David Lawrence Ramsey
cde9039335 change translator-specific comments in global.c and prompt.c so that
they show up in nano.pot


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3365 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-09 18:27:42 +00:00
David Lawrence Ramsey
be7fd8a9be clarify a comment
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3364 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-09 18:24:54 +00:00
David Lawrence Ramsey
0c4e30be7c add updated French manpages
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3363 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-09 18:16:48 +00:00
David Lawrence Ramsey
125b2f0be5 in write_file(), simplify the routine for closing the file just before
we indicate success on the statusbar


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3362 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-07 05:33:05 +00:00
David Lawrence Ramsey
adfecd24b4 simplify the previous fix; also, in write_file(), clarify the error
message when writing a temporary file for prepending fails


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3361 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-07 04:37:14 +00:00
David Lawrence Ramsey
2420794355 in write_file(), if the original file is unreadable when we try to save
the backup, we can save the original file unless we're prepending, so do
it


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3360 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-07 03:59:12 +00:00
David Lawrence Ramsey
d9ae1d6d6a yet another comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3359 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-07 03:57:23 +00:00
David Lawrence Ramsey
8055f0935f in open_file(), remove redundant wording in the error message when we
try to open a device file


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3358 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-06 22:57:22 +00:00
David Lawrence Ramsey
f6287eaf54 fix changelog entry
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3357 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-06 21:46:09 +00:00
David Lawrence Ramsey
ac8dfca510 in safe_tempfile(), don't ignore $TMPDIR if it's set but blank, for
consistency


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3356 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-06 21:41:48 +00:00
David Lawrence Ramsey
e5af25baef in write_file(), if we can't save the backup file for some reason, at
least save the original file, if possible, since that's better than
saving nothing


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3355 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-06 05:18:23 +00:00
David Lawrence Ramsey
9308e5210b still more comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3354 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-05 21:46:13 +00:00
David Lawrence Ramsey
5cbd990bf5 in parse_argument(), rename variable ptr_bak to ptr_save, for
consistency


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3353 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-05 21:28:52 +00:00
David Lawrence Ramsey
979de2309b open all files in binary mode for consistency and robustness
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3352 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-05 21:25:47 +00:00
David Lawrence Ramsey
b0588ae45e more comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3351 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-05 16:58:45 +00:00
David Lawrence Ramsey
ca70ff69ed comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3350 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-05 15:05:05 +00:00
David Lawrence Ramsey
dd87073020 update modification dates
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3349 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-05 13:43:51 +00:00
David Lawrence Ramsey
6d3485e040 various documentation updates
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3348 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-05 13:40:56 +00:00
David Lawrence Ramsey
22e15eb7ad in write_file(), don't free backupname before displaying it in a
statusbar error message


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3347 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-05 02:56:47 +00:00
David Lawrence Ramsey
71da75e92c in nanorc.sample, in the comment for the "whitespace" option, state
which character values work with which encodings


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3346 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-04-01 19:30:52 +00:00
David Lawrence Ramsey
d9d29c6220 add sample Python regexes to nanorc.sample
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3345 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-03-31 19:39:55 +00:00
David Lawrence Ramsey
eae8f93026 capitalization fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3344 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-03-31 19:39:17 +00:00
David Lawrence Ramsey
0320f5bbac in nanorc.sample, change the comment for the "whitespace" option so that
the hexadecimal character values are six digits long


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3343 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-03-31 14:37:55 +00:00
David Lawrence Ramsey
4e0984775a in nanorc.sample, nention in the comments that more than one start/end
regex can be included per line


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3342 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-03-30 20:43:44 +00:00
David Lawrence Ramsey
43ef2e8326 fix bounds in the "c-file" character regex
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3341 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-03-30 20:39:34 +00:00
David Lawrence Ramsey
11ff847cff further simplify the "c-file" regex for characters
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3340 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-03-30 20:34:20 +00:00
David Lawrence Ramsey
f420bea2ca in nanorc.sample, simplify the "c-file" regex for characters
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3339 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-03-30 20:26:58 +00:00
David Lawrence Ramsey
aa79925d6a in nanorc.sample, simplify the "shellscript" regex for command line
options


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3338 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-03-30 18:18:27 +00:00
David Lawrence Ramsey
b8d92feb62 in nanorc.sample, replace instances of \" with ", since quotes inside
string parameters don't need to be escaped with backslashes


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3337 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-03-30 18:12:50 +00:00
David Lawrence Ramsey
cdf3f22c23 in nanorc.sample, rweak the "c-file" regex for characters to accept '"'
again, as it's apparently valid


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3336 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-03-30 18:07:38 +00:00
David Lawrence Ramsey
04061e76ad update the copyright years of the manual and info pages to include 2006
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3335 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-03-30 07:07:48 +00:00
David Lawrence Ramsey
e38b808959 implement filename searches in the file browser
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3334 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-03-30 07:03:04 +00:00
David Lawrence Ramsey
ce5284b748 typo fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3333 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-03-30 07:01:57 +00:00
David Lawrence Ramsey
e3d40d30c7 Back to CVS
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3332 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2006-03-30 06:40:25 +00:00
98 changed files with 50202 additions and 33534 deletions

View File

@@ -4,15 +4,15 @@ nano editor. Please see the ChangeLog for specific changes by author.
-------------------------------------------------------------------------
Chris Allegretta <chrisa@asty.org>
* Original program author, stable series maintainer.
* Original program author, former stable series maintainer.
David Lawrence Ramsey <pooka109@cox.net>
* Development series maintainer. Multiple buffer support,
* Current stable series maintainer. Multiple buffer support,
operating dir (-o) option, bug fixes for display routines,
wrapping code, spelling fixes, const mode, parts of the UTF-8
support, and various other fixes.
Jordi Mallach <jordi@sindominio.net>
Jordi Mallach <jordi@gnu.org>
* Debian package maintainer, fellow bug squasher.
* Internationalization support head, ca.po maintainer.

122
BUGS
View File

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

1459
ChangeLog

File diff suppressed because it is too large Load Diff

View File

@@ -4,7 +4,7 @@ AUTOMAKE_OPTIONS = gnu no-dependencies
SUBDIRS = doc m4 po src
EXTRA_DIST = ABOUT-NLS AUTHORS BUGS COPYING ChangeLog INSTALL NEWS \
README THANKS TODO UPGRADE config.rpath install-sh \
missing mkinstalldirs nano.spec
README README.CVS THANKS TODO UPGRADE config.rpath \
install-sh missing mkinstalldirs nano.spec
ACLOCAL_AMFLAGS = -I m4

129
NEWS
View File

@@ -1,7 +1,97 @@
2007.01.29 - GNU nano 2.0.3 flows toward its ending. This release
contains several minor optimizations to make the
executable a little smaller under some circumstances,
some translation updates, improvements to the color
syntax for Python, and still more minor documentation
updates. Have fun.
2006.12.20 - GNU nano 2.0.2 forges ahead. This release fixes a segfault
when trying to save in a nonexistent directory; fixes
handling of strings containing nulls at the "Write File",
"Insert File", "Execute Command", and "Go to Directory"
prompts; fixes several minor memory leaks; fixes two
more potential compilation warnings; adds a few
translation updates; and adds a few more minor
documentation updates. Enjoy.
2006.11.20 - GNU nano 2.0.1 emerges from its cocoon. This release
contains several bugfixes: saving one file over another
will now always warn about overwriting it, overwriting
a file is no longer possible when saving a new file in
restricted mode, and zero-length Unicode characters are
now highlighted properly when nano is built without
regular expression support. It also adds several minor
documentation updates. Have fun with it.
2006.11.06 - GNU nano 2.0.0 does its little dance. This release adds
documentation updates and a few cosmetic tweaks.
For those who haven't been following nano 1.3
development, there are a ton of new features, including
support for UTF-8, moving to a specified line and column
instead of just a line, improved color syntax
highlighting, inserting previously untypeable characters
using "Verbatim Input" mode, and copying text into the
cutbuffer without cutting it. There are also fixes for
some long-standing bugs, such as the "NumLock glitch"
from nano 1.2.x, and the inability to unjustify text
after resizing. Finally, there are also a ton of
translation updates and new translations, as well as new
color syntaxes. See the UPGRADE file for more
information, and enjoy the new stable release.
2006.10.25 - GNU nano 1.9.99pre3 learns to appreciate life. This
release fixes a bug where the screen sometimes wouldn't
be updated properly after copying text into the
cutbuffer, fixes a potential warning while compiling,
and fixes a few other minor inconsistencies. Have fun.
2006.10.02 - GNU nano 1.9.99pre2 crosses the threshold. This release
fixes a few more bugs: cursor positioning after leaving
the statusbar prompt has been fixed, and verbatim input
at the statusbar prompt now properly handles newlines.
Enjoy.
2006.08.29 - GNU nano 1.9.99pre1 passes through the flames. This
release fixes various bugs in the last version: the
mouse support properly ignores everything except clicks
of the left mouse button; the statusbar is now blanked
properly when it should be; indenting and unindenting
operate on the current line when the mark is off; nano
should build on Tru64, NetBSD, and other systems that
use termcap instead of terminfo in their curses
libraries; the built-in file browser now properly
navigates file lists that take up only one row; the
cursor position is now completely restored after
inserting a file into the current buffer, and after
inserting the output of a command into a new buffer; the
^X shortcut at the search prompt has been removed, as
official Pico doesn't include it and it's too easily
confused with Exit; the screen is updated properly after
scrolling a line without moving the cursor; the keyboard
input routines behave more consistently; and so on.
Have fun with it.
2006.06.26 - GNU nano 1.3.12 escapes the darkness. This release
contains the last new features that nano will have
before 2.0: copying text into the cutbuffer without
cutting it, indenting lines of marked text with a single
keystroke, reworked help text that should be easier for
new users, searching for filenames in the file browser,
the ability to include color regexes in files separate
from nanorc files, etc. It also contains many bugfixes.
Text can now be unjustified after justifying it and
resizing the window; the screen is now cleared when
suspending; the "default" color syntax is now handled
properly at all times; lines of text containing tabs are
now wrapped at the right place; double-column characters
are now properly displayed when past the right edge of
the screen; invalid multi-line color regexes are now
ignored; and so on. Enjoy.
2006.03.30 - GNU nano 1.3.11 awakens from its fever dream. This release
focuses mostly on bugfixes, which include better
handling of the cursor at the statusbar prompt, support
for certain combinations of Shift and keyboard keys in
for certain combinations of Shift and keypad keys in
both normal and --rebind-keypad mode, a fix for a minor
display problem after some searches, a real fix for a
long-standing segfault when displaying overly long
@@ -137,8 +227,8 @@
and replacing all text in a file now properly updates
the screen in all cases. New features include sample
regexes for patch files, improvements to the sample
regexes for C files, and support for strings
greater than 1023 characters and/or containing nulls in
regexes for C files, and support for strings greater
than 1023 characters and/or containing nulls in
.nano_history. Additionally, the full justify keystroke
has been changed to match current Pico, and whitespace
display mode is now turned off by default. Enjoy.
@@ -212,7 +302,7 @@
broken regex detection, search history recall, and
keypad handling with -K. Debugging strings are no
longer translated and comments denote where translations
should be as short as possible (i.e, the statusbar).
should be as short as possible (i.e. the statusbar).
There are new examples for syntax highlighting, and
documentation updates and fixes. The 1.3.0 CVS tree
will be opening soon for all your nano desires, so stay
@@ -297,7 +387,7 @@
direct to the development list (nano-devel@gnu.org).
10/24/2002 - GNU nano 1.1.12 "Make Jordi happy" is released. This
release demonstrated that nano is starting to freeze for
release demonstrates that nano is starting to freeze for
version 1.2. New features include a Meta-Y toggle for
syntax highlighting, pluralized i18n, and a handler for
SIGTERM. Nano now ignores XOFF (^S) to stop accidental
@@ -345,7 +435,7 @@
mode (^O,M-P), a new "syntax" command in the .nanorc to
allow multiple syntax highlighting types, and a new -Y,
--syntax flag to set a specific one if there's no
filename regex to match it against (i.e, w/mutt). The
filename regex to match it against (i.e. w/mutt). The
^space and M-space keys will now show up in the help
menu, which itself has been tweaked a bit, and many more
configure options should now cooperate (like the odd
@@ -485,6 +575,27 @@
introduce lots of bugs ;-) Have fun with it, but be
careful, unstable means unstable.
07/01/2001 - GNU nano 1.0.3 is the "mutt" release. This release
features oodles of bug fixes with cutting text,
especially with the -k (cut to end) option. There is
also a new suspend handler which should make nano play
better with mutt (the code for which came from mutt
itself; many many thanks to Jordi Mallach and Tom Lear
for working late into the night fixing this). Nano now
also features mutt's case insensitive string compare
function for more speed and less memory usage. Two new
translations are included, Ukrainian and Russian.
05/12/2001 - GNU nano 1.0.2 is the "just the bugfixes ma'am" release.
The most noticeable fixes are for display errors using
page up/down with the marker code, and view mode (-v)
not stopping the replace function. Other fixes include
being able to use the arrow keys while holding down the
ctrl key in certain TERMs, and there are many
documentation updates and spelling tweaks. We also have
a new Galician translation (provided by Jacobo Tarrío).
Have fun with it!
04/06/2001 - GNU nano 1.0.1 is out there. The only new feature is a
configure option for those who want to disable all word
wrapping from nano, --disable-wrapping. Bug fixes this
@@ -525,7 +636,7 @@
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
successfully writing a file on the 2nd try (i.e. after
an initial write error). Slowly but surely, on toward
1.0 we travel.
@@ -713,7 +824,7 @@
05/14/2000 - Nano 0.9.7 (the Mother's Day release) continues in the long
line of display fixes, and also fixes the broken symlink
behavior (i.e, symlinks weren't being followed by
behavior (i.e. symlinks weren't being followed by
default). Hopefully all major bugs can be worked out
soon and we can have a 1.0 release before the end of the
year, but who knows.
@@ -766,7 +877,7 @@
04/14/2000 - 0.9.1 has some more Pico compatibility built-in. The
option to switch to/from Search and Search/Replace (^T)
is now available, and nano now displays the more
Pico-like shortcut list when invoked as 'pico' (i.e, if
Pico-like shortcut list when invoked as 'pico' (i.e. if
'pico' is a symlink to nano). There is an important
change to the handling of symbolic links as well. Now,
nano does the "correct" thing and automatically writes

21
README
View File

@@ -9,17 +9,17 @@ Overview
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.
with many GNU/Linux distributions. Also, other features (like go
to line number or search and replace) were unavailable until
recently or require a command line flag. Yuck.
nano aims to solve these problems by emulating the functionality of
Pico as closely as possible while addressing the problems above and
perhaps providing other extra functionality.
The nano editor is now an official GNU package. For more
information on GNU and the Free Software Foundation please see
http://www.gnu.org.
information on GNU and the Free Software Foundation, please see
http://www.gnu.org/.
How to compile and install nano
@@ -32,6 +32,11 @@ How to compile and install nano
It's that simple. Use --prefix with configure to override the
default installation directory of /usr/local.
If you configured with the "--enable-nanorc" option, after
installation you might copy the doc/nanorc.sample to your home
directory, rename it to ".nanorc", and then edit it according to
your taste.
Web Page
@@ -60,10 +65,6 @@ Mailing List and Bug Reports
Current Status
GNU nano has reached its second stable milestone, 1.2.x.
Development of new features continues in the 1.3.x branch, while
1.2.x versions are dedicated to bug-fixing and polishing.
Chris Allegretta (chrisa@asty.org)
GNU nano has reached its third stable milestone, 2.0.x.
$Id$

View File

@@ -1,46 +1,90 @@
INSTRUCTIONS TO COMPILE AND INSTALL NANO CVS VERSIONS
-----------------------------------------------------
=====================================================
GNU nano is available from CVS, but building this needs a bit more care
than the official stable and unstable tarballs.
Prerequisites
-------------
To successfully compile GNU nano from CVS, you'll need the following
packages:
- autoconf (version >= 2.54)
- automake (version >= 1.7)
- gettext (version >= 0.11.5)
- groff (version >= 1.12)
- texinfo (version >= 4.0)
- gettext (version >= 0.11.5)
- groff (version >= 1.12)
- texinfo (version >= 4.0)
- cvs
- ssh (with support for the SSH version 2 protocol)
- glib 2.x (if your system doesn't have vsnprintf())
- glib 2.x (if your system doesn't have vsnprintf(), which the configure
script will check for)
- make, gcc and the normal development libraries (curses or slang, etc.)
These should be available on your GNU mirror. Note that you'll need a
version of curses or slang with wide character support if you want nano
to use UTF-8.
Download the source
-------------------
First, you need to set up cvs to download the CVS tree using ssh. If
you're using a Bourne shell (e.g. bash or sh), do
$ export CVS_RSH=ssh
$ export CVS_RSH=ssh
If you're using a C shell (e.g. tcsh or csh), do
$ setenv CVS_RSH ssh
After it's set up, use the following command to download the CVS tree:
$ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/nano checkout nano
$ setenv CVS_RSH ssh
If you want to download the stable CVS branch, add "-r nano_1_2_branch":
$ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/nano checkout -r nano_1_2_branch nano
After that's set up, cd to your src directory and use the following
command to download the CVS tree:
Once you have the sources in the "nano" directory, cd into it, and
execute the "autogen.sh" script in the top directory. This will set up
a configure script and Makefile.in, and you will be ready to compile
with
$ ./configure [--add-options-here] && make
$ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/nano checkout -r nano_2_0_branch nano
Once it's done compiling,
$ make install
(as root) should put the required files in their respective directories.
Generate the configure script
-----------------------------
Once you have the sources in the "nano" directory,
$ cd nano
$ ./autogen.sh
This will set up a configure script and a Makefile.in file.
Configure your build
--------------------
To configure your build, run the configure script from the nano source
directory:
$ ./configure [--add-options-here]
Build and install
-----------------
From the nano source directory, build the code with:
$ make
Then, once it's done compiling, run
$ make install
which should copy various files (i.e. the nano executable, the info and
man pages, and syntax highlighting pattern files) to their appropriate
directories.
If you're installing into the default install directory (/usr/local),
you'll need to run that "make install" command with root privileges.
Problems?
---------
Please submit any bugs in the CVS branch to nano-devel@gnu.org.

48
TODO
View File

@@ -1,13 +1,48 @@
TODO file (? means the feature may be implemented, but not definitely)
-----------------------------------------------------------------------------
------------------------------------------------------------------------
For version 1.4:
For the next version:
- Undo/Redo keys (M-U and M-E)?
- Rebindable keys?
- FriBidi support?
- Port to DJGPP?
- Make matching bracket searches sophisticated enough to skip over
brackets inside comments?
- Allow indentation of marked text by spaces as well as tabs?
- Allow indentation to add just enough columns to reach the nearest
multiple of tabsize, rather than always adding tabsize columns?
- Allow piping marked text to an external command and replacing it with
the command's output (as the internal spell checker already does with
the "spell" command)?
- Rewrite the nano FAQ in SGML.
- Allow conversion between different character sets. Maybe use glib's
iconv() if the system's iconv() is inadequate, since we already use
glib's vsnprintf() if the system lacks vsnprintf()?
- Handle window resizes better. After we resize, we should stay
wherever we were before we resized, as Pico does.
- Fix problems with color syntaxes' highlighting lines too aggressively.
- Allow color syntaxes to apply to more than just color, so that we can
e.g. specify a different alternate spell checker depending on which
file type we have open.
- Allow color syntaxes to be selected based on more than just filename
extension, e.g. through libmagic?
- Allow text searches in the help browser.
- Allow setting marks (saved positions, not to be confused with the mark
set via Ctrl-^) at various lines and/or columns in the buffer, and
allow movement between them with a single keystroke.
- Add the ability to move to different lines of the screen with a single
keystroke, e.g. M-` (M-~) to go to the top line, M-& (M-7) to go to
the center line, and M-' (M-") to go to the last line.
- Allow searching for and replacing newlines.
- Allow soft wrapping as well as hard wrapping?
Old requests:
For version 2.0:
- UTF-8 support. [DONE]
- Support for paragraph searches. [DONE]
- Support for justifying the entire file at once. [DONE]
- Support for filename searches in the file browser.
- Undo/Redo keys?
- Rebindable keys?
- Support for filename searches in the file browser. [DONE]
- Keystroke to implement "Add next sequence as raw" like vi's ^V. [DONE]
- Spell check selected text only. [DONE]
- Make "To Line" (^W^T) and "Read from Command" (^R^X) reenter their
@@ -15,9 +50,6 @@ For version 1.4:
(^R^X^X) (requires figuring out when to keep cursor position and when
not to). [DONE]
- Fix resetstatuspos global which we shouldn't have. [DONE]
- Rewrite the nano FAQ in SGML.
Old requests:
For version 1.2:
- Single line scroll up/down? [DONE]

71
UPGRADE
View File

@@ -1,6 +1,73 @@
GNU nano upgrading information
==============================
Visible changes since 1.2
-------------------------
* Editor Features
- Support for UTF-8.
- Moving to a specified line and column of a file, instead of just a
line (+LINE,COLUMN).
- Smart home key (-A).
- Creation of unique backup files in a specified directory (-C <dir>).
- Insertion of spaces instead of a tab when Tab is pressed (-E).
- The long option for -K is now --rebindkeypad.
- Regular expression searching can now be toggled when nano is built
with --enable-tiny, so -R now means something else (see below).
- Restricted mode that provides more security than -o (-R).
- Blanking of the statusbar after 1 keystroke instead of 25 (-U).
- Word searches can optionally skip over punctuation (-W).
- Workaround for Delete's acting like Backspace (-d).
- Many more options are supported in the nanorc.
- Improvements to color syntax highlighting support: case insensitive
matching, the ability to include color syntaxes in separate files,
the ability to specify background colors without foreground colors,
etc.
- Insertion of single-byte characters via Esc Esc <000-255>.
- Insertion of all characters via "Verbatim Input" mode.
- Workaround for the "NumLock glitch".
- Meta-W now repeats the last search. Wrapping is now toggled via
Meta-L.
- Replacing and spell checking only selected text.
- Indenting lines with one keystroke.
- Copying text into the cutbuffer without cutting it.
- Scrolling the text up and down single lines without moving the
cursor.
- PageUp and PageDown work more smoothly when using -S.
- Scrolling the help text up and down single lines.
- Cutting all text from the current position to the end of the file
with one keystroke.
- Justifying the entire file with one keystroke.
- Justifying without removing spaces from the ends of lines.
- Unjustifying after justifying and immediately resizing.
- Going to the first or last line of the current paragraph.
- Going to the first or last line of the file without having to go to
the "Search" prompt.
- Searching for filenames in the file browser.
- Displaying spaces and tabs differently to make it easier to tell
them apart.
- Many more functions available at the statusbar prompt: moving to the
next or previous word, searching for matching brackets, "Verbatim
Input" mode, etc.
- The glibc 2.2.3 crashes involving extended regular expressions are
no longer worked around, as they can break anything using extended
regular expressions, and glibc 2.2.3 is old. You should upgrade to
at least glibc 2.2.4.
* File Handling
- Automatic adding of newlines to the ends of files without them can
now be disabled (-L).
- Converting from and to DOS/Mac file format is now toggled only at
the "Write File" prompt, via Meta-D and Meta-M, and the default file
format to save in is now set depending on what format the file was
originally in. -D now makes nano use bold text instead of reverse
video text, and Meta-D at the edit window now does a
word/line/character count. -O now makes the unused second line of
the screen part of the edit window, and Meta-O at the edit window
now toggles this behavior.
- Converting files that contain a mix of DOS and Mac format lines.
- Automatic switching on of -N with binary files has been removed, as
it causes problems with UTF-8 support.
Visible changes since 1.0
-------------------------
* Editor Features
@@ -8,10 +75,10 @@ Visible changes since 1.0
something else, see below).
- nanorc support (see nanorc.sample included in sources).
- Smooth scrolling (-S).
- Searching of matching brace/bracket/etc.
- Support for searching for matching braces, brackets, etc.
- Help for all editor features.
- Color syntax highlighting support.
- Quote string support, useful for mail agents, etc (-Q).
- Quote string support, useful for mail agents, etc. (-Q).
- Insertion of output of external commands.
- Optional enabling of XON and XOFF control characters (-p).
- Tons of bugfixes/enhancements for already existing features.

View File

@@ -19,7 +19,7 @@
#
# $Id$
AC_INIT([GNU nano], [1.3.11], [nano-devel@gnu.org], [nano])
AC_INIT([GNU nano], [2.0.3], [nano-devel@gnu.org], [nano])
AC_CONFIG_SRCDIR([src/nano.c])
AC_CANONICAL_TARGET([])
AM_INIT_AUTOMAKE
@@ -39,49 +39,34 @@ dnl Internationalization macros.
AM_GNU_GETTEXT_VERSION(0.11.5)
AM_GNU_GETTEXT([external], [need-ngettext])
AM_CONDITIONAL(USE_NLS, test "x$USE_NLS" = "xyes")
AM_CONDITIONAL(USE_NLS, test x$USE_NLS = xyes)
dnl Data location.
pkgdatadir=${datadir}/${PACKAGE}
AC_DEFINE_DIR([PKGDATADIR], [pkgdatadir], [Where data are placed to.])
dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS(fcntl.h getopt.h libintl.h limits.h regex.h termios.h wchar.h wctype.h)
AC_CHECK_HEADER(regex.h,
AC_MSG_CHECKING([for broken regexec from glibc 2.2.3])
AC_TRY_RUN([
#include <sys/types.h>
#include <regex.h>
int main(void)
{
regex_t reg;
size_t n = 1;
regmatch_t r;
regcomp(&reg, "\\<", 0);
regexec(&reg, "", n, &r, 0);
regfree(&reg);
return 0;
}],
AC_MSG_RESULT(no),
AC_MSG_RESULT(yes)
AC_DEFINE(BROKEN_REGEXEC, 1, [Define this if your regexec() function segfaults when passed an empty string under certain conditions, as the one from glibc 2.2.3 does.]),
AC_MSG_RESULT([cross-compiling; assuming no])))
AC_CHECK_HEADERS(getopt.h libintl.h limits.h regex.h sys/param.h wchar.h wctype.h)
dnl Checks for options.
AC_ARG_ENABLE(debug,
[ --enable-debug Enable debugging (disabled by default)],
[if test x$enableval = xyes; then
AC_DEFINE(DEBUG, 1, [Define this to enable nano debug messages and assert warnings.])
debug_support=yes
AC_DEFINE(DEBUG, 1, [Define this to enable debug messages and assert warnings.]) debug_support=yes
fi])
if test x$debug_support != xyes; then
AC_DEFINE(NDEBUG, 1, [Shut up the assert warnings :-)])
AC_DEFINE(NDEBUG, 1, [Shut up assert warnings :-)])
fi
AC_ARG_ENABLE(extra,
[ --enable-extra Enable extra features, currently only easter eggs],
[if test x$enableval = xyes; then
AC_DEFINE(NANO_EXTRA, 1, [Define this to enable the extra stuff.]) extra_support=yes
AC_DEFINE(NANO_EXTRA, 1, [Define this to enable extra stuff.]) extra_support=yes
fi])
AC_ARG_ENABLE(tiny,
@@ -89,43 +74,43 @@ AC_ARG_ENABLE(tiny,
[if test x$enableval = xyes; then
AC_DEFINE(NANO_TINY, 1, [Define this to make the nano executable as small as possible.]) tiny_support=yes
AC_DEFINE(DISABLE_BROWSER, 1, [Define this to disable the built-in file browser.])
AC_DEFINE(DISABLE_HELP, 1, [Define this to disable the help menu.])
AC_DEFINE(DISABLE_JUSTIFY, 1, [Define this to disable the justify routine.])
AC_DEFINE(DISABLE_HELP, 1, [Define this to disable the help text display.])
AC_DEFINE(DISABLE_JUSTIFY, 1, [Define this to disable the justify routines.])
AC_DEFINE(DISABLE_MOUSE, 1, [Define this to disable the mouse functions.])
AC_DEFINE(DISABLE_OPERATINGDIR, 1, [Define this to disable setting of the operating directory (chroot of sorts).])
AC_DEFINE(DISABLE_OPERATINGDIR, 1, [Define this to disable the setting of the operating directory (chroot of sorts).])
AC_DEFINE(DISABLE_SPELLER, 1, [Define this to disable the spell checker functions.])
AC_DEFINE(DISABLE_TABCOMP, 1, [Define to disable the tab completion code Chris worked so hard on!])
AC_DEFINE(DISABLE_WRAPPING, 1, [Define this to disable any and all text wrapping.])
AC_DEFINE(DISABLE_TABCOMP, 1, [Define to disable the tab completion functions for files and search strings.])
AC_DEFINE(DISABLE_WRAPPING, 1, [Define this to disable all text wrapping.])
fi])
AC_ARG_ENABLE(browser,
[ --disable-browser Disable mini file browser],
[ --disable-browser Disable built-in file browser],
[if test x$enableval != xyes; then
AC_DEFINE(DISABLE_BROWSER, 1, [Define this to disable the built-in file browser.])
fi])
AC_ARG_ENABLE(help,
[ --disable-help Disable help function],
[ --disable-help Disable help functions],
[if test x$enableval != xyes; then
AC_DEFINE(DISABLE_HELP, 1, [Define this to disable the help menu.])
AC_DEFINE(DISABLE_HELP, 1, [Define this to disable the help text display.])
fi])
AC_ARG_ENABLE(justify,
[ --disable-justify Disable justify/unjustify function],
[ --disable-justify Disable justify/unjustify functions],
[if test x$enableval != xyes; then
AC_DEFINE(DISABLE_JUSTIFY, 1, [Define this to disable the justify routine.])
AC_DEFINE(DISABLE_JUSTIFY, 1, [Define this to disable the justify routines.])
fi])
AC_ARG_ENABLE(mouse,
[ --disable-mouse Disable mouse support (and -m flag)],
[if test x$enableval != xyes; then
AC_DEFINE(DISABLE_MOUSE, 1, [Define this to disable the mouse functions.])
AC_DEFINE(DISABLE_MOUSE, 1, [Define this to disable the mouse support.])
fi])
AC_ARG_ENABLE(operatingdir,
[ --disable-operatingdir Disable setting of operating directory (chroot of sorts)],
[if test x$enableval != xyes; then
AC_DEFINE(DISABLE_OPERATINGDIR, 1, [Define this to disable setting of the operating directory (chroot of sorts).])
AC_DEFINE(DISABLE_OPERATINGDIR, 1, [Define this to disable the setting of the operating directory (chroot of sorts).])
fi])
AC_ARG_ENABLE(speller,
@@ -135,34 +120,36 @@ AC_ARG_ENABLE(speller,
fi])
AC_ARG_ENABLE(tabcomp,
[ --disable-tabcomp Disable tab completion code for a smaller binary],
[ --disable-tabcomp Disable tab completion functions],
[if test x$enableval != xyes; then
AC_DEFINE(DISABLE_TABCOMP, 1, [Define to disable the tab completion code Chris worked so hard on!])
AC_DEFINE(DISABLE_TABCOMP, 1, [Define to disable the tab completion functions for files and search strings.])
fi])
AC_ARG_ENABLE(wrapping,
[ --disable-wrapping Disable all wrapping of text (and -w flag)],
[if test x$enableval != xyes; then
AC_DEFINE(DISABLE_WRAPPING, 1, [Define this to disable any and all text wrapping.])
AC_DEFINE(DISABLE_WRAPPING, 1, [Define this to disable all text wrapping.])
fi])
AC_ARG_ENABLE(wrapping-as-root,
[ --disable-wrapping-as-root Disable wrapping of text as root by default],
[if test x$enableval != xyes; then
AC_DEFINE(DISABLE_ROOTWRAP, 1, [Define this to disable wrapping as root by default.])
AC_DEFINE(DISABLE_ROOTWRAPPING, 1, [Define this to disable text wrapping as root by default.])
fi])
AC_ARG_ENABLE(color,
[ --enable-color Enable color and syntax highlighting],
[if test x$enableval = xyes; then
AC_DEFINE(ENABLE_NANORC, 1, [Define this to use the .nanorc file.]) nanorc_support=yes
AC_DEFINE(ENABLE_COLOR, 1, [Define this to have syntax highlighting, requires regex.h and ENABLE_NANORC too!]) color_support=yes
AC_MSG_WARN([
***********************************************************************
*** WARNING: Color support is far from perfect, but functional. ***
*** Be careful with syntax in your .nanorc or nano may malfunction. ***
***********************************************************************
])
if test x$ac_cv_header_regex_h = xyes; then
AC_DEFINE(ENABLE_NANORC, 1, [Define this to use .nanorc files.]) nanorc_support=yes
AC_DEFINE(ENABLE_COLOR, 1, [Define this to have syntax highlighting, requires regex.h and ENABLE_NANORC too!]) color_support=yes
else
AC_MSG_ERROR([
*** The header file regex.h was not found. If you wish to use color
*** support this header file is required. Please either install C
*** libraries that include the regex.h file or do not call the configure
*** script with --enable-color.])
fi
fi])
AC_ARG_ENABLE(multibuffer,
@@ -172,24 +159,18 @@ AC_ARG_ENABLE(multibuffer,
fi])
AC_ARG_ENABLE(nanorc,
[ --enable-nanorc Enable use of .nanorc file],
[ --enable-nanorc Enable use of .nanorc files],
[if test x$enableval = xyes; then
AC_DEFINE(ENABLE_NANORC, 1, [Define this to use the .nanorc file.]) nanorc_support=yes
AC_DEFINE(ENABLE_NANORC, 1, [Define this to use .nanorc files.]) nanorc_support=yes
fi])
AC_ARG_ENABLE(all,
[ --enable-all Enable ALL extra nano functionality (kitchen sink option)],
[if test x$enableval = xyes; then
AC_DEFINE(ENABLE_NANORC, 1, [Define this to use the .nanorc file.]) nanorc_support=yes
AC_DEFINE(ENABLE_NANORC, 1, [Define this to use .nanorc files.]) nanorc_support=yes
AC_DEFINE(ENABLE_COLOR, 1, [Define this to have syntax highlighting, requires regex.h and ENABLE_NANORC too!]) color_support=yes
AC_DEFINE(ENABLE_MULTIBUFFER, 1, [Define this to enable multiple file buffers.]) multibuffer_support=yes
AC_DEFINE(NANO_EXTRA, 1, [Define this to enable the extra stuff.]) extra_support=yes
AC_MSG_WARN([
***********************************************************************
*** WARNING: Color support is far from perfect, but functional. ***
*** Be careful with syntax in your .nanorc or nano may malfunction. ***
***********************************************************************
])
AC_DEFINE(NANO_EXTRA, 1, [Define this to enable extra stuff.]) extra_support=yes
fi])
AC_MSG_CHECKING([whether to enable UTF-8 support])
@@ -229,12 +210,11 @@ AC_ARG_WITH(slang,
#include <slcurses.h>
int main(void)
{
SLutf8_enable(TRUE);
SLutf8_enable(1);
return 0;
}],
[AC_MSG_RESULT(yes)
AC_DEFINE(USE_SLANG, 1, [Define to use the slang wrappers for curses instead of native curses.])
slang_support=yes
AC_DEFINE(USE_SLANG, 1, [Define to use the slang wrappers for curses instead of native curses.]) slang_support=yes
CURSES_LIB_WIDE=yes
if test x$with_slang != xyes; then
CURSES_LIB="-L${with_slang}/lib -lslang"
@@ -256,12 +236,11 @@ int main(void)
#include <slcurses.h>
int main(void)
{
SLutf8_enable(TRUE);
SLutf8_enable(1);
return 0;
}],
[AC_MSG_RESULT(yes)
AC_DEFINE(USE_SLANG, 1, [Define to use the slang wrappers for curses instead of native curses.])
slang_support=yes
AC_DEFINE(USE_SLANG, 1, [Define to use the slang wrappers for curses instead of native curses.]) slang_support=yes
CURSES_LIB_WIDE=yes
if test x$with_slang != xyes; then
CURSES_LIB="-L${with_slang}/lib -lslang $tcap"
@@ -278,12 +257,11 @@ int main(void)
#include <slcurses.h>
int main(void)
{
SLutf8_enable(TRUE);
SLutf8_enable(1);
return 0;
}],
[AC_MSG_RESULT(yes)
AC_DEFINE(USE_SLANG, 1, [Define to use the slang wrappers for curses instead of native curses.])
slang_support=yes
AC_DEFINE(USE_SLANG, 1, [Define to use the slang wrappers for curses instead of native curses.]) slang_support=yes
CURSES_LIB_WIDE=yes
if test x$with_slang != xyes; then
CURSES_LIB="-L${with_slang}/lib -lslang $tcap -lm"
@@ -296,11 +274,10 @@ int main(void)
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
*** The header file slcurses.h was not found. If you wish to use
*** slang support this header file is required. Please either
*** install a version of slang that includes the slcurses.h file or
*** do not call the configure script with --with-slang
]))
*** do not call the configure script with --with-slang.]))
fi
if eval "test x$CURSES_LIB_NAME = x"; then
@@ -321,8 +298,7 @@ int main(void)
return 0;
}],
[AC_MSG_RESULT(yes)
AC_DEFINE(USE_SLANG, 1, [Define to use the slang wrappers for curses instead of native curses.])
slang_support=yes
AC_DEFINE(USE_SLANG, 1, [Define to use the slang wrappers for curses instead of native curses.]) slang_support=yes
if test x$with_slang != xyes; then
CURSES_LIB="-L${with_slang}/lib -lslang"
else
@@ -347,8 +323,7 @@ int main(void)
return 0;
}],
[AC_MSG_RESULT(yes)
AC_DEFINE(USE_SLANG, 1, [Define to use the slang wrappers for curses instead of native curses.])
slang_support=yes
AC_DEFINE(USE_SLANG, 1, [Define to use the slang wrappers for curses instead of native curses.]) slang_support=yes
if test x$with_slang != xyes; then
CURSES_LIB="-L${with_slang}/lib -lslang $tcap"
else
@@ -368,8 +343,7 @@ int main(void)
return 0;
}],
[AC_MSG_RESULT(yes)
AC_DEFINE(USE_SLANG, 1, [Define to use the slang wrappers for curses instead of native curses.])
slang_support=yes
AC_DEFINE(USE_SLANG, 1, [Define to use the slang wrappers for curses instead of native curses.]) slang_support=yes
if test x$with_slang != xyes; then
CURSES_LIB="-L${with_slang}/lib -lslang $tcap -lm"
else
@@ -381,11 +355,10 @@ int main(void)
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
*** The header file slcurses.h was not found. If you wish to use
*** slang support this header file is required. Please either
*** install a version of slang that includes the slcurses.h file or
*** do not call the configure script with --with-slang
]))
*** do not call the configure script with --with-slang.]))
fi
if test "${_libs+set}" = "set"; then
@@ -398,6 +371,9 @@ int main(void)
;;
esac], [AC_MSG_RESULT(no)])
AM_CONDITIONAL(USE_COLOR, test x$color_support = xyes)
AM_CONDITIONAL(USE_NANORC, test x$nanorc_support = xyes)
dnl Checks for functions.
AC_CHECK_FUNCS(getdelim getline isblank strcasecmp strcasestr strncasecmp strnlen vsnprintf)
@@ -504,8 +480,10 @@ fi
AC_CONFIG_FILES([
Makefile
doc/Makefile
doc/nanorc.sample
doc/man/Makefile
doc/man/fr/Makefile
doc/syntax/Makefile
doc/texinfo/Makefile
m4/Makefile
po/Makefile.in

View File

@@ -1,2 +1,3 @@
Makefile
Makefile.in
nanorc.sample

View File

@@ -1,3 +1,7 @@
if USE_COLOR
SUBDIRS = man syntax texinfo
else
SUBDIRS = man texinfo
endif
EXTRA_DIST = faq.html nanorc.sample
EXTRA_DIST = faq.html

View File

@@ -25,24 +25,26 @@
<a href="#3.2">3.2. Compiling from source: WHAT THE HECK DO I DO NOW?</a><br>
<a href="#3.3">3.3. Why does everything go into /usr/local?</a><br>
<a href="#3.4">3.4. I get errors about 'bindtextdomain','gettext', and/or 'gettextdomain'. What can I do about it?</a><br>
<a href="#3.5">3.5. Nano should automatically run strip on the binary when installing it!</a><br>
<a href="#3.5">3.5. nano should automatically run strip on the binary when installing it!</a><br>
<a href="#3.6">3.6. How can I make the executable smaller? This is too bloated!</a><br>
<a href="#3.7">3.7. Tell me more about this multibuffer stuff!</a><br>
<a href="#3.8">3.8. Tell me more about this verbatim input stuff!</a><br>
<a href="#3.9">3.9. How do I make a .nanorc file that nano will read when I start it?</a></p></blockquote>
<h2><a href="#4">4. Running</a></h2>
<blockquote><p><a href="#4.1">4.1. How do I open a file with a name beginning with '+' from the command line?</a><br>
<a href="#4.2">4.2. Ack! My backspace/delete/enter/double bucky/meta key doesn't seem to work! What can I do?</a><br>
<a href="#4.2">4.2. Ack! My Backspace/Delete/Enter/Meta/double bucky key doesn't seem to work! What can I do?</a><br>
<a href="#4.3">4.3. Ack! My numeric keypad's keys don't work properly when NumLock is off! What can I do?</a><br>
<a href="#4.4">4.4. How do I type the F13-F16 keys shown in the help browser? My keyboard only has F1-F12!</a><br>
<a href="#4.5">4.5. Nano crashes when I type &lt;insert keystroke here&gt;!</a><br>
<a href="#4.6">4.6. Nano crashes when I resize my window. How can I fix that?</a><br>
<a href="#4.7">4.7. [version 1.1.12 and earlier] Why does nano show ^\ in the shortcut list instead of ^J?</a><br>
<a href="#4.8a">4.8a. [version 1.1.12 and earlier] When I type in a search string, the string I last searched for is already in front of my cursor! What happened?!</a><br>
<a href="#4.8b">4.8b. [version 1.1.99pre1 and later] Hey, the search string behavior has reverted, it's now like Pico, what happened to the consistency?</a><br>
<a href="#4.9">4.9. How do I make nano my default editor (in Pine, mutt, etc.)?</a><br>
<a href="#4.10">4.10. I've compiled nano with color support, but I don't see any color when I run it!</a><br>
<a href="#4.11">4.11. How do I select text for the clipboard in an X terminal when I'm running nano in one and nano's mouse support is turned on?</a></p></blockquote>
<a href="#4.4">4.4. Ack! When I hold down a Meta key combination for a while, the character of the held key gets inserted now and then. What gives?</a><br>
<a href="#4.5">4.5. How do I type the F13-F16 keys shown in the help browser? My keyboard only has F1-F12!</a><br>
<a href="#4.6">4.6. nano crashes when I type &lt;insert keystroke here&gt;!</a><br>
<a href="#4.7">4.7. nano crashes when I resize my window. How can I fix that?</a><br>
<a href="#4.8">4.8. [version 1.3.12 and later] I'm using glibc 2.2.3, and nano crashes when I use color support or do regular expression searches. How can I fix that?</a><br>
<a href="#4.9">4.9. [version 1.1.12 and earlier] Why does nano show ^\ in the shortcut list instead of ^J?</a><br>
<a href="#4.10a">4.10a. [version 1.1.12 and earlier] When I type in a search string, the string I last searched for is already in front of my cursor! What happened?!</a><br>
<a href="#4.10b">4.10b. [version 1.1.99pre1 and later] Hey, the search string behavior has reverted, it's now like Pico, what happened to the consistency?</a><br>
<a href="#4.11">4.11. How do I make nano my default editor (in Pine, mutt, etc.)?</a><br>
<a href="#4.12">4.12. I've compiled nano with color support, but I don't see any color when I run it!</a><br>
<a href="#4.13">4.13. How do I select text for or paste text from the clipboard in an X terminal when I'm running nano in one and nano's mouse support is turned on?</a></p></blockquote>
<h2><a href="#5">5. Internationalization</a></h2>
<blockquote><p><a href="#5.1">5.1. There's no translation for my language!</a><br>
<a href="#5.2">5.2. I don't like the translation for &lt;x&gt; in my language. How can I fix it?</a><br>
@@ -55,7 +57,7 @@
<a href="#6.5">6.5. Why doesn't UW simply change their license?</a><br>
<a href="#6.6">6.6. What if tomorrow UW changes the license to be truly Free Software?</a></p></blockquote>
<h2><a href="#7">7. Miscellaneous</a></h2>
<blockquote><p><a href="#7.1">7.1. Nano-related mailing lists.</a><br>
<blockquote><p><a href="#7.1">7.1. nano-related mailing lists.</a><br>
<a href="#7.2">7.2. I want to send the development team a big load of cash (or just a thank you).</a><br>
<a href="#7.3">7.3. How do I submit a patch?</a><br>
<a href="#7.4">7.4. How do I join the development team?</a><br>
@@ -77,14 +79,14 @@
<p>The <a href="http://www.debian.org/">Debian GNU/Linux</a> distribution, known for its strict standards in distributing truly &quot;free&quot; software (i.e. software with no restrictions on redistribution), would not include a binary package for Pine or Pico. Many people had a serious dilemma: they loved these programs, but they were not truly free software in the <a href="http://www.gnu.org/philosophy/free-sw.html">GNU</a> sense of the word.</p>
<p><b>The event...</b></p>
<p>It was in late 1999 when Chris Allegretta (our hero) was yet again complaining to himself about the less-than-perfect license Pico was distributed under, the 1000 makefiles that came with it and how just a few small improvements could make it the Best Editor in the World (TM). Having been a convert from Slackware to Debian, he missed having a simple binary package that included Pine and Pico, and had grown tired of downloading them himself.</p>
<p>Finally something snapped inside and Chris coded and hacked like a madman for many hours straight one weekend to make a (barely usable) Pico clone, at the time called TIP (Tip Isn't Pico). The program could not be invoked without a filename, could not save files, had no help menu, spell checker, and so forth. But over time it improved, and with the help of a few great coders it matured to the (hopefully) stable state it is today.</p>
<p>In February 2001, nano was declared an official GNU program by Richard Stallman. Nano also reached its first production release on March 22, 2001.</p></blockquote>
<p>Finally something snapped inside and Chris coded and hacked like a madman for many hours straight one weekend to make a (barely usable) Pico clone, at the time called TIP (Tip Isn't Pico). The program could not be invoked without a filename, could not save files, had no help text display, spell checker, and so forth. But over time it improved, and with the help of a few great coders it matured to the (hopefully) stable state it is today.</p>
<p>In February 2001, nano was declared an official GNU program by Richard Stallman. nano also reached its first production release on March 22, 2001.</p></blockquote>
<h2><a name="1.5"></a>1.5. Why the name change from TIP?</h2>
<blockquote><p>On January 10, 2000, TIP was officially renamed to nano because of a namespace conflict with another program called 'tip'. The original 'tip' program &quot;establishes a full duplex terminal connection to a remote host&quot;, and was included with many older Unix systems (and newer ones like Solaris). The conflict was not noticed at first because there is no 'tip' utility included with most GNU/Linux distributions (where nano was developed).</p></blockquote>
<h2><a name="1.6"></a>1.6. What is the current version of nano?</h2>
<blockquote><p>The current version of nano *should* be 1.3.11. Of course you should always check the nano homepage to see what the latest and greatest version is.</p></blockquote>
<blockquote><p>The current version of nano *should* be 2.0.3. Of course, you should always check the nano homepage to see what the latest and greatest version is.</p></blockquote>
<h2><a name="1.7"></a>1.7. I want to read the man page without having to download the program!</h2>
<blockquote><p>Jeez, demanding, aren't we? Okay, look <a href="http://www.nano-editor.org/dist/v1.3/nano.1.html">here</a>.</p></blockquote>
<blockquote><p>Jeez, demanding, aren't we? Okay, look <a href="http://www.nano-editor.org/dist/v2.0/nano.1.html">here</a>.</p></blockquote>
<hr width="100%">
<h1><a name="2"></a>2. Where to get GNU nano.</h1>
<h2><a name="2.1"></a>2.1. FTP and WWW sites that carry nano.</h2>
@@ -112,7 +114,7 @@
<p>You can also have a look at the <a href="ftp://ftp.debian.org/debian/pool/main/n/nano/">Package Pool</a> to see all the available binary and source packages.</p>
<p>Note that versions &lt; 0.9.10 are probably not for those wanting to get serious work done, so if you are using Debian 2.2, check that you have updated to 2.2r3, which comes with nano 0.9.23. If you're tracking unstable, you probably have the newest version already.</p></blockquote>
<h2><a name="2.4"></a>2.4. By CVS (for the brave).</h2>
<blockquote><p>For the 'bleeding edge' current version of nano, you can use CVS to download the current source code. <b>Note:</b> believe it or not, by downloading code that has not yet stabilized into an official release, there could quite possibly be bugs, in fact the code may not even compile! Anyway, see <a href="http://savannah.gnu.org/cvs/?group_id=1025">the nano CVS page</a> for info on anonymous CVS access to the nano source.</p></blockquote>
<blockquote><p>For the 'bleeding edge' current version of nano, you can use CVS to download the current source code. <b>Note:</b> believe it or not, by downloading code that has not yet stabilized into an official release, there could quite possibly be bugs, in fact the code may not even compile! Anyway, see <a href="http://savannah.gnu.org/cvs/?group=nano">the nano CVS page</a> for info on anonymous CVS access to the nano source.</p></blockquote>
<hr width="100%">
<h1><a name="3"></a>3. Installation and Configuration</h1>
<h2><a name="3.1"></a>3.1. How do install the RPM or DEB package?</h2>
@@ -134,17 +136,16 @@
<p>to put nano into /usr/bin when you run <b>make install</b>.</p></blockquote>
<h2><a name="3.4"></a>3.4. I get errors about 'bindtextdomain', 'gettext', and/or 'gettextdomain'. What can I do about it?</h2>
<blockquote><p>Try doing a <b>./configure --with-included-gettext</b> and see if that solves your problem. You may need to do a <b>make clean; make</b> to get it to work fully.</p></blockquote>
<h2><a name="3.5"></a>3.5. Nano should automatically run strip on the binary when installing it!</h2>
<h2><a name="3.5"></a>3.5. nano should automatically run strip on the binary when installing it!</h2>
<blockquote><p>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.</p></blockquote>
<h2><a name="3.6"></a>3.6. How can I make the executable smaller? This is too bloated!</h2>
<blockquote><p>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:</p>
<pre>
<b>--disable-tabcomp</b> Disable tab completion code for a smaller
binary
<b>--disable-justify</b> Disable justify/unjustify function
<b>--disable-speller</b> Disable spell checker function
<b>--disable-help</b> Disable help function
<b>--disable-browser</b> Disable mini file browser
<b>--disable-tabcomp</b> Disable tab completion functions
<b>--disable-justify</b> Disable justify/unjustify functions
<b>--disable-speller</b> Disable spell checker functions
<b>--disable-help</b> Disable help functions
<b>--disable-browser</b> Disable built-in file browser
<b>--disable-wrapping</b> Disable all wrapping of text (and -w flag)
<b>--disable-mouse</b> Disable mouse support (and -m flag)
<b>--disable-operatingdir</b> Disable setting of operating directory</pre>
@@ -152,62 +153,68 @@
<p>If, on the other hand, you can't live without bells and whistles, you could try:</p>
<pre>
<b>--enable-extra</b> Enable extra features, currently only easter eggs
<b>--enable-nanorc</b> Enable use of .nanorc file
<b>--enable-nanorc</b> Enable use of .nanorc files
<b>--enable-color</b> Enable color and syntax highlighting
<b>--enable-multibuffer</b> Enable having multiple file buffers open
<b>--enable-all</b> Enable all of the above features
<b>--disable-wrapping-as-root</b>
Turn off wrapping of text by default when the
user is root</pre></blockquote>
Disable text wrapping by default when the user is
root</pre></blockquote>
<h2><a name="3.7"></a>3.7. Tell me more about this multibuffer stuff!</h2>
<blockquote><p>To use multiple file buffers, you must be using nano 1.1.0 or newer, and you must have configured nano with <b>--enable-multibuffer</b> (use nano -V to check). Then when you want to enable inserting a file into its own buffer instead of into the current file, just hit <b>Meta-F</b>, then insert the file as normal with <b>^R</b>. If you always want files to be loaded into their own buffers, use the <b>--multibuffer</b> or <b>-F</b> flag when you invoke nano.</p>
<blockquote><p>To use multiple file buffers, you must be using nano 1.1.0 or newer, and you must have configured nano with <b>--enable-multibuffer</b> (use nano -V to check). Then when you want to enable inserting a file into its own buffer instead of into the current file, just hit <b>Meta-F</b>, then insert the file as normal with <b>^R</b>. If you always want files to be loaded into their own buffers, use the <b>--multibuffer</b> or <b>-F</b> flag when you invoke nano.</p>
<p>You can move between the buffers you have open with the <b>Meta-&lt;</b> and <b>Meta-&gt;</b> keys, or more easily with <b>Meta-,</b> and <b>Meta-.</b> (clear as mud, right? =-). When you have more than one file buffer open, the ^X shortcut will say &quot;Close&quot;, instead of the normal &quot;Exit&quot; when only one buffer is open.</p></blockquote>
<h2><a name="3.8"></a>3.8. Tell me more about this verbatim input stuff!</h2>
<blockquote><p>To use verbatim input, you must be using nano 1.3.1 or newer. When you want to insert a literal character into the file you're editing, such as a control character that nano usually treats as a command, first press <b>Meta-V</b>. (If you're not at a prompt, you'll get the message &quot;Verbatim Input&quot;.) Then press the key(s) that generate the character you want.</p>
<p>Alternatively, you can press <b>Meta-V</b> and then type a six-digit hexadecimal code from 000000 to 10FFFF (case-insensitive), and the character with the corresponding value will be inserted instead.</p></blockquote>
<p>Alternatively, if you've enabled Unicode support (see section <a href="#5.3">5.3</a>), you can press <b>Meta-V</b> and then type a six-digit hexadecimal code from 000000 to 10FFFF (case-insensitive), and the character with the corresponding value will be inserted instead. The prompt will change to &quot;Unicode Input&quot; when you do this.</p></blockquote>
<h2><a name="3.9"></a>3.9. How do I make a .nanorc file that nano will read when I start it?</h2>
<blockquote><p>It's not hard at all! But, your version of nano must have been compiled with <b>--enable-nanorc</b>, and again must be version 1.1.12 or newer (use nano -V to check your version and compiled features). Then simply copy the <b>nanorc.sample</b> that came with the nano source or your nano package (most likely in /usr/doc/nano) to .nanorc in your home directory. If you didn't get one, the syntax is simple. Flags are turned on and off by using the word <b>set</b> and the getopt_long flag for the feature, for example &quot;set nowrap&quot; or &quot;set suspend&quot;.</p></blockquote>
<hr width="100%">
<h1><a name="4"></a>4. Running</h1>
<h2><a name="4.1"></a>4.1. How do I open a file with a name beginning with '+' from the command line?</h2>
<blockquote><p>If a command line option that begins with '+' is followed by another option, the former is always treated as a starting line number and the latter is always treated as a filename. If a command line option that begins with '+' isn't followed by another option, it's always treated as a filename. Examples:</p>
<blockquote><p>If a command line option that begins with '+' is followed by another option, the former is always treated as a starting line and column number and the latter is always treated as a filename. If a command line option that begins with '+' isn't followed by another option, it's always treated as a filename. Examples:</p>
<p>To open '+filename.txt' starting on line 1: <b>nano +filename.txt</b><br>
To open '+filename.txt' starting on line 10: <b>nano +10 +filename.txt</b><br>
To open '+filename.txt' starting on line 1, column 20: <b>nano +,20 +filename.txt</b><br>
To open '+filename.txt' starting on line 10, column 20: <b>nano +10,20 +filename.txt</b><br>
To open '+filename.txt' starting on line 1 and 'filename.txt' starting on line 10 (if nano has been compiled with multibuffer support): <b>nano +1 +filename.txt +20 filename.txt</b></p></blockquote>
<h2><a name="4.2"></a>4.2. Ack! My backspace/delete/enter/double bucky/meta key doesn't seem to work! What can I do?</h2>
<blockquote><p>Try setting your $TERM variable to 'vt100'. Nano doesn't yet support every term entry under the sun.</p>
<h2><a name="4.2"></a>4.2. Ack! My Backspace/Delete/Enter/Meta/double bucky key doesn't seem to work! What can I do?</h2>
<blockquote><p>Try setting your $TERM variable to 'vt100'. nano doesn't yet support every term entry under the sun.</p>
<p>Bourne shell users (bash and sh): <b>export TERM=vt100</b><br>
C Shell users (tcsh and csh): <b>setenv TERM vt100</b></p></blockquote>
<h2><a name="4.3"></a>4.3. Ack! My numeric keypad's keys don't work properly when NumLock is off! What can I do?</h2>
<blockquote><p>You can use the <b>-K</b> or <b>--rebindkeypad</b> options on the command line, or add the line <b>set rebindkeypad</b> to your .nanorc. However, nano's mouse support won't work properly if you do any of these things.</p></blockquote>
<h2><a name="4.4"></a>4.4. How do I type the F13-F16 keys shown in the help browser? My keyboard only has F1-F12!</h2>
<blockquote><p>It depends on the terminal type you're using. On some terminals, such as the FreeBSD console, xterm, konsole, and gnome-terminal, Shift-F1 to Shift-F4 will generate F13 to F16. On other terminals, such as the Linux console, rxvt, or Eterm, Shift-F3 to Shift-F6 will generate F13 to F16.</p></blockquote>
<h2><a name="4.5"></a>4.5. Nano crashes when I type &lt;insert keystroke here&gt;!</h2>
<blockquote><p>You can use the <b>-K</b> or <b>--rebindkeypad</b> options on the command line, or add the line <b>set rebindkeypad</b> to your .nanorc. However, nano's mouse support won't work properly if you do any of these things.</p></blockquote>
<h2><a name="4.4"></a>4.4. Ack! When I hold down a Meta key combination for a while, the character of the held key gets inserted now and then. What gives?</h2>
<blockquote><p>This is a bug in the terminal, not in nano. When a key is repeating faster than nano can process it, the keyboard buffer becomes full and starts dropping incoming keystrokes. Unfortunately, it doesn't just drop whole keystrokes; it can also drop parts of multibyte key combinations, resulting in nano's receiving a wrong key.</p></blockquote>
<h2><a name="4.5"></a>4.5. How do I type the F13-F16 keys shown in the help browser? My keyboard only has F1-F12!</h2>
<blockquote><p>It depends on the terminal type you're using. On some terminals, such as the FreeBSD console, xterm, konsole, and gnome-terminal, Shift-F1 to Shift-F4 will generate F13 to F16. On other terminals, such as the Linux console, rxvt, and Eterm, Shift-F3 to Shift-F6 will generate F13 to F16.</p></blockquote>
<h2><a name="4.6"></a>4.6. nano crashes when I type &lt;insert keystroke here&gt;!</h2>
<blockquote><p>If you aren't trying some bizarre keystroke combination with some bizarre $TERM entry, chances are you have found a bug. You are welcome to submit it to the <a href="mailto:nano-devel@gnu.org">nano-devel</a> list or to <a href="mailto:nano@nano-editor.org">nano@nano-editor.org</a>.</p></blockquote>
<h2><a name="4.6"></a>4.6. Nano crashes when I resize my window. How can I fix that?</h2>
<h2><a name="4.7"></a>4.7. nano crashes when I resize my window. How can I fix that?</h2>
<blockquote><p>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).</p></blockquote>
<h2><a name="4.7"></a>4.7. [version 1.1.12 and earlier] Why does nano show ^\ in the shortcut list instead of ^J?</h2>
<h2><a name="4.8"></a>4.8. [version 1.3.12 and later] I'm using glibc 2.2.3, and nano crashes when I use color support or do regular expression searches. How can I fix that?</h2>
<blockquote><p>It's a bug in glibc 2.2.3. You should upgrade to at least glibc 2.2.4.</p></blockquote>
<h2><a name="4.9"></a>4.9. [version 1.1.12 and earlier] Why does nano show ^\ in the shortcut list instead of ^J?</h2>
<blockquote><p>The help (^G) and justify (^J) function were among the last to be written. To show the improvements that nano had over Pico (go to line # and replace), ^_ and ^\ were put on the shortcut list. Later, ^G came back in place of ^_ as it proved to be very valuable for new Unix users. If you use the <b>-p</b> option to nano (or hit Meta-P) you will get the same shortcuts at the bottom as Pico.</p></blockquote>
<h2><a name="4.8a"></a>4.8a. [version 1.1.12 and earlier] When I type in a search string, the string I last searched for is already in front of my cursor! What happened?!</h2>
<h2><a name="4.10a"></a>4.10a. [version 1.1.12 and earlier] When I type in a search string, the string I last searched for is already in front of my cursor! What happened?!</h2>
<blockquote><p>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).</p></blockquote>
<h2><a name="4.8b"></a>4.8b. [version 1.1.99pre1 and later] Hey, the search string behavior has reverted, it's now like Pico, what happened to the consistency?</h2>
<blockquote><p>It was decided that consistency was nice, but people are used to Pico's inconsistent behavior. Also, in version 1.1.99pre1, search and replace history was introduced. If you wish to edit your previous search/replace entry (or any previous entry), you can do so by hitting the up arrow to cycle through your history. This method allows the best of both worlds: You don't need to erase the previous string if you want to enter a new one, but you can with one keystroke recall previous entries for editing. Therefore there is now no "Pico mode", nano is and has always been a Pico <b>clone</b>, and clones by default should be compatible.</p></blockquote>
<h2><a name="4.9"></a>4.9. How do I make nano my default editor (in Pine, mutt, etc.)?</h2>
<h2><a name="4.10b"></a>4.10b. [version 1.1.99pre1 and later] Hey, the search string behavior has reverted, it's now like Pico, what happened to the consistency?</h2>
<blockquote><p>It was decided that consistency was nice, but people are used to Pico's inconsistent behavior. Also, in version 1.1.99pre1, search and replace history was introduced. If you wish to edit your previous search/replace entry (or any previous entry), you can do so by hitting the up arrow to cycle through your history. This method allows the best of both worlds: You don't need to erase the previous string if you want to enter a new one, but you can with one keystroke recall previous entries for editing. Therefore there is now no "Pico mode", nano is and has always been a Pico <b>clone</b>, and clones by default should be compatible.</p></blockquote>
<h2><a name="4.11"></a>4.11. How do I make nano my default editor (in Pine, mutt, etc.)?</h2>
<blockquote><p>You need to make nano your $EDITOR. If you want this to be saved, you should put a line like this in your <b>.bashrc</b> if you use bash (or <b>.zshrc</b> if you believe in zsh):</p>
<p><b>export EDITOR=/usr/local/bin/nano</b></p>
<p>or if you use tcsh put this in your <b>.cshrc</b> file:</p>
<p>or, if you use tcsh, put this in your <b>.cshrc</b> file:</p>
<p><b>setenv EDITOR /usr/local/bin/nano</b></p>
<p>Change /usr/local/bin/nano to wherever nano is installed on your system. Type &quot;which nano&quot; to find out. This will not take effect until the next time you login. So log out and back in again.</p>
<p>Then on top that if you use Pine you must go into setup (type <b>S</b> at the main menu), then configure (type <b>C</b>). Hit enter on the lines that say:</p>
<p>Then, on top of that, if you use Pine, you must go into setup (type <b>S</b> at the main menu), and then configure (type <b>C</b>). Hit Enter on the lines that say:</p>
<p><b>[ ] enable-alternate-editor-cmd</b><br>
<b>[ ] enable-alternate-editor-implicitly</b></p>
<p>Then exit (<b>E</b>) and select Yes (<b>Y</b>).</p>
<p>Mutt users should see an effect immediately the next time you log in, no further configuration is needed. However, if you want to let people know you use nano to compose your email messages, you can put a line like this in your <b>.muttrc</b>:</p>
<p>If you're a mutt user, you should see an effect immediately the next time you log in. No further configuration is needed. However, if you want to let people know you use nano to compose your email messages, you can put a line like this in your <b>.muttrc</b>:</p>
<p><b>my_hdr X-Composer: nano x.y.z</b></p>
<p>Again, replace x.y.z with the version of nano you use.</p></blockquote>
<h2><a name="4.10"></a>4.10. I've compiled nano with color support, but I don't see any color when I run it!</h2>
<h2><a name="4.12"></a>4.12. I've compiled nano with color support, but I don't see any color when I run it!</h2>
<blockquote><p>If you want nano to actually use color, you have to specify the color configurations you want it to use in your .nanorc. Some example configurations are in the <b>nanorc.sample</b> that comes with the nano source or your nano package. See Section <a href="#3.9">3.9</a>.</p></blockquote>
<h2><a name="4.11"></a>4.11. How do I select text for or paste text from the clipboard in an X terminal when I'm running nano in one and nano's mouse support is turned on?</h2>
<h2><a name="4.13"></a>4.13. How do I select text for or paste text from the clipboard in an X terminal when I'm running nano in one and nano's mouse support is turned on?</h2>
<blockquote><p>Try holding down the Shift key and selecting or pasting the text as you normally would.</p></blockquote>
<hr width="100%">
<h1><a name="5"></a>5. Internationalization</h1>
@@ -218,7 +225,7 @@
<h2><a name="5.2"></a>5.2. I don't like the translation for &lt;x&gt; in my language. How can I fix it?</h2>
<blockquote><p>The best way would probably be to e-mail the person listed in the <code>Last-Translator:</code> field in the <b>&lt;your_language&gt;.po</b> file with your suggested corrections and they can make the changes reach the nano-devel list.</p></blockquote>
<h2><a name="5.3"></a>5.3. What is the status of Unicode support?</h2>
<blockquote><p>With the latest development version (1.3.10+), Unicode should be mostly usable. With your terminal, locale (LC_ALL and similar environment variables), and encoding configured to properly support UTF-8, you should be able to enter and save Unicode text.</p></blockquote>
<blockquote><p>In version 1.3.12 or later, Unicode should be usable. With your terminal, locale (LC_ALL and similar environment variables), and encoding configured to properly support UTF-8, you should be able to enter and save Unicode text.</p></blockquote>
<hr width="100%">
<h1><a name="6"></a>6. Advocacy and Licensing</h1>
<h2><a name="6.1"></a>6.1. Why should I use nano instead of Pico?</h2>
@@ -232,16 +239,16 @@
<h2><a name="6.5"></a>6.5. Why doesn't UW simply change their license?</h2>
<blockquote><p>You're really not asking the right person here. I (Chris) waited a long time to see if UW would change their license because of the amount of high quality software being released and developed under the GPL without being taken advantage of by malicious corporate entities or other baddies, but no such luck so far.</p></blockquote>
<h2><a name="6.6"></a>6.6. What if tomorrow UW changes the license to be truly Free Software?</h2>
<blockquote><p>Honestly nothing would make me happier than to see that happen. Nano would continue to be developed independently until such time as Pico had all the features nano did or the projects merged. That just does not seem very likely given that there has been no sign of any changes in the past few years in a positive direction.</p></blockquote>
<blockquote><p>Honestly nothing would make me happier than to see that happen. nano would continue to be developed independently until such time as Pico had all the features nano did or the projects merged. That just does not seem very likely given that there has been no sign of any changes in the past few years in a positive direction.</p></blockquote>
<hr width="100%">
<h1><a name="7"></a>7. Miscellaneous</h1>
<h2><a name="7.1"></a>7.1. Nano-related mailing lists.</h2>
<blockquote><p>There are three mailing lists for nano hosted at <a href="http://savannah.gnu.org/">Savannah</a>, info-nano, help-nano and nano-devel. Info-nano is a very low traffic list where new versions of nano are announced (surprise!) Help-nano is for getting help with the editor without needing to hear all of the development issues surrounding it. Nano-devel is a normally low, sometimes high traffic list for discussing the present and future development of nano. Here are links to where you can sign up for a given list:</p>
<h2><a name="7.1"></a>7.1. nano-related mailing lists.</h2>
<blockquote><p>There are three mailing lists for nano hosted at <a href="http://savannah.gnu.org/">Savannah</a>, info-nano, help-nano and nano-devel. info-nano is a very low traffic list where new versions of nano are announced (surprise!). help-nano is for getting help with the editor without needing to hear all of the development issues surrounding it. nano-devel is a normally low, sometimes high traffic list for discussing the present and future development of nano. Here are links to where you can sign up for a given list:</p>
<p>info-nano - <a href="http://mail.gnu.org/mailman/listinfo/info-nano/">http://mail.gnu.org/mailman/listinfo/info-nano/</a><br>
help-nano - <a href="http://mail.gnu.org/mailman/listinfo/help-nano/">http://mail.gnu.org/mailman/listinfo/help-nano/</a><br>
nano-devel - <a href="http://mail.gnu.org/mailman/listinfo/nano-devel/">http://mail.gnu.org/mailman/listinfo/nano-devel/</a></p></blockquote>
<h2><a name="7.2"></a>7.2. I want to send the development team a big load of cash (or just a thank you).</h2>
<blockquote><p>That's fine. Send it <a href="mailto:nano-devel@gnu.org">our way</a>! Better yet, fix a <a href="http://www.nano-editor.org/dist/v1.3/BUGS">bug</a> in the program or implement a <a href="http://www.nano-editor.org/dist/v1.3/TODO">cool feature</a> and send us that instead (though cash is fine too).</p></blockquote>
<blockquote><p>That's fine. Send it <a href="mailto:nano-devel@gnu.org">our way</a>! Better yet, fix a <a href="http://www.nano-editor.org/dist/v2.0/BUGS">bug</a> in the program or implement a <a href="http://www.nano-editor.org/dist/v2.0/TODO">cool feature</a> and send us that instead (though cash is fine too).</p></blockquote>
<h2><a name="7.3"></a>7.3. How do I submit a patch?</h2>
<blockquote><p>See Section <a href="#7.2">7.2</a>.</p></blockquote>
<h2><a name="7.4"></a>7.4. How do I join the development team?</h2>
@@ -249,8 +256,20 @@
<h2><a name="7.5"></a>7.5. Can I have CVS write access?</h2>
<blockquote><p>Re-read Section <a href="#7.4">7.4</a> and you should know the answer.</p></blockquote>
<h2><a name="8"></a>8. ChangeLog</h2>
<blockquote>
<p>2006/03/16 - Update the Free Translation Project's address, change the character set to UTF-8, and remove broken links to contributed RedHat nano packages. (DLR)<br>
<blockquote><p>2007/01/01 - Update section 4.1 to describe how to open files with names beginning with '+' at specified columns as well as lines. (DLR)<br>
2006/11/25 - Add miscellaneous wording and capitalization fixes. (DLR)<br>
2006/10/28 - Update various links for the 2.0 branch of nano. (DLR)<br>
2006/10/06 - Update the question in section 4.13 to match the version of it in the answer section. (DLR)<br>
2006/07/25 - Update section 5.3 again to not state &quot;the latest development version&quot; before 1.3.12, as it's no longer accurate. Also add some minor spacing fixes. (DLR)<br>
2006/06/12 - Update section 5.3, due to the display fix for two-column Unicode characters. (DLR)<br>
2006/06/05 - Add a new section 4.8, and move all section 4 entries after it down one number, to explain how to deal with glibc 2.2.3's crashes involving extended regular expressions. (DLR)<br>
2006/06/04 - Add minor punctuation, wording, and typo fixes. (DLR)<br>
2006/05/27 - Update section 3.8 to mention the new "Unicode Input" prompt, and how Unicode input only works when Unicode support is enabled. (DLR)<br>
2006/05/12 - Remove section 4.4, and move all section 4 entries after it up one number, since it no longer applies. Meta-] and Meta-[ are no longer used to indent and unindent marked text, since they require that the bracket matching key change to Ctrl-], which is used as the telnet escape key (found by Chris). Also, make the link to the nano CVS page a bit more readable. (DLR)<br>
2006/05/08 - Add a new section 4.5, and move all section 4 entries after it down one number, to explain a problem that can occur when holding down keys to generate Meta sequences. Also add a few more capitalization and wording fixes. (Benno Schulenberg, minor tweaks by DLR)<br>
2006/05/01 - Add a new section 4.4, and move all section 4 entries after it down one number, to explain how to deal with problems typing Meta-[. Also add a few capitalization and wording fixes. (DLR)<br>
2006/04/14 - Clarify section 1.4: help menu -> help text display. (DLR, suggested by Benno Schulenberg)<br>
2006/03/16 - Update the Free Translation Project's address, change the character set to UTF-8, and remove broken links to contributed RedHat nano packages. (DLR)<br>
2005/11/21 - Clarify section 5.3 to better explain how to enable Unicode support, and remove the mention of quirks, since they turned out to not be a nano problem. (Mike Frysinger and DLR)<br>
2005/11/19 - Add a new section 5.3 to explain the status of nano's Unicode support. (Mike Frysinger, minor tweaks by DLR)<br>
2005/08/27 - Update email address. (DLR)<br>
@@ -266,7 +285,7 @@
2004/11/05 - Fixed inaccuracy: Pico compatibility mode was made the default in nano 1.1.99pre1, not 1.2.2. Also added question about how to type F13-F16 on terminals lacking keys past F12 (suggested by Chris), question about how to select text for the clipboard in X terminals with nano's mouse support turned on (answer found by Joseph Birthisel), and misc. fixes and link updates. (DLR)<br>
2004/04/07 - Removed NumLock glitch question, as it's no longer needed. (DLR)<br>
2004/01/30 - Fixed inaccuracy: multibuffer mode was first in nano 1.1.0, not 1.1.12. (DLR)<br>
2003/12/31 - Added question about the new verbatim input function, and a few minor fixes. Removed reference to &quot;set pico&quot; (DLR).<br>
2003/12/31 - Added question about the new verbatim input function, and a few minor fixes. Removed reference to &quot;set pico&quot; (DLR).<br>
2003/07/02 - Added question about nano's not showing color when it's compiled with color support (DLR; suggested by Jordi).<br>
2003/02/23 - Updated RPM links for nano 1.2.x (DLR).<br>
2003/01/16 - Split section 4.5 into 4.5a and 4.5b for search string behavior. Added --enable-all docs.<br>

View File

@@ -1,4 +1,5 @@
Makefile
Makefile.in
nanorc.5.html
nano.1.html
nanorc.5.html
rnano.1.html

View File

@@ -4,15 +4,22 @@ else
SUBDIRS =
endif
if USE_NANORC
man_MANS = nano.1 nanorc.5 rnano.1
BUILT_SOURCES = nano.1.html nanorc.5.html rnano.1.html
else
man_MANS = nano.1 rnano.1
BUILT_SOURCES = nano.1.html rnano.1.html
endif
nano_man_mans = nano.1 nanorc.5 rnano.1
nano_built_sources = nano.1.html nanorc.5.html rnano.1.html
nano.1.html: nano.1
cat $< | groff -t -mandoc -Thtml > $@
groff -t -mandoc -Thtml < $< > $@
nanorc.5.html: nanorc.5
cat $< | groff -t -mandoc -Thtml > $@
groff -t -mandoc -Thtml < $< > $@
rnano.1.html: rnano.1
cat $< | groff -t -mandoc -Thtml > $@
groff -t -mandoc -Thtml < $< > $@
EXTRA_DIST = $(man_MANS) $(BUILT_SOURCES)
EXTRA_DIST = $(nano_man_mans) $(nano_built_sources)

View File

@@ -1,4 +1,5 @@
Makefile
Makefile.in
nanorc.5.html
nano.1.html
nanorc.5.html
rnano.1.html

View File

@@ -1,12 +1,21 @@
man_MANS = nano.1 nanorc.5
mandir = @mandir@/fr
BUILT_SOURCES = nano.1.html nanorc.5.html
if USE_NANORC
man_MANS = nano.1 nanorc.5 rnano.1
BUILT_SOURCES = nano.1.html nanorc.5.html rnano.1.html
else
man_MANS = nano.1 rnano.1
BUILT_SOURCES = nano.1.html rnano.1.html
endif
nano_man_mans = nano.1 nanorc.5 rnano.1
nano_built_sources = nano.1.html nanorc.5.html rnano.1.html
nano.1.html: nano.1
cat $< | groff -t -mandoc -Thtml > $@
groff -t -mandoc -Thtml < $< > $@
nanorc.5.html: nanorc.5
cat $< | groff -t -mandoc -Thtml > $@
groff -t -mandoc -Thtml < $< > $@
rnano.1.html: rnano.1
groff -t -mandoc -Thtml < $< > $@
EXTRA_DIST = $(man_MANS) $(BUILT_SOURCES)
EXTRA_DIST = $(nano_man_mans) $(nano_built_sources)

View File

@@ -1,12 +1,13 @@
.\" Hey, EMACS: -*- nroff -*-
.\" nano.1 is copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 by
.\" Chris Allegretta <chrisa@asty.org>
.\" nano.1 is copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005,
.\" 2006 by Chris Allegretta <chrisa@asty.org>
.\"
.\" Adaptation française (c) 2003-2005 par
.\" Jean-Philippe Guérard <jean-philippe.guerard@corbeaunoir.org>
.\" Adaptation française (c) 2003-2006 par
.\" Jean-Philippe Guérard <jean-philippe.guerard@tigreraye.org>.
.\"
.\" This is free documentation, see the latest version of the GNU General
.\" Public License for copying conditions. There is NO warranty.
.\" This is free documentation, see the latest version of the GNU
.\" General Public License for copying conditions. There is NO
.\" warranty.
.\"
.\" Ce document est libre. Reportez-vous à la dernière version de la
.\" licence publique générale GNU (GNU GPL) pour connaître ses
@@ -14,7 +15,7 @@
.\" AUCUNE garantie.
.\"
.\" $Id$
.TH NANO 1 "version 1.3.10" "15 décembre 2005"
.TH NANO 1 "version 2.0.0" "28\ octobre\ 2006"
.\" Please adjust this date whenever revising the manpage.
.\" Merci de modifier ces dates à chaque mise à jour de cette page.
.\"
@@ -24,7 +25,7 @@ nano \- NAno un NOuvel
.SH SYNOPSIS
.B nano
.I [\+LIGNE,COLONNE]\ [options]\ [fichier]
.I [OPTIONS]\ [[\+LIGNE,COLONNE]\ FICHIER]...
.br
.SH DESCRIPTION
@@ -34,18 +35,19 @@ Cette page de manuel d
.\" \fI<whatever>\fP escape sequences to invoke bold face and italics,
.\" respectively.
\fBnano\fR est un éditeur petit, sympathique et libre, qui vise à remplacer
Pico, l'éditeur par défaut du paquet non libre Pine. \fBnano\fR ne se
Pico, l'éditeur par défaut du logiciel non libre Pine. \fBnano\fR ne se
contentant pas de copier l'interface et l'ergonomie de Pico, il offre
également certaines fonctions manquantes (ou désactivées par défaut)
dans Pico. Ces fonctionnalités sont, par exemple, les fonctions de
recherche et de remplacement, et la possibilité de sauter directement à un
numéro de ligne.
recherche et de remplacement, et la possibilité de sauter directement à
une ligne et à une colonne précise.
.SH OPTIONS
.TP
.B \+\fILIGNE\fP,\fICOLONNE\fP
Démarre avec le curseur positionné à la colonne \fICOLONNE\fP de
la ligne \fILIGNE\fR au lieu de démarrer à la colonne\ 1, ligne\ 1.
la ligne \fILIGNE\fR (l'un des deux, au moins, devant être spécifié) au
lieu de démarrer à la colonne\ 1, ligne\ 1.
.TP
.B \-?
Identique à \fB-h (\-\-help)\fP.
@@ -62,6 +64,9 @@ ligne.
Lors de l'écriture d'un fichier, crée une copie de sécurité de la
version précédente, en ajoutant un tilde (~) au nom du fichier.
.TP
.B \-D (\-\-boldtext)
Utilise des caractères gras à la place de la vidéo inverse.
.TP
.B \-C \fIrépertoire\fP (\-\-backupdir=\fIrépertoire\fP)
Définit le répertoire utilisé par \fBnano\fP pour enregistrer les copies
de sécurité uniques si celles-ci sont activées.
@@ -104,14 +109,17 @@ espace suppl
Définit le préfixe par défaut des citations. Nano utilise ce préfixe
pour réaliser une justification correcte des citations. Si nano est
capable d'utiliser des expressions rationnelles, le préfixe par défaut
sera "^([\ \\t]*[|>:}#])+", sinon, ce sera ">\ ".
sera "\fI^([\ \\t]*[#:>\\|}])+\fP", sinon, ce sera "\fI>\ \fP". Dans
l'expression rationnelle précédente, «\ \fI\\t\fP\ » représente une
tabulation.
.TP
.B \-R (\-\-restricted)
Mode restreint\ : aucune lecture ou écriture de fichiers non indiqués
sur la ligne de commande, pas de lecture des fichiers nanorc,
interdiction de suspendre, interdiction d'ajouter au début, à la fin
ou de sauvegarder un fichier ayant déjà un nom sous un nom différent.
Cette option peut aussi être activée en appelant \fBnano\fP sous un nom
interdiction de suspendre, interdiction d'ajouter au début, à la fin,
de sauvegarder un fichier ayant déjà un nom sous un nom différent,
d'utiliser une copie de sécurité ou le correcteur orthographique. Cette
option peut aussi être activée en appelant \fBnano\fP sous un nom
commençant par «\ r\ » (par exemple «\ rnano\ »).
.TP
.B \-S (\-\-smooth)
@@ -126,10 +134,10 @@ est de 8.
.B \-U (\-\-quickblank)
Effacement rapide de la ligne d'état. Les messages affichés par la ligne
d'état disparaîtront après une frappe clavier au lieu de 25. Notez que
\fB-c\fP annule cette option.
l'option \fB-c\fP prend le pas sur cette option.
.TP
.B \-V (\-\-version)
Affiche le numéro de version et l'auteur.
Affiche la version, puis s'arrête.
.TP
.B \-W (\-\-wordbounds)
Détection plus précise des limites de mots, obtenue en considérant les
@@ -142,7 +150,7 @@ disponible.
.TP
.B \-c (\-\-const)
Affiche en permanence la position du curseur. Notez que cette option
annule l'option \fB-U\fP.
prend le pas sur l'option \fB-U\fP.
.TP
.B \-d (\-\-rebinddelete)
Interprète différemment la touche «\ Supprimer\ », afin que les touches
@@ -152,7 +160,7 @@ la touche
«\ Supprimer\ ».
.TP
.B \-h (\-\-help)
Affiche un résumé des options disponibles en ligne de commande.
Affiche un résumé des options de lancement de nano, puis s'arrête.
.TP
.B \-i (\-\-autoindent)
Indentation automatique. Commence chaque nouvelle ligne au même niveau que
@@ -168,8 +176,12 @@ remplace le lien par le nouveau fichier. Sans doute utile pour
les fichiers de \fI/tmp\fR, non\ ?
.TP
.B \-m (\-\-mouse)
Active l'utilisation de la souris (si elle est disponible pour votre
système).
Active l'utilisation de la souris, si elle est disponible pour votre
système. Lorsque celle-ci est activée, il est possible d'utiliser la
souris pour positionner le curseur, pour marquer le texte (avec un
double-clic) et pour lancer les fonctions correspondant aux raccourcis.
Il est possible d'utiliser la souris sous X\ Window ou en mode console
avec gpm.
.TP
.B \-o \fIrépertoire\fP (\-\-operatingdir=\fIrépertoire\fP)
Définit le répertoire de travail. Demande à \fBnano\fP de mettre en place
@@ -237,7 +249,7 @@ respectifs.
Merci de nous faire parvenir vos commentaires et de nous signaler les
bogues, en écrivant, en anglais, à \fBnano@nano-editor.org\fR.
La liste de discussion anglophone \fBnano\fR est disponible via
La liste de discussion anglophone \fBnano\fR est disponible à l'adresse
\fBnano-devel@gnu.org\fR.
Pour vous abonner, envoyez un courrier électronique à
@@ -245,7 +257,7 @@ Pour vous abonner, envoyez un courrier
N'hésitez pas également à envoyez vos commentaires, suggestions et
corrections relatives à l'adaptation française de cette page de manuel
ou du logiciel à \fBjean-philippe.guerard@corbeaunoir.org\fR.
ou du logiciel à \fBjean-philippe.guerard@tigreraye.org\fR.
.SH "SITE INTERNET"
http://www.nano-editor.org/
@@ -260,15 +272,14 @@ http://www.nano-editor.org/
.SH AUTEUR
Chris Allegretta <chrisa@asty.org> et d'autres (voir les fichiers
\fIAUTHORS\fR et \fITHANKS\fR pour plus d'information). Cette page de
manuel a été initialement rédigée par Jordi Mallach
<jordi@sindominio.net> pour le système GNU Debian (mais elle peut être
utilisée par d'autres).
manuel a été initialement rédigée par Jordi Mallach <jordi@gnu.org> pour
le système Debian (mais elle peut être utilisée par d'autres).
.SH TRADUCTION
Cette adaptation française a été réalisé par Jean-Philippe\ Guérard
<jean-philippe.guerard@corbeaunoir.org> le 15\ décembre\ 2005 à partir
de la version du 21\ novembre\ 2005 de la page de manuel de nano 1.3.10.
Cette version a été relue par Gérard Delafond.
Cette adaptation française a été réalisée par Jean-Philippe\ Guérard
<jean-philippe.guerard@tigreraye.org> le 28\ octobre\ 2006 à partir
de la version du 28\ octobre\ 2006 de la page de manuel de nano
2.0.0. Cette page a été relue par Gérard Delafond.
Un maximum de soin a été apporté lors de l'élaboration de cette
traduction\ ; néanmoins, quelques imperfections peuvent subsister. Si
@@ -277,6 +288,6 @@ version originale, n'h
traducteur.
La version originale la plus à jour de ce document est toujours
consultable via la commande :
consultable via la commande\ :
LANGUAGE=en man nano

View File

@@ -1,12 +1,13 @@
.\" Hey, EMACS: -*- nroff -*-
.\" nanorc.5 is Copyright (C) 2003, 2004, 2005 Free Software
.\" Foundation, Inc.
.\" nanorc.5 is Copyright (C) 2003, 2004, 2005, 2006 by the Free
.\" Software Foundation, Inc.
.\"
.\" (c) 2003-2005 Jean-Philippe Guérard <jean-philippe.guerard@corbeaunoir.org>
.\" pour l'adaptation française
.\" (c) 2003-2006 Jean-Philippe Guérard <jean-philippe.guerard@tigreraye.org>
.\" pour l'adaptation française.
.\"
.\" This is free documentation, see the latest version of the GNU General
.\" Public License for copying conditions. There is NO warranty.
.\" This is free documentation, see the latest version of the GNU
.\" General Public License for copying conditions. There is NO
.\" warranty.
.\"
.\" Ce document est libre. Reportez-vous à la dernière version de la
.\" licence publique générale GNU (GNU GPL) pour connaître ses
@@ -14,7 +15,7 @@
.\" AUCUNE garantie.
.\"
\" $Id$
.TH NANORC 5 "version 1.3.10" "15 décembre 2005"
.TH NANORC 5 "version 2.0.0" "28\ octobre\ 2006"
.\" Please adjust this date whenever revising the manpage.
.\" Merci de modifier ces dates à chaque mise à jour de cette page.
@@ -26,45 +27,52 @@ Cette page de manuel d
l'éditeur \fBnano\fP GNU.
.PP
\fBnano\fP est un petit éditeur sympathique et libre, qui vise à
remplacer Pico, l'éditeur par défaut du paquet non libre Pine.
remplacer Pico, l'éditeur par défaut du logiciel non libre Pine.
\fBnano\fP ne se contentant pas de copier l'interface et l'ergonomie de
Pico, il offre également certaines fonctionnalités manquantes (ou
désactivées par défaut) de Pico. Ces fonctionnalités sont, par exemple,
les fonctions de recherche et de remplacement et la possibilité de
sauter directement à un numéro de ligne.
sauter directement à une ligne et à une colonne précise.
.PP
Le fichier \fInanorc\fP contient les paramètres par défaut de
\fBnano\fP. Lors de son démarrage, nano commencera par lire le fichier
de configuration général \fISYSCONFDIR/nanorc\fP, puis lira le fichier
de configuration personnel de l'utilisateur \fI~/.nanorc\fP.
\fBnano\fP. Il ne doit pas être au format DOS ou Mac. Lors de son
démarrage, nano commencera par lire le fichier de configuration général
\fISYSCONFDIR/nanorc\fP, puis lira le fichier de configuration personnel
de l'utilisateur \fI~/.nanorc\fP.
.SH OPTIONS
Le fichier de configuration accepte une série de commandes «\ set\ »
(activer) et «\ unset\ » (désactiver), qui permettent de définir la
configuration de nano au démarrage sans avoir à utiliser d'options sur
la ligne de commande. De plus, les mots clefs «\ syntax\ » (syntaxe),
«\ color\ » (couleur) et «\ icolor\ » (couleur insensible à la casse)
Le fichier de configuration accepte une série de commandes \fBset\fP
(activer) et \fBunset\fP (désactiver), qui permettent de définir le
paramétrage de nano au démarrage sans avoir à utiliser d'options de
ligne de commande. De plus, les mots clefs \fBsyntax\fP (syntaxe),
\fBcolor\fP (couleur) et \fBicolor\fP (couleur insensible à la casse)
sont utilisés pour définir les règles de colorisation pour différents
motifs de texte. Nano lira une commande par ligne.
motifs de texte. \fBnano\fP lit une commande par ligne.
Les options du fichier de configuration ont priorité sur les valeurs par
défaut utilisées par nano. Les options de la ligne de commande sont
prioritaires par rapport aux options du fichier de configuration.
Les options du fichier de configuration ont priorité sur les valeurs par
défaut utilisées par nano. Les options de la ligne de commande sont
prioritaires par rapport aux options du fichier de configuration. Les
options sont désactivées (unset) par défaut, sauf les options prenant un
argument.
Les options sont désactivées (unset) par défaut, sauf les options
prenant un argument.
Les apostrophes («\ \fI'\fP\ ») et les guillemets droits («\ \fI"\fP\ »)
présents dans des chaînes de caractères utilisées comme paramètres n'ont
pas besoin d'être précédées d'une barre oblique inversée
\ \fI\\\fP\ »). La chaîne sera terminée par le dernier guillemet
droit. Par exemple, pour l'option \fBbrackets\fP, "\fI"')>]}\fP"
correspondra à \fI"\fP, \fI'\fP, \fI)\fP, \fI>\fP, \fI]\fP et \fI}\fP.
Les commandes et arguments reconnus sont\ :
.TP 3
\fBset/unset autoindent\fP
.B set/unset autoindent
Active l'indentation automatique.
.TP
\fBset/unset backup\fP
.B set/unset backup
Crée des copies de sécurité nommées
.IR nom_du_fichier~ .
.TP
.B set backupdir \fIrépertoire\fP
.B set backupdir "\fIrépertoire\fP"
Définit le répertoire utilisé par \fBnano\fP pour enregistrer les copies
de sécurité uniques, si l'enregistrement de copies de sécurité est
activé.
@@ -72,82 +80,100 @@ activ
.B set/unset backwards
Par défaut, les recherches se font vers l'arrière.
.TP
.B set brackets \fIchaîne\fP
Définit les caractères considérés comme des fermetures de parenthèses.
Ces caractères ne doivent pas contenir d'espaces. Seules les
ponctuations terminales, éventuellement suivies de parenthèses
fermantes, peuvent terminer une phrase.
.B set/unset boldtext
Utilise des caractères gras à la place de la vidéo inverse.
.TP
.B set brackets "\fIchaîne\fP"
Définit les caractères considérés comme des crochets fermants lors de la
justification des paragraphes. Ces caractères ne doivent pas contenir
d'espaces. Seules les ponctuations terminales, éventuellement suivies
de crochets fermants, peuvent terminer une phrase.
(N.D.T.\ : reportez-vous au paragraphe sur l'option \fBpunct\fR pour
plus d'informations.)
La valeur par défaut de cette option est\ : "\fI"')>]}\fP".
.TP
.B set/unset casesensitive
Par défaut, les recherches ne tiennent pas compte de la casse.
.TP
\fBset/unset const\fP
.B set/unset const
Affiche en permanence la position du curseur dans la ligne d'état.
.TP
\fBset/unset cut\fP
.B set/unset cut
Par défaut, coupe le texte du curseur à la fin de la ligne, au lieu de
couper la ligne entière.
.TP
\fBset fill \fIn\fP\fP
Passe automatiquement à la ligne une fois arrivé à la colonne \fIn\fR.
Si la valeur indiquée est de 0 ou moins, le point de passage à la ligne
aura lieu à la taille de l'écran moins \fIn\fR. Cela permet de faire
varier le point de passage à la ligne lorsque l'on change la taille de
l'écran. La valeur par défaut est de -8.
.B set fill \fIn\fP
Passe automatiquement à la ligne une fois arrivé à la colonne
\fIn\fR. Si la valeur indiquée est de 0 ou moins, le point de passage à
la ligne aura lieu à la taille de l'écran moins \fIn\fR. Cela permet de
faire varier le point de passage à la ligne lorsque l'on change la
taille de l'écran. La valeur par défaut est de -8.
.TP
\fBset/unset historylog\fP
.B set/unset historylog
Active l'utilisation de
.I ~/.nano_history
pour enregistrer et relire les chaînes ayant fait l'objet d'une
recherche ou d'un remplacement.
.TP
.B set matchbrackets "\fIchaîne\fP"
Définit les crochets ouvrants et fermant pour la recherche de crochets
correspondants. Cette liste ne doit pas contenir de blancs. L'ensemble
des crochets ouvrants doit être indiqué en premier, suivi de l'ensemble
des crochets fermant, qui doit être dans le même ordre. La valeur par
défaut de cette option est "\fI(<[{)>]}\fP".
.TP
.B set/unset morespace
Utiliser la ligne blanche située sous la ligne de titre comme espace
supplémentaire d'édition.
.TP
.B set/unset mouse
Active l'utilisation de la souris, afin que des clics souris puissent
être utilisés pour marquer le texte ou accéder aux raccourcis.
Active l'utilisation de la souris, si elle est disponible pour votre
système. Lorsque celle-ci est activée, il est possible d'utiliser la
souris pour positionner le curseur, pour marquer le texte (avec un
double-clic) et pour lancer les fonctions correspondant aux raccourcis.
Il est possible d'utiliser la souris sous X\ Window ou en mode console
avec gpm.
.TP
\fBset/unset multibuffer\fP
Mode multifichier\ : permet de charger les fichiers dans leur propre
.B set/unset multibuffer
Mode multi-espace\ : permet de charger les fichiers dans leur propre
espace.
.TP
\fBset/unset noconvert\fP
.B set/unset noconvert
Pas de conversion depuis les formats DOS et Mac.
.TP
\fBset/unset nofollow\fP
.B set/unset nofollow
Ne suit pas les liens symboliques lors de l'écriture des fichiers.
.TP
\fBset/unset nohelp\fP
.B set/unset nohelp
Désactive les lignes d'aide affichée en bas de l'écran.
.TP
.B set/unset nonewlines
Ne pas ajouter de passage à la ligne à la fin des fichiers.
.TP
\fBset/unset nowrap\fP
.B set/unset nowrap
Désactive le passage automatique à la ligne.
.TP
\fBset operatingdir \fIrépertoire\fP\fP
.B set operatingdir "\fIrépertoire\fP"
\fBnano\fP ne lira et n'écrira des fichiers qu'à l'intérieur du
\fIrépertoire\fP et de ses sous-répertoires. De plus, celui-ci devient
le répertoire courant, afin que les fichiers soient lus depuis ce
répertoire. Par défaut, cette fonction est désactivée.
.TP
\fBset/unset preserve\fP
.B set/unset preserve
Préserve les séquences XON et XOFF (^Q et ^S).
.TP
\fBset punct \fIchaîne\fP\fP
Définit les caractères interprétés comme des ponctuations terminales.
Ces caractères ne peuvent inclure de blancs. Seules les ponctuations
terminales, éventuellement suivies de parenthèses fermantes, peuvent
terminer une phrase.
.B set punct "\fIchaîne\fP"
Définit les caractères interprétés comme des ponctuations terminales
lors de la justification des paragraphes. Ces caractères ne peuvent
inclure de blancs. Seules les ponctuations terminales, éventuellement
suivies de crochets fermants, peuvent terminer une phrase. La valeur par
défaut de cette option est "\fI!.?\fP".
(N.D.T.\ : ce réglage permet, lors de la justification, de conserver 2\
espaces au lieu d'une derrière les ponctuations terminales, ce qui
(N.D.T.\ : ce réglage permet, lors de la justification, de conserver
2\ espaces au lieu d'une derrière les ponctuations terminales, ce qui
correspond aux normes typographiques anglo-saxonnes, mais n'a pas lieu
d'être en français. Pour le français, le plus simple est d'indiquer,
dans le fichier nanorc, une chaîne vide pour ce paramètre.)
@@ -156,20 +182,17 @@ dans le fichier nanorc, une cha
Effacement rapide de la ligne d'état. Les messages affichés par la ligne
d'état disparaîtront après une frappe clavier au lieu de 25.
.TP
\fBset quotestr \fIchaîne\fP\fP
.B set quotestr "\fIchaîne\fP"
Définit le préfixe par défaut utilisé pour les citations dans les
courriers électroniques. Ce préfixe est utilisé pour réaliser une
justification correcte de ces citations. Il s'agira, si votre système le
permet, d'une «\ expression rationnelle étendue\ ». Dans le cas
permet, d'une expression rationnelle étendue. Dans le cas
contraire, il s'agira d'une chaîne de texte brut. Si vous disposez des
expressions rationnelles, la valeur par défaut sera\ :
set quotestr "^([\ \\t]*[|>:}#])+"
Sinon, ce sera ">\ ". Notez que le «\ \\t\ » ci-dessus correspond à un
caractère de tabulation.
expressions rationnelles, la valeur par défaut de cette option sera
"\fI^([\ \\t]*[#:>\\|}])+\fP", sinon, ce sera ">\ ". Notez que le
«\ \\t\ » ci-dessus correspond à un caractère de tabulation.
.TP
\fBset/unset rebinddelete\fP
.B set/unset rebinddelete
Interprète différemment la touche «\ Supprimer\ », afin que les touches
«\ Effacement arrière\ » et «\ Supprimer\ » fonctionnent correctement.
Vous ne devriez avoir besoin de cette option que si, sur votre système,
@@ -182,10 +205,11 @@ toutes correctement. Vous ne devriez utiliser cette option que si ce
n'est pas le cas, car nano ne sera plus capable d'utiliser la souris
correctement lorsque cette option sera activée.
.TP
\fBset/unset regexp\fP
Utilise par défaut des expressions rationnelles pour les recherches.
.B set/unset regexp
Utilise par défaut des expressions rationnelles étendues pour les
recherches.
.TP
\fBset/unset smarthome\fP
.B set/unset smarthome
Rend plus malin le fonctionnement de la touche «\ Début\ ». Lorsque
cette touche est pressée à n'importe quel endroit excepté au tout début
du texte d'une ligne (i.\ e. au premier caractère non blanc), le curseur
@@ -193,31 +217,31 @@ se positionnera au d
arrière). Si le curseur est déjà là, il se placera au vrai début de la
ligne.
.TP
\fBset/unset smooth\fP
.B set/unset smooth
Active le défilement ligne-par-ligne du texte.
.TP
\fBset speller \fIprogramme\fP\fP
.B set speller "\fIprogramme\fP"
Utilise le correcteur orthographique \fIprogramme\fP au lieu du
correcteur intégré, qui s'appuie sur \fIspell\fP.
.TP
\fBset/unset suspend\fP
Autorise à suspendre nano.
.B set/unset suspend
Autorise à suspendre \fBnano\fP.
.TP
\fBset tabsize \fIn\fP\fP
.B set tabsize \fIn\fP
Utilise une taille de tabulation de \fIn\fP colonnes. Cette valeur doit
être strictement supérieure à 0. La valeur par défaut est de\ 8.
.TP
.B set/unset tabstospaces
Convertit les tabulations clavier en espaces.
.TP
\fBset/unset tempfile\fP
.B set/unset tempfile
S'il a été modifié, le fichier sera sauvegardé automatiquement en
quittant, sans demande de confirmation.
.TP
\fBset/unset view\fP
.B set/unset view
Interdit de modifier les fichiers.
.TP
\fBset whitespace \fIchaîne\fP\fP
.B set whitespace "\fIchaîne\fP"
Définit les deux caractères utilisés pour afficher les premiers
caractères des tabulations et des espaces. Ces deux caractères doivent
être mono-colonne.
@@ -226,13 +250,13 @@ caract
Détection plus précise des limites de mots, obtenue en considérant les
caractères de ponctuation comme faisant partie des mots.
.TP
.B syntax \fIchaîne\fP ["\fImotif_de_fichier\fP" ... ]
.B syntax "\fIchaîne\fP" ["\fImotif_de_fichier\fP" ... ]
Définit une syntaxe nommée \fIchaîne\fP qui pourra être activé via
l'option \fB-Y\fP ou qui sera automatiquement activée si le nom du
fichier en cours correspond au \fImotif_de_fichier\fP. Toutes les
instructions suivantes de colorisation \fBcolor\fP ou \fBicolor\fP
s'appliqueront à cette syntaxe, jusqu'à la définition d'une nouvelle
syntaxe.
l'option \fB-Y\fP (ou \fB--syntax\fP) ou qui sera automatiquement
activée si le nom du fichier en cours correspond à l'expression
rationnelle étendue \fImotif_de_fichier\fP. Toutes les instructions
suivantes de colorisation \fBcolor\fP ou \fBicolor\fP s'appliqueront à
cette syntaxe, jusqu'à la définition d'une nouvelle syntaxe.
La syntaxe nommée \fInone\fP (aucune) est réservée\ ; si elle est
indiquée dans la ligne de commande, cela revient à ne définir aucune
@@ -243,13 +267,13 @@ syntaxes.
.TP
.B color \fIcouleur_texte\fP[,\fIcouleur_fond\fP] "\fImotif\fP" ...
Pour la syntaxe en cours, affiche toutes les expressions correspondant à
l'expression rationnelle \fImotif\fP en utilisant la couleur de texte
\fIcouleur_texte\fP et la couleur de fond \fIcouleur_fond\fP, l'une de
ces deux couleurs au moins devant être définie. Les couleurs acceptées
par \fBnano\fP pour le texte et le fond sont\ : \fIwhite\fP (blanc),
\fIblack\fP (noir), \fIred\fP (rouge), \fIblue\fP (bleu), \fIgreen\fP
(vert), \fIyellow\fP (jaune), \fImagenta\fP, et \fIcyan\fP. Pour la
couleur du texte, vous pouvez ajouter à ces couleurs le préfixe
l'expression rationnelle étendue \fImotif\fP en utilisant la couleur de
texte \fIcouleur_texte\fP et la couleur de fond \fIcouleur_fond\fP,
l'une de ces deux couleurs au moins devant être définie. Les couleurs
acceptées par \fBnano\fP pour le texte et le fond sont\ : \fIwhite\fP
(blanc), \fIblack\fP (noir), \fIred\fP (rouge), \fIblue\fP (bleu),
\fIgreen\fP (vert), \fIyellow\fP (jaune), \fImagenta\fP, et \fIcyan\fP.
Pour la couleur du texte, vous pouvez ajouter à ces couleurs le préfixe
\fIbright\fP (lumineux) pour obtenir une couleur plus lumineuse. Si
votre terminal est capable de gérer la transparence, ne pas spécifier de
\fIcouleur_fond\fP indique à \fBnano\fP d'essayer d'utiliser un fond
@@ -260,8 +284,9 @@ Comme ci-dessus, mais la recherche des motifs est effectu
compte de la casse.
.TP
.B color \fIcouleur_texte\fP[,\fIcouleur_fond\fP] start="\fImotif_début\fP" end="\fImotif_fin\fP"
Affiche les expressions commençant par \fImotif_début\fP et se terminant
par \fImotif_fin\fP en utilisant la couleur de texte \fIcouleur_texte\fP
Affiche les expressions commençant par l'expression rationnelle étendue
\fImotif_début\fP et se terminant par l'expression rationnelle étendue
\fImotif_fin\fP en utilisant la couleur de texte \fIcouleur_texte\fP
et la couleur de fond \fIcouleur_fond\fP, l'une de ces deux couleurs au
moins devant être définie. Cela permet à la colorisation syntaxique de
s'étendre sur plusieurs lignes. Notez que toutes les occurrences
@@ -271,6 +296,11 @@ seront surlign
.B icolor \fIcouleur_texte\fP[,\fIcouleur_fond\fP] start="\fImotif_début\fP" end="\fImotif_fin\fP"
Comme ci-dessus, mais la recherche des motifs est effectuée sans tenir
compte de la casse.
.TP
.B include "\fIfichier_de_syntaxes\fP"
Lit le fichier \fIfichier_de_syntaxes\fP contenant une liste
autosuffisante de définitions de syntaxes. Ce fichier ne doit contenir
que des commandes \fBsyntax\fP, \fBcolor\fP et \fBicolor\fP.
.SH FICHIERS
.TP
@@ -291,13 +321,15 @@ votre syst
.SH AUTEUR
Chris Allegretta <chrisa@asty.org> et d'autres (voir les fichiers
\fIAUTHORS\fP et \fITHANKS\fP pour plus d'information). Cette page de
manuel a été rédigée par Jordi Mallach <jordi@gnu.org>.
manuel a été initialement rédigée par Jordi Mallach <jordi@gnu.org> pour
le système Debian (mais elle peut être utilisée par d'autres).
.SH TRADUCTION
Cette adaptation française a été réalisé par Jean-Philippe\ Guérard
<jean-philippe.guerard@corbeaunoir.org> le 15\ décembre\ 2005 à partir de
la version du 21\ novembre\ 2005 de la page de manuel de nano 1.3.10.
Cette version a été relue par Gérard Delafond.
Cette adaptation française a été réalisée par Jean-Philippe\ Guérard
<jean-philippe.guerard@tigreraye.org> le 28\ octobre\ 2006 à partir de
la version du 28\ octobre\ 2006 de la page de manuel de nanorc (pour la
version 2.0.0 de nano). Cette page a été relue par Gérard
Delafond.
Un maximum de soin a été apporté lors de l'élaboration de cette
traduction\ ; néanmoins, quelques imperfections peuvent subsister. Si
@@ -306,6 +338,6 @@ version originale, n'h
traducteur.
La version originale la plus à jour de ce document est toujours
consultable via la commande :
consultable via la commande\ :
LANGUAGE=en man nano

122
doc/man/fr/rnano.1 Normal file
View File

@@ -0,0 +1,122 @@
.\" Hey, EMACS: -*- nroff -*-
.\" rnano.1 is Copyright (C) 2005, 2006 by Thijs Kinkhorst
.\" <thijs@kinkhorst.com>; skeleton based on nano-tiny.1 by Jordi
.\" Mallach <jordi@gnu.org>.
.\"
.\" Adaptation française (c) 2006 par
.\" Jean-Philippe Guérard <jean-philippe.guerard@tigreraye.org>.
.\"
.\" This is free documentation, see the latest version of the GNU
.\" General Public License for copying conditions. There is NO
.\" warranty.
.\"
.\" Ce document est libre. Reportez-vous à la dernière version de la
.\" licence publique générale GNU (GNU GPL) pour connaître ses
.\" conditions d'utilisation. Ce document est distribué sans
.\" AUCUNE garantie.
.\"
.\" $Id$
.TH RNANO 1 "version 2.0.0" "28\ octobre\ 20O6"
.\" Please adjust this date whenever revising the manpage.
.\" Merci de modifier ces dates à chaque mise à jour de cette page.
.\"
.SH NOM
rnano \- Le mode restreint de NAno un NOuvel éditeur, un clone libre et
amélioré de Pico
.SH SYNOPSIS
.B rnano
.I [OPTIONS]\ [[\+LIGNE,COLONNE]\ FICHIER]...
.br
.SH DESCRIPTION
Cette page de manuel décrit brièvement la commande \fBrnano\fR.
.PP
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
.\" \fI<whatever>\fP escape sequences to invoke bold face and italics,
.\" respectively.
\fBnano\fR est un éditeur petit, sympathique et libre, qui vise à
remplacer Pico, l'éditeur par défaut du logiciel non libre Pine.
\fBnano\fR ne se contentant pas de copier l'interface et l'ergonomie de
Pico, il offre également certaines fonctions manquantes (ou désactivées
par défaut) dans Pico. Ces fonctionnalités sont, par exemple, les
fonctions de recherche et de remplacement, et la possibilité de sauter
directement à une ligne et à une colonne précise..
.PP
\fBrnano\fP est une version de \fBnano\fP fonctionnant en mode
restreint, qui ne permet d'éditer que les fichiers indiqués et qui
n'autorise pas l'utilisateur à accéder au système de fichier ou à un
interpréteur de commandes.
.PP
En mode restreint, \fBnano\fP refusera\ :
.IP \[bu] 2
de lire ou d'écrire dans un fichier n'ayant pas été indiqué dans la
ligne de commande\ ;
.IP \[bu]
de lire un fichier nanorc\ ;
.IP \[bu]
de permettre de suspendre l'édition\ ;
.IP \[bu]
de permettre d'ajouter en début ou en fin d'un fichier, ou de
l'enregistrer sous un nom différent\ ;
.IP \[bu]
l'utilisation de copies de sécurité ou de la correction orthographique.
.SH OPTIONS
.TP
.B \+\fILIGNE\fP,\fICOLONNE\fP
Démarre avec le curseur positionné à la colonne \fICOLONNE\fP de
la ligne \fILIGNE\fR (l'un des deux, au moins, devant être spécifié) au
lieu de démarrer à la colonne\ 1, ligne\ 1.
.TP
.B \-?
Identique à \fB-h (\-\-help)\fP.
.TP
.B \-h (\-\-help)
Affiche un résumé des options de lancement de nano, puis s'arrête.
.TP
.B \-V (\-\-version)
Affiche la version, puis s'arrête.
.PP
Reportez-vous à la page de manuel \fBnano\fP(1) si vous souhaitez
consulter la documentation complète de \fBnano\fP.
.SH BOGUES
Merci de nous faire parvenir vos commentaires et de nous signaler les
bogues, en écrivant, en anglais, à \fBnano@nano-editor.org\fR.
La liste de discussion anglophone \fBnano\fR est disponible à l'adresse
\fBnano-devel@gnu.org\fR.
Pour vous abonner, envoyez un courrier électronique à
\fBnano-devel-request@gnu.org\fR, ayant pour objet «\ subscribe\ ».
N'hésitez pas également à envoyez vos commentaires, suggestions et
corrections relatives à l'adaptation française de cette page de manuel
ou du logiciel à \fBjean-philippe.guerard@tigreraye.org\fR.
.SH "SITE INTERNET"
http://www.nano-editor.org/
.SH AUTEUR
Chris Allegretta <chrisa@asty.org> et d'autres (voir le fichier
\fIAUTHORS\fR). Cette page de manuel a été initialement rédigée par
Thijs Kinkhorst <thijs@kinkhorst.com>, pour le système GNU Debian (mais
elle peut être utilisée par d'autres).
.SH TRADUCTION
Cette adaptation française a été réalisée par Jean-Philippe\ Guérard
<jean-philippe.guerard@tigreraye.org> le 28\ octobre\ 2006 à partir
de la version du 28\ octobre\ 2006 de la page de manuel de rnano
(pour la version 2.0.0 de nano).
Un maximum de soin a été apporté lors de l'élaboration de cette
traduction\ ; néanmoins, quelques imperfections peuvent subsister. Si
vous en rencontrez, que ce soit dans la version française ou dans la
version originale, n'hésitez pas à les signaler à l'auteur ou au
traducteur.
La version originale la plus à jour de ce document est toujours
consultable via la commande\ :
LANGUAGE=en man nano

View File

@@ -1,12 +1,13 @@
.\" Hey, EMACS: -*- nroff -*-
.\" nano.1 is copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 by
.\" Chris Allegretta <chrisa@asty.org>
.\" nano.1 is Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005,
.\" 2006 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.
.\" This is free documentation, see the latest version of the GNU
.\" General Public License for copying conditions. There is NO
.\" warranty.
.\"
.\" $Id$
.TH NANO 1 "version 1.3.11" "March 12, 2006"
.TH NANO 1 "version 2.0.0" "October 28, 2006"
.\" Please adjust this date whenever revising the manpage.
.\"
@@ -15,11 +16,11 @@ nano \- Nano's ANOther editor, an enhanced free Pico clone
.SH SYNOPSIS
.B nano
.I [\+LINE,COLUMN]\ [options]\ [file]
.I [OPTIONS]\ [[\+LINE,COLUMN]\ FILE]...
.br
.SH DESCRIPTION
This manual page documents briefly the \fBnano\fP command.
This manual page briefly documents the \fBnano\fP command.
.PP
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
.\" \fI<whatever>\fP escape sequences to invoke bold face and italics,
@@ -28,13 +29,14 @@ This manual page documents briefly the \fBnano\fP command.
Pico, the default editor included in the non-free Pine package. Rather
than just copying Pico's look and feel, \fBnano\fP also implements some
missing (or disabled by default) features in Pico, such as "search and
replace" and "go to line number".
replace" and "go to line and column number".
.SH OPTIONS
.TP
.B \+\fILINE\fP,\fICOLUMN\fP
Places cursor at line number \fILINE\fP and column number \fICOLUMN\fP
on startup, instead of the default of line 1, column 1.
(at least one of which must be specified) on startup, instead of the
default of line 1, column 1.
.TP
.B \-?
Same as \fB-h (\-\-help)\fP.
@@ -54,6 +56,9 @@ filename suffixed with a ~.
Set the directory where \fBnano\fP puts unique backup files if file
backups are enabled.
.TP
.B \-D (\-\-boldtext)
Use bold text instead of reverse video text.
.TP
.B \-E (\-\-tabstospaces)
Convert typed tabs to spaces.
.TP
@@ -61,8 +66,8 @@ Convert typed tabs to spaces.
Enable multiple file buffers, if available.
.TP
.B \-H (\-\-historylog)
Log search and replace strings to \fI~/.nano_history\fP so they can be
stored for later editing, if nanorc support is configured.
Log search and replace strings to \fI~/.nano_history\fP, so they can be
retrieved in later sessions, if nanorc support is available.
.TP
.B \-I (\-\-ignorercfiles)
Don't look at \fISYSCONFDIR/nanorc\fP or \fI~/.nanorc\fP, if nanorc
@@ -84,15 +89,16 @@ Use the blank line below the titlebar as extra editing space.
.TP
.B \-Q \fIstr\fP (\-\-quotestr=\fIstr\fP)
Set the quoting string for justifying. The default is
"\fI^([\ \\t]*[#:>\\|}])+\fP" if regular expression support is
available, or "\fI>\ \fP" otherwise.
"\fI^([\ \\t]*[#:>\\|}])+\fP" if extended regular expression support is
available, or "\fI>\ \fP" otherwise. Note that \fI\\t\fP stands for a
Tab.
.TP
.B \-R (\-\-restricted)
Restricted mode: Don't read or write to any file not specified on the
command line, read any nanorc files, allow suspending, or allow a file
Restricted mode: don't read or write to any file not specified on the
command line; read any nanorc files; allow suspending; allow a file
to be appended to, prepended to, or saved under a different name if it
already has one. Also accessible by invoking \fBnano\fP with any name
beginning with 'r' (e.g. "rnano").
already has one; or use backup files or spell checking. Also accessible
by invoking \fBnano\fP with any name beginning with 'r' (e.g. "rnano").
.TP
.B \-S (\-\-smooth)
Enable smooth scrolling. Text will scroll line-by-line, instead of the
@@ -104,10 +110,10 @@ Set the size (width) of a tab to \fIcols\fP columns. The value of
.TP
.B \-U (\-\-quickblank)
Do quick statusbar blanking. Statusbar messages will disappear after 1
keystroke instead of 25. Note that \fB-c\fP cancels this out.
keystroke instead of 25. Note that \fB-c\fP overrides this.
.TP
.B \-V (\-\-version)
Show the current version number and author.
Show the current version number and exit.
.TP
.B \-W (\-\-wordbounds)
Detect word boundaries more accurately by treating punctuation
@@ -118,8 +124,7 @@ Specify a specific syntax highlighting from the \fInanorc\fP to use, if
available.
.TP
.B \-c (\-\-const)
Constantly show the cursor position. Note that this cancels out
\fB-U\fP.
Constantly show the cursor position. Note that this overrides \fB-U\fP.
.TP
.B \-d (\-\-rebinddelete)
Interpret the Delete key differently so that both Backspace and Delete
@@ -127,7 +132,7 @@ work properly. You should only need to use this option if Backspace
acts like Delete on your system.
.TP
.B \-h (\-\-help)
Display a summary of command line options.
Show a summary of command line options and exit.
.TP
.B \-i (\-\-autoindent)
Indent new lines to the previous line's indentation. Useful when
@@ -142,7 +147,10 @@ a new file instead of following it. Good for editing files in
\fI/tmp\fP, perhaps?
.TP
.B \-m (\-\-mouse)
Enable mouse support (if available for your system).
Enable mouse support, if available for your system. When enabled, mouse
clicks can be used to place the cursor, set the mark (with a double
click), and execute shortcuts. The mouse will work in the X Window
System, and on the console when gpm is running.
.TP
.B \-o \fIdir\fP (\-\-operatingdir=\fIdir\fP)
Set operating directory. Makes \fBnano\fP set up something similar to a
@@ -191,14 +199,14 @@ If no alternative spell checker command is specified on the command
line or in one of the nanorc files, \fBnano\fP will check the
\fBSPELL\fP environment variable for one.
\fBnano\fP will try to dump the buffer into an emergency file in some
cases. Mainly, this will happen if \fBnano\fP receives a SIGHUP or
SIGTERM or runs out of memory, when it will write the buffer into a file
In some cases \fBnano\fP will try to dump the buffer into an emergency
file. This will happen mainly if \fBnano\fP receives a SIGHUP or
SIGTERM or runs out of memory. It will write the buffer into a file
named \fInano.save\fP if the buffer didn't have a name already, or will
add a ".save" suffix to the current filename. If an emergency file with
that name already exists in the current directory, ".save" and a number
(e.g. ".save.1") will be suffixed to the current filename in order to
make it unique. In multibuffer mode, \fBnano\fP will write all the open
that name already exists in the current directory, it will add ".save"
plus a number (e.g. ".save.1") to the current filename in order to make
it unique. In multibuffer mode, \fBnano\fP will write all the open
buffers to their respective emergency files.
.SH BUGS
@@ -222,5 +230,5 @@ http://www.nano-editor.org/
.SH AUTHOR
Chris Allegretta <chrisa@asty.org>, et al (see \fIAUTHORS\fP and
\fITHANKS\fP for details). This manual page was originally written by
Jordi Mallach <jordi@sindominio.net>, for the Debian GNU system (but may
be used by others).
Jordi Mallach <jordi@gnu.org>, for the Debian system (but may be used by
others).

View File

@@ -1,46 +1,46 @@
.\" Hey, EMACS: -*- nroff -*-
.\" nanorc.5 is Copyright (C) 2003, 2004, 2005 Free Software
.\" Foundation, Inc.
.\" nanorc.5 is Copyright (C) 2003, 2004, 2005, 2006 by the Free
.\" Software Foundation, Inc.
.\"
.\" This is free documentation, see the latest version of the GNU General
.\" Public License for copying conditions. There is NO warranty.
.\" This is free documentation, see the latest version of the GNU
.\" General Public License for copying conditions. There is NO
.\" warranty.
.\"
.\" $Id$
.TH NANORC 5 "version 1.3.11" "March 12, 2006"
.TH NANORC 5 "version 2.0.0" "October 28, 2006"
.\" Please adjust this date whenever revising the manpage.
.\"
.SH NAME
nanorc \- GNU nano's rcfile
.SH DESCRIPTION
This manual page documents GNU \fBnano\fP's rcfile.
This manual page briefly documents GNU \fBnano\fP's rcfile.
.PP
\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, \fBnano\fP also implements some
missing (or disabled by default) features in Pico, such as "search and
replace" and "go to line number".
replace" and "go to line and column number".
.PP
The \fInanorc\fP file contains the default settings for \fBnano\fP.
During startup, \fBnano\fP will first read its system-wide settings from
\fISYSCONFDIR/nanorc\fP, and then user-specific settings from
\fI~/.nanorc\fP.
The \fInanorc\fP file contains the default settings for \fBnano\fP. It
should not be in DOS or Mac format. During startup, \fBnano\fP will
first read its system-wide settings from \fISYSCONFDIR/nanorc\fP, and
then user-specific settings from \fI~/.nanorc\fP.
.SH OPTIONS
The configuration file accepts a series of "set" and "unset" commands,
which can be used to configure nano on startup without using the
command-line options. Additionally, the "syntax", "color", and "icolor"
keywords are used to define syntax highlighting rules for different text
patterns. GNU nano will read one command per line.
The configuration file accepts a series of \fBset\fP and \fBunset\fP
commands, which can be used to configure nano on startup without using
the command line options. Additionally, the \fBsyntax\fP, \fBcolor\fP,
and \fBicolor\fP keywords are used to define syntax highlighting rules
for different text patterns. \fBnano\fP will read one command per line.
Options in rcfiles take precedence over nano's defaults, and command
line options override rcfile settings.
Options are unset by default, except for options that take an argument.
Options in nanorc files take precedence over nano's defaults, and
command line options override nanorc settings. Also, options are unset
by default, except for those that take arguments.
Quotes inside string parameters don't have to be escaped with
backslashes. The last double quote in the string will be treated as its
end. For example, for the brackets option, "\fI"')>]}\fP" will match
\fI"\fP, \fI'\fP, \fI)\fP, \fI>\fP, \fI]\fP, and \fI}\fP.
end. For example, for the \fBbrackets\fP option, "\fI"')>]}\fP" will
match \fI"\fP, \fI'\fP, \fI)\fP, \fI>\fP, \fI]\fP, and \fI}\fP.
The supported commands and arguments are:
@@ -58,11 +58,14 @@ backups are enabled.
.B set/unset backwards
Do backwards searches by default.
.TP
.B set/unset boldtext
Use bold text instead of reverse video text.
.TP
.B set brackets "\fIstring\fP"
Set the characters treated as closing brackets. They cannot contain
blank characters. Only closing punctuation, optionally followed by
closing brackets, can end sentences. The default value is
"\fI"')>]}\fP".
Set the characters treated as closing brackets when justifying
paragraphs. They cannot contain blank characters. Only closing
punctuation, optionally followed by closing brackets, can end sentences.
The default value is "\fI"')>]}\fP".
.TP
.B set/unset casesensitive
Do case sensitive searches by default.
@@ -89,11 +92,13 @@ come before the latter set, and both must be in the same order. The
default value is "\fI(<[{)>]}\fP".
.TP
.B set/unset morespace
Allow use of the blank line below the titlebar as extra editing space.
Use the blank line below the titlebar as extra editing space.
.TP
.B set/unset mouse
Enable mouse support, so that mouse clicks can be used to set the mark
and run shortcuts.
Enable mouse support, if available for your system. When enabled, mouse
clicks can be used to place the cursor, set the mark (with a double
click), and execute shortcuts. The mouse will work in the X Window
System, and on the console when gpm is running.
.TP
.B set/unset multibuffer
Allow inserting files into their own buffers.
@@ -116,16 +121,17 @@ Don't wrap text at all.
.B set operatingdir "\fIdirectory\fP"
\fBnano\fP will only read and write files inside \fIdirectory\fP and its
subdirectories. Also, the current directory is changed to here, so
files are inserted from this dir. By default the operating directory
feature is turned off.
files are inserted from this diractory. By default, the operating
directory feature is turned off.
.TP
.B set/unset preserve
Preserve the XON and XOFF keys (^Q and ^S).
.TP
.B set punct "\fIstring\fP"
Set the characters treated as closing punctuation. They cannot contain
blank characters. Only closing punctuation, optionally followed by
closing brackets, can end sentences. The default value is "\fI!.?\fP".
Set the characters treated as closing punctuation when justifying
paragraphs. They cannot contain blank characters. Only closing
punctuation, optionally followed by closing brackets, can end sentences.
The default value is "\fI!.?\fP".
.TP
.B set/unset quickblank
Do quick statusbar blanking. Statusbar messages will disappear after 1
@@ -133,10 +139,11 @@ keystroke instead of 25.
.TP
.B set quotestr "\fIstring\fP"
The email-quote string, used to justify email-quoted paragraphs. This
is an "extended regular expression" if your system supports them,
is an extended regular expression if your system supports them,
otherwise a literal string. The default value is
"\fI^([\ \\t]*[#:>\\|}])+\fP" if you have regexps, or "\fI>\ \fP"
otherwise. Note that '\\t' stands for a literal Tab character.
"\fI^([\ \\t]*[#:>\\|}])+\fP" if you have extended regular expression
support, or "\fI>\ \fP" otherwise. Note that '\\t' stands for a literal
Tab character.
.TP
.B set/unset rebinddelete
Interpret the Delete key differently so that both Backspace and Delete
@@ -149,7 +156,7 @@ should only need to use this option if they don't, as mouse support
won't work properly with this option enabled.
.TP
.B set/unset regexp
Do regular expression searches by default.
Do extended regular expression searches by default.
.TP
.B set/unset smarthome
Make the Home key smarter. When Home is pressed anywhere but at the
@@ -161,12 +168,12 @@ line.
.B set/unset smooth
Use smooth scrolling by default.
.TP
.B set speller \fIspellprog\fP
.B set speller "\fIspellprog\fP"
Use spelling checker \fIspellprog\fP instead of the built-in one, which
calls \fIspell\fP.
.TP
.B set/unset suspend
Allow nano to be suspended.
Allow \fBnano\fP to be suspended.
.TP
.B set tabsize \fIn\fP
Use a tab size of \fIn\fP columns. The value of \fIn\fP must be greater
@@ -187,11 +194,12 @@ spaces. They must be single-column characters.
.TP
.B set/unset wordbounds
Detect word boundaries more accurately by treating punctuation
characters as part of a word.
characters as parts of words.
.TP
.B syntax "\fIstr\fP" ["\fIfileregex\fP" ... ]
Defines a syntax named \fIstr\fP which can be activated via the \fB-Y\fP
flag, or will be automatically activated if the current filename matches
Defines a syntax named \fIstr\fP which can be activated via the
-Y/--syntax command line option, or will be automatically activated if
the current filename matches the extended regular expression
\fIfileregex\fP. All following \fBcolor\fP and \fBicolor\fP statements
will apply to \fIsyntax\fP until a new syntax is defined.
@@ -202,20 +210,22 @@ match any other syntax's \fIfileregex\fP.
.TP
.B color \fIfgcolor\fP,\fIbgcolor\fP "\fIregex\fP" ...
For the currently defined syntax, display all expressions matching
\fIregex\fP with foreground color \fIfgcolor\fP and background color
\fIbgcolor\fP, at least one of which must be specified. Legal colors
for foreground and background color are: white, black, red, blue, green,
yellow, magenta, and cyan. You may use the prefix "bright" to force a
stronger color highlight for the foreground. If your terminal supports
transparency, not specifying a \fIbgcolor\fP tells \fBnano\fP to attempt
to use a transparent background.
the extended regular expression \fIregex\fP with foreground color
\fIfgcolor\fP and background color \fIbgcolor\fP, at least one of which
must be specified. Legal colors for foreground and background color
are: white, black, red, blue, green, yellow, magenta, and cyan. You may
use the prefix "bright" to force a stronger color highlight for the
foreground. If your terminal supports transparency, not specifying a
\fIbgcolor\fP tells \fBnano\fP to attempt to use a transparent
background.
.TP
.B icolor \fIfgcolor\fP,\fIbgcolor\fP "\fIregex\fP" ...
Same as above, except that the expression matching is case insensitive.
.TP
.B color \fIfgcolor\fP,\fIbgcolor\fP start="\fIsr\fP" end="\fIer\fP"
Display expressions which start with \fIsr\fP and end with \fIer\fP
with foreground color \fIfgcolor\fP and background color \fIbgcolor\fP,
Display expressions which start with the extended regular expression
\fIsr\fP and end with the extended regular expression \fIer\fP with
foreground color \fIfgcolor\fP and background color \fIbgcolor\fP,
at least one of which must be specified. This allows syntax
highlighting to span multiple lines. Note that all subsequent instances
of \fIsr\fP after an initial \fIsr\fP is found will be highlighted until
@@ -223,7 +233,11 @@ the first instance of \fIer\fP.
.TP
.B icolor \fIfgcolor\fP,\fIbgcolor\fP start="\fIsr\fP" end="\fIer\fP"
Same as above, except that the expression matching is case insensitive.
.TP
.B include "\fIsyntaxfile\fP"
Read in self-contained color syntaxes from \fIsyntaxfile\fP. Note that
\fIsyntaxfile\fP can only contain \fBsyntax\fP, \fBcolor\fP, and
\fBicolor\fP commands.
.SH FILES
.TP
.I SYSCONFDIR/nanorc
@@ -240,5 +254,6 @@ Per-user configuration file
system)
.SH AUTHOR
Chris Allegretta <chrisa@asty.org>, et al (see \fIAUTHORS\fP and
\fITHANKS\fP for details). This manual page was written by Jordi
Mallach <jordi@gnu.org>.
\fITHANKS\fP for details). This manual page was originally written by
Jordi Mallach <jordi@gnu.org>, for the Debian system (but may be used by
others).

View File

@@ -1,13 +1,14 @@
.\" Hey, EMACS: -*- nroff -*-
.\" rnano.1 is copyright 2005 by
.\" Thijs Kinkhorst <thijs@kinkhorst.com>;
.\" skeleton based on nano-tiny.1 by Jordi Mallach <jordi@debian.org>.
.\" rnano.1 is Copyright (C) 2005, 2006 by Thijs Kinkhorst
.\" <thijs@kinkhorst.com>; skeleton based on nano-tiny.1 by Jordi
.\" Mallach <jordi@gnu.org>.
.\"
.\" This is free documentation, see the latest version of the GNU General
.\" Public License for copying conditions. There is NO warranty.
.\" This is free documentation, see the latest version of the GNU
.\" General Public License for copying conditions. There is NO
.\" warranty.
.\"
.\" $Id$
.TH RNANO 1 "version 1.3.11" "March 12, 2005"
.TH RNANO 1 "version 2.0.0" "October 28, 2006"
.\" Please adjust this date whenever revising the manpage.
.\"
.SH NAME
@@ -16,11 +17,11 @@ Pico clone
.SH SYNOPSIS
.B rnano
.I [\+LINE,COLUMN]\ [options]\ [file]
.I [OPTIONS]\ [[\+LINE,COLUMN]\ FILE]...
.br
.SH DESCRIPTION
This manual page documents briefly the \fBrnano\fP command.
This manual page briefly documents the \fBrnano\fP command.
.PP
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
.\" \fI<whatever>\fP escape sequences to invoke bold face and italics,
@@ -29,7 +30,7 @@ This manual page documents briefly the \fBrnano\fP command.
Pico, the default editor included in the non-free Pine package. Rather
than just copying Pico's look and feel, \fBnano\fP also implements some
missing (or disabled by default) features in Pico, such as "search and
replace" and "go to line number".
replace" and "go to line and column number".
.PP
\fBrnano\fP is a restricted version of \fBnano\fP, which only edits
specific files and doesn't allow the user access to the filesystem or a
@@ -50,14 +51,19 @@ use backup files or spell checking.
.SH OPTIONS
.TP
.B \+\fILINE\fP,\fICOLUMN\fP
Places cursor at line number \fILINE\fP and column number \fICOLUMN\fP
(at least one of which must be specified) on startup, instead of the
default of line 1, column 1.
.TP
.B \-?
Same as \fB-h (\-\-help)\fP.
.TP
.B \-h (\-\-help)
Display a summary of command line options.
Show a summary of command line options and exit.
.TP
.B \-V (\-\-version)
Show the current version number and author.
Show the current version number and exit.
.PP
See the \fBnano\fP(1) manpage for the complete documentation of
\fBnano\fP.

View File

@@ -1,354 +0,0 @@
## Sample initialization file for GNU nano.
##
## Please note that you must have configured nano with --enable-nanorc
## for this file to be read! Also note that characters specially
## interpreted by the shell should not be escaped here.
##
## To make sure a value is not enabled, use "unset <option>"
##
## For the options that take parameters, the default value is given.
## Other options are unset by default.
##
## Quotes inside string parameters don't have to be escaped with
## backslashes. The last double quote in the string will be treated as
## its end. For example, for the brackets option, ""')>]}" will match
## ", ', ), >, ], and }.
## Use auto-indentation.
# set autoindent
## Backup files to filename~.
# set backup
## The directory to put unique backup files in.
# set backupdir ""
## Do backwards searches by default.
# set backwards
## The characters treated as closing brackets. They cannot contain
## blank characters. Only closing punctuation, optionally followed by
## closing brackets, can end sentences.
##
# set brackets ""')>]}"
## Do case sensitive searches by default.
# set casesensitive
## Constantly display the cursor position in the statusbar. Note that
## this cancels out "quickblank".
# set const
## Use cut to end of line by default.
# set cut
## Set the line length for wrapping text and justifying paragraphs.
## If fill is 0 or less, the line length will be the screen width less
## this number.
##
# set fill -8
## Enable ~/.nano_history for saving and reading search/replace strings.
# set historylog
## The opening and closing brackets that can be found by bracket
## searches. They cannot contain blank characters. The former set must
## come before the latter set, and both must be in the same order.
##
# set matchbrackets "(<[{)>]}"
## Use the blank line below the titlebar as extra editing space.
# set morespace
## Enable mouse support, so that mouse clicks can be used to set the
## mark and run shortcuts.
# set mouse
## Allow multiple file buffers (inserting a file will put it into a
## separate buffer). You must have configured with --enable-multibuffer
## for this to work.
##
# set multibuffer
## Don't convert files from DOS/Mac format.
# set noconvert
## Don't follow symlinks when writing files.
# set nofollow
## Don't display the helpful shortcut lists at the bottom of the screen.
# set nohelp
## Don't add newlines to the ends of files.
# set nonewlines
## Don't wrap text at all.
# set nowrap
## Set operating directory. nano will not read or write files outside
## this directory and its subdirectories. Also, the current directory
## is changed to here, so files are inserted from this dir. A blank
## string means the operating directory feature is turned off.
##
# set operatingdir ""
## Preserve the XON and XOFF keys (^Q and ^S).
# set preserve
## The characters treated as closing punctuation. They cannot contain
## blank characters. Only closing punctuation, optionally followed by
## closing brackets, can end sentences.
##
# set punct "!.?"
## Do quick statusbar blanking. Statusbar messages will disappear after
## 1 keystroke instead of 25. Note that "const" cancels this out.
##
# set quickblank
## The email-quote string, used to justify email-quoted paragraphs.
## This is an extended regular expression if your system supports them,
## otherwise a literal string. Default:
# set quotestr "^([ ]*[#:>\|}])+"
## if you have regexps, otherwise:
# set quotestr "> "
## Fix Backspace/Delete confusion problem.
# set rebinddelete
## Fix numeric keypad key confusion problem.
# set rebindkeypad
## Do extended regular expression searches by default.
# set regexp
## Make the Home key smarter. When Home is pressed anywhere but at the
## very beginning of non-whitespace characters on a line, the cursor
## will jump to that beginning (either forwards or backwards). If the
## cursor is already at that position, it will jump to the true
## beginning of the line.
# set smarthome
## Use smooth scrolling as the default.
# set smooth
## Use this spelling checker instead of the internal one. This option
## does not properly have a default value.
##
# set speller "aspell -x -c"
## Allow nano to be suspended.
# set suspend
## Use this tab size instead of the default; it must be greater than 0.
# set tabsize 8
## Convert typed tabs to spaces.
# set tabstospaces
## Save automatically on exit, don't prompt.
# set tempfile
## Disallow file modification; why would you want this in an rcfile? ;)
# set view
## The two single-column characters used to display the first characters
## of tabs and spaces. 187 decimal (00BB hexadecimal) and 183 decimal
## (00B7 hexadecimal) seem to be good values for these.
# set whitespace " "
## Detect word boundaries more accurately by treating punctuation
## characters as part of a word.
# set wordbounds
## Color setup
##
## Format:
##
## syntax "short description" ["filename regex" ...]
##
## (The "none" syntax is reserved; specifying it on the command line is
## the same as not having a syntax at all. The "default" syntax is
## special: it takes no filename regexes, and applies to files that
## don't match any other syntax's filename regexes.)
##
## color foreground,background "regex" ["regex"...]
## or
## icolor foreground,background "regex" ["regex"...]
##
## ("color" will do case sensitive matches, while "icolor" will do case
## insensitive matches.)
##
## Legal colors: white, black, red, blue, green, yellow, magenta, cyan.
## You may use the prefix "bright" to mean a stronger color highlight
## for the foreground.
##
## To use multi-line regexes, use the start="regex" end="regex" format.
##
## If your system supports transparency, not specifying a background
## color will use a transparent color. If you don't want this, be sure
## to set the background color to black or white.
##
# syntax "c-file" "\.(c|C|cc|cpp|cxx|h|H|hh|hpp|hxx)$"
# color brightred "\<[A-Z_][A-Z_0-9]+\>"
# color green "\<(float|double|bool|char|int|short|long|sizeof|enum|void|static|const|struct|union|typedef|extern|signed|unsigned|inline)\>"
# color green "\<(u_?)?int(8|16|32|64|ptr)_t\>"
# color green "\<(class|namespace|template|public|protected|private|typename|this|friend|virtual|using|mutable|volatile|register|explicit)\>"
# color brightyellow "\<(for|if|while|do|else|case|default|switch)\>"
# color brightyellow "\<(try|throw|catch|operator|new|delete)\>"
# color magenta "\<(goto|continue|break|return)\>"
# color brightcyan "^[[:space:]]*#[[:space:]]*(define|undef|include|ifn?def|endif|elif|else|if|warning|error)"
# color brightmagenta "'([^"'\]|(\\["'abfnrtv\\]))'" "'\\(([0-7][0-7]?)|([0-3][0-7][0-7]))'" "'\\x[0-9A-Fa-f][0-9A-Fa-f]?'"
##
## GCC builtins
##
# color cyan "__attribute__[[:space:]]*\(\([^)]*\)\)" "__(aligned|asm|builtin|hidden|inline|packed|restrict|section|typeof|weak)__"
##
## You will in general want your comments and strings to come last,
## because syntax highlighting rules will be applied in the order they
## are read in.
##
# color brightyellow "<[^= ]*>" ""(\\.|[^\"])*""
##
## This string is VERY resource intensive!
# color brightyellow start=""(\\.|[^\"])*\\[[:space:]]*$" end="^(\\.|[^\"])*""
##
## And we want to have some nice comment highlighting too
# color brightblue "//.*"
# color brightblue start="/\*" end="\*/"
## Here is a short example for HTML
# syntax "HTML" "\.html$"
# color blue start="<" end=">"
# color red "&[^;[[:space:]]]*;"
## Here is a short example for TeX files
# syntax "TeX" "\.tex$"
# icolor green "\\.|\\[A-Z]*"
# color magenta "[{}]"
# color blue "%.*"
## Here is an example for quoted emails (under e.g. mutt)
# syntax "mutt"
# color green "^>.*"
## Here is an example for groff
##
# syntax "groff" "\.m[ems]$" "\.tmac$" "^tmac." ".rof"
## The argument of .nr or .ds
# color cyan "^\.ds [^[[:space:]]]*"
# color cyan "^\.nr [^[[:space:]]]*"
## Single character escapes
# color brightmagenta "\\."
## Highlight the argument of \f or \s in the same color
# color brightmagenta "\\f."
# color brightmagenta "\\f\(.."
# color brightmagenta "\\s(\+|\-)?[0-9]"
## \n
# color cyan "(\\|\\\\)n."
# color cyan "(\\|\\\\)n\(.."
# color cyan start="(\\|\\\\)n\[" end="]"
## Requests
# color brightgreen "^\.[[:space:]]*[^[[:space:]]]*"
## Comments
# color yellow "^\.\\\".*$"
## Strings
# color green "(\\|\\\\)\*."
# color green "(\\|\\\\)\*\(.."
# color green start="(\\|\\\\)\*\[" end="]"
## Characters
# color brightred "\\\(.."
# color brightred start="\\\[" end="]"
## Macro arguments
# color brightcyan "\\\\\$[1-9]"
## Here is an example for perl
##
# syntax "perl" "\.p[lm]$"
# color red "\<(accept|alarm|atan2|bin(d|mode)|c(aller|h(dir|mod|op|own|root)|lose(dir)?|onnect|os|rypt)|d(bm(close|open)|efined|elete|ie|o|ump)|e(ach|of|val|x(ec|ists|it|p))|f(cntl|ileno|lock|ork))\>" "\<(get(c|login|peername|pgrp|ppid|priority|pwnam|(host|net|proto|serv)byname|pwuid|grgid|(host|net)byaddr|protobynumber|servbyport)|([gs]et|end)(pw|gr|host|net|proto|serv)ent|getsock(name|opt)|gmtime|goto|grep|hex|index|int|ioctl|join)\>" "\<(keys|kill|last|length|link|listen|local(time)?|log|lstat|m|mkdir|msg(ctl|get|snd|rcv)|next|oct|open(dir)?|ord|pack|pipe|pop|printf?|push|q|qq|qx|rand|re(ad(dir|link)?|cv|do|name|quire|set|turn|verse|winddir)|rindex|rmdir|s|scalar|seek(dir)?)\>" "\<(se(lect|mctl|mget|mop|nd|tpgrp|tpriority|tsockopt)|shift|shm(ctl|get|read|write)|shutdown|sin|sleep|socket(pair)?|sort|spli(ce|t)|sprintf|sqrt|srand|stat|study|substr|symlink|sys(call|read|tem|write)|tell(dir)?|time|tr(y)?|truncate|umask)\>" "\<(un(def|link|pack|shift)|utime|values|vec|wait(pid)?|wantarray|warn|write)\>"
# color magenta "\<(continue|else|elsif|do|for|foreach|if|unless|until|while|eq|ne|lt|gt|le|ge|cmp|x|my|sub|use|package|can|isa)\>"
# color cyan start="[$@%]" end="( |\\W|-)"
# color yellow "".*"|qq\|.*\|"
# color white "[sm]/.*/"
# color white start="(^use| = new)" end=";"
# color green "#.*"
# color yellow start="<< 'STOP'" end="STOP"
## Here is an example for Java source
##
# syntax "Java source" "\.java$"
# color green "\<(boolean|byte|char|double|float|int|long|new|short|this|transient|void)\>"
# color red "\<(break|case|catch|continue|default|do|else|finally|for|if|return|switch|throw|try|while)\>"
# color cyan "\<(abstract|class|extends|final|implements|import|instanceof|interface|native|package|private|protected|public|static|strictfp|super|synchronized|throws|volatile)\>"
# color red ""[^\"]*""
# color yellow "\<(true|false|null)\>"
# color blue "//.*"
# color blue start="/\*" end="\*/"
# color brightblue start="/\*\*" end="\*/"
# color brightgreen,green "[[:space:]]+$"
## Here is an example for patch files
##
# syntax "patch" "\.(patch|diff)$"
# color brightgreen "^\+.*"
# color green "^\+\+\+.*"
# color brightblue "^ .*"
# color brightred "^-.*"
# color red "^---.*"
# color brightyellow "^@@.*"
# color magenta "^diff.*"
## Here is an example for manpages
##
# syntax "manpage" "\.[1-9]x?$"
# color green "\.(S|T)H.*$"
# color brightgreen "\.(S|T)H" "\.TP"
# color brightred "\.(BR?|I[PR]?).*$"
# color brightblue "\.(BR?|I[PR]?|PP)"
# color brightwhite "\\f[BIPR]"
# color yellow "\.(br|DS|RS|RE|PD)"
## Here is an example for assembler
##
# syntax "asm-file" "\.(S|s|asm)$"
# color red "\<[A-Z_]{2,}\>"
# color brightgreen "\.(data|subsection|text)"
# color green "\.(align|file|globl|global|hidden|section|size|type|weak)"
# color brightyellow "\.(ascii|asciz|byte|double|float|hword|int|long|short|single|struct|word)"
# icolor brightred "^[[:space:]]*[._A-Z0-9]*:"
# color brightcyan "^[[:space:]]*#[[:space:]]*(define|undef|include|ifn?def|endif|elif|else|if|warning|error)"
## Highlight strings (note: VERY resource intensive)
# color brightyellow "<[^= ]*>" ""(\\.|[^\"])*""
# color brightyellow start=""(\\.|[^\"])*\\[[:space:]]*$" end="^(\\.|[^\"])*""
## Highlight comments
# color brightblue "//.*"
# color brightblue start="/\*" end="\*/"
## Here is an example for Bourne shell scripts
##
# syntax "shellscript" "\.sh$"
# icolor brightgreen "^[_A-Z0-9]+\(\)"
# color green "\<(case|do|done|elif|else|esac|exit|fi|for|function|if|in|local|read|return|select|shift|then|time|until|while)\>"
# color green "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)"
# color green "-(L|d|e|f|g|r|u|w|x)\>"
# color green "-(eq|ne|gt|lt|ge|le|s|n|z)\>"
# color brightblue "\<(cat|cd|chmod|chown|cp|echo|env|export|grep|install|let|ln|make|mkdir|mv|rm|sed|set|tar|touch|umask|unset)\>"
# icolor brightred "\$\{?[_A-Z0-9]+\}?"
# color yellow "#.*$"
# color brightyellow ""(\\.|[^\"])*"" "'(\\.|[^'])*'"
## Here is an example for your .nanorc
##
# syntax "nanorc" "(\.|/|)nanorc$"
## highlight possible errors and parameters
# icolor brightwhite "^[[:space:]]*(set|unset|syntax|i?color).*$"
## set, unset and syntax
# icolor cyan "^[[:space:]]*(set|unset)[[:space:]]+(autoindent|backup|backupdir|backwards|brackets|casesensitive|const|cut|fill|historylog|matchbrackets|morespace|mouse|multibuffer|noconvert|nofollow|nohelp|nonewlines|nowrap|operatingdir|preserve|punct|quickblank)\>" "^[[:space:]]*(set|unset)[[:space:]]+(quotestr|rebinddelete|rebindkeypad|regexp|smarthome|smooth|speller|suspend|tabsize|tabstospaces|tempfile|view|whitespace|wordbounds)\>"
# icolor green "^[[:space:]]*(set|unset|syntax)\>"
## colors
# icolor yellow "^[[:space:]]*i?color[[:space:]]*(bright)?(white|black|red|blue|green|yellow|magenta|cyan)?(,(white|black|red|blue|green|yellow|magenta|cyan))?\>"
# icolor magenta "^[[:space:]]*i?color\>" "\<(start|end)="
## strings
# icolor white "\"(\\.|[^\"])*\""
## comments
# icolor blue "^[[:space:]]*#.*$"

260
doc/nanorc.sample.in Normal file
View File

@@ -0,0 +1,260 @@
## Sample initialization file for GNU nano.
##
## Please note that you must have configured nano with --enable-nanorc
## for this file to be read! Also note that this file should not be in
## DOS or Mac format, and that characters specially interpreted by the
## shell should not be escaped here.
##
## To make sure a value is disabled, use "unset <option>".
##
## For the options that take parameters, the default value is given.
## Other options are unset by default.
##
## Quotes inside string parameters don't have to be escaped with
## backslashes. The last double quote in the string will be treated as
## its end. For example, for the "brackets" option, ""')>]}" will match
## ", ', ), >, ], and }.
## Use auto-indentation.
# set autoindent
## Backup files to filename~.
# set backup
## The directory to put unique backup files in.
# set backupdir ""
## Do backwards searches by default.
# set backwards
## Use bold text instead of reverse video text.
# set boldtext
## The characters treated as closing brackets when justifying
## paragraphs. They cannot contain blank characters. Only closing
## punctuation, optionally followed by closing brackets, can end
## sentences.
##
# set brackets ""')>]}"
## Do case sensitive searches by default.
# set casesensitive
## Constantly display the cursor position in the statusbar. Note that
## this overrides "quickblank".
# set const
## Use cut to end of line by default.
# set cut
## Set the line length for wrapping text and justifying paragraphs.
## If fill is 0 or less, the line length will be the screen width less
## this number.
##
# set fill -8
## Enable ~/.nano_history for saving and reading search/replace strings.
# set historylog
## The opening and closing brackets that can be found by bracket
## searches. They cannot contain blank characters. The former set must
## come before the latter set, and both must be in the same order.
##
# set matchbrackets "(<[{)>]}"
## Use the blank line below the titlebar as extra editing space.
# set morespace
## Enable mouse support, if available for your system. When enabled,
## mouse clicks can be used to place the cursor, set the mark (with a
## double click), and execute shortcuts. The mouse will work in the X
## Window System, and on the console when gpm is running.
##
# set mouse
## Allow multiple file buffers (inserting a file will put it into a
## separate buffer). You must have configured with --enable-multibuffer
## for this to work.
##
# set multibuffer
## Don't convert files from DOS/Mac format.
# set noconvert
## Don't follow symlinks when writing files.
# set nofollow
## Don't display the helpful shortcut lists at the bottom of the screen.
# set nohelp
## Don't add newlines to the ends of files.
# set nonewlines
## Don't wrap text at all.
# set nowrap
## Set operating directory. nano will not read or write files outside
## this directory and its subdirectories. Also, the current directory
## is changed to here, so any files are inserted from this dir. A blank
## string means the operating directory feature is turned off.
##
# set operatingdir ""
## Preserve the XON and XOFF keys (^Q and ^S).
# set preserve
## The characters treated as closing punctuation when justifying
## paragraphs. They cannot contain blank characters. Only closing
## punctuation, optionally followed by closing brackets, can end
## sentences.
##
# set punct "!.?"
## Do quick statusbar blanking. Statusbar messages will disappear after
## 1 keystroke instead of 26. Note that "const" overrides this.
##
# set quickblank
## The email-quote string, used to justify email-quoted paragraphs.
## This is an extended regular expression if your system supports them,
## otherwise a literal string. Default:
# set quotestr "^([ ]*[#:>\|}])+"
## if you have extended regular expression support, otherwise:
# set quotestr "> "
## Fix Backspace/Delete confusion problem.
# set rebinddelete
## Fix numeric keypad key confusion problem.
# set rebindkeypad
## Do extended regular expression searches by default.
# set regexp
## Make the Home key smarter. When Home is pressed anywhere but at the
## very beginning of non-whitespace characters on a line, the cursor
## will jump to that beginning (either forwards or backwards). If the
## cursor is already at that position, it will jump to the true
## beginning of the line.
# set smarthome
## Use smooth scrolling as the default.
# set smooth
## Use this spelling checker instead of the internal one. This option
## does not properly have a default value.
##
# set speller "aspell -x -c"
## Allow nano to be suspended.
# set suspend
## Use this tab size instead of the default; it must be greater than 0.
# set tabsize 8
## Convert typed tabs to spaces.
# set tabstospaces
## Save automatically on exit, don't prompt.
# set tempfile
## Disallow file modification. Why would you want this in an rcfile? ;)
# set view
## The two single-column characters used to display the first characters
## of tabs and spaces. 187 in ISO 8859-1 (0000BB in Unicode) and 183 in
## ISO-8859-1 (0000B7 in Unicode) seem to be good values for these.
# set whitespace " "
## Detect word boundaries more accurately by treating punctuation
## characters as parts of words.
# set wordbounds
## Color setup
##
## Format:
##
## syntax "short description" ["filename regex" ...]
##
## The "none" syntax is reserved; specifying it on the command line is
## the same as not having a syntax at all. The "default" syntax is
## special: it takes no filename regexes, and applies to files that
## don't match any other syntax's filename regexes.
##
## color foreground,background "regex" ["regex"...]
## or
## icolor foreground,background "regex" ["regex"...]
##
## "color" will do case sensitive matches, while "icolor" will do case
## insensitive matches.
##
## Valid colors: white, black, red, blue, green, yellow, magenta, cyan.
## For foreground colors, you may use the prefix "bright" to get a
## stronger highlight.
##
## To use multi-line regexes, use the start="regex" end="regex"
## [start="regex" end="regex"...] format.
##
## If your system supports transparency, not specifying a background
## color will use a transparent color. If you don't want this, be sure
## to set the background color to black or white.
##
## If you wish, you may put your syntaxes in separate files. You can
## make use of such files (which can only include "syntax", "color", and
## "icolor" commands) as follows:
##
## include "/path/to/syntax_file.nanorc"
##
## Unless otherwise noted, the name of the syntax file (without the
## ".nanorc" extension) should be the same as the "short description"
## name inside that file. These names are kept fairly short to make
## them easier to remember and faster to type using nano's -Y option.
##
## All regexes should be extended regular expressions.
## Nanorc files
# include "@PKGDATADIR@/nanorc.nanorc"
## C/C++
# include "@PKGDATADIR@/c.nanorc"
## HTML
# include "@PKGDATADIR@/html.nanorc"
## TeX
# include "@PKGDATADIR@/tex.nanorc"
## Quoted emails (under e.g. mutt)
# include "@PKGDATADIR@/mutt.nanorc"
## Patch files
# include "@PKGDATADIR@/patch.nanorc"
## Manpages
# include "@PKGDATADIR@/man.nanorc"
## Groff
# include "@PKGDATADIR@/groff.nanorc"
## Perl
# include "@PKGDATADIR@/perl.nanorc"
## Python
# include "@PKGDATADIR@/python.nanorc"
## Ruby
# include "@PKGDATADIR@/ruby.nanorc"
## Java
# include "@PKGDATADIR@/java.nanorc"
## Assembler
# include "@PKGDATADIR@/asm.nanorc"
## Bourne shell scripts
# include "@PKGDATADIR@/sh.nanorc"
## POV-Ray
# include "@PKGDATADIR@/pov.nanorc"

2
doc/syntax/.cvsignore Normal file
View File

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

17
doc/syntax/Makefile.am Normal file
View File

@@ -0,0 +1,17 @@
pkgdata_DATA = asm.nanorc \
c.nanorc \
groff.nanorc \
html.nanorc \
java.nanorc \
man.nanorc \
mutt.nanorc \
nanorc.nanorc \
patch.nanorc \
perl.nanorc \
pov.nanorc \
python.nanorc \
ruby.nanorc \
sh.nanorc \
tex.nanorc
EXTRA_DIST = $(pkgdata_DATA)

15
doc/syntax/asm.nanorc Normal file
View File

@@ -0,0 +1,15 @@
## Here is an example for assembler.
##
syntax "asm" "\.(S|s|asm)$"
color red "\<[A-Z_]{2,}\>"
color brightgreen "\.(data|subsection|text)"
color green "\.(align|file|globl|global|hidden|section|size|type|weak)"
color brightyellow "\.(ascii|asciz|byte|double|float|hword|int|long|short|single|struct|word)"
icolor brightred "^[[:space:]]*[.0-9A-Z_]*:"
color brightcyan "^[[:space:]]*#[[:space:]]*(define|undef|include|ifn?def|endif|elif|else|if|warning|error)"
## Highlight strings (note: VERY resource intensive)
color brightyellow "<[^= ]*>" ""(\\.|[^"])*""
color brightyellow start=""(\\.|[^"])*\\[[:space:]]*$" end="^(\\.|[^"])*""
## Highlight comments
color brightblue "//.*"
color brightblue start="/\*" end="\*/"

27
doc/syntax/c.nanorc Normal file
View File

@@ -0,0 +1,27 @@
## Here is an example for C/C++.
##
syntax "c" "\.(c(c|pp|xx)?|C)$" "\.(h(h|pp|xx)?|H)$" "\.ii?$"
color brightred "\<[A-Z_][0-9A-Z_]+\>"
color green "\<(float|double|bool|char|int|short|long|sizeof|enum|void|static|const|struct|union|typedef|extern|(un)?signed|inline)\>"
color green "\<((s?size)|((u_?)?int(8|16|32|64|ptr)))_t\>"
color green "\<(class|namespace|template|public|protected|private|typename|this|friend|virtual|using|mutable|volatile|register|explicit)\>"
color brightyellow "\<(for|if|while|do|else|case|default|switch)\>"
color brightyellow "\<(try|throw|catch|operator|new|delete)\>"
color magenta "\<(goto|continue|break|return)\>"
color brightcyan "^[[:space:]]*#[[:space:]]*(define|include|(un|ifn?)def|endif|el(if|se)|if|warning|error)"
color brightmagenta "'([^'\]|(\\["'abfnrtv\\]))'" "'\\(([0-3]?[0-7]{1,2}))'" "'\\x[0-9A-Fa-f]{1,2}'"
##
## GCC builtins
color cyan "__attribute__[[:space:]]*\(\([^)]*\)\)" "__(aligned|asm|builtin|hidden|inline|packed|restrict|section|typeof|weak)__"
##
## String highlighting. You will in general want your comments and
## strings to come last, because syntax highlighting rules will be
## applied in the order they are read in.
color brightyellow "<[^= ]*>" ""(\\.|[^"])*""
##
## This string is VERY resource intensive!
color brightyellow start=""(\\.|[^"])*\\[[:space:]]*$" end="^(\\.|[^"])*""
## Comment highlighting
color brightblue "//.*"
color brightblue start="/\*" end="\*/"

24
doc/syntax/groff.nanorc Normal file
View File

@@ -0,0 +1,24 @@
## Here is an example for groff.
##
syntax "groff" "\.m[ems]$" "\.rof" "\.tmac$" "^tmac."
## The argument of .ds or .nr
color cyan "^\.(ds|nr) [^[[:space:]]]*"
## Single character escapes
color brightmagenta "\\."
## Highlight the argument of \f or \s in the same color
color brightmagenta "\\f." "\\f\(.." "\\s(\+|\-)?[0-9]"
## Newlines
color cyan "(\\|\\\\)n(.|\(..)"
color cyan start="(\\|\\\\)n\[" end="]"
## Requests
color brightgreen "^\.[[:space:]]*[^[[:space:]]]*"
## Comments
color yellow "^\.\\".*$"
## Strings
color green "(\\|\\\\)\*(.|\(..)"
color green start="(\\|\\\\)\*\[" end="]"
## Characters
color brightred "\\\(.."
color brightred start="\\\[" end="]"
## Macro arguments
color brightcyan "\\\\\$[1-9]"

5
doc/syntax/html.nanorc Normal file
View File

@@ -0,0 +1,5 @@
## Here is a short example for HTML.
##
syntax "html" "\.html$"
color blue start="<" end=">"
color red "&[^;[[:space:]]]*;"

12
doc/syntax/java.nanorc Normal file
View File

@@ -0,0 +1,12 @@
## Here is an example for Java.
##
syntax "java" "\.java$"
color green "\<(boolean|byte|char|double|float|int|long|new|short|this|transient|void)\>"
color red "\<(break|case|catch|continue|default|do|else|finally|for|if|return|switch|throw|try|while)\>"
color cyan "\<(abstract|class|extends|final|implements|import|instanceof|interface|native|package|private|protected|public|static|strictfp|super|synchronized|throws|volatile)\>"
color red ""[^"]*""
color yellow "\<(true|false|null)\>"
color blue "//.*"
color blue start="/\*" end="\*/"
color brightblue start="/\*\*" end="\*/"
color ,green "[[:space:]]+$"

9
doc/syntax/man.nanorc Normal file
View File

@@ -0,0 +1,9 @@
## Here is an example for manpages.
##
syntax "man" "\.[1-9]x?$"
color green "\.(S|T)H.*$"
color brightgreen "\.(S|T)H" "\.TP"
color brightred "\.(BR?|I[PR]?).*$"
color brightblue "\.(BR?|I[PR]?|PP)"
color brightwhite "\\f[BIPR]"
color yellow "\.(br|DS|RS|RE|PD)"

4
doc/syntax/mutt.nanorc Normal file
View File

@@ -0,0 +1,4 @@
## Here is an example for quoted emails (under e.g. mutt).
##
syntax "mutt"
color green "^>.*"

16
doc/syntax/nanorc.nanorc Normal file
View File

@@ -0,0 +1,16 @@
## Here is an example for nanorc files.
##
syntax "nanorc" "\.?nanorc$"
## Possible errors and parameters
icolor brightwhite "^[[:space:]]*((un)?set|include|syntax|i?color).*$"
## Keywords
icolor brightgreen "^[[:space:]]*(set|unset)[[:space:]]+(autoindent|backup|backupdir|backwards|boldtext|brackets|casesensitive|const|cut|fill|historylog|matchbrackets|morespace|mouse|multibuffer|noconvert|nofollow|nohelp|nonewlines|nowrap|operatingdir|preserve|punct)\>" "^[[:space:]]*(set|unset)[[:space:]]+(quickblank|quotestr|rebinddelete|rebindkeypad|regexp|smarthome|smooth|speller|suspend|tabsize|tabstospaces|tempfile|view|whitespace|wordbounds)\>"
icolor green "^[[:space:]]*(set|unset|include|syntax)\>"
## Colors
icolor yellow "^[[:space:]]*i?color[[:space:]]*(bright)?(white|black|red|blue|green|yellow|magenta|cyan)?(,(white|black|red|blue|green|yellow|magenta|cyan))?\>"
icolor magenta "^[[:space:]]*i?color\>" "\<(start|end)="
## Strings
icolor white ""(\\.|[^"])*""
## Comments
icolor brightblue "^[[:space:]]*#.*$"
icolor cyan "^[[:space:]]*##.*$"

10
doc/syntax/patch.nanorc Normal file
View File

@@ -0,0 +1,10 @@
## Here is an example for patch files.
##
syntax "patch" "\.(patch|diff)$"
color brightgreen "^\+.*"
color green "^\+\+\+.*"
color brightblue "^ .*"
color brightred "^-.*"
color red "^---.*"
color brightyellow "^@@.*"
color magenta "^diff.*"

11
doc/syntax/perl.nanorc Normal file
View File

@@ -0,0 +1,11 @@
## Here is an example for Perl.
##
syntax "perl" "\.p[lm]$"
color red "\<(accept|alarm|atan2|bin(d|mode)|c(aller|h(dir|mod|op|own|root)|lose(dir)?|onnect|os|rypt)|d(bm(close|open)|efined|elete|ie|o|ump)|e(ach|of|val|x(ec|ists|it|p))|f(cntl|ileno|lock|ork))\>" "\<(get(c|login|peername|pgrp|ppid|priority|pwnam|(host|net|proto|serv)byname|pwuid|grgid|(host|net)byaddr|protobynumber|servbyport)|([gs]et|end)(pw|gr|host|net|proto|serv)ent|getsock(name|opt)|gmtime|goto|grep|hex|index|int|ioctl|join)\>" "\<(keys|kill|last|length|link|listen|local(time)?|log|lstat|m|mkdir|msg(ctl|get|snd|rcv)|next|oct|open(dir)?|ord|pack|pipe|pop|printf?|push|q|qq|qx|rand|re(ad(dir|link)?|cv|do|name|quire|set|turn|verse|winddir)|rindex|rmdir|s|scalar|seek(dir)?)\>" "\<(se(lect|mctl|mget|mop|nd|tpgrp|tpriority|tsockopt)|shift|shm(ctl|get|read|write)|shutdown|sin|sleep|socket(pair)?|sort|spli(ce|t)|sprintf|sqrt|srand|stat|study|substr|symlink|sys(call|read|tem|write)|tell(dir)?|time|tr(y)?|truncate|umask)\>" "\<(un(def|link|pack|shift)|utime|values|vec|wait(pid)?|wantarray|warn|write)\>"
color magenta "\<(continue|else|elsif|do|for|foreach|if|unless|until|while|eq|ne|lt|gt|le|ge|cmp|x|my|sub|use|package|can|isa)\>"
icolor cyan start="[$@%]" end="( |[^0-9A-Z_]|-)"
color yellow "".*"|qq\|.*\|"
color white "[sm]/.*/"
color white start="(^use| = new)" end=";"
color green "#.*"
color yellow start="<< 'STOP'" end="STOP"

15
doc/syntax/pov.nanorc Normal file
View File

@@ -0,0 +1,15 @@
## Here is an example for POV-Ray.
##
syntax "pov" "\.(pov|POV|povray|POVRAY)$"
color brightcyan "^[[:space:]]*#[[:space:]]*(declare)"
color brightyellow "\<(sphere|cylinder|translate|matrix|rotate|scale)\>"
color brightyellow "\<(orthographic|location|up|right|direction|clipped_by)\>"
color brightyellow "\<(fog_type|fog_offset|fog_alt|rgb|distance|transform)\>"
color brightred "^\<(texture)\>"
color brightred "\<(light_source|background)\>"
color brightred "\<(fog|object|camera)\>"
color green "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)"
color brightmagenta "\<(union|group|subgroup)\>"
## Comment highlighting
color brightblue "//.*"
color brightblue start="/\*" end="\*/"

9
doc/syntax/python.nanorc Normal file
View File

@@ -0,0 +1,9 @@
## Here is an example for Python.
##
syntax "python" "\.py$"
icolor brightblue "def [0-9A-Z_]+"
color brightcyan "\<(and|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|map|not|or|pass|print|raise|return|try|while)\>"
color brightgreen "['][^']*[^\\][']" "[']{3}.*[^\\][']{3}"
color brightgreen "["][^"]*[^\\]["]" "["]{3}.*[^\\]["]{3}"
color brightgreen start=""""[^"]" end=""""" start="'''[^']" end="'''"
color brightred "#.*$"

30
doc/syntax/ruby.nanorc Normal file
View File

@@ -0,0 +1,30 @@
## Here is an example for Ruby.
##
syntax "ruby" "\.rb$"
## Asciibetical list of reserved words
color yellow "\<(BEGIN|END|alias|and|begin|break|case|class|def|defined\?|do|else|elsif|end|ensure|false|for|if|in|module|next|nil|not|or|redo|rescue|retry|return|self|super|then|true|undef|unless|until|when|while|yield)\>"
## Constants
color brightblue "(\$|@|@@)?\<[A-Z]+[0-9A-Z_a-z]*"
## Ruby "symbols"
icolor magenta "([ ]|^):[0-9A-Z_]+\>"
## Some unique things we want to stand out
color brightyellow "\<(__FILE__|__LINE__)\>"
## Regular expressions
color brightmagenta "/([^/]|(\\/))*/[iomx]*" "%r\{([^}]|(\\}))*\}[iomx]*"
## Shell command expansion is in `backticks` or like %x{this}. These are
## "double-quotish" (to use a perlism).
color brightblue "`[^`]*`" "%x\{[^}]*\}"
## Strings, double-quoted
color green ""([^"]|(\\"))*"" "%[QW]?\{[^}]*\}" "%[QW]?\([^)]*\)" "%[QW]?<[^>]*>" "%[QW]?\[[^]]*\]" "%[QW]?\$[^$]*\$" "%[QW]?\^[^^]*\^" "%[QW]?![^!]*!"
## Expression substitution. These go inside double-quoted strings,
## "like #{this}".
color brightgreen "#\{[^}]*\}"
## Strings, single-quoted
color green "'([^']|(\\'))*'" "%[qw]\{[^}]*\}" "%[qw]\([^)]*\)" "%[qw]<[^>]*>" "%[qw]\[[^]]*\]" "%[qw]\$[^$]*\$" "%[qw]\^[^^]*\^" "%[qw]![^!]*!"
## Comments
color cyan "#[^{].*$" "#$"
color brightcyan "##[^{].*$" "##$"
## "Here" docs
color green start="<<-?'?EOT'?" end="^EOT"
## Some common markers
color brightcyan "(XXX|TODO|FIXME|\?\?\?)"

12
doc/syntax/sh.nanorc Normal file
View File

@@ -0,0 +1,12 @@
## Here is an example for Bourne shell scripts.
##
syntax "sh" "\.sh$"
icolor brightgreen "^[0-9A-Z_]+\(\)"
color green "\<(case|do|done|elif|else|esac|exit|fi|for|function|if|in|local|read|return|select|shift|then|time|until|while)\>"
color green "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)"
color green "-[Ldefgruwx]\>"
color green "-(eq|ne|gt|lt|ge|le|s|n|z)\>"
color brightblue "\<(cat|cd|chmod|chown|cp|echo|env|export|grep|install|let|ln|make|mkdir|mv|rm|sed|set|tar|touch|umask|unset)\>"
icolor brightred "\$\{?[0-9A-Z_!@#$*?-]+\}?"
color cyan "(^|[[:space:]])#.*$"
color brightyellow ""(\\.|[^"])*"" "'(\\.|[^'])*'"

6
doc/syntax/tex.nanorc Normal file
View File

@@ -0,0 +1,6 @@
## Here is a short example for TeX files.
##
syntax "tex" "\.tex$"
icolor green "\\.|\\[A-Z]*"
color magenta "[{}]"
color blue "%.*"

View File

@@ -1,4 +1,5 @@
Makefile
Makefile.in
nano.info
nano.html
texinfo.tex

View File

@@ -5,6 +5,6 @@ MAKEINFO = makeinfo --no-split
BUILT_SOURCES = nano.html
nano.html: nano.texi
cat $< | makeinfo --no-split --html > $@
makeinfo --no-split --html < $< > $@
EXTRA_DIST = $(info_TEXINFOS) $(BUILT_SOURCES)

View File

@@ -5,11 +5,11 @@
@c %**end of header
@c This file has the new style title page commands.
@c Run `makeinfo' rather than `texinfo-format-buffer'.
@c Run 'makeinfo' rather than 'texinfo-format-buffer'.
@smallbook
@set EDITION 0.1
@set VERSION 1.3.10
@set UPDATED 28 Nov 2005
@set VERSION 2.0.0
@set UPDATED 27 Oct 2006
@dircategory Editors
@direntry
@@ -23,7 +23,7 @@
@titlepage
@title GNU @code{nano}
@subtitle a small and friendly text editor.
@subtitle version 1.3.10
@subtitle version 2.0.0
@author Chris Allegretta
@page
@@ -33,28 +33,11 @@ editor.
This manual is part of the GNU @code{nano} distribution.@*
@sp4
Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 Chris Allegretta.
Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 by 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.
This is free documentation, see the latest version of the GNU General
Public License for copying conditions. There is NO warranty.
You may contact the author by
e-mail: @email{chrisa@@asty.org}@*
@@ -70,6 +53,7 @@ editor.
* Editor Basics::
* Online Help::
* Feature Toggles::
* Nanorc Files::
* The File Browser::
* Pico Compatibility::
* Building and Configure Options::
@@ -80,8 +64,9 @@ editor.
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.
search and replace, go to line and column number, auto-indentation,
feature toggles, internationalization support, and filename tab
completion.
@menu
* Overview::
@@ -91,12 +76,29 @@ internationalization support, and filename tab completion.
@node Overview, Command Line Options, Introduction, Introduction
@section Overview
@code{nano} +LINE,COLUMN [GNU long option] [option] [ @var{file ...} ]
The original goal for @code{nano} was a complete bug-for-bug compatible
emulation of Pico, but @code{nano}'s main goal is to be as compatible as
possible while offering a superset of Pico's functionality. Also see
@xref{Pico Compatibility}, for other differences.
emulation of Pico, but @code{nano}'s current goal is to be as compatible
as possible while offering a superset of Pico's functionality. See
@xref{Pico Compatibility}, for more info.
The usual way to invoke @code{nano} is:
@quotation
@code{nano [OPTION]@dots{} [FILE]}
@end quotation
But it is also possible to edit several files in a row. Additionally,
the cursor can be put on a desired line number by adding this number
with a plus sign before any filename, and even in a desired column by
adding it with a comma. So the complete synopsis is:
@quotation
@code{nano [OPTION]@dots{} [[+LINE] FILE]@dots{}}
@code{nano [OPTION]@dots{} [[+,COLUMN] FILE]@dots{}}
@code{nano [OPTION]@dots{} [[+LINE,COLUMN] FILE]@dots{}}
@end quotation
Email bug reports to @email{nano@@nano-editor.org}.
@@ -107,8 +109,8 @@ Email bug reports to @email{nano@@nano-editor.org}.
@table @code
@item +LINE,COLUMN
Start at line number LINE and column number COLUMN instead of the
default of line 1, column 1.
Start at line number LINE and column number COLUMN (at least one of
which must be specified) instead of the default of line 1, column 1.
@item -?
Same as @code{-h, --help}.
@@ -124,16 +126,23 @@ line.
When saving a file, back up the previous version of it to the current
filename suffixed with a ~.
@item -C, --backupdir=[dir]
@item -C <dir>, --backupdir=<dir>
Set the directory where @code{nano} puts unique backup files if file
backups are enabled.
@item -D, --boldtext
Use bold text instead of reverse video text.
@item -E, --tabstospaces
Convert typed tabs to spaces.
@item -F, --multibuffer
Enable multiple file buffers, if available.
@item -H, --historylog
Log search and replace strings to ~/.nano_history, so they can be
retrieved in later sessions, if nanorc support is available.
@item -I, --ignorercfiles
Don't look at SYSCONFDIR/nanorc or ~/.nanorc, if nanorc support is
available.
@@ -149,48 +158,52 @@ Don't add newlines to the ends of files.
@item -N, --noconvert
Don't convert files from DOS/Mac format.
@item -Q [str], --quotestr [str]
Set the quoting string for justifying. The default is
@item -O, --morespace
Use the blank line below the titlebar as extra editing space.
@item -Q <str>, --quotestr=<str>
Set the quoting string for justifying. The default value is
@quotation
@code{^([ \t]*[|>:@}#])+}
@end quotation
if regular expression support is available, or ``> '' otherwise. Note
that @code{\t} above stands for a literal Tab character.
if extended regular expression support is available, or "> " otherwise.
Note that @code{\t} above stands for a literal Tab character.
@item -R, --restricted
Restricted mode: Don't read or write to any file not specified on the
command line, read any nanorc files, allow suspending, or allow a file
to be appended to, prepended to, or saved under a different name if it
already has one. Also accessible by invoking @code{nano} with any name
beginning with 'r' (e.g. "rnano").
Restricted mode: don't read or write to any file not specified on the
command line; read any nanorc files; allow suspending; allow a file to
be appended to, prepended to, or saved under a different name if it
already has one; or use backup files or spell checking. Also accessible
by invoking @code{nano} with any name beginning with 'r' (e.g. "rnano").
@item -S, --smooth
Enable smooth scrolling.
Enable smooth scrolling. Text will scroll line-by-line, instead of the
usual chunk-by-chunk behavior.
@item -T [num], --tabsize=[#cols]
@item -T <#cols>, --tabsize=<#cols>
Set the displayed tab length to #cols columns. The value of #cols must
be greater than 0. The default value is 8.
@item -U, --quickblank
Do quick statusbar blanking. Statusbar messages will disappear after 1
keystroke instead of 25. Note that -c cancels this out.
keystroke instead of 25. Note that -c overrides this.
@item -V, --version
Print the version number and copyright and quit.
Show the current version number and exit.
@item -W, --wordbounds
Detect word boundaries more accurately by treating punctuation
characters as part of a word.
characters as parts of words.
@item -Y, --syntax=[str]
@item -Y <str>, --syntax=<str>
Specify a specific syntax highlighting from the nanorc to use, if
available.
available. See @xref{Nanorc Files}, for more info.
@item -c, --const
Constantly display the cursor position and line number on the statusbar.
Note that this cancels out -U.
Note that this overrides -U.
@item -d, --rebinddelete
Interpret the Delete key differently so that both Backspace and Delete
@@ -198,7 +211,7 @@ work properly. You should only need to use this option if Backspace
acts like Delete on your system.
@item -h, --help
Print the usage and exit.
Show a summary of command line options and exit.
@item -i, --autoindent
Automatically indent new lines to the same number of spaces and tabs as
@@ -212,10 +225,12 @@ 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).
Enable mouse support, if available for your system. When enabled, mouse
clicks can be used to place the cursor, set the mark (with a double
click), and execute shortcuts. The mouse will work in the X Window
System, and on the console when gpm is running.
@item -o [dir], --operatingdir=[dir]
@item -o <dir>, --operatingdir=<dir>
Set operating directory. Makes @code{nano} set up something similar to
a chroot.
@@ -223,32 +238,23 @@ a chroot.
Preserve the ^Q (XON) and ^S (XOFF) sequences so data being sent to the
editor can be can be stopped and started.
@item -r [#cols], --fill=[#cols].
@item -r <#cols>, --fill=<#cols>
Wrap lines at column #cols. If this value is 0 or less, wrapping will
occur at #cols less the width of the screen, allowing it to vary along
occur at the width of the screen less #cols, allowing it to vary along
with the width of the screen if the screen is resized. The default
value is -8.
@item -s [prog], --speller=[prog]
Invoke [prog] as the spell checker. By default, @code{nano} uses the
command specified in the SPELL environment variable, or, if SPELL is not
set, its own interactive spell checker that requires the @code{spell}
program to be installed on your system.
@item -s <prog>, --speller=<prog>
Invoke the given program as the spell checker. By default, @code{nano}
uses the command specified in the SPELL environment variable, or, if
SPELL is not set, its own interactive spell checker that requires the
@code{spell} program to be installed on your system.
@item -t, --tempfile
Don't ask whether or not to save the current contents of the file when
exiting, assume yes. This is most useful when using @code{nano} as the
composer of a mailer program.
@anchor{Expert Mode}
@item -x, --nohelp
In Expert Mode, the Shortcut Lists will not appear at the bottom of the
screen. This affects the location of the statusbar as well, as in
Expert Mode it is located at the very bottom of the editor.
Note: When accessing the help system, Expert Mode is temporarily
disabled to display the help system navigation keys.
@item -v, --view
Don't allow the contents of the file to be altered. Note that this
option should NOT be used in place of correct file permissions to
@@ -258,6 +264,15 @@ implement a read-only file.
Don't wrap long lines at any length. This option overrides any value
for -r.
@anchor{Expert Mode}
@item -x, --nohelp
Expert Mode: don't show the Shortcut Lists at the bottom of the screen.
This affects the location of the statusbar as well, as in Expert Mode it
is located at the very bottom of the editor.
Note: When accessing the help system, Expert Mode is temporarily
disabled to display the help system navigation keys.
@item -z, --suspend
Enable @code{nano}'s suspend ability using the system's suspend
keystroke (usually ^Z).
@@ -266,6 +281,7 @@ keystroke (usually ^Z).
Ignored, for compatibility with Pico.
@end table
@node Editor Basics, Online Help, Introduction, Top
@chapter Editor Basics
@menu
@@ -274,38 +290,39 @@ Ignored, for compatibility with Pico.
* The Titlebar::
* The Statusbar::
* Shortcut Lists::
* Using the Mouse::
@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
@code{nano} is a "modeless" editor. All keys, with the exception of
Control and Meta key sequences, will enter text into the file being
edited.
@node Special Functions, The Titlebar, Entering Text, Editor Basics
@section Special Functions
Special functions use the Control key (displayed in the help and
shortcut lists as ^), the Meta key (displayed as M), or the Esc key.
Special functions use the Control (Ctrl) key, displayed in the help and
shortcut lists as ^; the Meta key, displayed as M; or the Escape (Esc)
key.
@itemize @bullet
@item
Control key sequences are entered by holding down the Control key and
Control key sequences are entered by holding down the Ctrl key and
pressing the desired key, or by pressing the Esc key twice and pressing
the desired key.
@item
Pressing Esc twice and then typing a three-digit number from 000 to 255
will enter the character with the corresponding ASCII code.
will enter the character with the corresponding value.
@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.
Meta key sequences are entered by holding down the Meta key (normally
the Alt key) and pressing the desired key, or by pressing the Esc key
once and pressing the desired key. Certain operating systems "swallow"
the Alt key so that it never reaches the application; if your operating
system does this, you should use the Esc key to generate Meta key
sequences.
@end itemize
@node The Titlebar, The Statusbar, Special Functions, Editor Basics
@@ -314,32 +331,42 @@ generate Meta key sequences.
The titlebar is the line displayed at the top of the editor. There are
three sections: left, center and right. The section on the left
displays the version of @code{nano} being used. The center section
displays the current file name, or ``New Buffer'' if the file has not
yet been named. The section on the right will display ``Modified'' if
the file has been modified since it was last saved or opened.
displays the current filename, or "New Buffer" if the file has not yet
been named. The section on the right will display "Modified" if the
file has been modified since it was last saved or opened.
Special modes: When @code{nano} is in ``File browser'' mode, the center
section will display the current directory instead of the filename.
@xref{The File Browser}.
Special modes: When @code{nano} is in "File browser" mode, the center
section will display the current directory instead of the filename. See
@xref{The File Browser}, for more info.
@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 is the third line from the bottom of the screen, or the
bottom line in Expert Mode. See @xref{Expert Mode}, for more info. It
shows important and informational messages. Any error messages that
occur from using the editor will appear on the statusbar. Any questions
that are asked of the user will be asked on the statusbar, and any user
input (search strings, filenames, etc.) will be input on the statusbar.
The Statusbar shows important and informational messages. Any error
messages that occur from using the editor will appear on the statusbar.
Any questions that are asked of the user will be asked on the statusbar,
and any user input (search strings, file names, etc) will be input on
the statusbar.
@node Shortcut Lists, , The Statusbar, Editor Basics
@node Shortcut Lists, Using the Mouse, The Statusbar, Editor Basics
@section Shortcut Lists
The Shortcut Lists are the two lines at the bottom of the screen which
show some of the more commonly used functions in the editor.
@node Using the Mouse, , Shortcut Lists, Editor Basics
@section Using the Mouse
When mouse support has been configured and enabled, a single mouse click
places the cursor at the indicated position. Clicking a second time in
the same position toggles the mark. Clicking in the shortcut list
executes the selected shortcut.
The mouse will work in the X Window System, and on the console when gpm
is running.
@node Online Help, Feature Toggles, Editor Basics, Top
@chapter Online Help
@@ -349,13 +376,13 @@ 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
@node Feature Toggles, Nanorc Files, Online Help, Top
@chapter Feature Toggles
Toggles allow you to change certain aspects of the editor that
would normally be done via command line options. They are invoked via
certain Meta key sequences. @xref{Special Functions}, for more info.
The following global toggles are available:
Toggles allow you to change certain aspects of the editor that would
normally be done via command line options. They are invoked via Meta
key sequences. See @xref{Special Functions}, for more info. The
following global toggles are available:
@table @code
@@ -391,7 +418,7 @@ toggles the -O (@code{--morespace}) command line option.
@item Whitespace Display Toggle (Meta-P)
toggles whitespace display mode if you have a "whitespace" option in
your nanorc.
your nanorc. See @xref{Nanorc Files}, for more info.
@item Tabs to Spaces Toggle (Meta-Q)
toggles the -E (@code{--tabstospaces}) command line option.
@@ -404,7 +431,7 @@ toggles the -x (@code{--nohelp}) command line option.
@item Color Syntax Highlighting Toggle (Meta-Y)
toggles color syntax highlighting if you have color syntaxes in your
nanorc.
nanorc. See @xref{Nanorc Files}, for more info.
@item Suspend Toggle (Meta-Z)
toggles the -z (@code{--suspend}) command line option.
@@ -412,19 +439,257 @@ toggles the -z (@code{--suspend}) command line option.
@end table
@node The File Browser, Pico Compatibility, Feature Toggles, Top
@node Nanorc Files, The File Browser, Feature Toggles, Top
@chapter Nanorc Files
The nanorc files contain the default settings for @code{nano}. They
should not be in DOS or Mac format. During startup, @code{nano} will
first read its system-wide settings from SYSCONFDIR/nanorc, and then
user-specific settings from ~/.nanorc.
A nanorc file accepts a series of "set" and "unset" commands, which can
be used to configure @code{nano} on startup without using the command
line options. Additionally, the "syntax", "color", and "icolor"
keywords are used to define syntax highlighting rules for different text
patterns. @code{nano} will read one command per line.
Options in nanorc files take precedence over @code{nano}'s defaults, and
command line options override nanorc settings. Options are also unset
by default, except for those that take arguments.
Quotes inside string parameters don't have to be escaped with
backslashes. The last double quote in the string will be treated as its
end. For example, for the "brackets" option,
@quotation
@code{""')>]@}"}
@end quotation
will match @code{"}, @code{'}, @code{)}, @code{>}, @code{]}, and
@code{@}}.
The supported commands and arguments are:
@table @code
@item set/unset autoindent
Use auto-indentation.
@item set/unset backup
Create backup files in "filename~".
@item set backupdir "directory"
Set the directory where @code{nano} puts unique backup files if file
backups are enabled.
@item set/unset backwards
Do backwards searches by default.
@item set/unset boldtext
Use bold text instead of reverse video text.
@item set brackets "string"
Set the characters treated as closing brackets when justifying
paragraphs. They cannot contain blank characters. Only closing
punctuation, optionally followed by closing brackets, can end sentences.
The default value is
@quotation
@code{""')>]@}"}
@end quotation
@item set/unset casesensitive
Do case sensitive searches by default.
@item set/unset const
Constantly display the cursor position in the status bar.
@item set/unset cut
Use cut to end of line by default, instead of cutting the whole line.
@item set fill "n"
Wrap lines at column number "n". If "n" is 0 or less, the maximum line
length will be the screen width less "n" columns. The default value is
-8.
@item set/unset historylog
Enable ~/.nano_history for saving and reading search/replace strings.
@item set matchbrackets "string"
Set the opening and closing brackets that can be found by bracket
searches. They cannot contain blank characters. The former set must
come before the latter set, and both must be in the same order. The
default value is
@quotation
@code{"(<[@{)>]@}"}
@end quotation
@item set/unset morespace
Use the blank line below the titlebar as extra editing space.
@item set/unset mouse
Enable mouse support, so that mouse clicks can be used to place the
cursor, set the mark (with a double click), or execute shortcuts.
@item set/unset multibuffer
Allow inserting files into their own buffers.
@item set/unset noconvert
Don't convert files from DOS/Mac format.
@item set/unset nofollow
Don't follow symlinks when writing files.
@item set/unset nohelp
Don't display the help lists at the bottom of the screen.
@item set/unset nonewlines
Don't add newlines to the ends of files.
@item set/unset nowrap
Don't wrap text at all.
@item set operatingdir "directory"
@code{nano} will only read and write files inside "directory" and its
subdirectories. Also, the current directory is changed to here, so
files are inserted from this directory. By default, the operating
directory feature is turned off.
@item set/unset preserve
Preserve the XON and XOFF keys (^Q and ^S).
@item set punct "string"
Set the characters treated as closing punctuation when justifying
paragraphs. They cannot contain blank characters. Only closing
punctuation, optionally followed by closing brackets, can end sentences.
The default value is @code{"!.?"}.
@item set/unset quickblank
Do quick statusbar blanking. Statusbar messages will disappear after 1
keystroke instead of 25.
@item set quotestr "string"
The email-quote string, used to justify email-quoted paragraphs. This
is an extended regular expression if your system supports them,
otherwise a literal string. The default value is
@quotation
@code{"^([ \\t]*[#:>\\|@}])+"}
@end quotation
if you have extended regular expression support, or "> " otherwise.
Note that '\\t' stands for a literal Tab character.
@item set/unset rebinddelete
Interpret the Delete key differently so that both Backspace and Delete
work properly. You should only need to use this option if Backspace
acts like Delete on your system.
@item set/unset rebindkeypad
Interpret the numeric keypad keys so that they all work properly. You
should only need to use this option if they don't, as mouse support
won't work properly with this option enabled.
@item set/unset regexp
Do extended regular expression searches by default.
@item set/unset smarthome
Make the Home key smarter. When Home is pressed anywhere but at the
very beginning of non-whitespace characters on a line, the cursor will
jump to that beginning (either forwards or backwards). If the cursor is
already at that position, it will jump to the true beginning of the
line.
@item set/unset smooth
Use smooth scrolling by default.
@item set speller "spellprog"
Use spelling checker "spellprog" instead of the built-in one, which
calls "spell".
@item set/unset suspend
Allow @code{nano} to be suspended.
@item set tabsize "n"
Use a tab size of "n" columns. The value of "n" must be greater than 0.
The default value is 8.
@item set/unset tabstospaces
Convert typed tabs to spaces.
@item set/unset tempfile
Save automatically on exit, don't prompt.
@item set/unset view
Disallow file modification.
@item set whitespace "string"
Set the two characters used to display the first characters of tabs and
spaces. They must be single-column characters.
@item set/unset wordbounds
Detect word boundaries more accurately by treating punctuation
characters as part of a word.
@item syntax "str" ["fileregex" @dots{} ]
Defines a syntax named "str" which can be activated via the -Y/--syntax
command line option, or will be automatically activated if the current
filename matches the extended regular expression "fileregex". All
following "color" and "icolor" statements will apply to "syntax" until a
new syntax is defined.
The "none" syntax is reserved; specifying it on the command line is the
same as not having a syntax at all. The "default" syntax is special: it
takes no "fileregex", and applies to files that don't match any other
syntax's "fileregex".
@item color fgcolor,bgcolor "regex" @dots{}
For the currently defined syntax, display all expressions matching the
extended regular expression "regex" with foreground color "fgcolor" and
background color "bgcolor", at least one of which must be specified.
Legal colors for foreground and background color are: white, black, red,
blue, green, yellow, magenta, and cyan. You may use the prefix "bright"
to force a stronger color highlight for the foreground. If your
terminal supports transparency, not specifying a "bgcolor" tells "nano"
to attempt to use a transparent background.
@item icolor fgcolor,bgcolor "regex" @dots{}
Same as above, except that the expression matching is case insensitive.
@item color fgcolor,bgcolor start="sr" end="er"
Display expressions which start with the extended regular expression
"sr" and end with the extended regular expression "er" with foreground
color "fgcolor" and background color "bgcolor", at least one of which
must be specified. This allows syntax highlighting to span multiple
lines. Note that all subsequent instances of "sr" after an initial "sr"
is found will be highlighted until the first instance of "er".
@item icolor fgcolor,bgcolor start="sr" end="er"
Same as above, except that the expression matching is case insensitive.
@item include "syntaxfile"
Read in self-contained color syntaxes from "syntaxfile". Note that
"syntaxfile" can only contain "syntax", "color", and "icolor" commands.
@end table
@node The File Browser, Pico Compatibility, Nanorc Files, Top
@chapter The File Browser
When reading or writing files, pressing ^T will invoke the file browser.
Here, one can navigate directories in a graphical manner in order to
find the desired file.
Basic movement in the file browser is accomplished with the arrow keys
and page up/down. The behavior of the enter (or `s') key varies by what
is currently selected. If the currently selected object is a directory,
the file browser will enter and display the contents of the directory.
If the object is a file, this filename and path are copied to the
statusbar and the file browser is exited.
Basic movement in the file browser is accomplished with the arrow keys,
page up, and page down. More advanced movement is accomplished by
searching via ^W (or 'w') and changing directories via ^_ (or 'g'). The
behavior of the Enter (or 's') key varies by what is currently selected.
If the currently selected object is a directory, the file browser will
enter and display the contents of the directory. If the object is a
file, this filename and path are copied to the statusbar, and the file
browser exits.
@node Pico Compatibility, Building and Configure Options, The File Browser, Top
@chapter Pico Compatibility
@@ -443,22 +708,22 @@ editable text in front of the cursor, as opposed to being bracketed and
uneditable as it is in Pico. The old behavior could be made compatible
with Pico via the @code{-p} option, but recent versions of Pico use the
@code{-p} option to preserve the XON and XOFF sequences within the
editor. Since with the new method search and replace strings can still
be edited by simply hitting the up arrow key once, the old method was
removed completely.
editor. Since, with the new method, search and replace strings can
still be edited by simply hitting the up arrow key once, the old method
was removed completely.
@item Writing or Appending Selected Text to Files
Text selected using the Control-Caret (^^) key can be written out or
appended to a new or existing file using the Writeout key (^O).
@item Writing, Appending, or Prepending Selected Text to Files
Text selected using the marking key (^^) can be written out, appended,
or prepended to a new or existing file using the WriteOut key (^O).
@item Toggles
Many options which alter the functionality of the program can be
"toggled" on or off using Meta key sequences, meaning the program does
not have to be restarted to turn a particular feature of the editor on
or off. Please see the internal help function (^G) for a list of what
functions can be toggled for a particular version of @code{nano}. Also
see @xref{Feature Toggles}, though this may be out of date.
functions can be toggled for a particular version of @code{nano}. See
@xref{Feature Toggles}, for more info.
@item Cursor Position Display
The output of the "Display Cursor Position" in @code{nano} displays
@@ -466,11 +731,11 @@ the given column position, as well as the row and total character
position of the cursor.
@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
It is worth noting that @code{nano}'s 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 pause 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
internal spell checker operates similarly. Note that there is no way to
force these functions to behave in the Pico fashion. As of version
1.1.99pre1, misspelled words are sorted and trimmed for uniqueness in
the internal spell checker such that the words 'apple' and 'Apple' will
@@ -492,8 +757,9 @@ familiar with compiling programs with autoconf support:
@item make install
@end itemize
@table @code
The possible options to @code{./configure} are:
@table @code
@item --disable-browser
Disable the mini file browser when reading or writing files.
@@ -527,8 +793,8 @@ line option, which enables long line wrapping.
@item --enable-tiny
This option disables all the above. It also disables some of the larger
internals of the editor, like the marking code and the cut to line code.
It also disables the function toggles.
internals of the editor, like the marking code and the cut to end of
line code. It also disables the function toggles.
@item --enable-debug
Enable support for runtime debug output. This can get pretty messy, so
@@ -539,9 +805,8 @@ Enable extra features. At the moment, this is just easter egg-type
stuff.
@item --enable-color
Enable support for syntax coloring of files. See the nanorc
documentation for more details. The nanorc feature will also be
enabled.
Enable support for syntax coloring of files using the nanorc file. This
enables nanorc support as well.
@item --enable-multibuffer
Enable support for opening multiple files at a time and switching
@@ -550,7 +815,8 @@ between them on the fly.
@item --enable-nanorc
Enable support for reading the nanorc file at startup. You can store
custom settings in the nanorc file rather than having to pass command
line options to get desired behavior.
line options to get desired behavior. See @xref{Nanorc Files}, for
more info.
@item --enable-all
Shortcut for enabling the above four features (extra, color,

View File

@@ -1,5 +1,5 @@
EXTRA_DIST = codeset.m4 gettext.m4 glib-2.0.m4 glibc21.m4 iconv.m4 \
intdiv0.m4 inttypes_h.m4 inttypes.m4 inttypes-pri.m4 \
isc-posix.m4 lcmessage.m4 lib-ld.m4 lib-link.m4 \
lib-prefix.m4 progtest.m4 stdint_h.m4 uintmax_t.m4 \
ulonglong.m4
EXTRA_DIST = ac_define_dir.m4 codeset.m4 gettext.m4 glib-2.0.m4 \
glibc21.m4 iconv.m4 intdiv0.m4 inttypes_h.m4 \
inttypes.m4 inttypes-pri.m4 isc-posix.m4 lcmessage.m4 \
lib-ld.m4 lib-link.m4 lib-prefix.m4 progtest.m4 \
stdint_h.m4 uintmax_t.m4 ulonglong.m4

34
m4/ac_define_dir.m4 Normal file
View File

@@ -0,0 +1,34 @@
dnl @synopsis AC_DEFINE_DIR(VARNAME, DIR [, DESCRIPTION])
dnl
dnl This macro sets VARNAME to the expansion of the DIR variable,
dnl taking care of fixing up ${prefix} and such.
dnl
dnl VARNAME is then offered as both an output variable and a C
dnl preprocessor symbol.
dnl
dnl Example:
dnl
dnl AC_DEFINE_DIR([DATADIR], [datadir], [Where data are placed to.])
dnl
dnl @category Misc
dnl @author Stepan Kasal <kasal@ucw.cz>
dnl @author Andreas Schwab <schwab@suse.de>
dnl @author Guido U. Draheim <guidod@gmx.de>
dnl @author Alexandre Oliva
dnl @version 2006-10-13
dnl @license AllPermissive
AC_DEFUN([AC_DEFINE_DIR], [
prefix_NONE=
exec_prefix_NONE=
test "x$prefix" = xNONE && prefix_NONE=yes && prefix=$ac_default_prefix
test "x$exec_prefix" = xNONE && exec_prefix_NONE=yes && exec_prefix=$prefix
dnl In Autoconf 2.60, ${datadir} refers to ${datarootdir}, which in turn
dnl refers to ${prefix}. Thus we have to use `eval' twice.
eval ac_define_dir="\"[$]$2\""
eval ac_define_dir="\"$ac_define_dir\""
AC_SUBST($1, "$ac_define_dir")
AC_DEFINE_UNQUOTED($1, "$ac_define_dir", [$3])
test "$prefix_NONE" && prefix=NONE
test "$exec_prefix_NONE" && exec_prefix=NONE
])

View File

@@ -19,6 +19,9 @@ AC_ARG_ENABLE(glibtest, [ --disable-glibtest do not try to compile and run
gmodule)
pkg_config_args="$pkg_config_args gmodule-2.0"
;;
gmodule-no-export)
pkg_config_args="$pkg_config_args gmodule-no-export-2.0"
;;
gobject)
pkg_config_args="$pkg_config_args gobject-2.0"
;;

View File

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

View File

@@ -1,8 +1,174 @@
2005-03-15 Jordi Mallach <jordi@gnu.org>
2007-01-29 David Lawrence Ramsey <pooka109@cox.net>
* ru.po: Updated Russian translation by Dimitriy Ryazantcev.
* ru.po: Fix incorrect "Project-Id-Version" entry and misplaced
space.
2007-01-13 David Lawrence Ramsey <pooka109@cox.net>
* es.po: Fix misplaced space.
* eu.po: Fix typos and misplaced space.
* fr.po: Fix misplaced space.
* gl.po: Fix typos and misplaced space.
* nb.po: Fix typos and more misplaced space.
2007-01-06 David Lawrence Ramsey <pooka109@cox.net>
* nb.po: Fix misplaced space.
2006-12-06 David Lawrence Ramsey <pooka109@cox.net>
* hu.po: Removed unneeded duplicate plural forms again.
* ms.po: Fix incorrect "Project-Id-Version" entry.
2006-12-06 Jordi Mallach <jordi@gnu.org>
* hu.po: Updated Hungarian translation by Gabor Kelemen.
* ms.po: Updated Malay translation by
Sharuzzaman Ahmat Raslan.
2006-11-20 David Lawrence Ramsey <pooka109@cox.net>
* tr.po: Removed unneeded blank plural forms, as gettext 0.15
generates errors upon encountering them.
2006-10-25 Jordi Mallach <jordi@gnu.org>
* fr.po: Updated French translation by Jean-Philippe Guérard.
* nb.po: Updated Norwegian bokmål translation by
Geir Helland.
2006-10-16 Jordi Mallach <jordi@gnu.org>
* gl.po: Updated Galician translation by
Francisco Javier Tsao Santín.
2006-10-16 Jordi Mallach <jordi@gnu.org>
* eu.po: Updated Basque translation by Mikel Olasagasti.
2006-10-10 Jordi Mallach <jordi@gnu.org>
* gl.po: Updated Galician translation by
Francisco Javier Tsao Santín.
2006-10-02 Jordi Mallach <jordi@gnu.org>
* pt_BR.po: Refetch the current nano 1.9.99pre0 pt_BR file from
the TP, as the latest file offered is apparently for 1.3.11pre1.
2006-10-02 David Lawrence Ramsey <pooka109@cox.net>
* pt_BR.po: Restore previous version of pt_BR, as it was for
nano 1.9.99pre0, and the current version is for 1.3.11pre1.
2006-09-27 Jordi Mallach <jordi@gnu.org>
* pt_BR.po: Updated Brazilian Portuguese translation by
Joao Victor Duarte Martins.
2006-09-10 David Lawrence Ramsey <pooka109@cox.net>
* hu.po: Removed unneeded duplicate plural forms again.
2006-09-10 Jordi Mallach <jordi@gnu.org>
* hu.po: Updated Hungarian translation by Gabor Kelemen.
2006-09-02 Jordi Mallach <jordi@gnu.org>
* pt_BR.po: Updated Brazilian Portuguese translation by
Joao Victor Duarte Martins.
2006-09-01 Benno Schulenberg <bensberg@justemail.net>
* ChangeLog: Fix incorrect years in two entries.
2006-08-31 David Lawrence Ramsey <pooka109@cox.net>
* bg.po: Fix misplaced space.
2006-08-31 Jordi Mallach <jordi@gnu.org>
* ca.po: Updated Catalan translation.
* de.po: Updated German translation by Michael Piefel.
* es.po: Updated Spanish translation by
Ricardo Javier Cardenes Medina.
2006-08-28 Jordi Mallach <jordi@gnu.org>
* fr.po: Updated French translation by Jean-Philippe Guérard.
2006-08-25 Jordi Mallach <jordi@gnu.org>
* bg.po: Updated Bulgarian translation by Anton Zinoviev.
* ca.po: Updated Catalan translation.
* ga.po: Updated Irish translation by Kevin Patrick Scannell.
* it.po: Updated Italian translation by Marco Colombo.
* nl.po: Updated Dutch translation by Benno Schulenberg.
* sv.po: Updated Swedish translation by Daniel Nylander.
2006-08-15 David Lawrence Ramsey <pooka109@cox.net>
* hu.po: Removed unneeded duplicate plural forms, as gettext
0.15 generates errors upon encountering them.
* id.po: Removed unneeded duplicate plural forms, as gettext
0.15 generates errors upon encountering them.
2006-06-20 Jordi Mallach <jordi@gnu.org>
* ca.po: Updated Catalan translation.
* fr.po: Updated French translation by Jean-Philippe Guérard.
* hu.po: Updated Hungarian translation by Gabor Kelemen.
* nl.po: Updated Dutch translation by Benno Schulenberg.
2006-06-20 David Lawrence Ramsey <pooka109@cox.net>
* fr.po: Fix incorrect "Project-Id-Version" entry.
* hu.po: Fix incorrect "Project-Id-Version" entry.
* it.po: Fix incorrect "Project-Id-Version" entry.
2006-06-19 Jordi Mallach <jordi@gnu.org>
* bg.po: Updated Bulgarian translation by Anton Zinoviev.
* ga.po: Updated Irish translation by Kevin Patrick Scannell.
2006-06-17 Jordi Mallach <jordi@gnu.org>
* ca.po: Updated Catalan translation.
* de.po: Updated German translation by Michael Piefel.
* fr.po: Updated French translation by Jean-Philippe Guérard.
* hu.po: Updated Hungarian translation by Gabor Kelemen.
* it.po: Updated Italian translation by Marco Colombo.
* nl.po: Updated Dutch translation by Benno Schulenberg.
2006-06-12 Jordi Mallach <jordi@gnu.org>
* fr.po: Updated French translation by Jean-Philippe Guérard.
* hu.po: Updated Hungarian translation by Gabor Kelemen.
2006-06-09 Jordi Mallach <jordi@gnu.org>
* ca.po: Updated Catalan translation.
* ga.po: Updated Irish translation by Kevin Patrick Scannell.
* it.po: Updated Italian translation by Marco Colombo.
* nl.po: Updated Dutch translation by Benno Schulenberg.
2006-05-17 Jordi Mallach <jordi@gnu.org>
* LINGUAS: Added "ga".
* ga.po: New Irish translation by
Kevin Patrick Scannell <scannell@SLU.EDU>.
2006-05-10 Jordi Mallach <jordi@gnu.org>
* nl.po: Updated Dutch translation by Benno Schulenberg.
2006-03-15 Jordi Mallach <jordi@gnu.org>
* sv.po: Updated Swedish translation by Daniel Nylander.
2005-03-06 Jordi Mallach <jordi@gnu.org>
2006-03-06 Jordi Mallach <jordi@gnu.org>
* ca.po: Updated Vietnamese translation by
Phan Vinh Thinh.
@@ -34,7 +200,7 @@
* POTFILES.in: Add help.c.
2006-10-23 Jordi Mallach <jordi@gnu.org>
2005-10-23 Jordi Mallach <jordi@gnu.org>
* ca.po: Updated Catalan translation.
* eu.po: Updated Basque translation by Mikel Olasagasti.
@@ -45,7 +211,7 @@
* zh_TW: Updated Traditional Chinese translation by
Wei-Lun Chao.
2006-08-22 Jordi Mallach <jordi@gnu.org>
2005-08-22 Jordi Mallach <jordi@gnu.org>
* bg.po: New Bulgarian translation by
Yavor Doganov <yavor@doganov.org>.
@@ -104,7 +270,7 @@
2005-04-22 Jordi Mallach <jordi@gnu.org>
* ca.po: Updated Norwegian bokmål translation by
* nb.po: Updated Norwegian bokmål translation by
Geir Helland.
2005-04-20 Jordi Mallach <jordi@gnu.org>

View File

@@ -1,2 +1,2 @@
# List of available languages.
bg ca cs da de es eu fi fr gl hu id it ms nb nl nn pl pt_BR ro ru rw sr sv tr uk vi zh_TW
bg ca cs da de es eu fi fr ga gl hu id it ms nb nl nn pl pt_BR ro ru rw sr sv tr uk vi zh_TW

2099
po/bg.po

File diff suppressed because it is too large Load Diff

1792
po/ca.po

File diff suppressed because it is too large Load Diff

2867
po/cs.po

File diff suppressed because it is too large Load Diff

2841
po/da.po

File diff suppressed because it is too large Load Diff

2134
po/de.po

File diff suppressed because it is too large Load Diff

2333
po/es.po

File diff suppressed because it is too large Load Diff

2135
po/eu.po

File diff suppressed because it is too large Load Diff

2685
po/fi.po

File diff suppressed because it is too large Load Diff

2955
po/fr.po

File diff suppressed because it is too large Load Diff

1949
po/ga.po Normal file

File diff suppressed because it is too large Load Diff

3163
po/gl.po

File diff suppressed because it is too large Load Diff

3150
po/hu.po

File diff suppressed because it is too large Load Diff

2833
po/id.po

File diff suppressed because it is too large Load Diff

1717
po/it.po

File diff suppressed because it is too large Load Diff

1992
po/ms.po

File diff suppressed because it is too large Load Diff

2573
po/nb.po

File diff suppressed because it is too large Load Diff

2110
po/nl.po

File diff suppressed because it is too large Load Diff

2805
po/nn.po

File diff suppressed because it is too large Load Diff

2848
po/pl.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

2356
po/ro.po

File diff suppressed because it is too large Load Diff

3116
po/ru.po

File diff suppressed because it is too large Load Diff

2481
po/rw.po

File diff suppressed because it is too large Load Diff

2928
po/sr.po

File diff suppressed because it is too large Load Diff

1736
po/sv.po

File diff suppressed because it is too large Load Diff

3167
po/tr.po

File diff suppressed because it is too large Load Diff

2843
po/uk.po

File diff suppressed because it is too large Load Diff

1972
po/vi.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
localedir = $(datadir)/locale
INCLUDES = -Iintl -DLOCALEDIR=\"$(localedir)\" -DSYSCONFDIR=\"$(sysconfdir)\"
INCLUDES = -DLOCALEDIR=\"$(localedir)\" -DSYSCONFDIR=\"$(sysconfdir)\"
ACLOCAL_AMFLAGS = -I m4
@@ -26,3 +26,5 @@ nano_LDADD = @GLIB_LIBS@ @LIBINTL@
install-exec-hook:
cd $(DESTDIR)$(bindir) && rm -f rnano && $(LN_S) nano rnano
uninstall-hook:
cd $(DESTDIR)$(bindir) && rm -f rnano

File diff suppressed because it is too large Load Diff

View File

@@ -2,8 +2,8 @@
/**************************************************************************
* chars.c *
* *
* Copyright (C) 2001-2004 Chris Allegretta *
* Copyright (C) 2005-2006 David Lawrence Ramsey *
* Copyright (C) 2001, 2002, 2003, 2004 Chris Allegretta *
* Copyright (C) 2005, 2006, 2007 David Lawrence Ramsey *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2, or (at your option) *
@@ -34,13 +34,26 @@
#include <wctype.h>
#endif
static bool use_utf8 = FALSE;
/* Whether we've enabled UTF-8 support. */
static const wchar_t bad_wchar = 0xFFFD;
/* If we get an invalid multibyte sequence, we treat it as
* Unicode FFFD (Replacement Character), unless we're
* determining if it's a control character or searching for a
* match to it. */
static const char *bad_mbchar = "\xEF\xBF\xBD";
* Unicode FFFD (Replacement Character), unless we're searching
* for a match to it. */
static const char *const bad_mbchar = "\xEF\xBF\xBD";
static const int bad_mbchar_len = 3;
/* Enable UTF-8 support. */
void utf8_init(void)
{
use_utf8 = TRUE;
}
/* Is UTF-8 support enabled? */
bool using_utf8(void)
{
return use_utf8;
}
#endif
#ifndef HAVE_ISBLANK
@@ -72,7 +85,7 @@ bool is_alnum_mbchar(const char *c)
assert(c != NULL);
#ifdef ENABLE_UTF8
if (ISSET(USE_UTF8)) {
if (use_utf8) {
wchar_t wc;
if (mbtowc(&wc, c, MB_CUR_MAX) < 0) {
@@ -92,7 +105,7 @@ bool is_blank_mbchar(const char *c)
assert(c != NULL);
#ifdef ENABLE_UTF8
if (ISSET(USE_UTF8)) {
if (use_utf8) {
wchar_t wc;
if (mbtowc(&wc, c, MB_CUR_MAX) < 0) {
@@ -106,6 +119,13 @@ bool is_blank_mbchar(const char *c)
return isblank((unsigned char)*c);
}
/* This function is equivalent to iscntrl(), except in that it only
* handles non-high-bit control characters. */
bool is_ascii_cntrl_char(int c)
{
return (0 <= c && c < 32);
}
/* This function is equivalent to iscntrl(), except in that it also
* handles high-bit control characters. */
bool is_cntrl_char(int c)
@@ -132,7 +152,7 @@ bool is_cntrl_mbchar(const char *c)
assert(c != NULL);
#ifdef ENABLE_UTF8
if (ISSET(USE_UTF8)) {
if (use_utf8) {
wchar_t wc;
if (mbtowc(&wc, c, MB_CUR_MAX) < 0) {
@@ -152,7 +172,7 @@ bool is_punct_mbchar(const char *c)
assert(c != NULL);
#ifdef ENABLE_UTF8
if (ISSET(USE_UTF8)) {
if (use_utf8) {
wchar_t wc;
int c_mb_len = mbtowc(&wc, c, MB_CUR_MAX);
@@ -219,7 +239,7 @@ char *control_mbrep(const char *c, char *crep, int *crep_len)
assert(c != NULL && crep != NULL && crep_len != NULL);
#ifdef ENABLE_UTF8
if (ISSET(USE_UTF8)) {
if (use_utf8) {
wchar_t wc;
if (mbtowc(&wc, c, MB_CUR_MAX) < 0) {
@@ -253,7 +273,7 @@ char *mbrep(const char *c, char *crep, int *crep_len)
assert(c != NULL && crep != NULL && crep_len != NULL);
#ifdef ENABLE_UTF8
if (ISSET(USE_UTF8)) {
if (use_utf8) {
wchar_t wc;
/* Reject invalid Unicode characters. */
@@ -286,7 +306,7 @@ int mbwidth(const char *c)
assert(c != NULL);
#ifdef ENABLE_UTF8
if (ISSET(USE_UTF8)) {
if (use_utf8) {
wchar_t wc;
int width;
@@ -313,7 +333,7 @@ int mb_cur_max(void)
{
return
#ifdef ENABLE_UTF8
ISSET(USE_UTF8) ? MB_CUR_MAX :
use_utf8 ? MB_CUR_MAX :
#endif
1;
}
@@ -330,7 +350,7 @@ char *make_mbchar(long chr, int *chr_mb_len)
assert(chr_mb_len != NULL);
#ifdef ENABLE_UTF8
if (ISSET(USE_UTF8)) {
if (use_utf8) {
chr_mb = charalloc(MB_CUR_MAX);
*chr_mb_len = wctomb(chr_mb, (wchar_t)chr);
@@ -361,7 +381,7 @@ int parse_mbchar(const char *buf, char *chr, size_t *col)
assert(buf != NULL);
#ifdef ENABLE_UTF8
if (ISSET(USE_UTF8)) {
if (use_utf8) {
/* Get the number of bytes in the multibyte character. */
buf_mb_len = mblen(buf, MB_CUR_MAX);
@@ -493,10 +513,7 @@ int nstrncasecmp(const char *s1, const char *s2, size_t n)
break;
}
if (n > 0)
return tolower(*s1) - tolower(*s2);
else
return 0;
return (n > 0) ? tolower(*s1) - tolower(*s2) : 0;
}
#endif
@@ -505,13 +522,15 @@ int nstrncasecmp(const char *s1, const char *s2, size_t n)
int mbstrncasecmp(const char *s1, const char *s2, size_t n)
{
#ifdef ENABLE_UTF8
if (ISSET(USE_UTF8)) {
char *s1_mb = charalloc(MB_CUR_MAX);
char *s2_mb = charalloc(MB_CUR_MAX);
if (use_utf8) {
char *s1_mb, *s2_mb;
wchar_t ws1, ws2;
assert(s1 != NULL && s2 != NULL);
s1_mb = charalloc(MB_CUR_MAX);
s2_mb = charalloc(MB_CUR_MAX);
while (n > 0 && *s1 != '\0' && *s2 != '\0') {
bool bad_s1_mb = FALSE, bad_s2_mb = FALSE;
int s1_mb_len, s2_mb_len;
@@ -555,8 +574,9 @@ int mbstrncasecmp(const char *s1, const char *s2, size_t n)
* from mutt 1.2.4i (lib.c). Here is the notice from that file, with
* the Free Software Foundation's address updated:
*
* Copyright (C) 1996-2000 Michael R. Elkins <me@cs.hmc.edu>
* Copyright (C) 1999-2000 Thomas Roessler <roessler@guug.de>
* Copyright (C) 1996, 1997, 1998, 1999, 2000 Michael R. Elkins
* <me@cs.hmc.edu>
* Copyright (C) 1999, 2000 Thomas Roessler <roessler@guug.de>
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General Public
@@ -598,14 +618,16 @@ const char *nstrcasestr(const char *haystack, const char *needle)
const char *mbstrcasestr(const char *haystack, const char *needle)
{
#ifdef ENABLE_UTF8
if (ISSET(USE_UTF8)) {
char *r_mb = charalloc(MB_CUR_MAX);
char *q_mb = charalloc(MB_CUR_MAX);
if (use_utf8) {
char *r_mb, *q_mb;
wchar_t wr, wq;
bool found_needle = FALSE;
assert(haystack != NULL && needle != NULL);
r_mb = charalloc(MB_CUR_MAX);
q_mb = charalloc(MB_CUR_MAX);
while (*haystack != '\0') {
const char *r = haystack, *q = needle;
int r_mb_len, q_mb_len;
@@ -704,14 +726,16 @@ const char *mbrevstrcasestr(const char *haystack, const char *needle,
const char *rev_start)
{
#ifdef ENABLE_UTF8
if (ISSET(USE_UTF8)) {
char *r_mb = charalloc(MB_CUR_MAX);
char *q_mb = charalloc(MB_CUR_MAX);
if (use_utf8) {
char *r_mb, *q_mb;
wchar_t wr, wq;
bool begin_line = FALSE, found_needle = FALSE;
assert(haystack != NULL && needle != NULL && rev_start != NULL);
r_mb = charalloc(MB_CUR_MAX);
q_mb = charalloc(MB_CUR_MAX);
while (!begin_line) {
const char *r = rev_start, *q = needle;
int r_mb_len, q_mb_len;
@@ -792,7 +816,7 @@ size_t mbstrnlen(const char *s, size_t maxlen)
assert(s != NULL);
#ifdef ENABLE_UTF8
if (ISSET(USE_UTF8)) {
if (use_utf8) {
size_t n = 0;
int s_mb_len;
@@ -820,7 +844,7 @@ char *mbstrchr(const char *s, const char *c)
assert(s != NULL && c != NULL);
#ifdef ENABLE_UTF8
if (ISSET(USE_UTF8)) {
if (use_utf8) {
bool bad_s_mb = FALSE, bad_c_mb = FALSE;
char *s_mb = charalloc(MB_CUR_MAX);
const char *q = s;
@@ -868,7 +892,7 @@ char *mbstrpbrk(const char *s, const char *accept)
assert(s != NULL && accept != NULL);
#ifdef ENABLE_UTF8
if (ISSET(USE_UTF8)) {
if (use_utf8) {
while (*s != '\0') {
if (mbstrchr(accept, s) != NULL)
return (char *)s;
@@ -909,7 +933,7 @@ char *mbrevstrpbrk(const char *s, const char *accept, const char
assert(s != NULL && accept != NULL && rev_start != NULL);
#ifdef ENABLE_UTF8
if (ISSET(USE_UTF8)) {
if (use_utf8) {
bool begin_line = FALSE;
while (!begin_line) {
@@ -954,7 +978,7 @@ bool has_blank_mbchars(const char *s)
assert(s != NULL);
#ifdef ENABLE_UTF8
if (ISSET(USE_UTF8)) {
if (use_utf8) {
char *chr_mb = charalloc(MB_CUR_MAX);
bool retval = FALSE;
@@ -999,10 +1023,8 @@ bool is_valid_mbstring(const char *s)
return
#ifdef ENABLE_UTF8
ISSET(USE_UTF8) ?
(mbstowcs(NULL, s, 0) != (size_t)-1) :
use_utf8 ? (mbstowcs(NULL, s, 0) != (size_t)-1) :
#endif
TRUE;
}
#endif /* ENABLE_NANORC */

View File

@@ -2,8 +2,8 @@
/**************************************************************************
* color.c *
* *
* Copyright (C) 2001-2004 Chris Allegretta *
* Copyright (C) 2005-2006 David Lawrence Ramsey *
* Copyright (C) 2001, 2002, 2003, 2004 Chris Allegretta *
* Copyright (C) 2005, 2006, 2007 David Lawrence Ramsey *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2, or (at your option) *
@@ -29,7 +29,7 @@
#ifdef ENABLE_COLOR
/* For each syntax list entry, go through the list of colors and assign
* color pairs. */
* the color pairs. */
void set_colorpairs(void)
{
const syntaxtype *this_syntax = syntaxes;
@@ -138,11 +138,10 @@ void color_update(void)
exttype *e;
/* If this is the default syntax, it has no associated
* extensions. (We've checked for this and for duplicate
* syntax names elsewhere.) Skip over it here, but keep
* track of its color regexes. */
* extensions, which we've checked for elsewhere. Skip over
* it here, but keep track of its color regexes. */
if (strcmp(tmpsyntax->desc, "default") == 0) {
defcolor = syntaxes->color;
defcolor = tmpsyntax->color;
continue;
}

167
src/cut.c
View File

@@ -2,8 +2,8 @@
/**************************************************************************
* cut.c *
* *
* Copyright (C) 1999-2004 Chris Allegretta *
* Copyright (C) 2005 David Lawrence Ramsey *
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Chris Allegretta *
* Copyright (C) 2005, 2006, 2007 David Lawrence Ramsey *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2, or (at your option) *
@@ -38,9 +38,9 @@ void cutbuffer_reset(void)
keep_cutbuffer = FALSE;
}
/* If we're not on the last line of the file, move all the text of the
* current line, plus the newline at the end, to the cutbuffer. If we
* are, move all of the text of the current line to the cutbuffer. In
/* If we aren't on the last line of the file, move all the text of the
* current line, plus the newline at the end, into the cutbuffer. If we
* are, move all of the text of the current line into the cutbuffer. In
* both cases, set the current place we want to the beginning of the
* current line. */
void cut_line(void)
@@ -55,8 +55,8 @@ void cut_line(void)
}
#ifndef NANO_TINY
/* Move all currently marked text to the cutbuffer, and set the current
* place we want to where the text used to start. */
/* Move all currently marked text into the cutbuffer, and set the
* current place we want to where the text used to start. */
void cut_marked(void)
{
filestruct *top, *bot;
@@ -69,11 +69,11 @@ void cut_marked(void)
openfile->placewewant = xplustabs();
}
/* If we're not at the end of the current line, move all the text from
* the current cursor position to the end of the current line,
* not counting the newline at the end, to the cutbuffer. If we are,
* and we're not on the last line of the file, move the newline at the
* end to the cutbuffer, and set the current place we want to where the
/* If we aren't at the end of the current line, move all the text from
* the current cursor position to the end of the current line, not
* counting the newline at the end, into the cutbuffer. If we are, and
* we're not on the last line of the file, move the newline at the end
* into the cutbuffer, and set the current place we want to where the
* newline used to be. */
void cut_to_eol(void)
{
@@ -84,27 +84,53 @@ void cut_to_eol(void)
if (openfile->current_x < data_len)
/* If we're not at the end of the line, move all the text from
* the current position up to it, not counting the newline at
* the end, to the cutbuffer. */
* the end, into the cutbuffer. */
move_to_filestruct(&cutbuffer, &cutbottom, openfile->current,
openfile->current_x, openfile->current, data_len);
else if (openfile->current != openfile->filebot) {
/* If we're at the end of the line, and it isn't the last line
* of the file, move all the text from the current position up
* to the beginning of the next line, i.e, the newline at the
* end, to the cutbuffer. */
* to the beginning of the next line, i.e. the newline at the
* end, into the cutbuffer. */
move_to_filestruct(&cutbuffer, &cutbottom, openfile->current,
openfile->current_x, openfile->current->next, 0);
openfile->placewewant = xplustabs();
}
}
/* Move all the text from the current cursor position to the end of the
* file into the cutbuffer. */
void cut_to_eof(void)
{
move_to_filestruct(&cutbuffer, &cutbottom, openfile->current,
openfile->current_x, openfile->filebot,
strlen(openfile->filebot->data));
}
#endif /* !NANO_TINY */
/* Move text from the current filestruct into the cutbuffer. */
void do_cut_text(void)
/* Move text from the current filestruct into the cutbuffer. If
* copy_text is TRUE, copy the text back into the filestruct afterward.
* If cut_till_end is TRUE, move all text from the current cursor
* position to the end of the file into the cutbuffer. */
void do_cut_text(
#ifndef NANO_TINY
bool copy_text, bool cut_till_end
#else
void
#endif
)
{
assert(openfile->current != NULL && openfile->current->data != NULL);
#ifndef NANO_TINY
filestruct *cb_save = NULL;
/* The current end of the cutbuffer, before we add text to
* it. */
size_t cb_save_len = 0;
/* The length of the string at the current end of the cutbuffer,
* before we add text to it. */
bool old_no_newlines = ISSET(NO_NEWLINES);
#endif
check_statusblank();
assert(openfile->current != NULL && openfile->current->data != NULL);
/* If keep_cutbuffer is FALSE and the cutbuffer isn't empty, blow
* away the text in the cutbuffer. */
@@ -116,52 +142,104 @@ void do_cut_text(void)
#endif
}
#ifndef NANO_TINY
if (copy_text) {
if (cutbuffer != NULL) {
/* If the cutbuffer isn't empty, save where it currently
* ends. This is where we'll add the new text. */
cb_save = cutbottom;
cb_save_len = strlen(cutbottom->data);
}
/* Set NO_NEWLINES to TRUE, so that we don't disturb the last
* line of the file when moving text to the cutbuffer. */
SET(NO_NEWLINES);
}
#endif
/* Set keep_cutbuffer to TRUE, so that the text we're going to move
* into the cutbuffer will be added to the text already in the
* cutbuffer instead of replacing it. */
keep_cutbuffer = TRUE;
#ifndef NANO_TINY
if (openfile->mark_set) {
/* If the mark is on, move the marked text to the cutbuffer and
if (cut_till_end) {
/* If cut_till_end is TRUE, move all text up to the end of the
* file into the cutbuffer. */
cut_to_eof();
} else if (openfile->mark_set) {
/* If the mark is on, move the marked text to the cutbuffer, and
* turn the mark off. */
cut_marked();
openfile->mark_set = FALSE;
} else if (ISSET(CUT_TO_END))
/* Otherwise, if the CUT_TO_END flag is set, move all text up to
* the end of the line into the cutbuffer. */
/* If the CUT_TO_END flag is set, move all text up to the end of
* the line into the cutbuffer. */
cut_to_eol();
else
#endif
/* Otherwise, move the entire line into the cutbuffer. */
/* Move the entire line into the cutbuffer. */
cut_line();
#ifndef NANO_TINY
if (copy_text) {
/* Copy the text in the cutbuffer, starting at its saved end if
* there is one, back into the filestruct. This effectively
* uncuts the text we just cut without marking the file as
* modified. */
if (cutbuffer != NULL) {
if (cb_save != NULL) {
cb_save->data += cb_save_len;
copy_from_filestruct(cb_save, cutbottom);
cb_save->data -= cb_save_len;
} else
copy_from_filestruct(cutbuffer, cutbottom);
/* Set the current place we want to where the text from the
* cutbuffer ends. */
openfile->placewewant = xplustabs();
}
/* Set NO_NEWLINES back to what it was before, since we're done
* disturbing the text. */
if (!old_no_newlines)
UNSET(NO_NEWLINES);
} else
#endif
/* Leave the text in the cutbuffer, and mark the file as
* modified. */
set_modified();
/* Update the screen. */
edit_refresh();
set_modified();
#ifdef DEBUG
dump_filestruct(cutbuffer);
#endif
}
/* Move text from the current filestruct into the cutbuffer. */
void do_cut_text_void(void)
{
do_cut_text(
#ifndef NANO_TINY
FALSE, FALSE
#endif
);
}
#ifndef NANO_TINY
/* Move text from the current filestruct into the cutbuffer, and copy it
* back into the filestruct afterward. */
void do_copy_text(void)
{
do_cut_text(TRUE, FALSE);
}
/* Cut from the current cursor position to the end of the file. */
void do_cut_till_end(void)
{
assert(openfile->current != NULL && openfile->current->data != NULL);
check_statusblank();
move_to_filestruct(&cutbuffer, &cutbottom, openfile->current,
openfile->current_x, openfile->filebot,
strlen(openfile->filebot->data));
edit_refresh();
set_modified();
#ifdef DEBUG
dump_filestruct(cutbuffer);
#endif
do_cut_text(FALSE, TRUE);
}
#endif /* !NANO_TINY */
@@ -170,12 +248,6 @@ void do_uncut_text(void)
{
assert(openfile->current != NULL && openfile->current->data != NULL);
#ifndef DISABLE_WRAPPING
wrap_reset();
#endif
check_statusblank();
/* If the cutbuffer is empty, get out. */
if (cutbuffer == NULL)
return;
@@ -188,9 +260,12 @@ void do_uncut_text(void)
* cutbuffer ends. */
openfile->placewewant = xplustabs();
edit_refresh();
/* Mark the file as modified. */
set_modified();
/* Update the screen. */
edit_refresh();
#ifdef DEBUG
dump_filestruct_reverse();
#endif

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -2,8 +2,8 @@
/**************************************************************************
* help.c *
* *
* Copyright (C) 2000-2004 Chris Allegretta *
* Copyright (C) 2005-2006 David Lawrence Ramsey *
* Copyright (C) 2000, 2001, 2002, 2003, 2004 Chris Allegretta *
* Copyright (C) 2005, 2006, 2007 David Lawrence Ramsey *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2, or (at your option) *
@@ -32,28 +32,32 @@
static char *help_text = NULL;
/* The text displayed in the help window. */
/* Our dynamic, shortcut-list-compliant help function. */
void do_help(void)
/* Our main help browser function. refresh_func is the function we will
* call to refresh the edit window. */
void do_help(void (*refresh_func)(void))
{
int line = 0;
int kbinput = ERR;
bool meta_key, func_key, old_no_help = ISSET(NO_HELP);
bool abort = FALSE;
/* Whether we should abort the help browser. */
size_t line = 0;
/* The line number in help_text of the first displayed help
* line. This variable is zero-based. */
bool no_more = FALSE;
/* no_more means the end of the help text is shown, so don't go
* down any more. */
int kbinput = ERR;
bool meta_key, func_key;
bool old_no_help = ISSET(NO_HELP);
size_t last_line = 0;
/* The line number in help_text of the last help line. This
* variable is zero-based. */
#ifndef DISABLE_MOUSE
const shortcut *oldshortcut = currshortcut;
/* We will set currshortcut to allow clicking on the help
* screen's shortcut list. */
/* The current shortcut list. */
#endif
const char *ptr;
/* The current line of the help text. */
size_t old_line = (size_t)-1;
/* The line we were on before the current line. */
curs_set(0);
blank_edit();
wattroff(bottomwin, A_REVERSE);
wattroff(bottomwin, reverse_attr);
blank_statusbar();
/* Set help_text as the string to display. */
@@ -75,33 +79,76 @@ void do_help(void)
}
bottombars(help_list);
wnoutrefresh(bottomwin);
do {
int i;
int old_line = line;
/* We redisplay the help only if it moved. */
const char *ptr = help_text;
/* Get the last line of the help text. */
ptr = help_text;
for (; *ptr != '\0'; last_line++) {
ptr += help_line_len(ptr);
if (*ptr == '\n')
ptr++;
}
if (last_line > 0)
last_line--;
while (!abort) {
size_t i;
/* Display the help text if we don't have a key, or if the help
* text has moved. */
if (kbinput == ERR || line != old_line) {
blank_edit();
ptr = help_text;
/* Calculate where in the text we should be, based on the
* page. */
for (i = 0; i < line; i++) {
ptr += help_line_len(ptr);
if (*ptr == '\n')
ptr++;
}
for (i = 0; i < editwinrows && *ptr != '\0'; i++) {
size_t j = help_line_len(ptr);
mvwaddnstr(edit, i, 0, ptr, j);
ptr += j;
if (*ptr == '\n')
ptr++;
}
}
wnoutrefresh(edit);
old_line = line;
kbinput = get_kbinput(edit, &meta_key, &func_key);
parse_help_input(&kbinput, &meta_key, &func_key);
switch (kbinput) {
#ifndef DISABLE_MOUSE
case KEY_MOUSE:
{
int mouse_x, mouse_y;
get_mouseinput(&mouse_x, &mouse_y, TRUE);
}
break;
#endif
/* Redraw the screen. */
case NANO_REFRESH_KEY:
total_redraw();
break;
case NANO_PREVPAGE_KEY:
case NANO_PREVPAGE_FKEY:
if (line > 0) {
if (line > editwinrows - 2)
line -= editwinrows - 2;
if (line < 0)
line = 0;
}
else
line = 0;
break;
case NANO_NEXTPAGE_KEY:
case NANO_NEXTPAGE_FKEY:
if (!no_more)
if (line + (editwinrows - 1) < last_line)
line += editwinrows - 2;
break;
case NANO_PREVLINE_KEY:
@@ -109,42 +156,25 @@ void do_help(void)
line--;
break;
case NANO_NEXTLINE_KEY:
if (!no_more)
if (line + (editwinrows - 1) < last_line)
line++;
break;
case NANO_FIRSTLINE_METAKEY:
if (meta_key)
line = 0;
break;
case NANO_LASTLINE_METAKEY:
if (meta_key) {
if (line + (editwinrows - 1) < last_line)
line = last_line - (editwinrows - 1);
}
break;
/* Abort the help browser. */
case NANO_EXIT_KEY:
abort = TRUE;
break;
}
if (kbinput == NANO_REFRESH_KEY)
/* Redraw the screen. */
total_redraw();
else {
if (kbinput != ERR && line == old_line)
goto skip_redisplay;
blank_edit();
}
/* Calculate where in the text we should be, based on the
* page. */
for (i = 0; i < line; i++) {
ptr += help_line_len(ptr);
if (*ptr == '\n')
ptr++;
}
for (i = 0; i < editwinrows && *ptr != '\0'; i++) {
size_t j = help_line_len(ptr);
mvwaddnstr(edit, i, 0, ptr, j);
ptr += j;
if (*ptr == '\n')
ptr++;
}
no_more = (*ptr == '\0');
skip_redisplay:
kbinput = get_kbinput(edit, &meta_key, &func_key);
} while (kbinput != NANO_EXIT_KEY && kbinput != NANO_EXIT_FKEY);
}
#ifndef DISABLE_MOUSE
currshortcut = oldshortcut;
@@ -159,7 +189,7 @@ void do_help(void)
bottombars(currshortcut);
curs_set(1);
edit_refresh();
refresh_func();
/* The help_init() at the beginning allocated help_text. Since
* help_text has now been written to the screen, we don't need it
@@ -168,6 +198,20 @@ void do_help(void)
help_text = NULL;
}
/* Start the help browser for the edit window. */
void do_help_void(void)
{
do_help(&edit_refresh);
}
#ifndef DISABLE_BROWSER
/* Start the help browser for the file browser. */
void do_browser_help(void)
{
do_help(&browser_refresh);
}
#endif
/* This function allocates help_text, and stores the help string in it.
* help_text should be NULL initially. */
void help_init(void)
@@ -256,6 +300,19 @@ void help_init(void)
"in the file browser:\n\n");
htx[1] = NULL;
htx[2] = NULL;
} else if (currshortcut == whereis_file_list) {
htx[0] = N_("Browser Search Command Help Text\n\n "
"Enter the words or characters you would like to "
"search for, and then press Enter. If there is a "
"match for the text you entered, the screen will be "
"updated to the location of the nearest match for the "
"search string.\n\n The previous search string will be "
"shown in brackets after the search prompt. Hitting "
"Enter without entering any text will perform the "
"previous search.\n\n");
htx[1] = N_(" The following function keys are available in "
"Browser Search mode:\n\n");
htx[2] = NULL;
} else if (currshortcut == gotodir_list) {
htx[0] = N_("Browser Go To Directory Help Text\n\n "
"Enter the name of the directory you would like to "
@@ -277,7 +334,7 @@ void help_init(void)
"be edited. It will then prompt to replace every "
"instance of the given misspelled word in the current "
"file, or, if you have selected text with the mark, in "
"the selected text.\n\n The following other functions "
"the selected text.\n\n The following function keys "
"are available in Spell Check mode:\n\n");
htx[1] = NULL;
htx[2] = NULL;
@@ -286,19 +343,19 @@ void help_init(void)
#ifndef NANO_TINY
else if (currshortcut == extcmd_list) {
htx[0] = N_("Execute Command Help Text\n\n "
"This menu allows you to insert the output of a "
"This mode allows you to insert the output of a "
"command run by the shell into the current buffer (or "
"a new buffer in multiple file buffer mode). If you "
"need another blank buffer, do not enter any "
"command.\n\n The following keys are available in "
"Execute Command mode:\n\n");
"command.\n\n The following function keys are "
"available in Execute Command mode:\n\n");
htx[1] = NULL;
htx[2] = NULL;
}
#endif /* !NANO_TINY */
else {
/* Default to the main help list. */
htx[0] = N_(" nano help text\n\n "
htx[0] = N_("Main 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. "
@@ -307,15 +364,16 @@ void help_init(void)
"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 ");
htx[1] = N_("The notation for shortcuts is as follows: "
"Control-key sequences are notated with a caret (^) "
"symbol and can be entered either by using the Control "
"(Ctrl) key or pressing the Escape (Esc) key twice. "
"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. ");
"messages. ");
htx[1] = N_("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 can be entered "
"either by using the Control (Ctrl) key or pressing "
"the Escape (Esc) key twice. 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. ");
htx[2] = N_("Also, pressing Esc twice and then typing a "
"three-digit decimal number from 000 to 255 will enter "
"the character with the corresponding value. The "
@@ -336,20 +394,21 @@ void help_init(void)
if (htx[2] != NULL)
allocsize += strlen(htx[2]);
/* The space needed for the shortcut lists, at most COLS characters,
* plus '\n'. */
allocsize += (COLS < 24 ? (24 * mb_cur_max()) :
((COLS + 1) * mb_cur_max())) * length_of_list(currshortcut);
/* Count the shortcut help text. Each entry has up to three keys,
* which fill 24 columns, plus translated text, plus one or two
* \n's. */
for (s = currshortcut; s != NULL; s = s->next)
allocsize += (24 * mb_cur_max()) + strlen(s->help) + 2;
#ifndef NANO_TINY
/* If we're on the main list, we also count the toggle help text.
* Each line has "M-%c\t\t\t", which fills 24 columns, plus a space,
* plus translated text, plus '\n'. */
* Each entry has "M-%c\t\t\t", which fills 24 columns, plus a
* space, plus translated text, plus one or two '\n's. */
if (currshortcut == main_list) {
size_t endis_len = strlen(_("enable/disable"));
for (t = toggles; t != NULL; t = t->next)
allocsize += 8 + strlen(t->desc) + endis_len;
allocsize += strlen(t->desc) + endis_len + 9;
}
#endif
@@ -373,8 +432,8 @@ void help_init(void)
/* Now add our shortcut info. Assume that each shortcut has, at the
* very least, an equivalent control key, an equivalent primary meta
* key sequence, or both. Also assume that the meta key values are
* not control characters. We can display a maximum of 3 shortcut
* entries. */
* not control characters. We can display a maximum of three
* shortcut entries. */
for (s = currshortcut; s != NULL; s = s->next) {
int entries = 0;
@@ -384,9 +443,22 @@ void help_init(void)
/* Yucky sentinel values that we can't handle a better
* way. */
if (s->ctrlval == NANO_CONTROL_SPACE) {
char *space_ptr = display_string(_("Space"), 0, 6,
char *space_ptr = display_string(_("Space"), 0, 14,
FALSE);
if (s->funcval == NANO_NO_KEY && (s->metaval ==
NANO_NO_KEY || s->miscval == NANO_NO_KEY)) {
/* If we're here, we have at least two entries worth
* of blank space. If this entry takes up more than
* one entry's worth of space, use two to display
* it. */
if (mbstrlen(space_ptr) > 6)
entries++;
} else
/* Otherwise, truncate it so that it takes up only
* one entry's worth of space. */
space_ptr[6] = '\0';
ptr += sprintf(ptr, "^%s", space_ptr);
free(space_ptr);
@@ -421,10 +493,16 @@ void help_init(void)
}
/* Yucky sentinel values that we can't handle a better
* way. */
if (s->metaval == NANO_ALT_SPACE && entries == 1) {
char *space_ptr = display_string(_("Space"), 0, 5,
if (s->metaval == NANO_META_SPACE && entries == 1) {
char *space_ptr = display_string(_("Space"), 0, 13,
FALSE);
/* If we're here, we have at least two entries worth of
* blank space. If this entry takes up more than one
* entry's worth of space, use two to display it. */
if (mbstrlen(space_ptr) > 5)
entries++;
ptr += sprintf(ptr, "M-%s", space_ptr);
free(space_ptr);
@@ -447,34 +525,33 @@ void help_init(void)
*(ptr++) = '\t';
}
/* Make sure all the help text starts at the same place. */
while (entries < 3) {
entries++;
*(ptr++) = '\t';
/* If this entry isn't blank, make sure all the help text starts
* at the same place. */
if (s->ctrlval != NANO_NO_KEY || s->funcval != NANO_NO_KEY ||
s->metaval != NANO_NO_KEY || s->miscval !=
NANO_NO_KEY) {
while (entries < 3) {
entries++;
*(ptr++) = '\t';
}
}
assert(s->help != NULL);
/* The shortcut's help text. */
ptr += sprintf(ptr, "%s\n", s->help);
if (COLS > 24) {
char *help_ptr = display_string(s->help, 0, COLS - 24,
FALSE);
ptr += sprintf(ptr, help_ptr);
free(help_ptr);
}
ptr += sprintf(ptr, "\n");
if (s->blank_after)
ptr += sprintf(ptr, "\n");
}
#ifndef NANO_TINY
/* And the toggles... */
if (currshortcut == main_list) {
for (t = toggles; t != NULL; t = t->next) {
assert(t->desc != NULL);
ptr += sprintf(ptr, "M-%c\t\t\t%s %s\n",
toupper(t->val), t->desc, _("enable/disable"));
ptr += sprintf(ptr, "M-%c\t\t\t%s %s\n", toupper(t->val),
t->desc, _("enable/disable"));
if (t->blank_after)
ptr += sprintf(ptr, "\n");
}
}
@@ -489,24 +566,53 @@ void help_init(void)
assert(strlen(help_text) <= allocsize + 1);
}
/* Determine the shortcut key corresponding to the values of kbinput
* (the key itself), meta_key (whether the key is a meta sequence), and
* func_key (whether the key is a function key), if any. In the
* process, convert certain non-shortcut keys into their corresponding
* shortcut keys. */
void parse_help_input(int *kbinput, bool *meta_key, bool *func_key)
{
get_shortcut(help_list, kbinput, meta_key, func_key);
if (!*meta_key) {
switch (*kbinput) {
/* For consistency with the file browser. */
case ' ':
*kbinput = NANO_NEXTPAGE_KEY;
break;
case '-':
*kbinput = NANO_PREVPAGE_KEY;
break;
/* Cancel is equivalent to Exit here. */
case NANO_CANCEL_KEY:
case 'E':
case 'e':
*kbinput = NANO_EXIT_KEY;
break;
}
}
}
/* Calculate the next line of help_text, starting at ptr. */
size_t help_line_len(const char *ptr)
{
int help_cols = (COLS > 24) ? COLS - 8 : 24;
int help_cols = (COLS > 24) ? COLS - 1 : 24;
/* Try to break the line at (COLS - 8) columns if we have more than
/* Try to break the line at (COLS - 1) columns if we have more than
* 24 columns, and at 24 columns otherwise. */
size_t retval = break_line(ptr, help_cols, TRUE);
ssize_t wrap_loc = break_line(ptr, help_cols, TRUE);
size_t retval = (wrap_loc < 0) ? 0 : wrap_loc;
size_t retval_save = retval;
/* Get the length of the entire line up to a null or a newline. */
while (*(ptr + retval) != '\0' && *(ptr + retval) != '\n')
retval += move_mbright(ptr + retval, 0);
/* If the entire line doesn't go more than 8 columns beyond where we
* tried to break it, we should display it as-is. Otherwise, we
/* If the entire line doesn't go more than one column beyond where
* we tried to break it, we should display it as-is. Otherwise, we
* should display it only up to the break. */
if (strnlenpt(ptr, retval) > help_cols + 8)
if (strnlenpt(ptr, retval) > help_cols + 1)
retval = retval_save;
return retval;

View File

@@ -2,8 +2,8 @@
/**************************************************************************
* move.c *
* *
* Copyright (C) 1999-2004 Chris Allegretta *
* Copyright (C) 2005 David Lawrence Ramsey *
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Chris Allegretta *
* Copyright (C) 2005, 2006, 2007 David Lawrence Ramsey *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2, or (at your option) *
@@ -32,8 +32,6 @@ void do_first_line(void)
const filestruct *current_save = openfile->current;
size_t pww_save = openfile->placewewant;
check_statusblank();
openfile->current = openfile->fileage;
openfile->current_x = 0;
openfile->placewewant = 0;
@@ -47,8 +45,6 @@ void do_last_line(void)
const filestruct *current_save = openfile->current;
size_t pww_save = openfile->placewewant;
check_statusblank();
openfile->current = openfile->filebot;
openfile->current_x = strlen(openfile->filebot->data);
openfile->placewewant = xplustabs();
@@ -62,12 +58,6 @@ void do_page_up(void)
{
int i;
check_statusblank();
#ifndef DISABLE_WRAPPING
wrap_reset();
#endif
/* If there's less than a page of text left on the screen, put the
* cursor at the beginning of the first line of the file, and then
* update the edit window. */
@@ -95,7 +85,7 @@ void do_page_up(void)
openfile->placewewant);
/* Scroll the edit window up a page. */
edit_scroll(UP, editwinrows - 2);
edit_scroll(UP_DIR, editwinrows - 2);
}
/* Move down one page. */
@@ -103,12 +93,6 @@ void do_page_down(void)
{
int i;
check_statusblank();
#ifndef DISABLE_WRAPPING
wrap_reset();
#endif
/* If there's less than a page of text left on the screen, put the
* cursor at the beginning of the last line of the file, and then
* update the edit window. */
@@ -137,7 +121,7 @@ void do_page_down(void)
openfile->placewewant);
/* Scroll the edit window down a page. */
edit_scroll(DOWN, editwinrows - 2);
edit_scroll(DOWN_DIR, editwinrows - 2);
}
#ifndef DISABLE_JUSTIFY
@@ -149,8 +133,6 @@ void do_para_begin(bool allow_update)
const filestruct *current_save = openfile->current;
const size_t pww_save = openfile->placewewant;
check_statusblank();
if (openfile->current != openfile->fileage) {
do {
openfile->current = openfile->current->prev;
@@ -183,8 +165,6 @@ void do_para_end(bool allow_update)
const filestruct *const current_save = openfile->current;
const size_t pww_save = openfile->placewewant;
check_statusblank();
while (openfile->current != openfile->filebot &&
!inpar(openfile->current))
openfile->current = openfile->current->next;
@@ -233,8 +213,6 @@ bool do_next_word(bool allow_punct, bool allow_update)
assert(openfile->current != NULL && openfile->current->data != NULL);
check_statusblank();
char_mb = charalloc(mb_cur_max());
/* Move forward until we find the character after the last letter of
@@ -294,8 +272,7 @@ bool do_next_word(bool allow_punct, bool allow_update)
free(char_mb);
/* If we haven't found it, leave the cursor at the end of the
* file. */
/* If we haven't found it, move to the end of the file. */
if (openfile->current == NULL)
openfile->current = openfile->filebot;
@@ -331,8 +308,6 @@ bool do_prev_word(bool allow_punct, bool allow_update)
assert(openfile->current != NULL && openfile->current->data != NULL);
check_statusblank();
char_mb = charalloc(mb_cur_max());
/* Move backward until we find the character before the first letter
@@ -395,8 +370,7 @@ bool do_prev_word(bool allow_punct, bool allow_update)
}
}
/* If we haven't found it, leave the cursor at the beginning of the
* file. */
/* If we haven't found it, move to the beginning of the file. */
if (openfile->current == NULL)
openfile->current = openfile->fileage;
/* If we've found it, move backward until we find the character
@@ -454,14 +428,12 @@ void do_prev_word_void(void)
/* Move to the beginning of the current line. If the SMART_HOME flag is
* set, move to the first non-whitespace character of the current line
* if we're not already there, or to the beginning of the current line
* if we aren't already there, or to the beginning of the current line
* if we are. */
void do_home(void)
{
size_t pww_save = openfile->placewewant;
check_statusblank();
#ifndef NANO_TINY
if (ISSET(SMART_HOME)) {
size_t current_x_save = openfile->current_x;
@@ -490,8 +462,6 @@ void do_end(void)
{
size_t pww_save = openfile->placewewant;
check_statusblank();
openfile->current_x = strlen(openfile->current->data);
openfile->placewewant = xplustabs();
@@ -499,17 +469,23 @@ void do_end(void)
update_line(openfile->current, openfile->current_x);
}
/* Move up one line. */
void do_up(void)
{
check_statusblank();
#ifndef DISABLE_WRAPPING
wrap_reset();
/* If scroll_only is FALSE, move up one line. If scroll_only is TRUE,
* scroll up one line without scrolling the cursor. */
void do_up(
#ifndef NANO_TINY
bool scroll_only
#else
void
#endif
/* If we're at the top of the file, get out. */
if (openfile->current == openfile->fileage)
)
{
/* If we're at the top of the file, or if scroll_only is TRUE and
* the top of the file is onscreen, get out. */
if (openfile->current == openfile->fileage
#ifndef NANO_TINY
|| (scroll_only && openfile->edittop == openfile->fileage)
#endif
)
return;
assert(openfile->current_y == openfile->current->lineno - openfile->edittop->lineno);
@@ -519,60 +495,61 @@ void do_up(void)
openfile->current_x = actual_x(openfile->current->data,
openfile->placewewant);
/* If we're on the first line of the edit window, scroll the edit
* window up one line if we're in smooth scrolling mode, or up half
* a page if we're not. */
if (openfile->current_y == 0)
edit_scroll(UP,
/* If scroll_only is FALSE and if we're on the first line of the
* edit window, scroll the edit window up one line if we're in
* smooth scrolling mode, or up half a page if we're not. If
* scroll_only is TRUE, scroll the edit window up one line
* unconditionally. */
if (openfile->current_y == 0
#ifndef NANO_TINY
ISSET(SMOOTH_SCROLL) ? 1 :
|| scroll_only
#endif
)
edit_scroll(UP_DIR,
#ifndef NANO_TINY
(ISSET(SMOOTH_SCROLL) || scroll_only) ? 1 :
#endif
editwinrows / 2);
/* Update the line we were on before and the line we're on now. The
* former needs to be redrawn if we're not on the first page, and
* the latter needs to be drawn unconditionally. */
else {
/* If we're below the first line of the edit window, update the
* line we were on before and the line we're on now. The former
* needs to be redrawn if we're not on the first page, and the
* latter needs to be drawn unconditionally. */
if (openfile->current_y > 0) {
if (need_vertical_update(0))
update_line(openfile->current->next, 0);
update_line(openfile->current, openfile->current_x);
}
}
/* Move up one line. */
void do_up_void(void)
{
do_up(
#ifndef NANO_TINY
FALSE
#endif
);
}
#ifndef NANO_TINY
/* Scroll up one line without scrolling the cursor. */
void do_scroll_up(void)
{
check_statusblank();
#ifndef DISABLE_WRAPPING
wrap_reset();
#endif
/* If the top of the file is onscreen, get out. */
if (openfile->edittop == openfile->fileage)
return;
assert(openfile->current_y == openfile->current->lineno - openfile->edittop->lineno);
/* Move the current line of the edit window up. */
openfile->current = openfile->current->prev;
openfile->current_x = actual_x(openfile->current->data,
openfile->placewewant);
/* Scroll the edit window up one line. */
edit_scroll(UP, 1);
do_up(TRUE);
}
#endif /* !NANO_TINY */
/* Move down one line. */
void do_down(void)
{
check_statusblank();
#ifndef DISABLE_WRAPPING
wrap_reset();
#endif
/* If scroll_only is FALSE, move down one line. If scroll_only is TRUE,
* scroll down one line without scrolling the cursor. */
void do_down(
#ifndef NANO_TINY
bool scroll_only
#else
void
#endif
)
{
/* If we're at the bottom of the file, get out. */
if (openfile->current == openfile->filebot)
return;
@@ -584,63 +561,61 @@ void do_down(void)
openfile->current_x = actual_x(openfile->current->data,
openfile->placewewant);
/* If we're on the last line of the edit window, scroll the edit
* window down one line if we're in smooth scrolling mode, or down
* half a page if we're not. */
if (openfile->current_y == editwinrows - 1)
edit_scroll(DOWN,
/* If scroll_only is FALSE and if we're on the first line of the
* edit window, scroll the edit window down one line if we're in
* smooth scrolling mode, or down half a page if we're not. If
* scroll_only is TRUE, scroll the edit window down one line
* unconditionally. */
if (openfile->current_y == editwinrows - 1
#ifndef NANO_TINY
ISSET(SMOOTH_SCROLL) ? 1 :
|| scroll_only
#endif
)
edit_scroll(DOWN_DIR,
#ifndef NANO_TINY
(ISSET(SMOOTH_SCROLL) || scroll_only) ? 1 :
#endif
editwinrows / 2);
/* Update the line we were on before and the line we're on now. The
* former needs to be redrawn if we're not on the first page, and
* the latter needs to be drawn unconditionally. */
else {
/* If we're above the last line of the edit window, update the line
* we were on before and the line we're on now. The former needs to
* be redrawn if we're not on the first page, and the latter needs
* to be drawn unconditionally. */
if (openfile->current_y < editwinrows - 1) {
if (need_vertical_update(0))
update_line(openfile->current->prev, 0);
update_line(openfile->current, openfile->current_x);
}
}
/* Move down one line. */
void do_down_void(void)
{
do_down(
#ifndef NANO_TINY
FALSE
#endif
);
}
#ifndef NANO_TINY
/* Scroll down one line without scrolling the cursor. */
void do_scroll_down(void)
{
check_statusblank();
#ifndef DISABLE_WRAPPING
wrap_reset();
#endif
/* If we're at the bottom of the file, get out. */
if (openfile->current == openfile->filebot)
return;
assert(openfile->current_y == openfile->current->lineno - openfile->edittop->lineno);
/* Move the current line of the edit window down. */
openfile->current = openfile->current->next;
openfile->current_x = actual_x(openfile->current->data,
openfile->placewewant);
/* Scroll the edit window down one line. */
edit_scroll(DOWN, 1);
do_down(TRUE);
}
#endif /* !NANO_TINY */
#endif
/* Move left one character. */
void do_left(void)
{
size_t pww_save = openfile->placewewant;
check_statusblank();
if (openfile->current_x > 0)
openfile->current_x = move_mbleft(openfile->current->data,
openfile->current_x);
else if (openfile->current != openfile->fileage) {
do_up();
do_up_void();
openfile->current_x = strlen(openfile->current->data);
}
@@ -655,15 +630,13 @@ void do_right(void)
{
size_t pww_save = openfile->placewewant;
check_statusblank();
assert(openfile->current_x <= strlen(openfile->current->data));
if (openfile->current->data[openfile->current_x] != '\0')
openfile->current_x = move_mbright(openfile->current->data,
openfile->current_x);
else if (openfile->current != openfile->filebot) {
do_down();
do_down_void();
openfile->current_x = 0;
}

View File

@@ -2,8 +2,8 @@
/**************************************************************************
* nano.c *
* *
* Copyright (C) 1999-2004 Chris Allegretta *
* Copyright (C) 2005-2006 David Lawrence Ramsey *
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Chris Allegretta *
* Copyright (C) 2005, 2006, 2007 David Lawrence Ramsey *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2, or (at your option) *
@@ -29,33 +29,28 @@
#include <unistd.h>
#include <string.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <sys/param.h>
#include <errno.h>
#include <ctype.h>
#include <locale.h>
#include <termios.h>
#ifdef HAVE_GETOPT_H
#include <getopt.h>
#endif
#ifndef NANO_TINY
#include <setjmp.h>
#include <sys/ioctl.h>
#endif
#ifdef ENABLE_NANORC
static bool no_rcfiles = FALSE;
/* Should we ignore all rcfiles? */
#endif
static struct termios oldterm;
/* The user's original terminal settings. */
static struct sigaction act;
/* For all our fun signal handlers. */
/* Used to set up all our fun signal handlers. */
#ifndef NANO_TINY
static sigjmp_buf jmpbuf;
/* Used to return to main() after a SIGWINCH. */
#endif
/* Create a new filestruct node. Note that we specifically do not set
* prevnode->next equal to the new line. */
/* Create a new filestruct node. Note that we do not set prevnode->next
* to the new line. */
filestruct *make_new_node(filestruct *prevnode)
{
filestruct *newnode = (filestruct *)nmalloc(sizeof(filestruct));
@@ -163,7 +158,7 @@ void renumber(filestruct *fileptr)
{
ssize_t line;
assert(fileptr != NULL && fileptr->prev != NULL);
assert(fileptr != NULL);
line = (fileptr->prev == NULL) ? 0 : fileptr->prev->lineno;
@@ -173,8 +168,8 @@ void renumber(filestruct *fileptr)
fileptr->lineno = ++line;
}
/* Partition a filestruct so it begins at (top, top_x) and ends at (bot,
* bot_x). */
/* Partition a filestruct so that it begins at (top, top_x) and ends at
* (bot, bot_x). */
partition *partition_filestruct(filestruct *top, size_t top_x,
filestruct *bot, size_t bot_x)
{
@@ -226,8 +221,8 @@ partition *partition_filestruct(filestruct *top, size_t top_x,
return p;
}
/* Unpartition a filestruct so it begins at (fileage, 0) and ends at
* (filebot, strlen(filebot->data)) again. */
/* Unpartition a filestruct so that it begins at (fileage, 0) and ends
* at (filebot, strlen(filebot->data)) again. */
void unpartition_filestruct(partition **p)
{
char *tmp;
@@ -525,17 +520,18 @@ void free_openfilestruct(openfilestruct *src)
/* Display a warning about a key disabled in view mode. */
void print_view_warning(void)
{
statusbar(_("Key illegal in VIEW mode"));
statusbar(_("Key invalid in view mode"));
}
/* What we do when we're all set to exit. */
/* Make nano exit gracefully. */
void finish(void)
{
/* Blank the statusbar (and shortcut list, if applicable), and move
* the cursor to the last line of the screen. */
if (!ISSET(NO_HELP))
blank_bottombars();
else
blank_statusbar();
wrefresh(bottomwin);
endwin();
@@ -543,7 +539,7 @@ void finish(void)
tcsetattr(0, TCSANOW, &oldterm);
#if !defined(NANO_TINY) && defined(ENABLE_NANORC)
if (!ISSET(NO_RCFILE) && ISSET(HISTORYLOG))
if (!no_rcfiles && ISSET(HISTORYLOG))
save_history();
#endif
@@ -551,16 +547,16 @@ void finish(void)
thanks_for_all_the_fish();
#endif
/* Get out. */
exit(0);
}
/* Die (gracefully?). */
/* Make nano die gracefully. */
void die(const char *msg, ...)
{
va_list ap;
endwin();
curses_ended = TRUE;
/* Restore the old terminal settings. */
tcsetattr(0, TCSANOW, &oldterm);
@@ -610,15 +606,14 @@ void die_save_file(const char *die_filename)
if (ISSET(RESTRICTED))
return;
/* If we can't save, we have REAL bad problems, but we might as well
* TRY. */
/* If we can't save, we have really bad problems, but we might as
* well try. */
if (die_filename[0] == '\0')
die_filename = "nano";
retval = get_next_filename(die_filename, ".save");
if (retval[0] != '\0')
failed = (write_file(retval, NULL, TRUE, OVERWRITE,
TRUE) == -1);
failed = !write_file(retval, NULL, TRUE, OVERWRITE, TRUE);
if (!failed)
fprintf(stderr, _("\nBuffer written to %s\n"), retval);
@@ -671,27 +666,40 @@ void window_init(void)
}
#ifndef DISABLE_MOUSE
/* Initialize mouse support. */
/* Disable mouse support. */
void disable_mouse_support(void)
{
mousemask(0, NULL);
}
/* Enable mouse support. */
void enable_mouse_support(void)
{
mousemask(ALL_MOUSE_EVENTS, NULL);
mouseinterval(50);
}
/* Initialize mouse support. Enable it if the USE_MOUSE flag is set,
* and disable it otherwise. */
void mouse_init(void)
{
if (ISSET(USE_MOUSE)) {
mousemask(BUTTON1_RELEASED, NULL);
mouseinterval(50);
} else
mousemask(0, NULL);
if (ISSET(USE_MOUSE))
enable_mouse_support();
else
disable_mouse_support();
}
#endif
#endif /* !DISABLE_MOUSE */
#ifdef HAVE_GETOPT_LONG
#define print1opt(shortflag, longflag, desc) print1opt_full(shortflag, longflag, desc)
#define print_opt(shortflag, longflag, desc) print_opt_full(shortflag, longflag, desc)
#else
#define print1opt(shortflag, longflag, desc) print1opt_full(shortflag, desc)
#define print_opt(shortflag, longflag, desc) print_opt_full(shortflag, desc)
#endif
/* Print one usage string to the screen. This cuts down on duplicate
* strings to translate, and leaves out the parts that shouldn't be
* translatable (the flag names). */
void print1opt_full(const char *shortflag
* translatable (i.e. the flag names). */
void print_opt_full(const char *shortflag
#ifdef HAVE_GETOPT_LONG
, const char *longflag
#endif
@@ -717,108 +725,111 @@ void print1opt_full(const char *shortflag
/* Explain how to properly use nano and its command line options. */
void usage(void)
{
#ifdef HAVE_GETOPT_LONG
printf(_("Usage: nano [OPTIONS] [[+LINE,COLUMN] FILE]...\n\n"));
printf(
_("Usage: nano [+LINE,COLUMN] [GNU long option] [option] [file]\n\n"));
printf(_("Option\t\tLong option\t\tMeaning\n"));
#ifdef HAVE_GETOPT_LONG
_("Option\t\tGNU long option\t\tMeaning\n")
#else
printf(_("Usage: nano [+LINE,COLUMN] [option] [file]\n\n"));
printf(_("Option\t\tMeaning\n"));
_("Option\t\tMeaning\n")
#endif
print1opt("-h, -?", "--help", N_("Show this message"));
print1opt(_("+LINE,COLUMN"), "",
);
print_opt("-h, -?", "--help", N_("Show this message"));
print_opt(_("+LINE,COLUMN"), "",
N_("Start at line LINE, column COLUMN"));
#ifndef NANO_TINY
print1opt("-A", "--smarthome", N_("Enable smart home key"));
print1opt("-B", "--backup", N_("Save backups of existing files"));
print1opt(_("-C [dir]"), _("--backupdir=[dir]"),
print_opt("-A", "--smarthome", N_("Enable smart home key"));
print_opt("-B", "--backup", N_("Save backups of existing files"));
print_opt(_("-C <dir>"), _("--backupdir=<dir>"),
N_("Directory for saving unique backup files"));
print1opt("-E", "--tabstospaces",
#endif
print_opt("-D", "--boldtext",
N_("Use bold instead of reverse video text"));
#ifndef NANO_TINY
print_opt("-E", "--tabstospaces",
N_("Convert typed tabs to spaces"));
#endif
#ifdef ENABLE_MULTIBUFFER
print1opt("-F", "--multibuffer", N_("Enable multiple file buffers"));
print_opt("-F", "--multibuffer", N_("Enable multiple file buffers"));
#endif
#ifdef ENABLE_NANORC
#ifndef NANO_TINY
print1opt("-H", "--historylog",
print_opt("-H", "--historylog",
N_("Log & read search/replace string history"));
#endif
print1opt("-I", "--ignorercfiles",
print_opt("-I", "--ignorercfiles",
N_("Don't look at nanorc files"));
#endif
print1opt("-K", "--rebindkeypad",
print_opt("-K", "--rebindkeypad",
N_("Fix numeric keypad key confusion problem"));
print1opt("-L", "--nonewlines",
print_opt("-L", "--nonewlines",
N_("Don't add newlines to the ends of files"));
#ifndef NANO_TINY
print1opt("-N", "--noconvert",
print_opt("-N", "--noconvert",
N_("Don't convert files from DOS/Mac format"));
#endif
print1opt("-O", "--morespace", N_("Use more space for editing"));
print_opt("-O", "--morespace", N_("Use one more line for editing"));
#ifndef DISABLE_JUSTIFY
print1opt(_("-Q [str]"), _("--quotestr=[str]"),
print_opt(_("-Q <str>"), _("--quotestr=<str>"),
N_("Quoting string"));
#endif
print1opt("-R", "--restricted", N_("Restricted mode"));
print_opt("-R", "--restricted", N_("Restricted mode"));
#ifndef NANO_TINY
print1opt("-S", "--smooth", N_("Smooth scrolling"));
print_opt("-S", "--smooth", N_("Smooth scrolling"));
#endif
print1opt(_("-T [#cols]"), _("--tabsize=[#cols]"),
N_("Set width of a tab in cols to #cols"));
print_opt(_("-T <#cols>"), _("--tabsize=<#cols>"),
N_("Set width of a tab to #cols columns"));
#ifndef NANO_TINY
print1opt("-U", "--quickblank", N_("Do quick statusbar blanking"));
print_opt("-U", "--quickblank", N_("Do quick statusbar blanking"));
#endif
print1opt("-V", "--version",
print_opt("-V", "--version",
N_("Print version information and exit"));
#ifndef NANO_TINY
print1opt("-W", "--wordbounds",
print_opt("-W", "--wordbounds",
N_("Detect word boundaries more accurately"));
#endif
#ifdef ENABLE_COLOR
print1opt(_("-Y [str]"), _("--syntax=[str]"),
N_("Syntax definition to use"));
print_opt(_("-Y <str>"), _("--syntax=<str>"),
N_("Syntax definition to use for coloring"));
#endif
print1opt("-c", "--const", N_("Constantly show cursor position"));
print1opt("-d", "--rebinddelete",
print_opt("-c", "--const", N_("Constantly show cursor position"));
print_opt("-d", "--rebinddelete",
N_("Fix Backspace/Delete confusion problem"));
#ifndef NANO_TINY
print1opt("-i", "--autoindent",
print_opt("-i", "--autoindent",
N_("Automatically indent new lines"));
print1opt("-k", "--cut", N_("Cut from cursor to end of line"));
print_opt("-k", "--cut", N_("Cut from cursor to end of line"));
#endif
print1opt("-l", "--nofollow",
print_opt("-l", "--nofollow",
N_("Don't follow symbolic links, overwrite"));
#ifndef DISABLE_MOUSE
print1opt("-m", "--mouse", N_("Enable mouse"));
print_opt("-m", "--mouse", N_("Enable the use of the mouse"));
#endif
#ifndef DISABLE_OPERATINGDIR
print1opt(_("-o [dir]"), _("--operatingdir=[dir]"),
print_opt(_("-o <dir>"), _("--operatingdir=<dir>"),
N_("Set operating directory"));
#endif
print1opt("-p", "--preserve",
print_opt("-p", "--preserve",
N_("Preserve XON (^Q) and XOFF (^S) keys"));
#ifndef DISABLE_WRAPJUSTIFY
print1opt(_("-r [#cols]"), _("--fill=[#cols]"),
N_("Set fill cols to (wrap lines at) #cols"));
print_opt(_("-r <#cols>"), _("--fill=<#cols>"),
N_("Set wrapping point at column #cols"));
#endif
#ifndef DISABLE_SPELLER
print1opt(_("-s [prog]"), _("--speller=[prog]"),
print_opt(_("-s <prog>"), _("--speller=<prog>"),
N_("Enable alternate speller"));
#endif
print1opt("-t", "--tempfile",
print_opt("-t", "--tempfile",
N_("Auto save on exit, don't prompt"));
print1opt("-v", "--view", N_("View (read only) mode"));
print_opt("-v", "--view", N_("View mode (read-only)"));
#ifndef DISABLE_WRAPPING
print1opt("-w", "--nowrap", N_("Don't wrap long lines"));
print_opt("-w", "--nowrap", N_("Don't wrap long lines"));
#endif
print1opt("-x", "--nohelp", N_("Don't show help window"));
print1opt("-z", "--suspend", N_("Enable suspend"));
print_opt("-x", "--nohelp", N_("Don't show the two help lines"));
print_opt("-z", "--suspend", N_("Enable suspension"));
/* This is a special case. */
print1opt("-a, -b, -e,", "", NULL);
print1opt("-f, -g, -j", "", N_("(ignored, for Pico compatibility)"));
print_opt("-a, -b, -e,", "", NULL);
print_opt("-f, -g, -j", "", N_("(ignored, for Pico compatibility)"));
exit(0);
}
@@ -861,7 +872,7 @@ void version(void)
#ifdef DISABLE_WRAPPING
printf(" --disable-wrapping");
#endif
#if defined(DISABLE_ROOTWRAP) && !defined(DISABLE_WRAPPING)
#ifdef DISABLE_ROOTWRAPPING
printf(" --disable-wrapping-as-root");
#endif
#ifdef ENABLE_COLOR
@@ -913,6 +924,11 @@ void nano_disabled_msg(void)
statusbar(_("Sorry, support for this function has been disabled"));
}
/* If the current file buffer has been modified, and the TEMP_FILE flag
* isn't set, ask whether or not to save the file buffer. If the
* TEMP_FILE flag is set, save it unconditionally. Then, if more than
* one file buffer is open, close the current file buffer and switch to
* the next one. If only one file buffer is open, exit from nano. */
void do_exit(void)
{
int i;
@@ -935,7 +951,7 @@ void do_exit(void)
/* If the user chose not to save, or if the user chose to save and
* the save succeeded, we're ready to exit. */
if (i == 0 || (i == 1 && do_writeout(TRUE) == 0)) {
if (i == 0 || (i == 1 && do_writeout(TRUE))) {
#ifdef ENABLE_MULTIBUFFER
/* Exit only if there are no more open file buffers. */
if (!close_buffer())
@@ -996,8 +1012,19 @@ RETSIGTYPE handle_hupterm(int signal)
/* Handler for SIGTSTP (suspend). */
RETSIGTYPE do_suspend(int signal)
{
endwin();
printf("\n\n\n\n\n%s\n", _("Use \"fg\" to return to nano"));
#ifndef DISABLE_MOUSE
/* Turn mouse support off. */
disable_mouse_support();
#endif
/* Blank the screen, and move the cursor to the last line of the
* screen. */
erase();
move(LINES - 1, 0);
refresh();
/* Display our helpful message. */
printf(_("Use \"fg\" to return to nano.\n"));
fflush(stdout);
/* Restore the old terminal settings. */
@@ -1016,13 +1043,28 @@ RETSIGTYPE do_suspend(int signal)
/* Handler for SIGCONT (continue after suspend). */
RETSIGTYPE do_continue(int signal)
{
#ifndef DISABLE_MOUSE
/* Turn mouse support back on if it was on before. */
if (ISSET(USE_MOUSE))
enable_mouse_support();
#endif
#ifndef NANO_TINY
/* Perhaps the user resized the window while we slept. Handle it,
* and update the screen in the process. */
* and restore the terminal to its previous state and update the
* screen in the process. */
handle_sigwinch(0);
#else
/* Reenter curses mode, and update the screen in the process. */
doupdate();
/* Restore the terminal to its previous state. */
terminal_init();
/* Turn the cursor back on for sure. */
curs_set(1);
/* Redraw the contents of the windows that need it. */
blank_statusbar();
wnoutrefresh(bottomwin);
total_refresh();
#endif
}
@@ -1055,16 +1097,6 @@ RETSIGTYPE handle_sigwinch(int signal)
if (filepart != NULL)
unpartition_filestruct(&filepart);
#ifndef DISABLE_JUSTIFY
/* If the justify buffer isn't empty, blow away the text in it and
* display the shortcut list with UnCut. */
if (jusbuffer != NULL) {
free_filestruct(jusbuffer);
jusbuffer = NULL;
shortcut_init(FALSE);
}
#endif
#ifdef USE_SLANG
/* Slang curses emulation brain damage, part 1: If we just do what
* curses does here, it'll only work properly if the resize made the
@@ -1092,14 +1124,13 @@ RETSIGTYPE handle_sigwinch(int signal)
/* Redraw the contents of the windows that need it. */
blank_statusbar();
wnoutrefresh(bottomwin);
currshortcut = main_list;
total_refresh();
/* Reset all the input routines that rely on character sequences. */
reset_kbinput();
/* Jump back to the main loop. */
siglongjmp(jmpbuf, 1);
/* Jump back to either main() or the unjustify routine in
* do_justify(). */
siglongjmp(jump_buf, 1);
}
/* If allow is TRUE, block any SIGWINCH signals that we get, so that we
@@ -1234,13 +1265,32 @@ void enable_flow_control(void)
* interpretation of the flow control characters too. */
void terminal_init(void)
{
cbreak();
nonl();
noecho();
disable_extended_io();
disable_signals();
if (!ISSET(PRESERVE))
disable_flow_control();
#ifdef USE_SLANG
/* Slang curses emulation brain damage, part 2: Slang doesn't
* implement nonl() or noecho() properly, so there's no way to
* properly reinitialize the terminal using them. We have to save
* the terminal state after the first call and restore it on
* subsequent calls. */
static struct termios newterm;
static bool newterm_set = FALSE;
if (!newterm_set) {
#endif
cbreak();
nonl();
noecho();
disable_extended_io();
disable_signals();
if (!ISSET(PRESERVE))
disable_flow_control();
#ifdef USE_SLANG
tcgetattr(0, &newterm);
newterm_set = TRUE;
} else
tcsetattr(0, TCSANOW, &newterm);
#endif
}
/* Read in a character, interpret it as a shortcut or toggle if
@@ -1261,6 +1311,8 @@ int do_input(bool *meta_key, bool *func_key, bool *s_or_t, bool
/* The input buffer. */
static size_t kbinput_len = 0;
/* The length of the input buffer. */
bool cut_copy = FALSE;
/* Are we cutting or copying text? */
const shortcut *s;
bool have_shortcut;
#ifndef NANO_TINY
@@ -1276,13 +1328,18 @@ int do_input(bool *meta_key, bool *func_key, bool *s_or_t, bool
input = get_kbinput(edit, meta_key, func_key);
#ifndef DISABLE_MOUSE
/* If we got a mouse click and it was on a shortcut, read in the
* shortcut character. */
if (allow_funcs && *func_key == TRUE && input == KEY_MOUSE) {
if (do_mouse())
input = get_kbinput(edit, meta_key, func_key);
else
input = ERR;
if (allow_funcs) {
/* If we got a mouse click and it was on a shortcut, read in the
* shortcut character. */
if (*func_key && input == KEY_MOUSE) {
if (do_mouse())
input = get_kbinput(edit, meta_key, func_key);
else {
*meta_key = FALSE;
*func_key = FALSE;
input = ERR;
}
}
}
#endif
@@ -1310,12 +1367,24 @@ int do_input(bool *meta_key, bool *func_key, bool *s_or_t, bool
#endif
);
/* If we got a non-high-bit control key, a meta key sequence, or a
* function key, and it's not a shortcut or toggle, throw it out. */
if (!*s_or_t) {
if (is_ascii_cntrl_char(input) || *meta_key || *func_key) {
statusbar(_("Unknown Command"));
beep();
*meta_key = FALSE;
*func_key = FALSE;
input = ERR;
}
}
if (allow_funcs) {
/* If we got a character, and it isn't a shortcut or toggle,
* it's a normal text character. Display the warning if we're
* in view mode, or add the character to the input buffer if
* we're not. */
if (input != ERR && *s_or_t == FALSE) {
if (input != ERR && !*s_or_t) {
if (ISSET(VIEW_MODE))
print_view_warning();
else {
@@ -1328,10 +1397,19 @@ int do_input(bool *meta_key, bool *func_key, bool *s_or_t, bool
/* If we got a shortcut or toggle, or if there aren't any other
* characters waiting after the one we read in, we need to
* display all the characters in the input buffer if it isn't
* output all the characters in the input buffer if it isn't
* empty. Note that it should be empty if we're in view
* mode. */
if (*s_or_t == TRUE || get_key_buffer_len() == 0) {
if (*s_or_t || get_key_buffer_len() == 0) {
#ifndef DISABLE_WRAPPING
/* If we got a shortcut or toggle, and it's not the shortcut
* for verbatim input, turn off prepending of wrapped
* text. */
if (*s_or_t && (!have_shortcut || s == NULL || s->func !=
do_verbatim_input))
wrap_reset();
#endif
if (kbinput != NULL) {
/* Display all the characters in the input buffer at
* once, filtering out control characters. */
@@ -1357,27 +1435,30 @@ int do_input(bool *meta_key, bool *func_key, bool *s_or_t, bool
switch (input) {
/* Handle the "universal" edit window shortcuts. */
case NANO_XON_KEY:
statusbar(_("XON ignored, mumble mumble."));
statusbar(_("XON ignored, mumble mumble"));
break;
case NANO_XOFF_KEY:
statusbar(_("XOFF ignored, mumble mumble."));
statusbar(_("XOFF ignored, mumble mumble"));
break;
#ifndef NANO_TINY
case NANO_SUSPEND_KEY:
if (ISSET(SUSPEND))
do_suspend(0);
break;
#endif
/* Handle the normal edit window shortcuts, setting
* ran_func to TRUE if we try to run their associated
* functions and setting finished to TRUE to indicate
* that we're done after running or trying to run their
* associated functions. */
default:
/* Blow away the text in the cutbuffer if we aren't
* cutting text. */
if (s->func != do_cut_text)
cutbuffer_reset();
/* If the function associated with this shortcut is
* cutting or copying text, indicate this. */
if (s->func == do_cut_text_void
#ifndef NANO_TINY
|| s->func == do_copy_text || s->func ==
do_cut_till_end
#endif
)
cut_copy = TRUE;
if (s->func != NULL) {
*ran_func = TRUE;
@@ -1392,20 +1473,18 @@ int do_input(bool *meta_key, bool *func_key, bool *s_or_t, bool
}
#ifndef NANO_TINY
else if (have_toggle) {
/* Blow away the text in the cutbuffer, since we aren't
* cutting text. */
cutbuffer_reset();
/* Toggle the flag associated with this shortcut. */
if (allow_funcs)
do_toggle(t);
}
#endif
else
/* Blow away the text in the cutbuffer, since we aren't
* cutting text. */
cutbuffer_reset();
}
/* If we aren't cutting or copying text, blow away the text in the
* cutbuffer. */
if (!cut_copy)
cutbuffer_reset();
return input;
}
@@ -1461,15 +1540,15 @@ bool do_mouse(void)
}
#endif /* !DISABLE_MOUSE */
/* The user typed ouuput_len multibyte characters. Add them to the edit
* buffer, filtering out all control characters if allow_cntrls is
/* The user typed output_len multibyte characters. Add them to the edit
* buffer, filtering out all ASCII control characters if allow_cntrls is
* TRUE. */
void do_output(char *output, size_t output_len, bool allow_cntrls)
{
size_t current_len, i = 0;
bool do_refresh = FALSE;
/* Do we have to call edit_refresh(), or can we get away with
* update_line()? */
* just update_line()? */
char *char_buf = charalloc(mb_cur_max());
int char_buf_len;
@@ -1479,8 +1558,8 @@ void do_output(char *output, size_t output_len, bool allow_cntrls)
current_len = strlen(openfile->current->data);
while (i < output_len) {
/* If allow_cntrls is FALSE, filter out nulls and newlines,
* since they're control characters. */
/* If allow_cntrls is TRUE, convert nulls and newlines
* properly. */
if (allow_cntrls) {
/* Null to newline, if needed. */
if (output[i] == '\0')
@@ -1498,12 +1577,14 @@ void do_output(char *output, size_t output_len, bool allow_cntrls)
i += char_buf_len;
/* If allow_cntrls is FALSE, filter out a control character. */
if (!allow_cntrls && is_cntrl_mbchar(output + i - char_buf_len))
/* If allow_cntrls is FALSE, filter out an ASCII control
* character. */
if (!allow_cntrls && is_ascii_cntrl_char(*(output + i -
char_buf_len)))
continue;
/* If the NO_NEWLINES flag isn't set, when a character is
* added to the magicline, it means we need a new magicline! */
* added to the magicline, it means we need a new magicline. */
if (!ISSET(NO_NEWLINES) && openfile->filebot ==
openfile->current)
new_magicline();
@@ -1585,6 +1666,7 @@ int main(int argc, char **argv)
#ifdef HAVE_GETOPT_LONG
const struct option long_options[] = {
{"help", 0, NULL, 'h'},
{"boldtext", 0, NULL, 'D'},
#ifdef ENABLE_MULTIBUFFER
{"multibuffer", 0, NULL, 'F'},
#endif
@@ -1651,10 +1733,10 @@ int main(int argc, char **argv)
if (locale != NULL && (strcasestr(locale, "UTF8") != NULL ||
strcasestr(locale, "UTF-8") != NULL)) {
SET(USE_UTF8);
#ifdef USE_SLANG
SLutf8_enable(TRUE);
SLutf8_enable(1);
#endif
utf8_init();
}
}
#else
@@ -1666,9 +1748,9 @@ int main(int argc, char **argv)
textdomain(PACKAGE);
#endif
#if !defined(ENABLE_NANORC) && defined(DISABLE_ROOTWRAP) && !defined(DISABLE_WRAPPING)
/* If we don't have rcfile support, we're root, and
* --disable-wrapping-as-root is used, turn wrapping off. */
#if !defined(ENABLE_NANORC) && defined(DISABLE_ROOTWRAPPING)
/* If we don't have rcfile support, --disable-wrapping-as-root is
* used, and we're root, turn wrapping off. */
if (geteuid() == NANO_ROOT_UID)
SET(NO_WRAP);
#endif
@@ -1676,11 +1758,11 @@ int main(int argc, char **argv)
while ((optchr =
#ifdef HAVE_GETOPT_LONG
getopt_long(argc, argv,
"h?ABC:EFHIKLNOQ:RST:UVWY:abcdefgijklmo:pr:s:tvwxz",
"h?ABC:DEFHIKLNOQ:RST:UVWY:abcdefgijklmo:pr:s:tvwxz",
long_options, NULL)
#else
getopt(argc, argv,
"h?ABC:EFHIKLNOQ:RST:UVWY:abcdefgijklmo:pr:s:tvwxz")
"h?ABC:DEFHIKLNOQ:RST:UVWY:abcdefgijklmo:pr:s:tvwxz")
#endif
) != -1) {
switch (optchr) {
@@ -1702,6 +1784,11 @@ int main(int argc, char **argv)
case 'C':
backup_dir = mallocstrcpy(backup_dir, optarg);
break;
#endif
case 'D':
SET(BOLD_TEXT);
break;
#ifndef NANO_TINY
case 'E':
SET(TABS_TO_SPACES);
break;
@@ -1718,7 +1805,7 @@ int main(int argc, char **argv)
break;
#endif
case 'I':
SET(NO_RCFILE);
no_rcfiles = TRUE;
break;
#endif
case 'K':
@@ -1750,7 +1837,7 @@ int main(int argc, char **argv)
#endif
case 'T':
if (!parse_num(optarg, &tabsize) || tabsize <= 0) {
fprintf(stderr, _("Requested tab size %s invalid"), optarg);
fprintf(stderr, _("Requested tab size \"%s\" is invalid"), optarg);
fprintf(stderr, "\n");
exit(1);
}
@@ -1806,7 +1893,7 @@ int main(int argc, char **argv)
#ifndef DISABLE_WRAPJUSTIFY
case 'r':
if (!parse_num(optarg, &wrap_at)) {
fprintf(stderr, _("Requested fill size %s invalid"), optarg);
fprintf(stderr, _("Requested fill size \"%s\" is invalid"), optarg);
fprintf(stderr, "\n");
exit(1);
}
@@ -1840,7 +1927,7 @@ int main(int argc, char **argv)
}
}
/* If the executable filename starts with 'r', we use restricted
/* If the executable filename starts with 'r', enable restricted
* mode. */
if (*(tail(argv[0])) == 'r')
SET(RESTRICTED);
@@ -1851,14 +1938,16 @@ int main(int argc, char **argv)
if (ISSET(RESTRICTED)) {
UNSET(SUSPEND);
UNSET(BACKUP_FILE);
SET(NO_RCFILE);
#ifdef ENABLE_NANORC
no_rcfiles = TRUE;
#endif
}
/* We've read through the command line options. Now back up the flags
* and values that are set, and read the rcfile(s). If the values
* haven't changed afterward, restore the backed-up values. */
#ifdef ENABLE_NANORC
if (!ISSET(NO_RCFILE)) {
if (!no_rcfiles) {
#ifndef DISABLE_OPERATINGDIR
char *operating_dir_cpy = operating_dir;
#endif
@@ -1924,16 +2013,24 @@ int main(int argc, char **argv)
tabsize = tabsize_cpy;
flags |= flags_cpy;
}
#if defined(DISABLE_ROOTWRAP) && !defined(DISABLE_WRAPPING)
#ifdef DISABLE_ROOTWRAPPING
/* If we don't have any rcfiles, --disable-wrapping-as-root is used,
* and we're root, turn wrapping off. */
else if (geteuid() == NANO_ROOT_UID)
SET(NO_WRAP);
#endif
#endif /* ENABLE_NANORC */
/* If we're using bold text instead of reverse video text, set it up
* now. */
if (ISSET(BOLD_TEXT))
reverse_attr = A_BOLD;
#ifndef NANO_TINY
/* Set up the search/replace history. */
history_init();
#ifdef ENABLE_NANORC
if (!ISSET(NO_RCFILE) && ISSET(HISTORYLOG))
if (!no_rcfiles && ISSET(HISTORYLOG))
load_history();
#endif
#endif
@@ -2049,6 +2146,7 @@ int main(int argc, char **argv)
shortcut_init(FALSE);
#ifndef DISABLE_MOUSE
/* Initialize mouse support. */
mouse_init();
#endif
@@ -2125,11 +2223,6 @@ int main(int argc, char **argv)
display_main_list();
#ifndef NANO_TINY
/* Return here after a SIGWINCH. */
sigsetjmp(jmpbuf, 1);
#endif
display_buffer();
while (TRUE) {
@@ -2138,6 +2231,21 @@ int main(int argc, char **argv)
/* Make sure the cursor is in the edit window. */
reset_cursor();
#ifndef NANO_TINY
if (!jump_buf_main) {
/* If we haven't already, we're going to set jump_buf so
* that we return here after a SIGWINCH. Indicate this. */
jump_buf_main = TRUE;
/* Return here after a SIGWINCH. */
sigsetjmp(jump_buf, 1);
}
#endif
/* Just in case we were at the statusbar prompt, make sure the
* statusbar cursor position is reset. */
do_prompt_abort();
/* If constant cursor position display is on, and there are no
* keys waiting in the input buffer, display the current cursor
* position on the statusbar. */

View File

@@ -2,8 +2,8 @@
/**************************************************************************
* nano.h *
* *
* Copyright (C) 1999-2004 Chris Allegretta *
* Copyright (C) 2005-2006 David Lawrence Ramsey *
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Chris Allegretta *
* Copyright (C) 2005, 2006, 2007 David Lawrence Ramsey *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2, or (at your option) *
@@ -29,7 +29,7 @@
#endif
#ifdef __TANDEM
/* Tandem NonStop Kernel. */
/* Tandem NonStop Kernel support. */
#include <floss.h>
#define NANO_ROOT_UID 65535
#else
@@ -40,24 +40,22 @@
#include <limits.h>
#endif
#ifdef HAVE_SYS_PARAM_H
#include <sys/param.h>
#endif
/* Macros for flags. */
#define SET(bit) flags |= bit
#define UNSET(bit) flags &= ~bit
#define ISSET(bit) ((flags & bit) != 0)
#define TOGGLE(bit) flags ^= bit
/* Macros for character allocation, etc. */
/* Macros for character allocation and more. */
#define charalloc(howmuch) (char *)nmalloc((howmuch) * sizeof(char))
#define charealloc(ptr, howmuch) (char *)nrealloc(ptr, (howmuch) * sizeof(char))
#define charmove(dest, src, n) memmove(dest, src, (n) * sizeof(char))
#define charset(dest, src, n) memset(dest, src, (n) * sizeof(char))
/* Other macros. */
#ifdef BROKEN_REGEXEC
#undef regexec
#define regexec(preg, string, nmatch, pmatch, eflags) safe_regexec(preg, string, nmatch, pmatch, eflags)
#endif
/* Set a default value for PATH_MAX if there isn't one. */
#ifndef PATH_MAX
#define PATH_MAX 4096
@@ -66,7 +64,7 @@
#ifdef USE_SLANG
/* Slang support. */
#include <slcurses.h>
/* Slang curses emulation brain damage, part 2: Slang doesn't define the
/* Slang curses emulation brain damage, part 3: Slang doesn't define the
* curses equivalents of the Insert or Delete keys. */
#define KEY_DC SL_KEY_DELETE
#define KEY_IC SL_KEY_IC
@@ -79,6 +77,7 @@
#endif /* CURSES_H */
#ifdef ENABLE_NLS
/* Native language support. */
#ifdef HAVE_LIBINTL_H
#include <libintl.h>
#endif
@@ -100,6 +99,9 @@
#ifdef HAVE_REGEX_H
#include <regex.h>
#endif
#ifndef NANO_TINY
#include <setjmp.h>
#endif
#include <assert.h>
/* If no vsnprintf(), use the version from glib 2.x. */
@@ -136,14 +138,8 @@
#define getline ngetline
#endif
/* If we don't have regex support, turn the color support off, as it
* depends on the use of regexes. */
#ifndef HAVE_REGEX_H
#undef ENABLE_COLOR
#endif
/* If we aren't using ncurses, turn the mouse support off, as it's
* ncurses-specific. */
/* If we aren't using ncurses with mouse support, turn the mouse support
* off, as it's useless then. */
#ifndef NCURSES_MOUSE_VERSION
#define DISABLE_MOUSE 1
#endif
@@ -162,7 +158,7 @@ typedef enum {
} append_type;
typedef enum {
UP, DOWN
UP_DIR, DOWN_DIR
} scroll_dir;
typedef enum {
@@ -290,7 +286,17 @@ typedef struct openfilestruct {
} openfilestruct;
typedef struct shortcut {
/* Key values that aren't used should be set to NANO_NO_KEY. */
const char *desc;
/* The function's description, e.g. "Page Up". */
#ifndef DISABLE_HELP
const char *help;
/* The help file entry text for this function. */
bool blank_after;
/* Whether there should be a blank line after the help entry
* text for this function. */
#endif
/* Note: Key values that aren't used should be set to
* NANO_NO_KEY. */
int ctrlval;
/* The special sentinel key or control key we want bound, if
* any. */
@@ -304,12 +310,6 @@ typedef struct shortcut {
/* Is this function allowed when in view mode? */
void (*func)(void);
/* The function to call when we get this key. */
const char *desc;
/* The function's description, e.g. "Page Up". */
#ifndef DISABLE_HELP
const char *help;
/* The help file entry text for this function. */
#endif
struct shortcut *next;
/* Next shortcut. */
} shortcut;
@@ -319,8 +319,13 @@ typedef struct toggle {
int val;
/* The sequence to toggle the key. We should only need one. */
const char *desc;
/* The description for when the toggle is, uh, toggled, e.g.
* "Cut to end"; we'll append Enabled or Disabled. */
/* The description of the toggle, e.g. "Cut to end"; we'll
* append Enabled or Disabled to it. */
#ifndef DISABLE_HELP
bool blank_after;
/* Whether there should be a blank line after the description of
* the toggle. */
#endif
long flag;
/* Which flag actually gets toggled. */
struct toggle *next;
@@ -339,38 +344,37 @@ typedef struct rcoption {
/* Bitwise flags so that we can save space (or, more correctly, not
* waste it). */
#define CASE_SENSITIVE (1<<0)
#define CONST_UPDATE (1<<1)
#define NO_HELP (1<<2)
#define NOFOLLOW_SYMLINKS (1<<3)
#define SUSPEND (1<<4)
#define NO_WRAP (1<<5)
#define AUTOINDENT (1<<6)
#define VIEW_MODE (1<<7)
#define USE_MOUSE (1<<8)
#define USE_REGEXP (1<<9)
#define TEMP_FILE (1<<10)
#define CUT_TO_END (1<<11)
#define BACKWARDS_SEARCH (1<<12)
#define MULTIBUFFER (1<<13)
#define SMOOTH_SCROLL (1<<14)
#define REBIND_DELETE (1<<15)
#define REBIND_KEYPAD (1<<16)
#define NO_CONVERT (1<<17)
#define BACKUP_FILE (1<<18)
#define NO_RCFILE (1<<19)
#define NO_COLOR_SYNTAX (1<<20)
#define PRESERVE (1<<21)
#define HISTORYLOG (1<<22)
#define RESTRICTED (1<<23)
#define SMART_HOME (1<<24)
#define WHITESPACE_DISPLAY (1<<25)
#define MORE_SPACE (1<<26)
#define TABS_TO_SPACES (1<<27)
#define QUICK_BLANK (1<<28)
#define WORD_BOUNDS (1<<29)
#define NO_NEWLINES (1<<30)
#define USE_UTF8 (1<<31)
#define CASE_SENSITIVE (1<<0)
#define CONST_UPDATE (1<<1)
#define NO_HELP (1<<2)
#define NOFOLLOW_SYMLINKS (1<<3)
#define SUSPEND (1<<4)
#define NO_WRAP (1<<5)
#define AUTOINDENT (1<<6)
#define VIEW_MODE (1<<7)
#define USE_MOUSE (1<<8)
#define USE_REGEXP (1<<9)
#define TEMP_FILE (1<<10)
#define CUT_TO_END (1<<11)
#define BACKWARDS_SEARCH (1<<12)
#define MULTIBUFFER (1<<13)
#define SMOOTH_SCROLL (1<<14)
#define REBIND_DELETE (1<<15)
#define REBIND_KEYPAD (1<<16)
#define NO_CONVERT (1<<17)
#define BACKUP_FILE (1<<18)
#define NO_COLOR_SYNTAX (1<<19)
#define PRESERVE (1<<20)
#define HISTORYLOG (1<<21)
#define RESTRICTED (1<<22)
#define SMART_HOME (1<<23)
#define WHITESPACE_DISPLAY (1<<24)
#define MORE_SPACE (1<<25)
#define TABS_TO_SPACES (1<<26)
#define QUICK_BLANK (1<<27)
#define WORD_BOUNDS (1<<28)
#define NO_NEWLINES (1<<29)
#define BOLD_TEXT (1<<30)
/* Control key sequences. Changing these would be very, very bad. */
#define NANO_CONTROL_SPACE 0
@@ -407,171 +411,204 @@ typedef struct rcoption {
#define NANO_CONTROL_7 31
#define NANO_CONTROL_8 127
#define NANO_ALT_SPACE ' '
#define NANO_ALT_LPAREN '('
#define NANO_ALT_RPAREN ')'
#define NANO_ALT_PLUS '+'
#define NANO_ALT_COMMA ','
#define NANO_ALT_MINUS '-'
#define NANO_ALT_PERIOD '.'
#define NANO_ALT_9 '9'
#define NANO_ALT_0 '0'
#define NANO_ALT_LCARAT '<'
#define NANO_ALT_EQUALS '='
#define NANO_ALT_RCARAT '>'
#define NANO_ALT_RBRACKET ']'
#define NANO_ALT_USCORE '_'
#define NANO_ALT_A 'a'
#define NANO_ALT_B 'b'
#define NANO_ALT_C 'c'
#define NANO_ALT_D 'd'
#define NANO_ALT_E 'e'
#define NANO_ALT_F 'f'
#define NANO_ALT_G 'g'
#define NANO_ALT_H 'h'
#define NANO_ALT_I 'i'
#define NANO_ALT_J 'j'
#define NANO_ALT_K 'k'
#define NANO_ALT_L 'l'
#define NANO_ALT_M 'm'
#define NANO_ALT_N 'n'
#define NANO_ALT_O 'o'
#define NANO_ALT_P 'p'
#define NANO_ALT_Q 'q'
#define NANO_ALT_R 'r'
#define NANO_ALT_S 's'
#define NANO_ALT_T 't'
#define NANO_ALT_U 'u'
#define NANO_ALT_V 'v'
#define NANO_ALT_W 'w'
#define NANO_ALT_X 'x'
#define NANO_ALT_Y 'y'
#define NANO_ALT_Z 'z'
/* Meta key sequences. */
#define NANO_META_SPACE ' '
#define NANO_META_LPARENTHESIS '('
#define NANO_META_RPARENTHESIS ')'
#define NANO_META_PLUS '+'
#define NANO_META_COMMA ','
#define NANO_META_MINUS '-'
#define NANO_META_PERIOD '.'
#define NANO_META_SLASH '/'
#define NANO_META_0 '0'
#define NANO_META_6 '6'
#define NANO_META_9 '9'
#define NANO_META_LCARET '<'
#define NANO_META_EQUALS '='
#define NANO_META_RCARET '>'
#define NANO_META_QUESTION '?'
#define NANO_META_BACKSLASH '\\'
#define NANO_META_RBRACKET ']'
#define NANO_META_CARET '^'
#define NANO_META_UNDERSCORE '_'
#define NANO_META_A 'a'
#define NANO_META_B 'b'
#define NANO_META_C 'c'
#define NANO_META_D 'd'
#define NANO_META_E 'e'
#define NANO_META_F 'f'
#define NANO_META_G 'g'
#define NANO_META_H 'h'
#define NANO_META_I 'i'
#define NANO_META_J 'j'
#define NANO_META_K 'k'
#define NANO_META_L 'l'
#define NANO_META_M 'm'
#define NANO_META_N 'n'
#define NANO_META_O 'o'
#define NANO_META_P 'p'
#define NANO_META_Q 'q'
#define NANO_META_R 'r'
#define NANO_META_S 's'
#define NANO_META_T 't'
#define NANO_META_U 'u'
#define NANO_META_V 'v'
#define NANO_META_W 'w'
#define NANO_META_X 'x'
#define NANO_META_Y 'y'
#define NANO_META_Z 'z'
#define NANO_META_LCURLYBRACKET '{'
#define NANO_META_PIPE '|'
#define NANO_META_RCURLYBRACKET '}'
/* Some semi-changeable keybindings; don't play with these unless you're
* sure you know what you're doing. Assume ERR is defined as -1. */
/* No key at all. */
#define NANO_NO_KEY -2
#define NANO_NO_KEY -2
/* Normal keys. */
#define NANO_XON_KEY NANO_CONTROL_Q
#define NANO_XOFF_KEY NANO_CONTROL_S
#define NANO_CANCEL_KEY NANO_CONTROL_C
#define NANO_EXIT_KEY NANO_CONTROL_X
#define NANO_EXIT_FKEY KEY_F(2)
#define NANO_INSERTFILE_KEY NANO_CONTROL_R
#define NANO_INSERTFILE_FKEY KEY_F(5)
#define NANO_TOOTHERINSERT_KEY NANO_CONTROL_X
#define NANO_WRITEOUT_KEY NANO_CONTROL_O
#define NANO_WRITEOUT_FKEY KEY_F(3)
#define NANO_GOTOLINE_KEY NANO_CONTROL_7
#define NANO_GOTOLINE_FKEY KEY_F(13)
#define NANO_GOTOLINE_ALTKEY NANO_ALT_G
#define NANO_TOGOTOLINE_KEY NANO_CONTROL_T
#define NANO_HELP_KEY NANO_CONTROL_G
#define NANO_HELP_FKEY KEY_F(1)
#define NANO_WHEREIS_KEY NANO_CONTROL_W
#define NANO_WHEREIS_FKEY KEY_F(6)
#define NANO_WHEREIS_NEXT_KEY NANO_ALT_W
#define NANO_WHEREIS_NEXT_FKEY KEY_F(16)
#define NANO_TOOTHERWHEREIS_KEY NANO_CONTROL_T
#define NANO_REGEXP_KEY NANO_ALT_R
#define NANO_REPLACE_KEY NANO_CONTROL_4
#define NANO_REPLACE_FKEY KEY_F(14)
#define NANO_ALT_REPLACE_KEY NANO_ALT_R
#define NANO_TOOTHERSEARCH_KEY NANO_CONTROL_R
#define NANO_PREVPAGE_KEY NANO_CONTROL_Y
#define NANO_PREVPAGE_FKEY KEY_F(7)
#define NANO_NEXTPAGE_KEY NANO_CONTROL_V
#define NANO_NEXTPAGE_FKEY KEY_F(8)
#define NANO_CUT_KEY NANO_CONTROL_K
#define NANO_CUT_FKEY KEY_F(9)
#define NANO_UNCUT_KEY NANO_CONTROL_U
#define NANO_UNCUT_FKEY KEY_F(10)
#define NANO_CURSORPOS_KEY NANO_CONTROL_C
#define NANO_CURSORPOS_FKEY KEY_F(11)
#define NANO_SPELL_KEY NANO_CONTROL_T
#define NANO_SPELL_FKEY KEY_F(12)
#define NANO_FIRSTLINE_KEY NANO_PREVPAGE_KEY
#define NANO_FIRSTLINE_FKEY NANO_PREVPAGE_FKEY
#define NANO_LASTLINE_KEY NANO_NEXTPAGE_KEY
#define NANO_LASTLINE_FKEY NANO_NEXTPAGE_FKEY
#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_UNCUT_KEY
#define NANO_UNJUSTIFY_FKEY NANO_UNCUT_FKEY
#define NANO_PREVLINE_KEY NANO_CONTROL_P
#define NANO_NEXTLINE_KEY NANO_CONTROL_N
#define NANO_FORWARD_KEY NANO_CONTROL_F
#define NANO_BACK_KEY NANO_CONTROL_B
#define NANO_MARK_KEY NANO_CONTROL_6
#define NANO_MARK_ALTKEY NANO_ALT_A
#define NANO_MARK_FKEY KEY_F(15)
#define NANO_HOME_KEY NANO_CONTROL_A
#define NANO_END_KEY NANO_CONTROL_E
#define NANO_DELETE_KEY NANO_CONTROL_D
#define NANO_BACKSPACE_KEY NANO_CONTROL_H
#define NANO_TAB_KEY NANO_CONTROL_I
#define NANO_SUSPEND_KEY NANO_CONTROL_Z
#define NANO_ENTER_KEY NANO_CONTROL_M
#define NANO_TOFILES_KEY NANO_CONTROL_T
#define NANO_APPEND_KEY NANO_ALT_A
#define NANO_PREPEND_KEY NANO_ALT_P
#define NANO_PREVFILE_KEY NANO_ALT_LCARAT
#define NANO_NEXTFILE_KEY NANO_ALT_RCARAT
#define NANO_PREVFILE_ALTKEY NANO_ALT_COMMA
#define NANO_NEXTFILE_ALTKEY NANO_ALT_PERIOD
#define NANO_BRACKET_KEY NANO_ALT_RBRACKET
#define NANO_NEXTWORD_KEY NANO_CONTROL_SPACE
#define NANO_PREVWORD_KEY NANO_ALT_SPACE
#define NANO_WORDCOUNT_KEY NANO_ALT_D
#define NANO_SCROLLUP_KEY NANO_ALT_MINUS
#define NANO_SCROLLDOWN_KEY NANO_ALT_PLUS
#define NANO_SCROLLUP_ALTKEY NANO_ALT_USCORE
#define NANO_SCROLLDOWN_ALTKEY NANO_ALT_EQUALS
#define NANO_CUTTILLEND_KEY NANO_CONTROL_X
#define NANO_CUTTILLEND_ALTKEY NANO_ALT_T
#define NANO_PARABEGIN_KEY NANO_CONTROL_W
#define NANO_PARABEGIN_ALTKEY1 NANO_ALT_LPAREN
#define NANO_PARABEGIN_ALTKEY2 NANO_ALT_9
#define NANO_PARAEND_KEY NANO_CONTROL_O
#define NANO_PARAEND_ALTKEY1 NANO_ALT_RPAREN
#define NANO_PARAEND_ALTKEY2 NANO_ALT_0
#define NANO_FULLJUSTIFY_KEY NANO_CONTROL_U
#define NANO_FULLJUSTIFY_ALTKEY NANO_ALT_J
#define NANO_VERBATIM_KEY NANO_ALT_V
#define NANO_XON_KEY NANO_CONTROL_Q
#define NANO_XOFF_KEY NANO_CONTROL_S
#define NANO_CANCEL_KEY NANO_CONTROL_C
#define NANO_EXIT_KEY NANO_CONTROL_X
#define NANO_EXIT_FKEY KEY_F(2)
#define NANO_INSERTFILE_KEY NANO_CONTROL_R
#define NANO_INSERTFILE_FKEY KEY_F(5)
#define NANO_TOOTHERINSERT_KEY NANO_CONTROL_X
#define NANO_WRITEOUT_KEY NANO_CONTROL_O
#define NANO_WRITEOUT_FKEY KEY_F(3)
#define NANO_GOTOLINE_KEY NANO_CONTROL_7
#define NANO_GOTOLINE_FKEY KEY_F(13)
#define NANO_GOTOLINE_METAKEY NANO_META_G
#define NANO_GOTODIR_KEY NANO_CONTROL_7
#define NANO_GOTODIR_FKEY KEY_F(13)
#define NANO_GOTODIR_METAKEY NANO_META_G
#define NANO_TOGOTOLINE_KEY NANO_CONTROL_T
#define NANO_HELP_KEY NANO_CONTROL_G
#define NANO_HELP_FKEY KEY_F(1)
#define NANO_WHEREIS_KEY NANO_CONTROL_W
#define NANO_WHEREIS_FKEY KEY_F(6)
#define NANO_WHEREIS_NEXT_KEY NANO_META_W
#define NANO_WHEREIS_NEXT_FKEY KEY_F(16)
#define NANO_TOOTHERWHEREIS_KEY NANO_CONTROL_T
#define NANO_REGEXP_KEY NANO_META_R
#define NANO_REPLACE_KEY NANO_CONTROL_4
#define NANO_REPLACE_FKEY KEY_F(14)
#define NANO_REPLACE_METAKEY NANO_META_R
#define NANO_TOOTHERSEARCH_KEY NANO_CONTROL_R
#define NANO_PREVPAGE_KEY NANO_CONTROL_Y
#define NANO_PREVPAGE_FKEY KEY_F(7)
#define NANO_NEXTPAGE_KEY NANO_CONTROL_V
#define NANO_NEXTPAGE_FKEY KEY_F(8)
#define NANO_CUT_KEY NANO_CONTROL_K
#define NANO_CUT_FKEY KEY_F(9)
#define NANO_COPY_KEY NANO_META_CARET
#define NANO_COPY_METAKEY NANO_META_6
#define NANO_UNCUT_KEY NANO_CONTROL_U
#define NANO_UNCUT_FKEY KEY_F(10)
#define NANO_CURSORPOS_KEY NANO_CONTROL_C
#define NANO_CURSORPOS_FKEY KEY_F(11)
#define NANO_SPELL_KEY NANO_CONTROL_T
#define NANO_SPELL_FKEY KEY_F(12)
#define NANO_FIRSTLINE_KEY NANO_PREVPAGE_KEY
#define NANO_FIRSTLINE_FKEY NANO_PREVPAGE_FKEY
#define NANO_FIRSTLINE_METAKEY NANO_META_BACKSLASH
#define NANO_FIRSTLINE_METAKEY2 NANO_META_PIPE
#define NANO_FIRSTFILE_KEY NANO_FIRSTLINE_KEY
#define NANO_FIRSTFILE_FKEY NANO_FIRSTLINE_FKEY
#define NANO_FIRSTFILE_METAKEY NANO_FIRSTLINE_METAKEY
#define NANO_FIRSTFILE_METAKEY2 NANO_FIRSTLINE_METAKEY2
#define NANO_LASTLINE_KEY NANO_NEXTPAGE_KEY
#define NANO_LASTLINE_FKEY NANO_NEXTPAGE_FKEY
#define NANO_LASTLINE_METAKEY NANO_META_SLASH
#define NANO_LASTLINE_METAKEY2 NANO_META_QUESTION
#define NANO_LASTFILE_KEY NANO_LASTLINE_KEY
#define NANO_LASTFILE_FKEY NANO_LASTLINE_FKEY
#define NANO_LASTFILE_METAKEY NANO_LASTLINE_METAKEY
#define NANO_LASTFILE_METAKEY2 NANO_LASTLINE_METAKEY2
#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_UNCUT_KEY
#define NANO_UNJUSTIFY_FKEY NANO_UNCUT_FKEY
#define NANO_PREVLINE_KEY NANO_CONTROL_P
#define NANO_NEXTLINE_KEY NANO_CONTROL_N
#define NANO_FORWARD_KEY NANO_CONTROL_F
#define NANO_BACK_KEY NANO_CONTROL_B
#define NANO_MARK_KEY NANO_CONTROL_6
#define NANO_MARK_METAKEY NANO_META_A
#define NANO_MARK_FKEY KEY_F(15)
#define NANO_HOME_KEY NANO_CONTROL_A
#define NANO_END_KEY NANO_CONTROL_E
#define NANO_DELETE_KEY NANO_CONTROL_D
#define NANO_BACKSPACE_KEY NANO_CONTROL_H
#define NANO_TAB_KEY NANO_CONTROL_I
#define NANO_INDENT_KEY NANO_META_RCURLYBRACKET
#define NANO_UNINDENT_KEY NANO_META_LCURLYBRACKET
#define NANO_SUSPEND_KEY NANO_CONTROL_Z
#define NANO_ENTER_KEY NANO_CONTROL_M
#define NANO_TOFILES_KEY NANO_CONTROL_T
#define NANO_APPEND_KEY NANO_META_A
#define NANO_PREPEND_KEY NANO_META_P
#define NANO_PREVFILE_KEY NANO_META_LCARET
#define NANO_PREVFILE_METAKEY NANO_META_COMMA
#define NANO_NEXTFILE_KEY NANO_META_RCARET
#define NANO_NEXTFILE_METAKEY NANO_META_PERIOD
#define NANO_BRACKET_KEY NANO_META_RBRACKET
#define NANO_NEXTWORD_KEY NANO_CONTROL_SPACE
#define NANO_PREVWORD_KEY NANO_META_SPACE
#define NANO_WORDCOUNT_KEY NANO_META_D
#define NANO_SCROLLUP_KEY NANO_META_MINUS
#define NANO_SCROLLDOWN_KEY NANO_META_PLUS
#define NANO_SCROLLUP_METAKEY NANO_META_UNDERSCORE
#define NANO_SCROLLDOWN_METAKEY NANO_META_EQUALS
#define NANO_CUTTILLEND_METAKEY NANO_META_T
#define NANO_PARABEGIN_KEY NANO_CONTROL_W
#define NANO_PARABEGIN_METAKEY NANO_META_LPARENTHESIS
#define NANO_PARABEGIN_METAKEY2 NANO_META_9
#define NANO_PARAEND_KEY NANO_CONTROL_O
#define NANO_PARAEND_METAKEY NANO_META_RPARENTHESIS
#define NANO_PARAEND_METAKEY2 NANO_META_0
#define NANO_FULLJUSTIFY_KEY NANO_CONTROL_U
#define NANO_FULLJUSTIFY_METAKEY NANO_META_J
#define NANO_VERBATIM_KEY NANO_META_V
/* Toggles do not exist if NANO_TINY is defined. */
#ifndef NANO_TINY
/* Toggles do not exist with NANO_TINY. */
#define TOGGLE_CONST_KEY NANO_ALT_C
#define TOGGLE_AUTOINDENT_KEY NANO_ALT_I
#define TOGGLE_SUSPEND_KEY NANO_ALT_Z
#define TOGGLE_NOHELP_KEY NANO_ALT_X
#define TOGGLE_MOUSE_KEY NANO_ALT_M
#define TOGGLE_CUTTOEND_KEY NANO_ALT_K
#define TOGGLE_WRAP_KEY NANO_ALT_L
#define TOGGLE_BACKWARDS_KEY NANO_ALT_B
#define TOGGLE_CASE_KEY NANO_ALT_C
#define TOGGLE_MULTIBUFFER_KEY NANO_ALT_F
#define TOGGLE_DOS_KEY NANO_ALT_D
#define TOGGLE_MAC_KEY NANO_ALT_M
#define TOGGLE_SMOOTH_KEY NANO_ALT_S
#define TOGGLE_NOCONVERT_KEY NANO_ALT_N
#define TOGGLE_BACKUP_KEY NANO_ALT_B
#define TOGGLE_SYNTAX_KEY NANO_ALT_Y
#define TOGGLE_SMARTHOME_KEY NANO_ALT_H
#define TOGGLE_WHITESPACE_KEY NANO_ALT_P
#define TOGGLE_MORESPACE_KEY NANO_ALT_O
#define TOGGLE_TABSTOSPACES_KEY NANO_ALT_Q
#endif /* !NANO_TINY */
#define MAIN_VISIBLE 12
/* No toggle at all. */
#define TOGGLE_NO_KEY -2
/* Normal toggles. */
#define TOGGLE_NOHELP_KEY NANO_META_X
#define TOGGLE_CONST_KEY NANO_META_C
#define TOGGLE_MORESPACE_KEY NANO_META_O
#define TOGGLE_SMOOTH_KEY NANO_META_S
#define TOGGLE_WHITESPACE_KEY NANO_META_P
#define TOGGLE_SYNTAX_KEY NANO_META_Y
#define TOGGLE_SMARTHOME_KEY NANO_META_H
#define TOGGLE_AUTOINDENT_KEY NANO_META_I
#define TOGGLE_CUTTOEND_KEY NANO_META_K
#define TOGGLE_WRAP_KEY NANO_META_L
#define TOGGLE_TABSTOSPACES_KEY NANO_META_Q
#define TOGGLE_BACKUP_KEY NANO_META_B
#define TOGGLE_MULTIBUFFER_KEY NANO_META_F
#define TOGGLE_MOUSE_KEY NANO_META_M
#define TOGGLE_NOCONVERT_KEY NANO_META_N
#define TOGGLE_SUSPEND_KEY NANO_META_Z
#define TOGGLE_CASE_KEY NANO_META_C
#define TOGGLE_BACKWARDS_KEY NANO_META_B
#define TOGGLE_DOS_KEY NANO_META_D
#define TOGGLE_MAC_KEY NANO_META_M
#endif /* !NANO_TINY */
#define VIEW TRUE
#define NOVIEW FALSE
/* The maximum number of entries displayed in the main shortcut list. */
#define MAIN_VISIBLE 12
/* The minimum editor window columns and rows required for nano to work
* correctly. */
#define MIN_EDITOR_COLS 4

View File

@@ -2,8 +2,8 @@
/**************************************************************************
* prompt.c *
* *
* Copyright (C) 1999-2004 Chris Allegretta *
* Copyright (C) 2005-2006 David Lawrence Ramsey *
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Chris Allegretta *
* Copyright (C) 2005, 2006, 2007 David Lawrence Ramsey *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2, or (at your option) *
@@ -28,15 +28,18 @@
#include <string.h>
static char *prompt = NULL;
/* The prompt string for statusbar
* questions. */
/* The prompt string used for statusbar questions. */
static size_t statusbar_x = (size_t)-1;
/* The cursor position in answer. */
/* The cursor position in answer. */
static size_t statusbar_pww = (size_t)-1;
/* The place we want in answer. */
/* The place we want in answer. */
static size_t old_statusbar_x = (size_t)-1;
/* The old cursor position in answer, if any. */
static size_t old_pww = (size_t)-1;
/* The old place we want in answer, if any. */
static bool reset_statusbar_x = FALSE;
/* Should we reset the cursor position
* at the statusbar prompt? */
/* Should we reset the cursor position at the statusbar
* prompt? */
/* Read in a character, interpret it as a shortcut or toggle if
* necessary, and return it. Set meta_key to TRUE if the character is a
@@ -69,13 +72,18 @@ int do_statusbar_input(bool *meta_key, bool *func_key, bool *s_or_t,
input = get_kbinput(bottomwin, meta_key, func_key);
#ifndef DISABLE_MOUSE
/* If we got a mouse click and it was on a shortcut, read in the
* shortcut character. */
if (allow_funcs && *func_key == TRUE && input == KEY_MOUSE) {
if (do_statusbar_mouse())
input = get_kbinput(bottomwin, meta_key, func_key);
else
input = ERR;
if (allow_funcs) {
/* If we got a mouse click and it was on a shortcut, read in the
* shortcut character. */
if (*func_key && input == KEY_MOUSE) {
if (do_statusbar_mouse())
input = get_kbinput(bottomwin, meta_key, func_key);
else {
*meta_key = FALSE;
*func_key = FALSE;
input = ERR;
}
}
}
#endif
@@ -84,33 +92,41 @@ int do_statusbar_input(bool *meta_key, bool *func_key, bool *s_or_t,
/* If we got a shortcut from the current list, or a "universal"
* statusbar prompt shortcut, set have_shortcut to TRUE. */
have_shortcut = (s != NULL || input == NANO_REFRESH_KEY ||
input == NANO_HOME_KEY || input == NANO_END_KEY ||
input == NANO_BACK_KEY || input == NANO_FORWARD_KEY ||
input == NANO_BACKSPACE_KEY || input == NANO_DELETE_KEY ||
input == NANO_CUT_KEY ||
have_shortcut = (s != NULL || input == NANO_TAB_KEY || input ==
NANO_ENTER_KEY || input == NANO_REFRESH_KEY || input ==
NANO_HOME_KEY || input == NANO_END_KEY || input ==
NANO_BACK_KEY || input == NANO_FORWARD_KEY || input ==
NANO_BACKSPACE_KEY || input == NANO_DELETE_KEY || input ==
NANO_CUT_KEY ||
#ifndef NANO_TINY
input == NANO_NEXTWORD_KEY ||
input == NANO_NEXTWORD_KEY ||
#endif
(*meta_key == TRUE && (
(*meta_key && (
#ifndef NANO_TINY
input == NANO_PREVWORD_KEY ||
input == NANO_PREVWORD_KEY || input == NANO_BRACKET_KEY ||
#endif
input == NANO_VERBATIM_KEY
#ifndef NANO_TINY
|| input == NANO_BRACKET_KEY
#endif
)));
input == NANO_VERBATIM_KEY)));
/* Set s_or_t to TRUE if we got a shortcut. */
*s_or_t = have_shortcut;
/* If we got a non-high-bit control key, a meta key sequence, or a
* function key, and it's not a shortcut or toggle, throw it out. */
if (!*s_or_t) {
if (is_ascii_cntrl_char(input) || *meta_key || *func_key) {
beep();
*meta_key = FALSE;
*func_key = FALSE;
input = ERR;
}
}
if (allow_funcs) {
/* If we got a character, and it isn't a shortcut or toggle,
* it's a normal text character. Display the warning if we're
* in view mode, or add the character to the input buffer if
* we're not. */
if (input != ERR && *s_or_t == FALSE) {
if (input != ERR && !*s_or_t) {
/* If we're using restricted mode, the filename isn't blank,
* and we're at the "Write File" prompt, disable text
* input. */
@@ -126,7 +142,7 @@ int do_statusbar_input(bool *meta_key, bool *func_key, bool *s_or_t,
/* If we got a shortcut, or if there aren't any other characters
* waiting after the one we read in, we need to display all the
* characters in the input buffer if it isn't empty. */
if (*s_or_t == TRUE || get_key_buffer_len() == 0) {
if (*s_or_t || get_key_buffer_len() == 0) {
if (kbinput != NULL) {
/* Display all the characters in the input buffer at
* once, filtering out control characters. */
@@ -154,36 +170,11 @@ int do_statusbar_input(bool *meta_key, bool *func_key, bool *s_or_t,
if (have_shortcut) {
switch (input) {
/* Handle the "universal" statusbar prompt shortcuts. */
case NANO_TAB_KEY:
case NANO_ENTER_KEY:
break;
case NANO_REFRESH_KEY:
refresh_func();
break;
case NANO_HOME_KEY:
do_statusbar_home();
break;
case NANO_END_KEY:
do_statusbar_end();
break;
case NANO_BACK_KEY:
do_statusbar_left();
break;
case NANO_FORWARD_KEY:
do_statusbar_right();
break;
case NANO_BACKSPACE_KEY:
/* If we're using restricted mode, the filename
* isn't blank, and we're at the "Write File"
* prompt, disable Backspace. */
if (!ISSET(RESTRICTED) || openfile->filename[0] ==
'\0' || currshortcut != writefile_list)
do_statusbar_backspace();
break;
case NANO_DELETE_KEY:
/* If we're using restricted mode, the filename
* isn't blank, and we're at the "Write File"
* prompt, disable Delete. */
if (!ISSET(RESTRICTED) || openfile->filename[0] ==
'\0' || currshortcut != writefile_list)
do_statusbar_delete();
total_statusbar_refresh(refresh_func);
break;
case NANO_CUT_KEY:
/* If we're using restricted mode, the filename
@@ -193,17 +184,35 @@ int do_statusbar_input(bool *meta_key, bool *func_key, bool *s_or_t,
'\0' || currshortcut != writefile_list)
do_statusbar_cut_text();
break;
case NANO_FORWARD_KEY:
do_statusbar_right();
break;
case NANO_BACK_KEY:
do_statusbar_left();
break;
#ifndef NANO_TINY
case NANO_NEXTWORD_KEY:
do_statusbar_next_word(FALSE);
break;
case NANO_PREVWORD_KEY:
if (*meta_key == TRUE)
if (*meta_key)
do_statusbar_prev_word(FALSE);
break;
#endif
case NANO_HOME_KEY:
do_statusbar_home();
break;
case NANO_END_KEY:
do_statusbar_end();
break;
#ifndef NANO_TINY
case NANO_BRACKET_KEY:
if (*meta_key)
do_statusbar_find_bracket();
break;
#endif
case NANO_VERBATIM_KEY:
if (*meta_key == TRUE) {
if (*meta_key) {
/* If we're using restricted mode, the filename
* isn't blank, and we're at the "Write File"
* prompt, disable verbatim input. */
@@ -215,22 +224,34 @@ int do_statusbar_input(bool *meta_key, bool *func_key, bool *s_or_t,
do_statusbar_verbatim_input(&got_enter);
/* If we got the Enter key, set input to the
* key value for Enter, and set finished to
* TRUE to indicate that we're done. */
/* If we got the Enter key, remove it from
* the input buffer, set input to the key
* value for Enter, and set finished to TRUE
* to indicate that we're done. */
if (got_enter) {
get_input(NULL, 1);
input = NANO_ENTER_KEY;
*finished = TRUE;
}
}
}
break;
#ifndef NANO_TINY
case NANO_BRACKET_KEY:
if (*meta_key == TRUE)
do_statusbar_find_bracket();
case NANO_DELETE_KEY:
/* If we're using restricted mode, the filename
* isn't blank, and we're at the "Write File"
* prompt, disable Delete. */
if (!ISSET(RESTRICTED) || openfile->filename[0] ==
'\0' || currshortcut != writefile_list)
do_statusbar_delete();
break;
case NANO_BACKSPACE_KEY:
/* If we're using restricted mode, the filename
* isn't blank, and we're at the "Write File"
* prompt, disable Backspace. */
if (!ISSET(RESTRICTED) || openfile->filename[0] ==
'\0' || currshortcut != writefile_list)
do_statusbar_backspace();
break;
#endif
/* Handle the normal statusbar prompt shortcuts, setting
* ran_func to TRUE if we try to run their associated
* functions and setting finished to TRUE to indicate
@@ -292,7 +313,8 @@ bool do_statusbar_mouse(void)
/* The user typed output_len multibyte characters. Add them to the
* statusbar prompt, setting got_enter to TRUE if we get a newline, and
* filtering out all control characters if allow_cntrls is TRUE. */
* filtering out all ASCII control characters if allow_cntrls is
* TRUE. */
void do_statusbar_output(char *output, size_t output_len, bool
*got_enter, bool allow_cntrls)
{
@@ -306,8 +328,8 @@ void do_statusbar_output(char *output, size_t output_len, bool
*got_enter = FALSE;
while (i < output_len) {
/* If allow_cntrls is FALSE, filter out nulls and newlines,
* since they're control characters. */
/* If allow_cntrls is TRUE, convert nulls and newlines
* properly. */
if (allow_cntrls) {
/* Null to newline, if needed. */
if (output[i] == '\0')
@@ -329,8 +351,10 @@ void do_statusbar_output(char *output, size_t output_len, bool
i += char_buf_len;
/* If allow_cntrls is FALSE, filter out a control character. */
if (!allow_cntrls && is_cntrl_mbchar(output + i - char_buf_len))
/* If allow_cntrls is FALSE, filter out an ASCII control
* character. */
if (!allow_cntrls && is_ascii_cntrl_char(*(output + i -
char_buf_len)))
continue;
/* More dangerousness fun =) */
@@ -821,7 +845,7 @@ void do_statusbar_find_bracket(void)
}
#endif /* !NANO_TINY */
/* Return the placewewant associated with statusbar_x, i.e, the
/* Return the placewewant associated with statusbar_x, i.e. the
* zero-based column position of the cursor. The value will be no
* smaller than statusbar_x. */
size_t statusbar_xplustabs(void)
@@ -843,10 +867,19 @@ size_t get_statusbar_page_start(size_t start_col, size_t column)
start_col - 1);
}
/* Put the cursor in the statusbar prompt at statusbar_x. */
void reset_statusbar_cursor(void)
{
size_t start_col = strlenpt(prompt) + 1;
size_t xpt = statusbar_xplustabs();
wmove(bottomwin, 0, start_col + 1 + xpt -
get_statusbar_page_start(start_col, start_col + xpt));
}
/* Repaint the statusbar when getting a character in
* get_prompt_string(). The statusbar text line will be displayed
* starting with curranswer[index]. Assume the A_REVERSE attribute is
* turned off. */
* starting with curranswer[index]. */
void update_statusbar_line(const char *curranswer, size_t index)
{
size_t start_col, page_start;
@@ -858,7 +891,7 @@ void update_statusbar_line(const char *curranswer, size_t index)
index = strnlenpt(curranswer, index);
page_start = get_statusbar_page_start(start_col, start_col + index);
wattron(bottomwin, A_REVERSE);
wattron(bottomwin, reverse_attr);
blank_statusbar();
@@ -873,30 +906,30 @@ void update_statusbar_line(const char *curranswer, size_t index)
reset_statusbar_cursor();
wattroff(bottomwin, A_REVERSE);
}
wattroff(bottomwin, reverse_attr);
/* Put the cursor in the statusbar prompt at statusbar_x. */
void reset_statusbar_cursor(void)
{
size_t start_col = strlenpt(prompt) + 1;
size_t xpt = statusbar_xplustabs();
wmove(bottomwin, 0, start_col + 1 + xpt -
get_statusbar_page_start(start_col, start_col + xpt));
wnoutrefresh(bottomwin);
}
/* Return TRUE if we need an update after moving horizontally, and FALSE
* otherwise. We need one if old_pww and statusbar_pww are on different
* pages. */
bool need_statusbar_horizontal_update(size_t old_pww)
* otherwise. We need one if pww_save and statusbar_pww are on
* different pages. */
bool need_statusbar_horizontal_update(size_t pww_save)
{
size_t start_col = strlenpt(prompt) + 1;
return get_statusbar_page_start(start_col, start_col + old_pww) !=
return get_statusbar_page_start(start_col, start_col + pww_save) !=
get_statusbar_page_start(start_col, start_col + statusbar_pww);
}
/* Unconditionally redraw the entire screen, and then refresh it using
* refresh_func(). */
void total_statusbar_refresh(void (*refresh_func)(void))
{
total_redraw();
refresh_func();
}
/* Get a string of input at the statusbar prompt. This should only be
* called from do_prompt(). */
int get_prompt_string(bool allow_tabs,
@@ -938,13 +971,20 @@ int get_prompt_string(bool allow_tabs,
answer = mallocstrcpy(answer, curranswer);
curranswer_len = strlen(answer);
/* Only put statusbar_x at the end of the string (and change
* statusbar_pww to match) if it's uninitialized, if it would be
* past the end of curranswer, or if reset_statusbar_x is TRUE.
* Otherwise, leave it alone. This is so the cursor position stays
* at the same place if a prompt-changing toggle is pressed. */
if (statusbar_x == (size_t)-1 || statusbar_x > curranswer_len ||
reset_statusbar_x) {
/* If reset_statusbar_x is TRUE, restore statusbar_x and
* statusbar_pww to what they were before this prompt. Then, if
* statusbar_x is uninitialized or past the end of curranswer, put
* statusbar_x at the end of the string and update statusbar_pww
* based on it. We do these things so that the cursor position
* stays at the right place if a prompt-changing toggle is pressed,
* or if this prompt was started from another prompt and we cancel
* out of it. */
if (reset_statusbar_x) {
statusbar_x = old_statusbar_x;
statusbar_pww = old_pww;
}
if (statusbar_x == (size_t)-1 || statusbar_x > curranswer_len) {
statusbar_x = curranswer_len;
statusbar_pww = statusbar_xplustabs();
}
@@ -959,7 +999,7 @@ int get_prompt_string(bool allow_tabs,
wnoutrefresh(bottomwin);
/* If we're using restricted mode, we aren't allowed to change the
* name of a file once it has one because that would allow writing
* name of a file once it has one, because that would allow writing
* to files not specified on the command line. In this case,
* disable all keys that would change the text if the filename isn't
* blank and we're at the "Write File" prompt. */
@@ -1048,20 +1088,27 @@ int get_prompt_string(bool allow_tabs,
}
update_statusbar_line(answer, statusbar_x);
/* This key has a shortcut list entry when it's used
* to move to a newer search, which means that
* finished has been set to TRUE. Set it back to
* FALSE here, so that we aren't kicked out of the
* statusbar prompt. */
finished = FALSE;
}
break;
#endif /* !NANO_TINY */
#ifndef DISABLE_HELP
case NANO_HELP_KEY:
update_statusbar_line(answer, statusbar_x);
/* This key has a shortcut list entry when it's used to
* to go to the help browser, which means that finished
* has been set to TRUE. Set it back to FALSE here, so
* that we aren't kicked out of the statusbar prompt. */
* go to the help browser or display a message
* indicating that help is disabled, which means that
* finished has been set to TRUE. Set it back to FALSE
* here, so that we aren't kicked out of the statusbar
* prompt. */
finished = FALSE;
break;
#endif /* !DISABLE_HELP */
}
/* If we have a shortcut with an associated function, break out
@@ -1088,13 +1135,22 @@ int get_prompt_string(bool allow_tabs,
}
#endif
/* We finished putting in an answer or ran a normal shortcut's
* associated function, so reset statusbar_x and statusbar_pww. */
/* We've finished putting in an answer or run a normal shortcut's
* associated function, so reset statusbar_x and statusbar_pww. If
* we've finished putting in an answer, reset the statusbar cursor
* position too. */
if (kbinput == NANO_CANCEL_KEY || kbinput == NANO_ENTER_KEY ||
ran_func) {
statusbar_x = (size_t)-1;
statusbar_pww = (size_t)-1;
}
statusbar_x = old_statusbar_x;
statusbar_pww = old_pww;
if (!ran_func)
reset_statusbar_x = TRUE;
/* Otherwise, we're still putting in an answer or a shortcut with
* an associated function, so leave the statusbar cursor position
* alone. */
} else
reset_statusbar_x = FALSE;
return kbinput;
}
@@ -1158,16 +1214,19 @@ int do_prompt(bool allow_tabs,
free(prompt);
prompt = NULL;
reset_statusbar_x = FALSE;
/* We're done with the prompt, so save the statusbar cursor
* position. */
old_statusbar_x = statusbar_x;
old_pww = statusbar_pww;
/* If we left the prompt via Cancel or Enter, set the return value
* properly. */
switch (retval) {
case NANO_CANCEL_KEY:
retval = -1;
reset_statusbar_x = TRUE;
break;
case NANO_ENTER_KEY:
retval = (answer[0] == '\0') ? -2 : 0;
reset_statusbar_x = TRUE;
break;
}
@@ -1190,10 +1249,13 @@ int do_prompt(bool allow_tabs,
}
/* This function forces a reset of the statusbar cursor position. It
* should only be called after do_prompt(), and is only needed if the
* user leaves the prompt via something other than Enter or Cancel. */
* should be called when we get out of all statusbar prompts. */
void do_prompt_abort(void)
{
/* Uninitialize the old cursor position in answer. */
old_statusbar_x = (size_t)-1;
old_pww = (size_t)-1;
reset_statusbar_x = TRUE;
}
@@ -1212,9 +1274,10 @@ int do_yesno_prompt(bool all, const char *msg)
/* yesstr, nostr, and allstr are strings of any length. Each string
* consists of all single-byte characters accepted as valid
* characters for that value. The first value will be the one
* displayed in the shortcuts. Translators: if possible, specify
* both the shortcuts for your language and English. For example,
* in French: "OoYy" for "Oui". */
* displayed in the shortcuts. */
/* TRANSLATORS: For the next three strings, if possible, specify
* the single-byte shortcuts for both your language and English.
* For example, in French: "OoYy" for "Oui". */
yesstr = _("Yy");
nostr = _("Nn");
allstr = _("Aa");
@@ -1247,12 +1310,12 @@ int do_yesno_prompt(bool all, const char *msg)
onekey("^C", _("Cancel"), width);
}
wattron(bottomwin, A_REVERSE);
wattron(bottomwin, reverse_attr);
blank_statusbar();
mvwaddnstr(bottomwin, 0, 0, msg, actual_x(msg, COLS - 1));
wattroff(bottomwin, A_REVERSE);
wattroff(bottomwin, reverse_attr);
/* Refresh the edit window and the statusbar before getting
* input. */
@@ -1268,50 +1331,54 @@ int do_yesno_prompt(bool all, const char *msg)
kbinput = get_kbinput(bottomwin, &meta_key, &func_key);
if (kbinput == NANO_REFRESH_KEY) {
total_redraw();
continue;
} else if (kbinput == NANO_CANCEL_KEY)
ok = -1;
switch (kbinput) {
case NANO_CANCEL_KEY:
ok = -1;
break;
#ifndef DISABLE_MOUSE
else if (kbinput == KEY_MOUSE) {
get_mouseinput(&mouse_x, &mouse_y, FALSE);
case KEY_MOUSE:
get_mouseinput(&mouse_x, &mouse_y, FALSE);
if (mouse_x != -1 && mouse_y != -1 && !ISSET(NO_HELP) &&
wenclose(bottomwin, mouse_y, mouse_x) &&
mouse_x < (width * 2) && mouse_y - (2 -
no_more_space()) - editwinrows - 1 >= 0) {
int x = mouse_x / width;
if (wenclose(bottomwin, mouse_y, mouse_x) &&
!ISSET(NO_HELP) && mouse_x < (width * 2) &&
mouse_y - (2 - no_more_space()) -
editwinrows - 1 >= 0) {
int x = mouse_x / width;
/* Calculate the x-coordinate relative to the
* two columns of the Yes/No/All shortcuts in
* bottomwin. */
int y = mouse_y - (2 - no_more_space()) -
int y = mouse_y - (2 - no_more_space()) -
editwinrows - 1;
/* Calculate the y-coordinate relative to the
* beginning of the Yes/No/All shortcuts in
* bottomwin, i.e, with the sizes of topwin,
* bottomwin, i.e. with the sizes of topwin,
* edit, and the first line of bottomwin
* subtracted out. */
assert(0 <= x && x <= 1 && 0 <= y && y <= 1);
assert(0 <= x && x <= 1 && 0 <= y && y <= 1);
/* x == 0 means they clicked Yes or No. y == 0 means
* Yes or All. */
ok = -2 * x * y + x - y + 1;
/* x == 0 means they clicked Yes or No. y == 0
* means Yes or All. */
ok = -2 * x * y + x - y + 1;
if (ok == 2 && !all)
ok = -2;
}
if (ok == 2 && !all)
ok = -2;
}
break;
#endif /* !DISABLE_MOUSE */
case NANO_REFRESH_KEY:
total_redraw();
continue;
default:
/* Look for the kbinput in the Yes, No and (optionally)
* All strings. */
if (strchr(yesstr, kbinput) != NULL)
ok = 1;
else if (strchr(nostr, kbinput) != NULL)
ok = 0;
else if (all && strchr(allstr, kbinput) != NULL)
ok = 2;
}
#endif
/* Look for the kbinput in the Yes, No and (optionally) All
* strings. */
else if (strchr(yesstr, kbinput) != NULL)
ok = 1;
else if (strchr(nostr, kbinput) != NULL)
ok = 0;
else if (all && strchr(allstr, kbinput) != NULL)
ok = 2;
} while (ok == -2);
return ok;

View File

@@ -2,8 +2,8 @@
/**************************************************************************
* proto.h *
* *
* Copyright (C) 1999-2004 Chris Allegretta *
* Copyright (C) 2005-2006 David Lawrence Ramsey *
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Chris Allegretta *
* Copyright (C) 2005, 2006, 2007 David Lawrence Ramsey *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2, or (at your option) *
@@ -26,7 +26,12 @@
#include "nano.h"
/* Public externs. See global.c for descriptions of them. */
/* All external variables. See global.c for their descriptions. */
#ifndef NANO_TINY
extern sigjmp_buf jump_buf;
extern bool jump_buf_main;
#endif
#ifndef DISABLE_WRAPJUSTIFY
extern ssize_t fill;
extern ssize_t wrap_at;
@@ -104,6 +109,7 @@ extern shortcut *spell_list;
#endif
#ifndef DISABLE_BROWSER
extern shortcut *browser_list;
extern shortcut *whereis_file_list;
extern shortcut *gotodir_list;
#endif
@@ -131,21 +137,34 @@ extern regex_t search_regexp;
extern regmatch_t regmatches[10];
#endif
extern bool curses_ended;
extern int reverse_attr;
extern char *homedir;
/* Public functions in browser.c. */
/* All functions in browser.c. */
#ifndef DISABLE_BROWSER
char *do_browser(char *path, DIR *dir);
char *do_browse_from(const char *inpath);
void browser_init(const char *path, DIR *dir);
void parse_browser_input(int *kbinput, bool *meta_key, bool *func_key);
void browser_refresh(void);
void striponedir(char *path);
bool browser_select_filename(const char *needle);
int filesearch_init(void);
bool findnextfile(bool no_sameline, size_t begin, const char *needle);
void findnextfile_wrap_reset(void);
void filesearch_abort(void);
void do_filesearch(void);
void do_fileresearch(void);
void do_first_file(void);
void do_last_file(void);
char *striponedir(const char *path);
#endif
/* Public functions in chars.c. */
/* All functions in chars.c. */
#ifdef ENABLE_UTF8
void utf8_init(void);
bool using_utf8(void);
#endif
#ifndef HAVE_ISBLANK
bool nisblank(int c);
#endif
@@ -155,6 +174,7 @@ bool niswblank(wchar_t wc);
bool is_byte(int c);
bool is_alnum_mbchar(const char *c);
bool is_blank_mbchar(const char *c);
bool is_ascii_cntrl_char(int c);
bool is_cntrl_char(int c);
#ifdef ENABLE_UTF8
bool is_cntrl_wchar(wchar_t wc);
@@ -222,27 +242,36 @@ bool is_valid_unicode(wchar_t wc);
bool is_valid_mbstring(const char *s);
#endif
/* Public functions in color.c. */
/* All functions in color.c. */
#ifdef ENABLE_COLOR
void set_colorpairs(void);
void color_init(void);
void color_update(void);
#endif
/* Public functions in cut.c. */
/* All functions in cut.c. */
void cutbuffer_reset(void);
void cut_line(void);
#ifndef NANO_TINY
void cut_marked(void);
void cut_to_eol(void);
void cut_to_eof(void);
#endif
void do_cut_text(void);
void do_cut_text(
#ifndef NANO_TINY
bool copy_text, bool cut_till_end
#else
void
#endif
);
void do_cut_text_void(void);
#ifndef NANO_TINY
void do_copy_text(void);
void do_cut_till_end(void);
#endif
void do_uncut_text(void);
/* Public functions in files.c. */
/* All functions in files.c. */
void make_new_buffer(void);
void initialize_buffer(void);
void initialize_buffer_text(void);
@@ -281,13 +310,13 @@ bool check_operating_dir(const char *currpath, bool allow_tabcomp);
void init_backup_dir(void);
#endif
int copy_file(FILE *inn, FILE *out);
int write_file(const char *name, FILE *f_open, bool tmp, append_type
bool write_file(const char *name, FILE *f_open, bool tmp, append_type
append, bool nonamechange);
#ifndef NANO_TINY
int write_marked_file(const char *name, FILE *f_open, bool tmp,
bool write_marked_file(const char *name, FILE *f_open, bool tmp,
append_type append);
#endif
int do_writeout(bool exiting);
bool do_writeout(bool exiting);
void do_writeout_void(void);
char *real_dir_from_tilde(const char *buf);
#if !defined(DISABLE_TABCOMP) || !defined(DISABLE_BROWSER)
@@ -295,6 +324,7 @@ int diralphasort(const void *va, const void *vb);
void free_chararray(char **array, size_t len);
#endif
#ifndef DISABLE_TABCOMP
bool is_dir(const char *buf);
char **username_tab_completion(const char *buf, size_t *num_matches,
size_t buflen);
char **cwd_tab_completion(const char *buf, bool allow_files, size_t
@@ -310,17 +340,21 @@ bool writehist(FILE *hist, filestruct *histhead);
void save_history(void);
#endif
/* Public functions in global.c. */
/* All functions in global.c. */
size_t length_of_list(const shortcut *s);
#ifndef NANO_TINY
void toggle_init_one(int val, const char *desc, long flag);
void toggle_init_one(int val
#ifndef DISABLE_HELP
, const char *desc, bool blank_after
#endif
, long flag);
void toggle_init(void);
#endif
void sc_init_one(shortcut **shortcutage, int key, const char *desc,
void sc_init_one(shortcut **shortcutage, int ctrlval, const char *desc
#ifndef DISABLE_HELP
const char *help,
, const char *help, bool blank_after
#endif
int metaval, int funcval, int miscval, bool view, void
, int metaval, int funcval, int miscval, bool view, void
(*func)(void));
void shortcut_init(bool unjustify);
void free_shortcutage(shortcut **shortcutage);
@@ -328,14 +362,19 @@ void free_shortcutage(shortcut **shortcutage);
void thanks_for_all_the_fish(void);
#endif
/* Public functions in help.c. */
/* All functions in help.c. */
#ifndef DISABLE_HELP
void do_help(void);
void do_help(void (*refresh_func)(void));
void do_help_void(void);
#ifndef DISABLE_BROWSER
void do_browser_help(void);
#endif
void help_init(void);
void parse_help_input(int *kbinput, bool *meta_key, bool *func_key);
size_t help_line_len(const char *ptr);
#endif
/* Public functions in move.c. */
/* All functions in move.c. */
void do_first_line(void);
void do_last_line(void);
void do_page_up(void);
@@ -354,18 +393,32 @@ void do_prev_word_void(void);
#endif
void do_home(void);
void do_end(void);
void do_up(void);
void do_up(
#ifndef NANO_TINY
bool scroll_only
#else
void
#endif
);
void do_up_void(void);
#ifndef NANO_TINY
void do_scroll_up(void);
#endif
void do_down(void);
void do_down(
#ifndef NANO_TINY
bool scroll_only
#else
void
#endif
);
void do_down_void(void);
#ifndef NANO_TINY
void do_scroll_down(void);
#endif
void do_left(void);
void do_right(void);
/* Public functions in nano.c. */
/* All functions in nano.c. */
filestruct *make_new_node(filestruct *prevnode);
filestruct *copy_node(const filestruct *src);
void splice_node(filestruct *begin, filestruct *newnode, filestruct
@@ -395,9 +448,11 @@ void die(const char *msg, ...);
void die_save_file(const char *die_filename);
void window_init(void);
#ifndef DISABLE_MOUSE
void disable_mouse_support(void);
void enable_mouse_support(void);
void mouse_init(void);
#endif
void print1opt_full(const char *shortflag
void print_opt_full(const char *shortflag
#ifdef HAVE_GETOPT_LONG
, const char *longflag
#endif
@@ -434,7 +489,7 @@ bool do_mouse(void);
#endif
void do_output(char *output, size_t output_len, bool allow_cntrls);
/* Public functions in prompt.c. */
/* All functions in prompt.c. */
int do_statusbar_input(bool *meta_key, bool *func_key, bool *s_or_t,
bool *ran_func, bool *finished, bool allow_funcs, void
(*refresh_func)(void));
@@ -462,9 +517,10 @@ void do_statusbar_find_bracket(void);
#endif
size_t statusbar_xplustabs(void);
size_t get_statusbar_page_start(size_t start_col, size_t column);
void update_statusbar_line(const char *curranswer, size_t index);
void reset_statusbar_cursor(void);
bool need_statusbar_horizontal_update(size_t old_pww);
void update_statusbar_line(const char *curranswer, size_t index);
bool need_statusbar_horizontal_update(size_t pww_save);
void total_statusbar_refresh(void (*refresh_func)(void));
int get_prompt_string(bool allow_tabs,
#ifndef DISABLE_TABCOMP
bool allow_files,
@@ -490,25 +546,30 @@ int do_prompt(bool allow_tabs,
void do_prompt_abort(void);
int do_yesno_prompt(bool all, const char *msg);
/* Public functions in rcfile.c. */
/* All functions in rcfile.c. */
#ifdef ENABLE_NANORC
void rcfile_error(const char *msg, ...);
char *parse_next_word(char *ptr);
char *parse_argument(char *ptr);
#ifdef ENABLE_COLOR
short color_to_short(const char *colorname, bool *bright);
char *parse_next_regex(char *ptr);
bool nregcomp(const char *regex, int eflags);
void parse_syntax(char *ptr);
void parse_include(char *ptr);
short color_to_short(const char *colorname, bool *bright);
void parse_colors(char *ptr, bool icase);
#endif
void parse_rcfile(FILE *rcstream);
void parse_rcfile(FILE *rcstream
#ifdef ENABLE_COLOR
, bool syntax_only
#endif
);
void do_rcfile(void);
#endif
/* Public functions in search.c. */
/* All functions in search.c. */
#ifdef HAVE_REGEX_H
int regexp_init(const char *regexp);
bool regexp_init(const char *regexp);
void regexp_cleanup(void);
#endif
void not_found_msg(const char *str);
@@ -562,13 +623,18 @@ char *get_history_completion(filestruct **h, const char *s, size_t len);
#endif
#endif
/* Public functions in text.c. */
/* All functions in text.c. */
#ifndef NANO_TINY
void do_mark(void);
#endif
void do_delete(void);
void do_backspace(void);
void do_tab(void);
#ifndef NANO_TINY
void do_indent(ssize_t cols);
void do_indent_void(void);
void do_unindent(void);
#endif
void do_enter(void);
#ifndef NANO_TINY
RETSIGTYPE cancel_command(int signal);
@@ -614,7 +680,7 @@ void do_wordlinechar_count(void);
#endif
void do_verbatim_input(void);
/* Public functions in utils.c. */
/* All functions in utils.c. */
int digits(size_t n);
void get_homedir(void);
bool parse_num(const char *str, ssize_t *val);
@@ -632,10 +698,6 @@ ssize_t ngetdelim(char **lineptr, size_t *n, int delim, FILE *stream);
#endif
#endif
#ifdef HAVE_REGEX_H
#ifdef BROKEN_REGEXEC
int safe_regexec(const regex_t *preg, const char *string, size_t nmatch,
regmatch_t pmatch[], int eflags);
#endif
bool regexp_bol_or_eol(const regex_t *preg, const char *string);
#endif
#ifndef DISABLE_SPELLER
@@ -661,42 +723,27 @@ void mark_order(const filestruct **top, size_t *top_x, const filestruct
**bot, size_t *bot_x, bool *right_side_up);
#endif
size_t get_totsize(const filestruct *begin, const filestruct *end);
#ifndef NDEBUG
int check_linenumbers(const filestruct *fileptr);
#endif
#ifdef DEBUG
void dump_filestruct(const filestruct *inptr);
void dump_filestruct_reverse(void);
#endif
/* Public functions in winio.c. */
#ifndef NANO_TINY
void reset_kbinput(void);
#endif
/* All functions in winio.c. */
void get_key_buffer(WINDOW *win);
size_t get_key_buffer_len(void);
void unget_input(int *input, size_t input_len);
void unget_kbinput(int kbinput, bool meta_key, bool func_key);
int *get_input(WINDOW *win, size_t input_len);
int get_kbinput(WINDOW *win, bool *meta_key, bool *func_key);
int parse_kbinput(WINDOW *win, bool *meta_key, bool *func_key
#ifndef NANO_TINY
, bool reset
#endif
);
int get_escape_seq_kbinput(const int *seq, size_t seq_len, bool
*ignore_seq);
int parse_kbinput(WINDOW *win, bool *meta_key, bool *func_key);
int get_escape_seq_kbinput(const int *seq, size_t seq_len);
int get_escape_seq_abcd(int kbinput);
int get_byte_kbinput(int kbinput
#ifndef NANO_TINY
, bool reset
int parse_escape_seq_kbinput(WINDOW *win, int kbinput);
int get_byte_kbinput(int kbinput);
#ifdef ENABLE_UTF8
long add_unicode_digit(int kbinput, long factor, long *uni);
long get_unicode_kbinput(int kbinput);
#endif
);
long get_unicode_kbinput(int kbinput
#ifndef NANO_TINY
, bool reset
#endif
);
int get_control_kbinput(int kbinput);
void unparse_kbinput(char *output, size_t output_len);
int *get_verbatim_kbinput(WINDOW *win, size_t *kbinput_len);
@@ -727,10 +774,10 @@ void reset_cursor(void);
void edit_draw(const filestruct *fileptr, const char *converted, int
line, size_t start);
void update_line(const filestruct *fileptr, size_t index);
bool need_horizontal_update(size_t old_pww);
bool need_vertical_update(size_t old_pww);
bool need_horizontal_update(size_t pww_save);
bool need_vertical_update(size_t pww_save);
void edit_scroll(scroll_dir direction, ssize_t nlines);
void edit_redraw(const filestruct *old_current, size_t old_pww);
void edit_redraw(const filestruct *old_current, size_t pww_save);
void edit_refresh(void);
void edit_update(update_type location);
void total_redraw(void);

View File

@@ -2,8 +2,8 @@
/**************************************************************************
* rcfile.c *
* *
* Copyright (C) 2001-2004 Chris Allegretta *
* Copyright (C) 2005-2006 David Lawrence Ramsey *
* Copyright (C) 2001, 2002, 2003, 2004 Chris Allegretta *
* Copyright (C) 2005, 2006, 2007 David Lawrence Ramsey *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2, or (at your option) *
@@ -32,7 +32,8 @@
#ifdef ENABLE_NANORC
const static rcoption rcopts[] = {
static const rcoption rcopts[] = {
{"boldtext", BOLD_TEXT},
#ifndef DISABLE_JUSTIFY
{"brackets", 0},
#endif
@@ -96,8 +97,7 @@ const static rcoption rcopts[] = {
static bool errors = FALSE;
/* Whether we got any errors while parsing an rcfile. */
static size_t lineno = 0;
/* If we did, the line number where the current error
* occurred. */
/* If we did, the line number where the last error occurred. */
static char *nanorc = NULL;
/* The path to the rcfile we're parsing. */
#ifdef ENABLE_COLOR
@@ -107,8 +107,9 @@ static colortype *endcolor = NULL;
/* The end of the color list for the current syntax. */
#endif
/* We have an error in some part of the rcfile. Put it on stderr and
* make the user hit Enter to continue starting up nano. */
/* We have an error in some part of the rcfile. Print the error message
* on stderr, and then make the user hit Enter to continue starting
* nano. */
void rcfile_error(const char *msg, ...)
{
va_list ap;
@@ -126,8 +127,9 @@ void rcfile_error(const char *msg, ...)
fprintf(stderr, "\n");
}
/* Parse the next word from the string. Return points to '\0' if we hit
* the end of the line. */
/* Parse the next word from the string, null-terminate it, and return
* a pointer to the first character after the null terminator. The
* returned pointer will point to '\0' if we hit the end of the line. */
char *parse_next_word(char *ptr)
{
while (!isblank(*ptr) && *ptr != '\0')
@@ -151,7 +153,7 @@ char *parse_next_word(char *ptr)
* arguments can contain "'s too. */
char *parse_argument(char *ptr)
{
const char *ptr_bak = ptr;
const char *ptr_save = ptr;
char *last_quote = NULL;
assert(ptr != NULL);
@@ -170,7 +172,7 @@ char *parse_argument(char *ptr)
ptr = NULL;
else
*ptr++ = '\0';
rcfile_error(N_("Argument %s has unterminated \""), ptr_bak);
rcfile_error(N_("Argument '%s' has an unterminated \""), ptr_save);
} else {
*last_quote = '\0';
ptr = last_quote + 1;
@@ -182,45 +184,6 @@ char *parse_argument(char *ptr)
}
#ifdef ENABLE_COLOR
/* Return the short value corresponding to the color named in colorname,
* and set bright to TRUE if that color is bright. */
short color_to_short(const char *colorname, bool *bright)
{
short mcolor = -1;
assert(colorname != NULL && bright != NULL);
if (strncasecmp(colorname, "bright", 6) == 0) {
*bright = TRUE;
colorname += 6;
}
if (strcasecmp(colorname, "green") == 0)
mcolor = COLOR_GREEN;
else if (strcasecmp(colorname, "red") == 0)
mcolor = COLOR_RED;
else if (strcasecmp(colorname, "blue") == 0)
mcolor = COLOR_BLUE;
else if (strcasecmp(colorname, "white") == 0)
mcolor = COLOR_WHITE;
else if (strcasecmp(colorname, "yellow") == 0)
mcolor = COLOR_YELLOW;
else if (strcasecmp(colorname, "cyan") == 0)
mcolor = COLOR_CYAN;
else if (strcasecmp(colorname, "magenta") == 0)
mcolor = COLOR_MAGENTA;
else if (strcasecmp(colorname, "black") == 0)
mcolor = COLOR_BLACK;
else
rcfile_error(N_("Color %s not understood.\n"
"Valid colors are \"green\", \"red\", \"blue\",\n"
"\"white\", \"yellow\", \"cyan\", \"magenta\" and\n"
"\"black\", with the optional prefix \"bright\"\n"
"for foreground colors."), colorname);
return mcolor;
}
/* Parse the next regex string from the line at ptr, and return it. */
char *parse_next_regex(char *ptr)
{
@@ -240,7 +203,7 @@ char *parse_next_regex(char *ptr)
return NULL;
}
/* Null terminate and advance ptr. */
/* Null-terminate and advance ptr. */
*ptr++ = '\0';
while (isblank(*ptr))
@@ -275,7 +238,7 @@ bool nregcomp(const char *regex, int eflags)
void parse_syntax(char *ptr)
{
const char *fileregptr = NULL, *nameptr = NULL;
const syntaxtype *tmpsyntax;
syntaxtype *tmpsyntax;
exttype *endext = NULL;
/* The end of the extensions list for this syntax. */
@@ -300,11 +263,16 @@ void parse_syntax(char *ptr)
if (ptr == NULL)
return;
/* Search for a duplicate syntax name. If we find one, free it, so
* that we always use the last syntax with a given name. */
for (tmpsyntax = syntaxes; tmpsyntax != NULL;
tmpsyntax = tmpsyntax->next) {
if (strcmp(nameptr, tmpsyntax->desc) == 0) {
rcfile_error(N_("Duplicate syntax name %s"), nameptr);
return;
syntaxtype *prev_syntax = tmpsyntax;
tmpsyntax = tmpsyntax->next;
free(prev_syntax);
break;
}
}
@@ -379,6 +347,104 @@ void parse_syntax(char *ptr)
}
}
/* Read and parse additional syntax files. */
void parse_include(char *ptr)
{
struct stat rcinfo;
FILE *rcstream;
char *option, *full_option, *nanorc_save = nanorc;
size_t lineno_save = lineno;
option = ptr;
if (*option == '"')
option++;
ptr = parse_argument(ptr);
/* Get the specified file's full path. */
full_option = get_full_path(option);
if (full_option == NULL) {
rcfile_error(_("Error reading %s: %s"), option, strerror(errno));
goto cleanup_include;
}
/* Don't open directories, character files, or block files. */
if (stat(nanorc, &rcinfo) != -1) {
if (S_ISDIR(rcinfo.st_mode) || S_ISCHR(rcinfo.st_mode) ||
S_ISBLK(rcinfo.st_mode)) {
rcfile_error(S_ISDIR(rcinfo.st_mode) ?
_("\"%s\" is a directory") :
_("\"%s\" is a device file"), nanorc);
goto cleanup_include;
}
}
/* Open the new syntax file. */
if ((rcstream = fopen(full_option, "rb")) == NULL) {
rcfile_error(_("Error reading %s: %s"), full_option,
strerror(errno));
goto cleanup_include;
}
/* Use the name and line number position of the new syntax file
* while parsing it, so we can know where any errors in it are. */
nanorc = full_option;
lineno = 0;
parse_rcfile(rcstream
#ifdef ENABLE_COLOR
, TRUE
#endif
);
/* We're done with the new syntax file. Restore the original
* filename and line number position. */
nanorc = nanorc_save;
lineno = lineno_save;
cleanup_include:
free(full_option);
}
/* Return the short value corresponding to the color named in colorname,
* and set bright to TRUE if that color is bright. */
short color_to_short(const char *colorname, bool *bright)
{
short mcolor = -1;
assert(colorname != NULL && bright != NULL);
if (strncasecmp(colorname, "bright", 6) == 0) {
*bright = TRUE;
colorname += 6;
}
if (strcasecmp(colorname, "green") == 0)
mcolor = COLOR_GREEN;
else if (strcasecmp(colorname, "red") == 0)
mcolor = COLOR_RED;
else if (strcasecmp(colorname, "blue") == 0)
mcolor = COLOR_BLUE;
else if (strcasecmp(colorname, "white") == 0)
mcolor = COLOR_WHITE;
else if (strcasecmp(colorname, "yellow") == 0)
mcolor = COLOR_YELLOW;
else if (strcasecmp(colorname, "cyan") == 0)
mcolor = COLOR_CYAN;
else if (strcasecmp(colorname, "magenta") == 0)
mcolor = COLOR_MAGENTA;
else if (strcasecmp(colorname, "black") == 0)
mcolor = COLOR_BLACK;
else
rcfile_error(N_("Color \"%s\" not understood.\n"
"Valid colors are \"green\", \"red\", \"blue\",\n"
"\"white\", \"yellow\", \"cyan\", \"magenta\" and\n"
"\"black\", with the optional prefix \"bright\"\n"
"for foreground colors."), colorname);
return mcolor;
}
/* Parse the color string in the line at ptr, and add it to the current
* file's associated colors. If icase is TRUE, treat the color string
* as case insensitive. */
@@ -390,6 +456,12 @@ void parse_colors(char *ptr, bool icase)
assert(ptr != NULL);
if (syntaxes == NULL) {
rcfile_error(
N_("Cannot add a color command without a syntax command"));
return;
}
if (*ptr == '\0') {
rcfile_error(N_("Missing color name"));
return;
@@ -411,7 +483,7 @@ void parse_colors(char *ptr, bool icase)
}
if (strncasecmp(bgcolorname, "bright", 6) == 0) {
rcfile_error(
N_("Background color %s cannot be bright"),
N_("Background color \"%s\" cannot be bright"),
bgcolorname);
return;
}
@@ -428,12 +500,6 @@ void parse_colors(char *ptr, bool icase)
} else
fg = -1;
if (syntaxes == NULL) {
rcfile_error(
N_("Cannot add a color directive without a syntax line"));
return;
}
if (*ptr == '\0') {
rcfile_error(N_("Missing regex string"));
return;
@@ -537,9 +603,14 @@ void parse_colors(char *ptr, bool icase)
}
#endif /* ENABLE_COLOR */
/* Parse the rcfile, once it has been opened successfully at
* rcstream. */
void parse_rcfile(FILE *rcstream)
/* Parse the rcfile, once it has been opened successfully at rcstream,
* and close it afterwards. If syntax_only is TRUE, only allow the file
* to contain color syntax commands: syntax, color, and icolor. */
void parse_rcfile(FILE *rcstream
#ifdef ENABLE_COLOR
, bool syntax_only
#endif
)
{
char *buf = NULL;
ssize_t len;
@@ -547,10 +618,12 @@ void parse_rcfile(FILE *rcstream)
while ((len = getline(&buf, &n, rcstream)) > 0) {
char *ptr, *keyword, *option;
int set = 0, i;
int set = 0;
size_t i;
/* Ignore the \n. */
buf[len - 1] = '\0';
/* Ignore the newline. */
if (buf[len - 1] == '\n')
buf[len - 1] = '\0';
lineno++;
ptr = buf;
@@ -567,20 +640,45 @@ void parse_rcfile(FILE *rcstream)
ptr = parse_next_word(ptr);
/* Try to parse the keyword. */
if (strcasecmp(keyword, "set") == 0)
set = 1;
else if (strcasecmp(keyword, "unset") == 0)
set = -1;
if (strcasecmp(keyword, "set") == 0) {
#ifdef ENABLE_COLOR
else if (strcasecmp(keyword, "syntax") == 0)
if (syntax_only)
rcfile_error(
N_("Command \"%s\" not allowed in included file"),
keyword);
else
#endif
set = 1;
} else if (strcasecmp(keyword, "unset") == 0) {
#ifdef ENABLE_COLOR
if (syntax_only)
rcfile_error(
N_("Command \"%s\" not allowed in included file"),
keyword);
else
#endif
set = -1;
}
#ifdef ENABLE_COLOR
else if (strcasecmp(keyword, "include") == 0) {
if (syntax_only)
rcfile_error(
N_("Command \"%s\" not allowed in included file"),
keyword);
else
parse_include(ptr);
} else if (strcasecmp(keyword, "syntax") == 0) {
if (endsyntax != NULL && endcolor == NULL)
rcfile_error(N_("Syntax \"%s\" has no color commands"),
endsyntax->desc);
parse_syntax(ptr);
else if (strcasecmp(keyword, "color") == 0)
} else if (strcasecmp(keyword, "color") == 0)
parse_colors(ptr, FALSE);
else if (strcasecmp(keyword, "icolor") == 0)
parse_colors(ptr, TRUE);
#endif /* ENABLE_COLOR */
else
rcfile_error(N_("Command %s not understood"), keyword);
rcfile_error(N_("Command \"%s\" not understood"), keyword);
if (set == 0)
continue;
@@ -605,10 +703,10 @@ void parse_rcfile(FILE *rcstream)
SET(rcopts[i].flag);
else {
/* This option doesn't have a flag, so it takes
* an argument. */
* an argument. */
if (*ptr == '\0') {
rcfile_error(
N_("Option %s requires an argument"),
N_("Option \"%s\" requires an argument"),
rcopts[i].name);
break;
}
@@ -639,7 +737,7 @@ void parse_rcfile(FILE *rcstream)
if (strcasecmp(rcopts[i].name, "fill") == 0) {
if (!parse_num(option, &wrap_at)) {
rcfile_error(
N_("Requested fill size %s invalid"),
N_("Requested fill size \"%s\" is invalid"),
option);
wrap_at = -CHARS_FROM_EOL;
} else
@@ -714,7 +812,7 @@ void parse_rcfile(FILE *rcstream)
if (!parse_num(option, &tabsize) ||
tabsize <= 0) {
rcfile_error(
N_("Requested tab size %s invalid"),
N_("Requested tab size \"%s\" is invalid"),
option);
tabsize = -1;
} else
@@ -728,22 +826,29 @@ void parse_rcfile(FILE *rcstream)
} else if (rcopts[i].flag != 0)
UNSET(rcopts[i].flag);
else
rcfile_error(N_("Cannot unset flag %s"),
rcfile_error(N_("Cannot unset flag \"%s\""),
rcopts[i].name);
break;
}
}
if (rcopts[i].name == NULL)
rcfile_error(N_("Unknown flag %s"), option);
rcfile_error(N_("Unknown flag \"%s\""), option);
}
#ifdef ENABLE_COLOR
if (endsyntax != NULL && endcolor == NULL)
rcfile_error(N_("Syntax \"%s\" has no color commands"),
endsyntax->desc);
#endif
free(buf);
fclose(rcstream);
lineno = 0;
if (errors) {
errors = FALSE;
fprintf(stderr, _("\nPress Enter to continue starting nano\n"));
fprintf(stderr,
_("\nPress Enter to continue starting nano.\n"));
while (getchar() != '\n')
;
}
@@ -752,23 +857,36 @@ void parse_rcfile(FILE *rcstream)
}
/* The main rcfile function. It tries to open the system-wide rcfile,
* followed by the local rcfile. */
* followed by the current user's rcfile. */
void do_rcfile(void)
{
struct stat rcinfo;
FILE *rcstream;
#ifdef SYSCONFDIR
nanorc = mallocstrcpy(nanorc, SYSCONFDIR "/nanorc");
/* Try to open the system-wide nanorc. */
rcstream = fopen(nanorc, "r");
if (rcstream != NULL)
parse_rcfile(rcstream);
#endif
#if defined(DISABLE_ROOTWRAP) && !defined(DISABLE_WRAPPING)
/* Don't open directories, character files, or block files. */
if (stat(nanorc, &rcinfo) != -1) {
if (S_ISDIR(rcinfo.st_mode) || S_ISCHR(rcinfo.st_mode) ||
S_ISBLK(rcinfo.st_mode))
rcfile_error(S_ISDIR(rcinfo.st_mode) ?
_("\"%s\" is a directory") :
_("\"%s\" is a device file"), nanorc);
}
/* Try to open the system-wide nanorc. */
rcstream = fopen(nanorc, "rb");
if (rcstream != NULL)
parse_rcfile(rcstream
#ifdef ENABLE_COLOR
, FALSE
#endif
);
#ifdef DISABLE_ROOTWRAPPING
/* We've already read SYSCONFDIR/nanorc, if it's there. If we're
* root and --disable-wrapping-as-root is used, turn wrapping
* off now. */
* root, and --disable-wrapping-as-root is used, turn wrapping off
* now. */
if (geteuid() == NANO_ROOT_UID)
SET(NO_WRAP);
#endif
@@ -780,15 +898,29 @@ void do_rcfile(void)
else {
nanorc = charealloc(nanorc, strlen(homedir) + 9);
sprintf(nanorc, "%s/.nanorc", homedir);
rcstream = fopen(nanorc, "r");
/* Don't open directories, character files, or block files. */
if (stat(nanorc, &rcinfo) != -1) {
if (S_ISDIR(rcinfo.st_mode) || S_ISCHR(rcinfo.st_mode) ||
S_ISBLK(rcinfo.st_mode))
rcfile_error(S_ISDIR(rcinfo.st_mode) ?
_("\"%s\" is a directory") :
_("\"%s\" is a device file"), nanorc);
}
/* Try to open the current user's nanorc. */
rcstream = fopen(nanorc, "rb");
if (rcstream == NULL) {
/* Don't complain about the file's not existing. */
if (errno != ENOENT)
rcfile_error(N_("Error reading %s: %s"), nanorc,
strerror(errno));
} else
parse_rcfile(rcstream);
parse_rcfile(rcstream
#ifdef ENABLE_COLOR
, FALSE
#endif
);
}
free(nanorc);

View File

@@ -2,8 +2,8 @@
/**************************************************************************
* search.c *
* *
* Copyright (C) 1999-2004 Chris Allegretta *
* Copyright (C) 2005-2006 David Lawrence Ramsey *
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Chris Allegretta *
* Copyright (C) 2005, 2006, 2007 David Lawrence Ramsey *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2, or (at your option) *
@@ -39,21 +39,20 @@ static bool history_changed = FALSE;
static bool regexp_compiled = FALSE;
/* Have we compiled any regular expressions? */
/* Regular expression helper functions. */
/* Compile the given regular expression. Return value 0 means the
* expression was invalid, and we wrote an error message on the status
* bar. Return value 1 means success. */
int regexp_init(const char *regexp)
/* Compile the regular expression regexp to see if it's valid. Return
* TRUE if it is, or FALSE otherwise. */
bool regexp_init(const char *regexp)
{
int rc = regcomp(&search_regexp, regexp, REG_EXTENDED
int rc;
assert(!regexp_compiled);
rc = regcomp(&search_regexp, regexp, REG_EXTENDED
#ifndef NANO_TINY
| (ISSET(CASE_SENSITIVE) ? 0 : REG_ICASE)
#endif
);
assert(!regexp_compiled);
if (rc != 0) {
size_t len = regerror(rc, &search_regexp, NULL, 0);
char *str = charalloc(len);
@@ -61,11 +60,13 @@ int regexp_init(const char *regexp)
regerror(rc, &search_regexp, str, len);
statusbar(_("Bad regex \"%s\": %s"), regexp, str);
free(str);
return 0;
return FALSE;
}
regexp_compiled = TRUE;
return 1;
return TRUE;
}
/* Decompile the compiled regular expression we used in the last
@@ -178,20 +179,20 @@ int search_init(bool replacing, bool use_answer)
#endif
edit_refresh, "%s%s%s%s%s%s", _("Search"),
#ifndef NANO_TINY
/* This string is just a modifier for the search prompt; no
* grammar is implied. */
/* TRANSLATORS: This string is just a modifier for the search
* prompt; no grammar is implied. */
ISSET(CASE_SENSITIVE) ? _(" [Case Sensitive]") :
#endif
"",
#ifdef HAVE_REGEX_H
/* This string is just a modifier for the search prompt; no
* grammar is implied. */
/* TRANSLATORS: This string is just a modifier for the search
* prompt; no grammar is implied. */
ISSET(USE_REGEXP) ? _(" [Regexp]") :
#endif
"",
#ifndef NANO_TINY
/* This string is just a modifier for the search prompt; no
* grammar is implied. */
/* TRANSLATORS: This string is just a modifier for the search
* prompt; no grammar is implied. */
ISSET(BACKWARDS_SEARCH) ? _(" [Backwards]") :
#endif
"", replacing ?
@@ -218,9 +219,8 @@ int search_init(bool replacing, bool use_answer)
#ifdef HAVE_REGEX_H
/* Use last_search if answer is an empty string, or
* answer if it isn't. */
if (ISSET(USE_REGEXP) &&
regexp_init((i == -2) ? last_search :
answer) == 0)
if (ISSET(USE_REGEXP) && !regexp_init((i == -2) ?
last_search : answer))
return -1;
#endif
break;
@@ -421,23 +421,22 @@ void do_search(void)
{
filestruct *fileptr = openfile->current;
size_t fileptr_x = openfile->current_x;
size_t old_pww = openfile->placewewant;
size_t pww_save = openfile->placewewant;
int i;
bool didfind;
#ifndef DISABLE_WRAPPING
wrap_reset();
#endif
i = search_init(FALSE, FALSE);
if (i == -1) /* Cancel, Go to Line, blank search string, or
* regcomp() failed. */
if (i == -1)
/* Cancel, Go to Line, blank search string, or regcomp()
* failed. */
search_replace_abort();
else if (i == -2) /* Replace. */
else if (i == -2)
/* Replace. */
do_replace();
#if !defined(NANO_TINY) || defined(HAVE_REGEX_H)
else if (i == 1) /* Case Sensitive, Backwards, or Regexp search
* toggle. */
else if (i == 1)
/* Case Sensitive, Backwards, or Regexp search toggle. */
do_search();
#endif
@@ -494,7 +493,7 @@ void do_search(void)
}
openfile->placewewant = xplustabs();
edit_redraw(fileptr, old_pww);
edit_redraw(fileptr, pww_save);
search_replace_abort();
}
@@ -504,19 +503,15 @@ void do_research(void)
{
filestruct *fileptr = openfile->current;
size_t fileptr_x = openfile->current_x;
size_t old_pww = openfile->placewewant;
size_t pww_save = openfile->placewewant;
bool didfind;
#ifndef DISABLE_WRAPPING
wrap_reset();
#endif
search_init_globals();
if (last_search[0] != '\0') {
#ifdef HAVE_REGEX_H
/* Since answer is "", use last_search! */
if (ISSET(USE_REGEXP) && regexp_init(last_search) == 0)
if (ISSET(USE_REGEXP) && !regexp_init(last_search))
return;
#endif
@@ -560,7 +555,7 @@ void do_research(void)
statusbar(_("No current search pattern"));
openfile->placewewant = xplustabs();
edit_redraw(fileptr, old_pww);
edit_redraw(fileptr, pww_save);
search_replace_abort();
}
#endif
@@ -581,7 +576,7 @@ int replace_regexp(char *string, bool create)
/* Iterate through the replacement text to handle subexpression
* replacement using \1, \2, \3, etc. */
while (*c != '\0') {
int num = (int)(*(c + 1) - '0');
int num = (*(c + 1) - '0');
if (*c != '\\' || num < 1 || num > 9 || num >
search_regexp.re_nsub) {
@@ -888,15 +883,17 @@ void do_replace(void)
}
i = search_init(TRUE, FALSE);
if (i == -1) { /* Cancel, Go to Line, blank search
* string, or regcomp() failed. */
if (i == -1) {
/* Cancel, Go to Line, blank search string, or regcomp()
* failed. */
search_replace_abort();
return;
} else if (i == -2) { /* No Replace. */
} else if (i == -2) {
/* No Replace. */
do_search();
return;
} else if (i == 1) /* Case Sensitive, Backwards, or Regexp
* search toggle. */
} else if (i == 1)
/* Case Sensitive, Backwards, or Regexp search toggle. */
do_replace();
if (i != 0)
@@ -980,7 +977,7 @@ void do_gotolinecolumn(ssize_t line, ssize_t column, bool use_answer,
if (interactive) {
char *ans = mallocstrcpy(NULL, answer);
/* Ask for it. */
/* Ask for the line and column. */
int i = do_prompt(FALSE,
#ifndef DISABLE_TABCOMP
TRUE,
@@ -1345,7 +1342,7 @@ void update_history(filestruct **h, const char *s)
}
/* Add the new entry to the end. */
(*hbot)->data = mallocstrcpy(NULL, s);
(*hbot)->data = mallocstrcpy((*hbot)->data, s);
splice_node(*hbot, make_new_node(*hbot), (*hbot)->next);
*hbot = (*hbot)->next;
(*hbot)->data = mallocstrcpy(NULL, "");

View File

@@ -2,8 +2,8 @@
/**************************************************************************
* text.c *
* *
* Copyright (C) 1999-2004 Chris Allegretta *
* Copyright (C) 2005-2006 David Lawrence Ramsey *
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Chris Allegretta *
* Copyright (C) 2005, 2006, 2007 David Lawrence Ramsey *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2, or (at your option) *
@@ -55,7 +55,7 @@ void do_mark(void)
openfile->mark_begin = openfile->current;
openfile->mark_begin_x = openfile->current_x;
} else {
statusbar(_("Mark UNset"));
statusbar(_("Mark Unset"));
openfile->mark_begin = NULL;
openfile->mark_begin_x = 0;
edit_refresh();
@@ -63,12 +63,12 @@ void do_mark(void)
}
#endif /* !NANO_TINY */
/* Delete one character. */
/* Delete the character under the cursor. */
void do_delete(void)
{
bool do_refresh = FALSE;
/* Do we have to call edit_refresh(), or can we get away with
* update_line()? */
* just update_line()? */
assert(openfile->current != NULL && openfile->current->data != NULL && openfile->current_x <= strlen(openfile->current->data));
@@ -124,9 +124,6 @@ void do_delete(void)
delete_node(foo);
renumber(openfile->current);
openfile->totsize--;
#ifndef DISABLE_WRAPPING
wrap_reset();
#endif
/* If the NO_NEWLINES flag isn't set, and text has been added to
* the magicline as a result of deleting at the end of the line
@@ -153,7 +150,7 @@ void do_delete(void)
}
/* Backspace over one character. That is, move the cursor left one
* character, and then delete the character there. */
* character, and then delete the character under the cursor. */
void do_backspace(void)
{
if (openfile->current != openfile->fileage ||
@@ -193,6 +190,177 @@ void do_tab(void)
#endif
}
#ifndef NANO_TINY
/* Indent or unindent the current line (or, if the mark is on, all lines
* covered by the mark) len columns, depending on whether len is
* positive or negative. If the TABS_TO_SPACES flag is set, indent or
* unindent by len spaces. Otherwise, indent or unindent by (len /
* tabsize) tabs and (len % tabsize) spaces. */
void do_indent(ssize_t cols)
{
bool indent_changed = FALSE;
/* Whether any indenting or unindenting was done. */
bool unindent = FALSE;
/* Whether we're unindenting text. */
char *line_indent = NULL;
/* The text added to each line in order to indent it. */
size_t line_indent_len = 0;
/* The length of the text added to each line in order to indent
* it. */
filestruct *top, *bot, *f;
size_t top_x, bot_x;
assert(openfile->current != NULL && openfile->current->data != NULL);
/* If cols is zero, get out. */
if (cols == 0)
return;
/* If cols is negative, make it positive and set unindent to
* TRUE. */
if (cols < 0) {
cols = -cols;
unindent = TRUE;
/* Otherwise, we're indenting, in which case the file will always be
* modified, so set indent_changed to TRUE. */
} else
indent_changed = TRUE;
/* If the mark is on, use all lines covered by the mark. */
if (openfile->mark_set)
mark_order((const filestruct **)&top, &top_x,
(const filestruct **)&bot, &bot_x, NULL);
/* Otherwise, use the current line. */
else {
top = openfile->current;
bot = top;
}
if (!unindent) {
/* Set up the text we'll be using as indentation. */
line_indent = charalloc(cols + 1);
if (ISSET(TABS_TO_SPACES)) {
/* Set the indentation to cols spaces. */
charset(line_indent, ' ', cols);
line_indent_len = cols;
} else {
/* Set the indentation to (cols / tabsize) tabs and (cols %
* tabsize) spaces. */
size_t num_tabs = cols / tabsize;
size_t num_spaces = cols % tabsize;
charset(line_indent, '\t', num_tabs);
charset(line_indent + num_tabs, ' ', num_spaces);
line_indent_len = num_tabs + num_spaces;
}
line_indent[line_indent_len] = '\0';
}
/* Go through each line of the text. */
for (f = top; f != bot->next; f = f->next) {
size_t line_len = strlen(f->data);
size_t indent_len = indent_length(f->data);
if (!unindent) {
/* If we're indenting, add the characters in line_indent to
* the beginning of the non-whitespace text of this line. */
f->data = charealloc(f->data, line_len +
line_indent_len + 1);
charmove(&f->data[indent_len + line_indent_len],
&f->data[indent_len], line_len - indent_len + 1);
strncpy(f->data + indent_len, line_indent, line_indent_len);
openfile->totsize += line_indent_len;
/* Keep track of the change in the current line. */
if (openfile->mark_set && f == openfile->mark_begin &&
openfile->mark_begin_x >= indent_len)
openfile->mark_begin_x += line_indent_len;
if (f == openfile->current && openfile->current_x >=
indent_len)
openfile->current_x += line_indent_len;
/* If the NO_NEWLINES flag isn't set, and this is the
* magicline, add a new magicline. */
if (!ISSET(NO_NEWLINES) && f == openfile->filebot)
new_magicline();
} else {
size_t indent_col = strnlenpt(f->data, indent_len);
/* The length in columns of the indentation on this
* line. */
if (cols <= indent_col) {
size_t indent_new = actual_x(f->data, indent_col -
cols);
/* The length of the indentation remaining on
* this line after we unindent. */
size_t indent_shift = indent_len - indent_new;
/* The change in the indentation on this line
* after we unindent. */
/* If we're unindenting, and there's at least cols
* columns' worth of indentation at the beginning of the
* non-whitespace text of this line, remove it. */
charmove(&f->data[indent_new], &f->data[indent_len],
line_len - indent_shift - indent_new + 1);
null_at(&f->data, line_len - indent_shift + 1);
openfile->totsize -= indent_shift;
/* Keep track of the change in the current line. */
if (openfile->mark_set && f == openfile->mark_begin &&
openfile->mark_begin_x > indent_new) {
if (openfile->mark_begin_x <= indent_len)
openfile->mark_begin_x = indent_new;
else
openfile->mark_begin_x -= indent_shift;
}
if (f == openfile->current && openfile->current_x >
indent_new) {
if (openfile->current_x <= indent_len)
openfile->current_x = indent_new;
else
openfile->current_x -= indent_shift;
}
/* We've unindented, so set indent_changed to TRUE. */
if (!indent_changed)
indent_changed = TRUE;
}
}
}
if (!unindent)
/* Clean up. */
free(line_indent);
if (indent_changed) {
/* Mark the file as modified. */
set_modified();
/* Update the screen. */
edit_refresh();
}
}
/* Indent the current line, or all lines covered by the mark if the mark
* is on, tabsize columns. */
void do_indent_void(void)
{
do_indent(tabsize);
}
/* Unindent the current line, or all lines covered by the mark if the
* mark is on, tabsize columns. */
void do_unindent(void)
{
do_indent(-tabsize);
}
#endif /* !NANO_TINY */
/* Someone hits Enter *gasp!* */
void do_enter(void)
{
@@ -293,7 +461,7 @@ bool execute_command(const char *command)
exit(0);
}
/* Else continue as parent. */
/* Continue as parent. */
close(fd[1]);
if (pid == -1) {
@@ -329,11 +497,6 @@ bool execute_command(const char *command)
read_file(f, "stdin");
/* If multibuffer mode is on, we could be here in view mode. If so,
* don't set the modification flag. */
if (!ISSET(VIEW_MODE))
set_modified();
if (wait(NULL) == -1)
nperror("wait");
@@ -349,7 +512,7 @@ bool execute_command(const char *command)
#endif /* !NANO_TINY */
#ifndef DISABLE_WRAPPING
/* Clear the prepend_wrap flag. We need to do this as soon as we do
/* Unset the prepend_wrap flag. We need to do this as soon as we do
* something other than type text. */
void wrap_reset(void)
{
@@ -357,8 +520,8 @@ void wrap_reset(void)
}
/* We wrap the given line. Precondition: we assume the cursor has been
* moved forward since the last typed character. Return value: whether
* we wrapped. */
* moved forward since the last typed character. Return TRUE if we
* wrapped, and FALSE otherwise. */
bool do_wrap(filestruct *line)
{
size_t line_len;
@@ -392,8 +555,8 @@ bool do_wrap(filestruct *line)
/* Step 1, finding where to wrap. We are going to add a new line
* after a blank character. In this step, we call break_line() to
* get the location of the last blank we can break the line at, and
* and set wrap_loc to the location of the character after it, so
* that the blank is preserved at the end of the line.
* set wrap_loc to the location of the character after it, so that
* the blank is preserved at the end of the line.
*
* If there is no legal wrap point, or we reach the last character
* of the line while trying to find one, we should return without
@@ -439,9 +602,8 @@ bool do_wrap(filestruct *line)
/* Step 2, making the new wrap line. It will consist of indentation
* followed by the text after the wrap point, optionally followed by
* a space (if the text after the wrap point doesn't end in a blank)
* and the text of the next line, if they can fit without
* wrapping, the next line exists, and the prepend_wrap flag is
* set. */
* and the text of the next line, if they can fit without wrapping,
* the next line exists, and the prepend_wrap flag is set. */
/* after_break is the text that will be wrapped to the next line. */
after_break = line->data + wrap_loc;
@@ -553,8 +715,8 @@ bool do_wrap(filestruct *line)
* be prepended to the next line. */
prepend_wrap = TRUE;
/* Each line knows its line number. We recalculate these if we
* inserted a new line. */
/* Each line knows its number. We recalculate these if we inserted
* a new line. */
if (!prepending)
renumber(line);
@@ -607,14 +769,14 @@ ssize_t break_line(const char *line, ssize_t goal
* found with short enough display width. */
ssize_t cur_loc = 0;
/* Current index in line. */
size_t cur_pos = 0;
/* Current column position in line. */
int line_len;
assert(line != NULL);
while (*line != '\0' && goal >= 0) {
size_t pos = 0;
line_len = parse_mbchar(line, NULL, &pos);
while (*line != '\0' && goal >= cur_pos) {
line_len = parse_mbchar(line, NULL, &cur_pos);
if (is_blank_mbchar(line)
#ifndef DISABLE_HELP
@@ -629,12 +791,11 @@ ssize_t break_line(const char *line, ssize_t goal
#endif
}
goal -= pos;
line += line_len;
cur_loc += line_len;
}
if (goal >= 0)
if (goal >= cur_pos)
/* In fact, the whole line displays shorter than goal. */
return cur_loc;
@@ -675,6 +836,11 @@ ssize_t break_line(const char *line, ssize_t goal
|| (newline && *line == '\n')
#endif
)) {
#ifndef DISABLE_HELP
if (newline && *line == '\n')
break;
#endif
line_len = parse_mbchar(line, NULL, NULL);
line += line_len;
@@ -1076,7 +1242,7 @@ void backup_lines(filestruct *first_line, size_t par_len)
/* Find the beginning of the current paragraph if we're in one, or the
* beginning of the next paragraph if we're not. Afterwards, save the
* quote length and paragraph length in *quote and *par. Return TRUE if
* we found a paragraph, or FALSE if there was an error or we didn't
* we found a paragraph, and FALSE if there was an error or we didn't
* find a paragraph.
*
* See the comment at begpar() for more about when a line is the
@@ -1276,7 +1442,7 @@ void do_justify(bool full_justify)
indent_string = mallocstrcpy(NULL, "");
/* Find the first indentation in the paragraph that doesn't
* match the indentation of the first line, and save it in
* match the indentation of the first line, and save it in
* indent_string. If all the indentations are the same, save
* the indentation of the first line in indent_string. */
{
@@ -1483,6 +1649,15 @@ void do_justify(bool full_justify)
edit_refresh();
#ifndef NANO_TINY
/* We're going to set jump_buf so that we return here after a
* SIGWINCH instead of to main(). Indicate this. */
jump_buf_main = FALSE;
/* Return here after a SIGWINCH. */
sigsetjmp(jump_buf, 1);
#endif
statusbar(_("Can now UnJustify!"));
/* If constant cursor position display is on, make sure the current
@@ -1499,8 +1674,7 @@ void do_justify(bool full_justify)
kbinput = do_input(&meta_key, &func_key, &s_or_t, &ran_func,
&finished, FALSE);
if (!meta_key && !func_key && s_or_t &&
kbinput == NANO_UNJUSTIFY_KEY) {
if (s_or_t && kbinput == NANO_UNJUSTIFY_KEY) {
/* Splice the justify buffer back into the file, but only if we
* actually justified something. */
if (first_par_line != NULL) {
@@ -1768,7 +1942,7 @@ const char *do_int_speller(const char *tempfile_name)
/* A new process to run spell in. */
if ((pid_spell = fork()) == 0) {
/* Child continues (i.e, future spell process). */
/* Child continues (i.e. future spell process). */
close(spell_fd[0]);
/* Replace the standard input with the temp file. */
@@ -1798,7 +1972,7 @@ const char *do_int_speller(const char *tempfile_name)
/* A new process to run sort in. */
if ((pid_sort = fork()) == 0) {
/* Child continues (i.e, future spell process). Replace the
/* Child continues (i.e. future spell process). Replace the
* standard input with the standard output of the old pipe. */
if (dup2(spell_fd[0], STDIN_FILENO) != STDIN_FILENO)
goto close_pipes_and_exit;
@@ -1824,7 +1998,7 @@ const char *do_int_speller(const char *tempfile_name)
/* A new process to run uniq in. */
if ((pid_uniq = fork()) == 0) {
/* Child continues (i.e, future uniq process). Replace the
/* Child continues (i.e. future uniq process). Replace the
* standard input with the standard output of the old pipe. */
if (dup2(sort_fd[0], STDIN_FILENO) != STDIN_FILENO)
goto close_pipes_and_exit;
@@ -2023,7 +2197,7 @@ const char *do_alt_speller(char *tempfile_name)
if (!WIFEXITED(alt_spell_status) ||
WEXITSTATUS(alt_spell_status) != 0) {
char *altspell_error;
char *alt_spell_error;
char *invoke_error = _("Error invoking \"%s\"");
#ifndef NANO_TINY
@@ -2031,11 +2205,11 @@ const char *do_alt_speller(char *tempfile_name)
openfile->mark_set = old_mark_set;
#endif
altspell_error =
alt_spell_error =
charalloc(strlen(invoke_error) +
strlen(alt_speller) + 1);
sprintf(altspell_error, invoke_error, alt_speller);
return altspell_error;
sprintf(alt_spell_error, invoke_error, alt_speller);
return alt_spell_error;
}
#ifndef NANO_TINY
@@ -2127,24 +2301,24 @@ const char *do_alt_speller(char *tempfile_name)
* specified, use it. Otherwise, use the internal spell checker. */
void do_spell(void)
{
int i;
bool status;
FILE *temp_file;
char *temp = safe_tempfile(&temp_file);
const char *spell_msg;
if (temp == NULL) {
statusbar(_("Could not create temp file: %s"), strerror(errno));
statusbar(_("Error writing temp file: %s"), strerror(errno));
return;
}
status =
#ifndef NANO_TINY
if (openfile->mark_set)
i = write_marked_file(temp, temp_file, TRUE, OVERWRITE);
else
openfile->mark_set ? write_marked_file(temp, temp_file, TRUE,
OVERWRITE) :
#endif
i = write_file(temp, temp_file, TRUE, OVERWRITE, FALSE);
write_file(temp, temp_file, TRUE, OVERWRITE, FALSE);
if (i == -1) {
if (!status) {
statusbar(_("Error writing temp file: %s"), strerror(errno));
free(temp);
return;
@@ -2155,6 +2329,8 @@ void do_spell(void)
unlink(temp);
free(temp);
currshortcut = main_list;
/* If the spell-checker printed any error messages onscreen, make
* sure that they're cleared off. */
total_refresh();
@@ -2245,16 +2421,23 @@ void do_verbatim_input(void)
size_t kbinput_len, i;
char *output;
/* TRANSLATORS: This is displayed when the next keystroke will be
* inserted verbatim. */
statusbar(_("Verbatim Input"));
/* If constant cursor position display is on, make sure the current
* cursor position will be properly displayed on the statusbar. */
if (ISSET(CONST_UPDATE))
do_cursorpos(TRUE);
/* Read in all the verbatim characters. */
kbinput = get_verbatim_kbinput(edit, &kbinput_len);
/* If constant cursor position display is on, make sure the current
* cursor position will be properly displayed on the statusbar.
* Otherwise, blank the statusbar. */
if (ISSET(CONST_UPDATE))
do_cursorpos(TRUE);
else {
blank_statusbar();
wnoutrefresh(bottomwin);
}
/* Display all the verbatim characters at once, not filtering out
* control characters. */
output = charalloc(kbinput_len + 1);
@@ -2263,6 +2446,8 @@ void do_verbatim_input(void)
output[i] = (char)kbinput[i];
output[i] = '\0';
free(kbinput);
do_output(output, kbinput_len, TRUE);
free(output);

View File

@@ -2,8 +2,8 @@
/**************************************************************************
* utils.c *
* *
* Copyright (C) 1999-2004 Chris Allegretta *
* Copyright (C) 2005-2006 David Lawrence Ramsey *
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Chris Allegretta *
* Copyright (C) 2005, 2006, 2007 David Lawrence Ramsey *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2, or (at your option) *
@@ -33,18 +33,20 @@
/* Return the number of decimal digits in n. */
int digits(size_t n)
{
int i = 1;
int i;
while (n > 10) {
n /= 10;
i++;
if (n == 0)
i = 1;
else {
for (i = 0; n != 0; n /= 10, i++)
;
}
return i;
}
/* Return the user's home directory. We use $HOME, and if that fails,
* we fall back on getpwuid(). */
* we fall back on the home directory of the effective user ID. */
void get_homedir(void)
{
if (homedir == NULL) {
@@ -145,7 +147,7 @@ void unsunder(char *str, size_t true_len)
}
/* For non-null-terminated lines. A line, by definition, shouldn't
* normally have newlines in it, so decode its newlines into nulls. */
* normally have newlines in it, so decode its newlines as nulls. */
void sunder(char *str)
{
assert(str != NULL);
@@ -197,7 +199,8 @@ ssize_t ngetdelim(char **lineptr, size_t *n, int delim, FILE *stream)
int c;
/* Sanity checks. */
if (lineptr == NULL || n == NULL || stream == NULL) {
if (lineptr == NULL || n == NULL || stream == NULL ||
fileno(stream) == -1) {
errno = EINVAL;
return -1;
}
@@ -229,7 +232,7 @@ ssize_t ngetdelim(char **lineptr, size_t *n, int delim, FILE *stream)
*n += MAX_BUF_SIZE;
}
/* Null terminate the buffer. */
/* Null-terminate the buffer. */
null_at(lineptr, indx++);
*n = indx;
@@ -241,18 +244,6 @@ ssize_t ngetdelim(char **lineptr, size_t *n, int delim, FILE *stream)
#endif /* !NANO_TINY && ENABLE_NANORC */
#ifdef HAVE_REGEX_H
#ifdef BROKEN_REGEXEC
/* Work around a potential segfault in glibc 2.2.3's regexec(). */
int safe_regexec(const regex_t *preg, const char *string, size_t nmatch,
regmatch_t pmatch[], int eflags)
{
if (string != NULL && *string != '\0')
return regexec(preg, string, nmatch, pmatch, eflags);
return REG_NOMATCH;
}
#endif
/* Do the compiled regex in preg and the regex in string match the
* beginning or end of a line? */
bool regexp_bol_or_eol(const regex_t *preg, const char *string)
@@ -261,7 +252,7 @@ bool regexp_bol_or_eol(const regex_t *preg, const char *string)
regexec(preg, string, 0, NULL, REG_NOTBOL | REG_NOTEOL) ==
REG_NOMATCH);
}
#endif /* HAVE_REGEX_H */
#endif
#ifndef DISABLE_SPELLER
/* Is the word starting at position pos in buf a whole word? */
@@ -354,17 +345,15 @@ const char *strstrwrapper(const char *haystack, const char *needle,
return mbstrcasestr(start, needle);
}
/* This is a wrapper for the perror() function. The wrapper takes care
* of curses, calls perror() (which writes to stderr), and then
* refreshes the screen. Note that nperror() causes the window to
* flicker once. */
/* This is a wrapper for the perror() function. The wrapper temporarily
* leaves curses mode, calls perror() (which writes to stderr), and then
* reenters curses mode, updating the screen in the process. Note that
* nperror() causes the window to flicker once. */
void nperror(const char *s)
{
/* Leave curses mode and go to the terminal. */
if (endwin() != ERR) {
perror(s); /* Print the error. */
total_refresh(); /* Return to curses and refresh. */
}
endwin();
perror(s);
doupdate();
}
/* This is a wrapper for the malloc() function that properly handles
@@ -440,7 +429,7 @@ size_t get_page_start(size_t column)
return column - (COLS - 2);
}
/* Return the placewewant associated with current_x, i.e, the zero-based
/* Return the placewewant associated with current_x, i.e. the zero-based
* column position of the cursor. The value will be no smaller than
* current_x. */
size_t xplustabs(void)
@@ -449,7 +438,7 @@ size_t xplustabs(void)
}
/* Return the index in s of the character displayed at the given column,
* i.e, the largest value such that strnlenpt(s, actual_x(s, column)) <=
* i.e. the largest value such that strnlenpt(s, actual_x(s, column)) <=
* column. */
size_t actual_x(const char *s, size_t column)
{
@@ -596,22 +585,6 @@ size_t get_totsize(const filestruct *begin, const filestruct *end)
return totsize;
}
#ifndef NDEBUG
/* Return what the current line number should be, starting at edittop
* and ending at fileptr. */
int check_linenumbers(const filestruct *fileptr)
{
int check_line = 0;
const filestruct *filetmp;
for (filetmp = openfile->edittop; filetmp != fileptr;
filetmp = filetmp->next)
check_line++;
return check_line;
}
#endif /* !NDEBUG */
#ifdef DEBUG
/* Dump the filestruct inptr to stderr. */
void dump_filestruct(const filestruct *inptr)

File diff suppressed because it is too large Load Diff