Compare commits

...

138 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
72 changed files with 29848 additions and 21138 deletions

View File

@@ -4,10 +4,10 @@ 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.

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].

564
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

66
NEWS
View File

@@ -1,3 +1,44 @@
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
@@ -186,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.
@@ -534,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

8
README
View File

@@ -19,7 +19,7 @@ Overview
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.
http://www.gnu.org/.
How to compile and install nano
@@ -65,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

@@ -42,11 +42,7 @@ If you're using a C shell (e.g. tcsh or csh), do
After that's set up, cd to your src directory and use the following
command to download the CVS tree:
$ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/nano checkout nano
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
$ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/nano checkout -r nano_2_0_branch nano
Generate the configure script

View File

@@ -19,7 +19,7 @@
#
# $Id$
AC_INIT([GNU nano], [1.9.99pre3], [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
@@ -56,17 +56,17 @@ 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,
@@ -75,42 +75,42 @@ AC_ARG_ENABLE(tiny,
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 text display.])
AC_DEFINE(DISABLE_JUSTIFY, 1, [Define this to disable the justify routine.])
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 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,
@@ -120,28 +120,28 @@ 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_ROOTWRAPPING, 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
if test x$ac_cv_header_regex_h = 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
else
AC_MSG_ERROR([
@@ -159,18 +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_DEFINE(NANO_EXTRA, 1, [Define this to enable extra stuff.]) extra_support=yes
fi])
AC_MSG_CHECKING([whether to enable UTF-8 support])
@@ -372,6 +372,7 @@ 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.

View File

@@ -25,7 +25,7 @@
<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>
@@ -36,8 +36,8 @@
<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. 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.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>
@@ -57,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>
@@ -80,13 +80,13 @@
<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 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>
<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.9.99pre3. 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>
@@ -136,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>
@@ -154,13 +153,13 @@
<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>
<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>
@@ -172,12 +171,14 @@
<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/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>
<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>
@@ -186,9 +187,9 @@
<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>
<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.7"></a>4.7. 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.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>
@@ -238,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>
@@ -255,7 +256,10 @@
<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/10/06 - Update the question in section 4.13 to match the version of it in the answer section. (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>

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,14 +1,21 @@
man_MANS = nano.1 nanorc.5 rnano.1
mandir = @mandir@/fr
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

@@ -15,7 +15,7 @@
.\" AUCUNE garantie.
.\"
.\" $Id$
.TH NANO 1 "version 1.9.99pre1" "28\ août\ 2006"
.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.
.\"
@@ -39,8 +39,8 @@ Pico, l'
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
@@ -276,10 +276,10 @@ manuel a
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@tigreraye.org> le 28\ août\ 2006 à partir
de la version du 12\ juillet\ 2006 de la page de manuel de nano
1.9.99pre1. Cette page 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

View File

@@ -15,7 +15,7 @@
.\" AUCUNE garantie.
.\"
\" $Id$
.TH NANORC 5 "version 1.9.99pre1" "28\ août\ 2006"
.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.
@@ -32,7 +32,7 @@ remplacer Pico, l'
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. Il ne doit pas être au format DOS ou Mac. Lors de son
@@ -325,10 +325,10 @@ manuel a
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@tigreraye.org> le 28\ août\ 2006 à partir de
la version du 30\ juillet\ 2006 de la page de manuel de nanorc (pour la
version 1.9.99pre1 de nano). Cette page a été relue par Gérard
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

View File

@@ -1,5 +1,5 @@
.\" Hey, EMACS: -*- nroff -*-
.\" rnano.1 is Copyright 2005, 2006 by Thijs Kinkhorst
.\" 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>.
.\"
@@ -16,7 +16,7 @@
.\" AUCUNE garantie.
.\"
.\" $Id$
.TH RNANO 1 "version 1.9.99pre1" "28\ août\ 20O6"
.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.
.\"
@@ -41,7 +41,7 @@ remplacer Pico, l'
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.
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
@@ -105,10 +105,10 @@ Thijs Kinkhorst <thijs@kinkhorst.com>, pour le syst
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@tigreraye.org> le 28\ août\ 2006 à partir
de la version du 12\ juillet\ 2006 de la page de manuel de rnano
(pour la version 1.9.99pre1 de nano).
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

View File

@@ -7,7 +7,7 @@
.\" warranty.
.\"
.\" $Id$
.TH NANO 1 "version 1.9.99pre1" "July 12, 2006"
.TH NANO 1 "version 2.0.0" "October 28, 2006"
.\" Please adjust this date whenever revising the manpage.
.\"
@@ -29,7 +29,7 @@ This manual page briefly documents 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

View File

@@ -7,7 +7,7 @@
.\" warranty.
.\"
.\" $Id$
.TH NANORC 5 "version 1.9.99pre1" "July 30, 2006"
.TH NANORC 5 "version 2.0.0" "October 28, 2006"
.\" Please adjust this date whenever revising the manpage.
.\"
.SH NAME
@@ -19,7 +19,7 @@ This manual page briefly documents GNU \fBnano\fP's rcfile.
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. It
should not be in DOS or Mac format. During startup, \fBnano\fP will

View File

@@ -1,5 +1,5 @@
.\" Hey, EMACS: -*- nroff -*-
.\" rnano.1 is Copyright 2005, 2006 by Thijs Kinkhorst
.\" 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>.
.\"
@@ -8,7 +8,7 @@
.\" warranty.
.\"
.\" $Id$
.TH RNANO 1 "version 1.9.99pre1" "July 12, 2006"
.TH RNANO 1 "version 2.0.0" "October 28, 2006"
.\" Please adjust this date whenever revising the manpage.
.\"
.SH NAME
@@ -30,7 +30,7 @@ This manual page briefly documents 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

View File

@@ -255,3 +255,6 @@
## Bourne shell scripts
# include "@PKGDATADIR@/sh.nanorc"
## POV-Ray
# include "@PKGDATADIR@/pov.nanorc"

View File

@@ -8,6 +8,7 @@ pkgdata_DATA = asm.nanorc \
nanorc.nanorc \
patch.nanorc \
perl.nanorc \
pov.nanorc \
python.nanorc \
ruby.nanorc \
sh.nanorc \

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="\*/"

View File

@@ -3,6 +3,7 @@
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 "["][^"]*[^\\]["]" "["]{3}.*[^\\]["]{3}"
color brightgreen start=""""[^"]" end=""""" start="'''[^']" end="'''"
color brightred "#.*$"

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

@@ -8,8 +8,8 @@
@c Run 'makeinfo' rather than 'texinfo-format-buffer'.
@smallbook
@set EDITION 0.1
@set VERSION 1.9.99pre1
@set UPDATED 30 Jul 2006
@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.9.99pre1
@subtitle version 2.0.0
@author Chris Allegretta
@page
@@ -34,7 +34,7 @@ editor.
This manual is part of the GNU @code{nano} distribution.@*
@sp4
Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 by Chris
Allegretta.
Allegretta
This is free documentation, see the latest version of the GNU General
Public License for copying conditions. There is NO warranty.
@@ -64,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, go to 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::
@@ -731,7 +732,7 @@ position of the cursor.
@item Interactive Replace and Spell Checker
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
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 there is no way to
@@ -792,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

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,45 +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
Version : %{version}
Release : %{release}
License : GPL
Group : Applications/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
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}/*/*
%{_mandir}/man*/*
%{_mandir}/fr/man*/*
%{_infodir}/nano.info*
%{_datadir}/locale/*/LC_MESSAGES/nano.mo
%{_datadir}/nano/*
%{_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

View File

@@ -1,3 +1,37 @@
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.
@@ -77,9 +111,9 @@
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.
0.15 generates errors upon encountering them.
* id.po: Removed unneeded duplicate plural forms, as gettext
0.15 generates errors upon encountering them.
0.15 generates errors upon encountering them.
2006-06-20 Jordi Mallach <jordi@gnu.org>
@@ -90,9 +124,9 @@
2006-06-20 David Lawrence Ramsey <pooka109@cox.net>
* fr.po: Fixed incorrect "Project-Id-Version" entry.
* hu.po: Fixed incorrect "Project-Id-Version" entry.
* it.po: Fixed incorrect "Project-Id-Version" entry.
* 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>

643
po/bg.po

File diff suppressed because it is too large Load Diff

677
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

673
po/de.po

File diff suppressed because it is too large Load Diff

664
po/es.po

File diff suppressed because it is too large Load Diff

665
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

690
po/fr.po

File diff suppressed because it is too large Load Diff

655
po/ga.po

File diff suppressed because it is too large Load Diff

692
po/gl.po

File diff suppressed because it is too large Load Diff

652
po/hu.po

File diff suppressed because it is too large Load Diff

2829
po/id.po

File diff suppressed because it is too large Load Diff

646
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

674
po/nb.po

File diff suppressed because it is too large Load Diff

642
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

653
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

@@ -2,8 +2,8 @@
/**************************************************************************
* browser.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) *
@@ -44,7 +44,7 @@ static size_t selected = 0;
static bool search_last_file = FALSE;
/* Have we gone past the last file while searching? */
/* Our main file browser function. path is the tilde-expanded path to
/* Our main file browser function. path is the tilde-expanded path we
* start browsing from. */
char *do_browser(char *path, DIR *dir)
{
@@ -57,7 +57,7 @@ char *do_browser(char *path, DIR *dir)
/* The directory we were in, if any, before backing up via
* browsing to "..". */
char *ans = NULL;
/* The last answer the user typed on the statusbar. */
/* The last answer the user typed at the statusbar prompt. */
size_t old_selected;
/* The selected file we had before the current selected file. */
@@ -203,11 +203,11 @@ char *do_browser(char *path, DIR *dir)
if (selected > filelist_len - 1)
selected = filelist_len - 1;
break;
case NANO_FIRSTFILE_ALTKEY:
case NANO_FIRSTFILE_METAKEY:
if (meta_key)
selected = 0;
break;
case NANO_LASTFILE_ALTKEY:
case NANO_LASTFILE_METAKEY:
if (meta_key)
selected = filelist_len - 1;
break;
@@ -231,7 +231,9 @@ char *do_browser(char *path, DIR *dir)
#endif
bottombars(browser_list);
if (i < 0) {
/* If the directory begins with a newline (i.e. an
* encoded null), treat it as though it's blank. */
if (i < 0 || answer[0] == '\n') {
/* We canceled. Indicate that on the statusbar, and
* blank out ans, since we're done with it. */
statusbar(_("Cancelled"));
@@ -251,6 +253,11 @@ char *do_browser(char *path, DIR *dir)
* with it. */
ans = mallocstrcpy(ans, "");
/* Convert newlines to nulls, just before we go to the
* directory. */
sunder(answer);
align(&answer);
new_path = real_dir_from_tilde(answer);
if (new_path[0] != '/') {
@@ -621,19 +628,20 @@ void browser_refresh(void)
/* The length of the file information in columns. */
int foomaxlen = 7;
/* The maximum length of the file information in
* columns: 7 for "--", "(dir)", or the file size, and
* 12 for "(parent dir)". */
* columns: seven for "--", "(dir)", or the file size,
* and 12 for "(parent dir)". */
bool dots = (COLS >= 15 && filetaillen >= longest -
foomaxlen - 1);
/* Do we put an ellipsis before the filename? Don't set
* this to TRUE if we have fewer than 15 columns (i.e. 1
* column for padding, plus 7 columns for a filename
* other than ".."). */
* this to TRUE if we have fewer than 15 columns (i.e.
* one column for padding, plus seven columns for a
* filename other than ".."). */
char *disp = display_string(filetail, dots ? filetaillen -
longest + foomaxlen + 4 : 0, longest, FALSE);
/* If we put an ellipsis before the filename, reserve 1
* column for padding, plus 7 columns for "--", "(dir)",
* or the file size, plus 3 columns for the ellipsis. */
/* If we put an ellipsis before the filename, reserve
* one column for padding, plus seven columns for "--",
* "(dir)", or the file size, plus three columns for the
* ellipsis. */
/* Start highlighting the currently selected file or
* directory. */
@@ -836,9 +844,8 @@ int filesearch_init(void)
#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;
@@ -1022,7 +1029,7 @@ void do_fileresearch(void)
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

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) *
@@ -38,9 +38,8 @@ 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. */
* 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;
@@ -575,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

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;

View File

@@ -2,8 +2,8 @@
/**************************************************************************
* cut.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) *
@@ -146,7 +146,7 @@ void do_cut_text(
if (copy_text) {
if (cutbuffer != NULL) {
/* If the cutbuffer isn't empty, save where it currently
* ends. This is where the new text will be added. */
* ends. This is where we'll add the new text. */
cb_save = cutbottom;
cb_save_len = strlen(cutbottom->data);
}
@@ -173,12 +173,12 @@ void do_cut_text(
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

View File

@@ -2,8 +2,8 @@
/**************************************************************************
* files.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) *
@@ -132,8 +132,8 @@ void open_buffer(const char *filename)
if (new_buffer)
make_new_buffer();
/* If we have a file and we're loading into a new buffer, update the
* filename. */
/* If we have a file, and we're loading into a new buffer, update
* the filename. */
if (rc != -1 && new_buffer)
openfile->filename = mallocstrcpy(openfile->filename, filename);
@@ -150,7 +150,7 @@ void open_buffer(const char *filename)
#endif
}
/* If we have a file and we're loading into a new buffer, move back
/* If we have a file, and we're loading into a new buffer, move back
* to the beginning of the first line of the buffer. */
if (rc != -1 && new_buffer) {
openfile->current = openfile->fileage;
@@ -294,8 +294,8 @@ filestruct *read_line(char *buf, filestruct *prevnode, bool
{
filestruct *fileptr = (filestruct *)nmalloc(sizeof(filestruct));
/* Convert nulls to newlines. buf_len is the string's real length
* here. */
/* Convert nulls to newlines. buf_len is the string's real
* length. */
unsunder(buf, buf_len);
assert(openfile->fileage != NULL && strlen(buf) == buf_len);
@@ -579,9 +579,9 @@ void read_file(FILE *f, const char *filename)
* "New File" if the file is missing. Otherwise, say "[filename] not
* found".
*
* Return -2 if we say "New File". Otherwise, -1 if the file isn't
* opened, 0 otherwise. The file might still have an error while
* reading with a 0 return value. *f is set to the opened file. */
* Return -2 if we say "New File", -1 if the file isn't opened, and 0
* otherwise. The file might still have an error while reading with a 0
* return value. *f is set to the opened file. */
int open_file(const char *filename, bool newfie, FILE **f)
{
struct stat fileinfo;
@@ -681,7 +681,7 @@ void do_insertfile(
int i;
const char *msg;
char *ans = mallocstrcpy(NULL, "");
/* The last answer the user typed on the statusbar. */
/* The last answer the user typed at the statusbar prompt. */
filestruct *edittop_save = openfile->edittop;
size_t current_x_save = openfile->current_x;
ssize_t current_y_save = openfile->current_y;
@@ -728,8 +728,10 @@ void do_insertfile(
"./");
/* If we're in multibuffer mode and the filename or command is
* blank, open a new buffer instead of canceling. */
if (i == -1 || (i == -2
* blank, open a new buffer instead of canceling. If the
* filename or command begins with a newline (i.e. an encoded
* null), treat it as though it's blank. */
if (i == -1 || ((i == -2 || answer[0] == '\n')
#ifdef ENABLE_MULTIBUFFER
&& !ISSET(MULTIBUFFER)
#endif
@@ -800,6 +802,11 @@ void do_insertfile(
}
#endif
/* Convert newlines to nulls, just before we insert the file
* or execute the command. */
sunder(answer);
align(&answer);
#ifndef NANO_TINY
if (execute) {
#ifdef ENABLE_MULTIBUFFER
@@ -954,13 +961,11 @@ char *get_full_path(const char *origpath)
d_there = real_dir_from_tilde(origpath);
assert(d_there != NULL);
/* If stat()ing d_there fails, assume that d_there refers to a new
* file that hasn't been saved to disk yet. Set path_only to TRUE
* if d_there refers to a directory, and FALSE otherwise. */
path_only = stat(d_there, &fileinfo) == 0 &&
S_ISDIR(fileinfo.st_mode);
path_only = (stat(d_there, &fileinfo) != -1 &&
S_ISDIR(fileinfo.st_mode));
/* If path_only is TRUE, make sure d_there ends in a slash. */
if (path_only) {
@@ -988,8 +993,7 @@ char *get_full_path(const char *origpath)
if (!path_only)
d_there_file = mallocstrcpy(NULL, last_slash + 1);
/* And remove the filename portion of the answer from
* d_there. */
/* Remove the filename portion of the answer from d_there. */
null_at(&d_there, last_slash - d_there + 1);
/* Go to the path specified in d_there. */
@@ -1021,28 +1025,29 @@ char *get_full_path(const char *origpath)
/* Finally, go back to the path specified in d_here,
* where we were before. We don't check for a chdir()
* error, since we can do nothing then. */
* error, since we can do nothing if we get one. */
chdir(d_here);
/* Free d_here, since we're done using it. */
free(d_here);
}
/* At this point, if path_only is FALSE and d_there isn't NULL,
* d_there contains the path portion of the answer and
* d_there_file contains the filename portion of the answer. If
* this is the case, tack the latter onto the end of the former.
* d_there will then contain the complete answer. */
if (!path_only && d_there != NULL) {
d_there = charealloc(d_there, strlen(d_there) +
strlen(d_there_file) + 1);
strcat(d_there, d_there_file);
}
/* Free d_there_file, since we're done using it. */
free(d_there_file);
}
/* At this point, if path_only is FALSE and d_there isn't NULL,
* d_there contains the path portion of the answer and d_there_file
* contains the filename portion of the answer. If this is the
* case, tack the latter onto the end of the former. d_there will
* then contain the complete answer. */
if (!path_only && d_there != NULL) {
d_there = charealloc(d_there, strlen(d_there) +
strlen(d_there_file) + 1);
strcat(d_there, d_there_file);
}
/* Free d_there_file, since we're done using it. */
if (d_there_file != NULL)
free(d_there_file);
return d_there;
}
@@ -1145,10 +1150,10 @@ void init_operating_dir(void)
* so that tab completion will work. */
bool check_operating_dir(const char *currpath, bool allow_tabcomp)
{
/* The char *full_operating_dir is global for mem cleanup. It
* should have already been initialized by init_operating_dir().
* Also, a relative operating directory path will only be handled
* properly if this is done. */
/* full_operating_dir is global for memory cleanup. It should have
* already been initialized by init_operating_dir(). Also, a
* relative operating directory path will only be handled properly
* if this is done. */
char *fullpath;
bool retval = FALSE;
@@ -1245,28 +1250,27 @@ int copy_file(FILE *inn, FILE *out)
return retval;
}
/* Write a file out. If f_open isn't NULL, we assume that it is a
* stream associated with the file, and we don't try to open it
/* Write a file out to disk. If f_open isn't NULL, we assume that it is
* a stream associated with the file, and we don't try to open it
* ourselves. If tmp is TRUE, we set the umask to disallow anyone else
* from accessing the file, we don't set the filename to its name, and
* we don't print out how many lines we wrote on the statusbar.
*
* tmp means we are writing a temporary file in a secure fashion. We
* use it when spell checking or dumping the file on an error.
* use it when spell checking or dumping the file on an error. If
* append is APPEND, it means we are appending instead of overwriting.
* If append is PREPEND, it means we are prepending instead of
* overwriting. If nonamechange is TRUE, we don't change the current
* filename. nonamechange is ignored if tmp is FALSE, we're appending,
* or we're prepending.
*
* append == APPEND means we are appending instead of overwriting.
* append == PREPEND means we are prepending instead of overwriting.
*
* nonamechange means don't change the current filename. It is ignored
* if tmp is FALSE or if we're appending/prepending.
*
* Return 0 on success or -1 on error. */
int write_file(const char *name, FILE *f_open, bool tmp, append_type
* Return TRUE on success or FALSE on error. */
bool write_file(const char *name, FILE *f_open, bool tmp, append_type
append, bool nonamechange)
{
int retval = -1;
bool retval = FALSE;
/* Instead of returning in this function, you should always
* merely set retval and then goto cleanup_and_exit. */
* set retval and then goto cleanup_and_exit. */
size_t lineswritten = 0;
const filestruct *fileptr = openfile->fileage;
int fd;
@@ -1566,12 +1570,13 @@ int write_file(const char *name, FILE *f_open, bool tmp, append_type
while (fileptr != NULL) {
size_t data_len = strlen(fileptr->data), size;
/* Newlines to nulls, just before we write to disk. */
/* Convert newlines to nulls, just before we write to disk. */
sunder(fileptr->data);
size = fwrite(fileptr->data, sizeof(char), data_len, f);
/* Nulls to newlines; data_len is the string's real length. */
/* Convert nulls to newlines. data_len is the string's real
* length. */
unsunder(fileptr->data, data_len);
if (size < data_len) {
@@ -1680,21 +1685,23 @@ int write_file(const char *name, FILE *f_open, bool tmp, append_type
titlebar(NULL);
}
retval = 0;
retval = TRUE;
cleanup_and_exit:
free(realname);
free(tempname);
if (tempname != NULL)
free(tempname);
return retval;
}
#ifndef NANO_TINY
/* Write a marked selection from a file out. */
int write_marked_file(const char *name, FILE *f_open, bool tmp,
/* Write a marked selection from a file out to disk. Return TRUE on
* success or FALSE on error. */
bool write_marked_file(const char *name, FILE *f_open, bool tmp,
append_type append)
{
int retval = -1;
bool retval;
bool old_modified = openfile->modified;
/* write_file() unsets the modified flag. */
bool added_magicline = FALSE;
@@ -1739,16 +1746,17 @@ int write_marked_file(const char *name, FILE *f_open, bool tmp,
/* Write the current file to disk. If the mark is on, write the current
* marked selection to disk. If exiting is TRUE, write the file to disk
* regardless of whether the mark is on, and without prompting if the
* TEMP_FILE flag is set. */
int do_writeout(bool exiting)
* TEMP_FILE flag is set. Return TRUE on success or FALSE on error. */
bool do_writeout(bool exiting)
{
int i, retval = 0;
int i;
append_type append = OVERWRITE;
char *ans;
/* The last answer the user typed on the statusbar. */
/* The last answer the user typed at the statusbar prompt. */
#ifdef NANO_EXTRA
static bool did_credits = FALSE;
#endif
bool retval = FALSE;
currshortcut = writefile_list;
@@ -1757,13 +1765,13 @@ int do_writeout(bool exiting)
FALSE);
/* Write succeeded. */
if (retval == 0)
if (retval)
return retval;
}
ans = mallocstrcpy(NULL,
#ifndef NANO_TINY
(openfile->mark_set && !exiting) ? "" :
(!exiting && openfile->mark_set) ? "" :
#endif
openfile->filename);
@@ -1778,7 +1786,7 @@ int do_writeout(bool exiting)
backupstr = ISSET(BACKUP_FILE) ? _(" [Backup]") : "";
if (openfile->mark_set && !exiting)
if (!exiting && openfile->mark_set)
msg = (append == PREPEND) ?
_("Prepend Selection to File") : (append == APPEND) ?
_("Append Selection to File") :
@@ -1809,9 +1817,11 @@ int do_writeout(bool exiting)
#endif
);
if (i < 0) {
/* If the filename or command begins with a newline (i.e. an
* encoded null), treat it as though it's blank. */
if (i < 0 || answer[0] == '\n') {
statusbar(_("Cancelled"));
retval = -1;
retval = FALSE;
break;
} else {
ans = mallocstrcpy(ans, answer);
@@ -1865,47 +1875,82 @@ int do_writeout(bool exiting)
strcasecmp(answer, "zzy") == 0) {
do_credits();
did_credits = TRUE;
retval = -1;
retval = FALSE;
break;
}
#endif
if (append == OVERWRITE && strcmp(answer,
openfile->filename) != 0) {
if (append == OVERWRITE) {
size_t answer_len = strlen(answer);
bool name_exists, different_name;
char *full_answer, *full_filename;
struct stat st;
if (!stat(answer, &st)) {
i = do_yesno_prompt(FALSE,
_("File exists, OVERWRITE ? "));
if (i == 0 || i == -1)
continue;
/* 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 reading from or writing to files not
* specified on the command line. In this case, don't
* bother showing the "Different Name" prompt. */
} else if (!ISSET(RESTRICTED) &&
/* Convert newlines to nulls, just before we get the
* full path. */
sunder(answer);
name_exists = (stat(answer, &st) != -1);
full_answer = get_full_path(answer);
full_filename = get_full_path(openfile->filename);
different_name = (strcmp((full_answer == NULL) ?
answer : full_answer, (full_filename == NULL) ?
openfile->filename : full_filename) != 0);
/* Convert nulls to newlines. answer_len is the
* string's real length. */
unsunder(answer, answer_len);
if (full_filename != NULL)
free(full_filename);
if (full_answer != NULL)
free(full_answer);
if (different_name) {
if (name_exists) {
/* If we're using restricted mode, we aren't
* allowed to save a new file under the name of
* an existing file. */
if (ISSET(RESTRICTED))
continue;
i = do_yesno_prompt(FALSE,
_("File exists, OVERWRITE ? "));
if (i == 0 || i == -1)
continue;
/* 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 reading from or writing
* to files not specified on the command line. */
} else if (!ISSET(RESTRICTED) &&
openfile->filename[0] != '\0'
#ifndef NANO_TINY
&& (exiting || !openfile->mark_set)
#endif
) {
i = do_yesno_prompt(FALSE,
_("Save file under DIFFERENT NAME ? "));
if (i == 0 || i == -1)
continue;
i = do_yesno_prompt(FALSE,
_("Save file under DIFFERENT NAME ? "));
if (i == 0 || i == -1)
continue;
}
}
}
#ifndef NANO_TINY
/* Convert newlines to nulls, just before we save the
* file. */
sunder(answer);
align(&answer);
/* Here's where we allow the selected text to be written to
* a separate file. If we're using restricted mode, this is
* disabled since it allows reading from or writing to files
* not specified on the command line. */
if (!ISSET(RESTRICTED) && !exiting && openfile->mark_set)
retval = write_marked_file(answer, NULL, FALSE, append);
else
#endif /* !NANO_TINY */
retval = write_file(answer, NULL, FALSE, append, FALSE);
* disabled, since it allows reading from or writing to
* files not specified on the command line. */
retval =
#ifndef NANO_TINY
(!ISSET(RESTRICTED) && !exiting && openfile->mark_set) ?
write_marked_file(answer, NULL, FALSE, append) :
#endif
write_file(answer, NULL, FALSE, append, FALSE);
break;
}
@@ -2005,15 +2050,19 @@ void free_chararray(char **array, size_t len)
#endif
#ifndef DISABLE_TABCOMP
/* Is the given file a directory? */
int is_dir(const char *buf)
/* Is the given path a directory? */
bool is_dir(const char *buf)
{
char *dirptr = real_dir_from_tilde(buf);
char *dirptr;
struct stat fileinfo;
int retval = (stat(dirptr, &fileinfo) != -1 &&
S_ISDIR(fileinfo.st_mode));
bool retval;
assert(buf != NULL && dirptr != buf);
assert(buf != NULL);
dirptr = real_dir_from_tilde(buf);
retval = (stat(dirptr, &fileinfo) != -1 &&
S_ISDIR(fileinfo.st_mode));
free(dirptr);
@@ -2366,8 +2415,9 @@ const char *tail(const char *foo)
}
#if !defined(NANO_TINY) && defined(ENABLE_NANORC)
/* Return $HOME/.nano_history, or NULL if we can't find the homedir.
* The string is dynamically allocated, and should be freed. */
/* Return $HOME/.nano_history, or NULL if we can't find the home
* directory. The string is dynamically allocated, and should be
* freed. */
char *histfilename(void)
{
char *nanohist = NULL;
@@ -2404,9 +2454,9 @@ void load_history(void)
;
}
} else {
/* Load a history (first the search history, then the
* replace history) from oldest to newest. Assume the last
* history entry is a blank line. */
/* Load a history list (first the search history, then the
* replace history) from the oldest entry to the newest.
* Assume the last history entry is a blank line. */
filestruct **history = &search_history;
char *line = NULL;
size_t buflen = 0;
@@ -2438,8 +2488,8 @@ bool writehist(FILE *hist, filestruct *h)
{
filestruct *p;
/* Write history from oldest to newest. Assume the last history
* entry is a blank line. */
/* Write a history list from the oldest entry to the newest. Assume
* the last history entry is a blank line. */
for (p = h; p != NULL; p = p->next) {
size_t p_len = strlen(p->data);

View File

@@ -2,8 +2,8 @@
/**************************************************************************
* global.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) *
@@ -26,7 +26,7 @@
/* Global variables. */
#ifndef NANO_TINY
sigjmp_buf jump_buf;
/* Used to return to main() or the unjustify routine in
/* Used to return to either main() or the unjustify routine in
* do_justify() after a SIGWINCH. */
bool jump_buf_main = FALSE;
/* Have we set jump_buf so that we return to main() after a
@@ -110,7 +110,7 @@ size_t quotelen;
#endif
char *answer = NULL;
/* The answer string used in the statusbar prompt. */
/* The answer string used by the statusbar prompt. */
ssize_t tabsize = -1;
/* The width of a tab in spaces. The default value is set in
@@ -558,21 +558,21 @@ void shortcut_init(bool unjustify)
nano_disabled_msg);
sc_init_one(&main_list, NANO_GOTOLINE_KEY, go_to_line_msg,
IFSCHELP(nano_gotoline_msg, FALSE, NANO_GOTOLINE_ALTKEY),
IFSCHELP(nano_gotoline_msg, FALSE, NANO_GOTOLINE_METAKEY),
NANO_GOTOLINE_FKEY, NANO_NO_KEY, VIEW,
do_gotolinecolumn_void);
sc_init_one(&main_list, NANO_REPLACE_KEY, replace_msg
#ifndef NANO_TINY
, IFSCHELP(nano_replace_msg, FALSE, NANO_ALT_REPLACE_KEY)
, IFSCHELP(nano_replace_msg, FALSE, NANO_REPLACE_METAKEY)
#else
, IFSCHELP(nano_replace_msg, TRUE, NANO_ALT_REPLACE_KEY)
, IFSCHELP(nano_replace_msg, TRUE, NANO_REPLACE_METAKEY)
#endif
, NANO_REPLACE_FKEY, NANO_NO_KEY, NOVIEW, do_replace);
#ifndef NANO_TINY
sc_init_one(&main_list, NANO_MARK_KEY, N_("Mark Text"),
IFSCHELP(nano_mark_msg, FALSE, NANO_MARK_ALTKEY),
IFSCHELP(nano_mark_msg, FALSE, NANO_MARK_METAKEY),
NANO_MARK_FKEY, NANO_NO_KEY, VIEW, do_mark);
sc_init_one(&main_list, NANO_NO_KEY, whereis_next_msg,
@@ -581,7 +581,7 @@ void shortcut_init(bool unjustify)
sc_init_one(&main_list, NANO_NO_KEY, N_("Copy Text"),
IFSCHELP(nano_copy_msg, FALSE, NANO_COPY_KEY), NANO_NO_KEY,
NANO_COPY_ALTKEY, NOVIEW, do_copy_text);
NANO_COPY_METAKEY, NOVIEW, do_copy_text);
sc_init_one(&main_list, NANO_NO_KEY, N_("Indent Text"),
IFSCHELP(nano_indent_msg, FALSE, NANO_INDENT_KEY), NANO_NO_KEY,
@@ -628,21 +628,21 @@ void shortcut_init(bool unjustify)
#ifndef DISABLE_JUSTIFY
sc_init_one(&main_list, NANO_NO_KEY, beg_of_par_msg,
IFSCHELP(nano_parabegin_msg, FALSE, NANO_PARABEGIN_ALTKEY),
NANO_NO_KEY, NANO_PARABEGIN_ALTKEY2, VIEW, do_para_begin_void);
IFSCHELP(nano_parabegin_msg, FALSE, NANO_PARABEGIN_METAKEY),
NANO_NO_KEY, NANO_PARABEGIN_METAKEY2, VIEW, do_para_begin_void);
sc_init_one(&main_list, NANO_NO_KEY, end_of_par_msg,
IFSCHELP(nano_paraend_msg, FALSE, NANO_PARAEND_ALTKEY),
NANO_NO_KEY, NANO_PARAEND_ALTKEY2, VIEW, do_para_end_void);
IFSCHELP(nano_paraend_msg, FALSE, NANO_PARAEND_METAKEY),
NANO_NO_KEY, NANO_PARAEND_METAKEY2, VIEW, do_para_end_void);
#endif
sc_init_one(&main_list, NANO_NO_KEY, first_line_msg,
IFSCHELP(nano_firstline_msg, FALSE, NANO_FIRSTLINE_ALTKEY),
NANO_NO_KEY, NANO_FIRSTLINE_ALTKEY2, VIEW, do_first_line);
IFSCHELP(nano_firstline_msg, FALSE, NANO_FIRSTLINE_METAKEY),
NANO_NO_KEY, NANO_FIRSTLINE_METAKEY2, VIEW, do_first_line);
sc_init_one(&main_list, NANO_NO_KEY, last_line_msg,
IFSCHELP(nano_lastline_msg, TRUE, NANO_LASTLINE_ALTKEY),
NANO_NO_KEY, NANO_LASTLINE_ALTKEY2, VIEW, do_last_line);
IFSCHELP(nano_lastline_msg, TRUE, NANO_LASTLINE_METAKEY),
NANO_NO_KEY, NANO_LASTLINE_METAKEY2, VIEW, do_last_line);
#ifndef NANO_TINY
sc_init_one(&main_list, NANO_NO_KEY, N_("Find Other Bracket"),
@@ -651,22 +651,22 @@ void shortcut_init(bool unjustify)
sc_init_one(&main_list, NANO_NO_KEY, N_("Scroll Up"),
IFSCHELP(nano_scrollup_msg, FALSE, NANO_SCROLLUP_KEY),
NANO_NO_KEY, NANO_SCROLLUP_ALTKEY, VIEW, do_scroll_up);
NANO_NO_KEY, NANO_SCROLLUP_METAKEY, VIEW, do_scroll_up);
sc_init_one(&main_list, NANO_NO_KEY, N_("Scroll Down"),
IFSCHELP(nano_scrolldown_msg, TRUE, NANO_SCROLLDOWN_KEY),
NANO_NO_KEY, NANO_SCROLLDOWN_ALTKEY, VIEW, do_scroll_down);
NANO_NO_KEY, NANO_SCROLLDOWN_METAKEY, VIEW, do_scroll_down);
#endif
#ifdef ENABLE_MULTIBUFFER
sc_init_one(&main_list, NANO_NO_KEY, N_("Previous File"),
IFSCHELP(nano_prevfile_msg, FALSE, NANO_PREVFILE_KEY),
NANO_NO_KEY, NANO_PREVFILE_ALTKEY, VIEW,
NANO_NO_KEY, NANO_PREVFILE_METAKEY, VIEW,
switch_to_prev_buffer_void);
sc_init_one(&main_list, NANO_NO_KEY, N_("Next File"),
IFSCHELP(nano_nextfile_msg, TRUE, NANO_NEXTFILE_KEY),
NANO_NO_KEY, NANO_NEXTFILE_ALTKEY, VIEW,
NANO_NO_KEY, NANO_NEXTFILE_METAKEY, VIEW,
switch_to_next_buffer_void);
#endif
@@ -696,13 +696,13 @@ void shortcut_init(bool unjustify)
#ifndef NANO_TINY
sc_init_one(&main_list, NANO_NO_KEY, N_("CutTillEnd"),
IFSCHELP(nano_cut_till_end_msg, TRUE, NANO_CUTTILLEND_ALTKEY),
IFSCHELP(nano_cut_till_end_msg, TRUE, NANO_CUTTILLEND_METAKEY),
NANO_NO_KEY, NANO_NO_KEY, NOVIEW, do_cut_till_end);
#endif
#ifndef DISABLE_JUSTIFY
sc_init_one(&main_list, NANO_NO_KEY, fulljstify_msg,
IFSCHELP(nano_fulljustify_msg, FALSE, NANO_FULLJUSTIFY_ALTKEY),
IFSCHELP(nano_fulljustify_msg, FALSE, NANO_FULLJUSTIFY_METAKEY),
NANO_NO_KEY, NANO_NO_KEY, NOVIEW, do_full_justify);
#endif
@@ -737,13 +737,13 @@ void shortcut_init(bool unjustify)
NANO_NO_KEY, VIEW, NULL);
sc_init_one(&whereis_list, NANO_FIRSTLINE_KEY, first_line_msg,
IFSCHELP(nano_firstline_msg, FALSE, NANO_FIRSTLINE_ALTKEY),
NANO_FIRSTLINE_FKEY, NANO_FIRSTLINE_ALTKEY2, VIEW,
IFSCHELP(nano_firstline_msg, FALSE, NANO_FIRSTLINE_METAKEY),
NANO_FIRSTLINE_FKEY, NANO_FIRSTLINE_METAKEY2, VIEW,
do_first_line);
sc_init_one(&whereis_list, NANO_LASTLINE_KEY, last_line_msg,
IFSCHELP(nano_lastline_msg, FALSE, NANO_LASTLINE_ALTKEY),
NANO_LASTLINE_FKEY, NANO_LASTLINE_ALTKEY2, VIEW, do_last_line);
IFSCHELP(nano_lastline_msg, FALSE, NANO_LASTLINE_METAKEY),
NANO_LASTLINE_FKEY, NANO_LASTLINE_METAKEY2, VIEW, do_last_line);
sc_init_one(&whereis_list, NANO_TOOTHERSEARCH_KEY, replace_msg,
IFSCHELP(nano_replace_msg, FALSE, NANO_NO_KEY),
@@ -755,12 +755,12 @@ void shortcut_init(bool unjustify)
#ifndef DISABLE_JUSTIFY
sc_init_one(&whereis_list, NANO_PARABEGIN_KEY, beg_of_par_msg,
IFSCHELP(nano_parabegin_msg, FALSE, NANO_PARABEGIN_ALTKEY),
NANO_NO_KEY, NANO_PARABEGIN_ALTKEY2, VIEW, do_para_begin_void);
IFSCHELP(nano_parabegin_msg, FALSE, NANO_PARABEGIN_METAKEY),
NANO_NO_KEY, NANO_PARABEGIN_METAKEY2, VIEW, do_para_begin_void);
sc_init_one(&whereis_list, NANO_PARAEND_KEY, end_of_par_msg,
IFSCHELP(nano_paraend_msg, FALSE, NANO_PARAEND_ALTKEY),
NANO_NO_KEY, NANO_PARAEND_ALTKEY2, VIEW, do_para_end_void);
IFSCHELP(nano_paraend_msg, FALSE, NANO_PARAEND_METAKEY),
NANO_NO_KEY, NANO_PARAEND_METAKEY2, VIEW, do_para_end_void);
#endif
#ifndef NANO_TINY
@@ -791,7 +791,7 @@ void shortcut_init(bool unjustify)
#ifndef DISABLE_JUSTIFY
sc_init_one(&whereis_list, NANO_FULLJUSTIFY_KEY, fulljstify_msg,
IFSCHELP(nano_fulljustify_msg, FALSE, NANO_FULLJUSTIFY_ALTKEY),
IFSCHELP(nano_fulljustify_msg, FALSE, NANO_FULLJUSTIFY_METAKEY),
NANO_NO_KEY, NANO_NO_KEY, NOVIEW, do_full_justify);
#endif
@@ -812,13 +812,13 @@ void shortcut_init(bool unjustify)
NANO_NO_KEY, VIEW, NULL);
sc_init_one(&replace_list, NANO_FIRSTLINE_KEY, first_line_msg,
IFSCHELP(nano_firstline_msg, FALSE, NANO_FIRSTLINE_ALTKEY),
NANO_FIRSTLINE_FKEY, NANO_FIRSTLINE_ALTKEY2, VIEW,
IFSCHELP(nano_firstline_msg, FALSE, NANO_FIRSTLINE_METAKEY),
NANO_FIRSTLINE_FKEY, NANO_FIRSTLINE_METAKEY2, VIEW,
do_first_line);
sc_init_one(&replace_list, NANO_LASTLINE_KEY, last_line_msg,
IFSCHELP(nano_lastline_msg, FALSE, NANO_LASTLINE_ALTKEY),
NANO_LASTLINE_FKEY, NANO_LASTLINE_ALTKEY2, VIEW, do_last_line);
IFSCHELP(nano_lastline_msg, FALSE, NANO_LASTLINE_METAKEY),
NANO_LASTLINE_FKEY, NANO_LASTLINE_METAKEY2, VIEW, do_last_line);
/* TRANSLATORS: Try to keep this at most 12 characters. */
sc_init_one(&replace_list, NANO_TOOTHERSEARCH_KEY, N_("No Replace"),
@@ -868,13 +868,13 @@ void shortcut_init(bool unjustify)
NANO_NO_KEY, VIEW, NULL);
sc_init_one(&replace_list_2, NANO_FIRSTLINE_KEY, first_line_msg,
IFSCHELP(nano_firstline_msg, FALSE, NANO_FIRSTLINE_ALTKEY),
NANO_FIRSTLINE_FKEY, NANO_FIRSTLINE_ALTKEY2, VIEW,
IFSCHELP(nano_firstline_msg, FALSE, NANO_FIRSTLINE_METAKEY),
NANO_FIRSTLINE_FKEY, NANO_FIRSTLINE_METAKEY2, VIEW,
do_first_line);
sc_init_one(&replace_list_2, NANO_LASTLINE_KEY, last_line_msg,
IFSCHELP(nano_lastline_msg, FALSE, NANO_LASTLINE_ALTKEY),
NANO_LASTLINE_FKEY, NANO_LASTLINE_ALTKEY2, VIEW, do_last_line);
IFSCHELP(nano_lastline_msg, FALSE, NANO_LASTLINE_METAKEY),
NANO_LASTLINE_FKEY, NANO_LASTLINE_METAKEY2, VIEW, do_last_line);
#ifndef NANO_TINY
sc_init_one(&replace_list_2, NANO_PREVLINE_KEY, prev_history_msg,
@@ -903,13 +903,13 @@ void shortcut_init(bool unjustify)
NANO_NO_KEY, VIEW, NULL);
sc_init_one(&gotoline_list, NANO_FIRSTLINE_KEY, first_line_msg,
IFSCHELP(nano_firstline_msg, FALSE, NANO_FIRSTLINE_ALTKEY),
NANO_FIRSTLINE_FKEY, NANO_FIRSTLINE_ALTKEY2, VIEW,
IFSCHELP(nano_firstline_msg, FALSE, NANO_FIRSTLINE_METAKEY),
NANO_FIRSTLINE_FKEY, NANO_FIRSTLINE_METAKEY2, VIEW,
do_first_line);
sc_init_one(&gotoline_list, NANO_LASTLINE_KEY, last_line_msg,
IFSCHELP(nano_lastline_msg, FALSE, NANO_LASTLINE_ALTKEY),
NANO_LASTLINE_FKEY, NANO_LASTLINE_ALTKEY2, VIEW, do_last_line);
IFSCHELP(nano_lastline_msg, FALSE, NANO_LASTLINE_METAKEY),
NANO_LASTLINE_FKEY, NANO_LASTLINE_METAKEY2, VIEW, do_last_line);
sc_init_one(&gotoline_list, NANO_TOOTHERWHEREIS_KEY,
N_("Go To Text"), IFSCHELP(nano_whereis_msg, FALSE,
@@ -1082,12 +1082,12 @@ void shortcut_init(bool unjustify)
NANO_NO_KEY, VIEW, NULL);
sc_init_one(&help_list, NANO_NO_KEY, first_line_msg,
IFSCHELP(nano_firstline_msg, FALSE, NANO_FIRSTLINE_ALTKEY),
NANO_NO_KEY, NANO_FIRSTLINE_ALTKEY2, VIEW, NULL);
IFSCHELP(nano_firstline_msg, FALSE, NANO_FIRSTLINE_METAKEY),
NANO_NO_KEY, NANO_FIRSTLINE_METAKEY2, VIEW, NULL);
sc_init_one(&help_list, NANO_NO_KEY, last_line_msg,
IFSCHELP(nano_lastline_msg, TRUE, NANO_LASTLINE_ALTKEY),
NANO_NO_KEY, NANO_LASTLINE_ALTKEY2, VIEW, NULL);
IFSCHELP(nano_lastline_msg, TRUE, NANO_LASTLINE_METAKEY),
NANO_NO_KEY, NANO_LASTLINE_METAKEY2, VIEW, NULL);
#endif
#ifndef DISABLE_SPELLER
@@ -1136,16 +1136,16 @@ void shortcut_init(bool unjustify)
NANO_NEXTPAGE_FKEY, NANO_NO_KEY, VIEW, NULL);
sc_init_one(&browser_list, NANO_NO_KEY, first_file_msg,
IFSCHELP(nano_firstfile_msg, FALSE, NANO_FIRSTFILE_ALTKEY),
NANO_NO_KEY, NANO_FIRSTFILE_ALTKEY2, VIEW, NULL);
IFSCHELP(nano_firstfile_msg, FALSE, NANO_FIRSTFILE_METAKEY),
NANO_NO_KEY, NANO_FIRSTFILE_METAKEY2, VIEW, NULL);
sc_init_one(&browser_list, NANO_NO_KEY, last_file_msg,
IFSCHELP(nano_lastfile_msg, FALSE, NANO_LASTFILE_ALTKEY),
NANO_NO_KEY, NANO_LASTFILE_ALTKEY2, VIEW, NULL);
IFSCHELP(nano_lastfile_msg, FALSE, NANO_LASTFILE_METAKEY),
NANO_NO_KEY, NANO_LASTFILE_METAKEY2, VIEW, NULL);
/* TRANSLATORS: Try to keep this at most 12 characters. */
sc_init_one(&browser_list, NANO_GOTODIR_KEY, N_("Go To Dir"),
IFSCHELP(nano_gotodir_msg, FALSE, NANO_GOTODIR_ALTKEY),
IFSCHELP(nano_gotodir_msg, FALSE, NANO_GOTODIR_METAKEY),
NANO_GOTODIR_FKEY, NANO_NO_KEY, VIEW, NULL);
free_shortcutage(&whereis_file_list);
@@ -1165,13 +1165,13 @@ void shortcut_init(bool unjustify)
NANO_NO_KEY, VIEW, NULL);
sc_init_one(&whereis_file_list, NANO_FIRSTFILE_KEY, first_file_msg,
IFSCHELP(nano_firstfile_msg, FALSE, NANO_FIRSTFILE_ALTKEY),
NANO_FIRSTFILE_FKEY, NANO_FIRSTFILE_ALTKEY2, VIEW,
IFSCHELP(nano_firstfile_msg, FALSE, NANO_FIRSTFILE_METAKEY),
NANO_FIRSTFILE_FKEY, NANO_FIRSTFILE_METAKEY2, VIEW,
do_first_file);
sc_init_one(&whereis_file_list, NANO_LASTFILE_KEY, last_file_msg,
IFSCHELP(nano_lastfile_msg, FALSE, NANO_LASTFILE_ALTKEY),
NANO_LASTFILE_FKEY, NANO_LASTFILE_ALTKEY2, VIEW, do_last_file);
IFSCHELP(nano_lastfile_msg, FALSE, NANO_LASTFILE_METAKEY),
NANO_LASTFILE_FKEY, NANO_LASTFILE_METAKEY2, VIEW, do_last_file);
#ifndef NANO_SMALL
sc_init_one(&whereis_file_list, NANO_NO_KEY, case_sens_msg,

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) *
@@ -51,7 +51,7 @@ void do_help(void (*refresh_func)(void))
/* The current shortcut list. */
#endif
const char *ptr;
/* The current line of help text. */
/* The current line of the help text. */
size_t old_line = (size_t)-1;
/* The line we were on before the current line. */
@@ -159,11 +159,11 @@ void do_help(void (*refresh_func)(void))
if (line + (editwinrows - 1) < last_line)
line++;
break;
case NANO_FIRSTLINE_ALTKEY:
case NANO_FIRSTLINE_METAKEY:
if (meta_key)
line = 0;
break;
case NANO_LASTLINE_ALTKEY:
case NANO_LASTLINE_METAKEY:
if (meta_key) {
if (line + (editwinrows - 1) < last_line)
line = last_line - (editwinrows - 1);
@@ -493,7 +493,7 @@ void help_init(void)
}
/* Yucky sentinel values that we can't handle a better
* way. */
if (s->metaval == NANO_ALT_SPACE && entries == 1) {
if (s->metaval == NANO_META_SPACE && entries == 1) {
char *space_ptr = display_string(_("Space"), 0, 13,
FALSE);
@@ -609,8 +609,8 @@ size_t help_line_len(const char *ptr)
while (*(ptr + retval) != '\0' && *(ptr + retval) != '\n')
retval += move_mbright(ptr + retval, 0);
/* If the entire line doesn't go more than 1 column 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 + 1)
retval = retval_save;

View File

@@ -2,8 +2,8 @@
/**************************************************************************
* move.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) *
@@ -272,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;
@@ -371,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

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) *
@@ -47,7 +47,7 @@ static bool no_rcfiles = FALSE;
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. */
/* Create a new filestruct node. Note that we do not set prevnode->next
* to the new line. */
@@ -168,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)
{
@@ -221,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;
@@ -523,7 +523,7 @@ void print_view_warning(void)
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
@@ -547,10 +547,11 @@ 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;
@@ -605,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);
@@ -698,7 +698,7 @@ void mouse_init(void)
/* 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). */
* translatable (i.e. the flag names). */
void print_opt_full(const char *shortflag
#ifdef HAVE_GETOPT_LONG
, const char *longflag
@@ -924,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;
@@ -946,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())
@@ -1553,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 ASCII control characters. */
/* If allow_cntrls is TRUE, convert nulls and newlines
* properly. */
if (allow_cntrls) {
/* Null to newline, if needed. */
if (output[i] == '\0')
@@ -1579,7 +1584,7 @@ void do_output(char *output, size_t output_len, bool allow_cntrls)
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();
@@ -1922,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);

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) *
@@ -50,7 +50,7 @@
#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))
@@ -412,54 +412,54 @@ typedef struct rcoption {
#define NANO_CONTROL_8 127
/* Meta key sequences. */
#define NANO_ALT_SPACE ' '
#define NANO_ALT_LPARENTHESIS '('
#define NANO_ALT_RPARENTHESIS ')'
#define NANO_ALT_PLUS '+'
#define NANO_ALT_COMMA ','
#define NANO_ALT_MINUS '-'
#define NANO_ALT_PERIOD '.'
#define NANO_ALT_SLASH '/'
#define NANO_ALT_0 '0'
#define NANO_ALT_6 '6'
#define NANO_ALT_9 '9'
#define NANO_ALT_LCARET '<'
#define NANO_ALT_EQUALS '='
#define NANO_ALT_RCARET '>'
#define NANO_ALT_QUESTION '?'
#define NANO_ALT_BACKSLASH '\\'
#define NANO_ALT_RBRACKET ']'
#define NANO_ALT_CARET '^'
#define NANO_ALT_UNDERSCORE '_'
#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'
#define NANO_ALT_LCURLYBRACKET '{'
#define NANO_ALT_PIPE '|'
#define NANO_ALT_RCURLYBRACKET '}'
#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. */
@@ -480,22 +480,22 @@ typedef struct rcoption {
#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_GOTOLINE_METAKEY NANO_META_G
#define NANO_GOTODIR_KEY NANO_CONTROL_7
#define NANO_GOTODIR_FKEY KEY_F(13)
#define NANO_GOTODIR_ALTKEY NANO_ALT_G
#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_ALT_W
#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_ALT_R
#define NANO_REGEXP_KEY NANO_META_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_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)
@@ -503,8 +503,8 @@ typedef struct rcoption {
#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_ALT_CARET
#define NANO_COPY_ALTKEY NANO_ALT_6
#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
@@ -513,20 +513,20 @@ typedef struct rcoption {
#define NANO_SPELL_FKEY KEY_F(12)
#define NANO_FIRSTLINE_KEY NANO_PREVPAGE_KEY
#define NANO_FIRSTLINE_FKEY NANO_PREVPAGE_FKEY
#define NANO_FIRSTLINE_ALTKEY NANO_ALT_BACKSLASH
#define NANO_FIRSTLINE_ALTKEY2 NANO_ALT_PIPE
#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_ALTKEY NANO_FIRSTLINE_ALTKEY
#define NANO_FIRSTFILE_ALTKEY2 NANO_FIRSTLINE_ALTKEY2
#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_ALTKEY NANO_ALT_SLASH
#define NANO_LASTLINE_ALTKEY2 NANO_ALT_QUESTION
#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_ALTKEY NANO_LASTLINE_ALTKEY
#define NANO_LASTFILE_ALTKEY2 NANO_LASTLINE_ALTKEY2
#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)
@@ -537,42 +537,42 @@ typedef struct rcoption {
#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_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_ALT_RCURLYBRACKET
#define NANO_UNINDENT_KEY NANO_ALT_LCURLYBRACKET
#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_ALT_A
#define NANO_PREPEND_KEY NANO_ALT_P
#define NANO_PREVFILE_KEY NANO_ALT_LCARET
#define NANO_PREVFILE_ALTKEY NANO_ALT_COMMA
#define NANO_NEXTFILE_KEY NANO_ALT_RCARET
#define NANO_NEXTFILE_ALTKEY NANO_ALT_PERIOD
#define NANO_BRACKET_KEY NANO_ALT_RBRACKET
#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_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_UNDERSCORE
#define NANO_SCROLLDOWN_ALTKEY NANO_ALT_EQUALS
#define NANO_CUTTILLEND_ALTKEY NANO_ALT_T
#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_ALTKEY NANO_ALT_LPARENTHESIS
#define NANO_PARABEGIN_ALTKEY2 NANO_ALT_9
#define NANO_PARABEGIN_METAKEY NANO_META_LPARENTHESIS
#define NANO_PARABEGIN_METAKEY2 NANO_META_9
#define NANO_PARAEND_KEY NANO_CONTROL_O
#define NANO_PARAEND_ALTKEY NANO_ALT_RPARENTHESIS
#define NANO_PARAEND_ALTKEY2 NANO_ALT_0
#define NANO_PARAEND_METAKEY NANO_META_RPARENTHESIS
#define NANO_PARAEND_METAKEY2 NANO_META_0
#define NANO_FULLJUSTIFY_KEY NANO_CONTROL_U
#define NANO_FULLJUSTIFY_ALTKEY NANO_ALT_J
#define NANO_VERBATIM_KEY NANO_ALT_V
#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
@@ -581,26 +581,26 @@ typedef struct rcoption {
#define TOGGLE_NO_KEY -2
/* Normal toggles. */
#define TOGGLE_NOHELP_KEY NANO_ALT_X
#define TOGGLE_CONST_KEY NANO_ALT_C
#define TOGGLE_MORESPACE_KEY NANO_ALT_O
#define TOGGLE_SMOOTH_KEY NANO_ALT_S
#define TOGGLE_WHITESPACE_KEY NANO_ALT_P
#define TOGGLE_SYNTAX_KEY NANO_ALT_Y
#define TOGGLE_SMARTHOME_KEY NANO_ALT_H
#define TOGGLE_AUTOINDENT_KEY NANO_ALT_I
#define TOGGLE_CUTTOEND_KEY NANO_ALT_K
#define TOGGLE_WRAP_KEY NANO_ALT_L
#define TOGGLE_TABSTOSPACES_KEY NANO_ALT_Q
#define TOGGLE_BACKUP_KEY NANO_ALT_B
#define TOGGLE_MULTIBUFFER_KEY NANO_ALT_F
#define TOGGLE_MOUSE_KEY NANO_ALT_M
#define TOGGLE_NOCONVERT_KEY NANO_ALT_N
#define TOGGLE_SUSPEND_KEY NANO_ALT_Z
#define TOGGLE_CASE_KEY NANO_ALT_C
#define TOGGLE_BACKWARDS_KEY NANO_ALT_B
#define TOGGLE_DOS_KEY NANO_ALT_D
#define TOGGLE_MAC_KEY NANO_ALT_M
#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

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,7 +28,7 @@
#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. */
static size_t statusbar_pww = (size_t)-1;
@@ -328,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 ASCII control characters. */
/* If allow_cntrls is TRUE, convert nulls and newlines
* properly. */
if (allow_cntrls) {
/* Null to newline, if needed. */
if (output[i] == '\0')
@@ -999,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. */

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,7 @@
#include "nano.h"
/* Public external variables. See global.c for their descriptions. */
/* All external variables. See global.c for their descriptions. */
#ifndef NANO_TINY
extern sigjmp_buf jump_buf;
extern bool jump_buf_main;
@@ -141,7 +141,7 @@ 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);
@@ -160,7 +160,7 @@ 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);
@@ -242,14 +242,14 @@ 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
@@ -271,7 +271,7 @@ 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);
@@ -310,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)
@@ -324,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
@@ -339,7 +340,7 @@ 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
@@ -361,7 +362,7 @@ 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 (*refresh_func)(void));
void do_help_void(void);
@@ -373,7 +374,7 @@ 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);
@@ -417,7 +418,7 @@ void do_scroll_down(void);
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
@@ -488,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));
@@ -545,7 +546,7 @@ 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);
@@ -566,9 +567,9 @@ void parse_rcfile(FILE *rcstream
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);
@@ -622,7 +623,7 @@ 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
@@ -679,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);
@@ -727,7 +728,7 @@ void dump_filestruct(const filestruct *inptr);
void dump_filestruct_reverse(void);
#endif
/* Public functions in winio.c. */
/* 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);

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) *
@@ -97,8 +97,7 @@ static const 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
@@ -204,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))

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
@@ -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;
@@ -511,7 +511,7 @@ void do_research(void)
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
@@ -977,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,
@@ -1342,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) *
@@ -63,7 +63,7 @@ void do_mark(void)
}
#endif /* !NANO_TINY */
/* Delete one character. */
/* Delete the character under the cursor. */
void do_delete(void)
{
bool do_refresh = FALSE;
@@ -150,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 ||
@@ -191,11 +191,11 @@ void do_tab(void)
}
#ifndef NANO_TINY
/* Indent or unindent the current line (or all lines covered by the mark
* if the mark is on) len columns, depending on whether len is positive
* or negative. If the TABS_TO_SPACES flag is set, indent/unindent by
* len spaces. Otherwise, indent/unindent by (len / tabsize) tabs and
* (len % tabsize) spaces. */
/* 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;
@@ -2197,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
@@ -2205,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
@@ -2301,7 +2301,7 @@ 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;
@@ -2311,14 +2311,14 @@ void do_spell(void)
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;
@@ -2446,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) *
@@ -46,7 +46,7 @@ int digits(size_t n)
}
/* 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) {
@@ -147,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);
@@ -232,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;

View File

@@ -2,8 +2,8 @@
/**************************************************************************
* winio.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) *
@@ -30,8 +30,8 @@
#include <ctype.h>
static int *key_buffer = NULL;
/* The keystroke buffer, containing all the keystrokes we have
* at a given point. */
/* The keystroke buffer, containing all the keystrokes we
* haven't handled yet at a given point. */
static size_t key_buffer_len = 0;
/* The length of the keystroke buffer. */
static int statusblank = 0;
@@ -484,6 +484,7 @@ int parse_kbinput(WINDOW *win, bool *meta_key, bool *func_key)
retval = get_control_kbinput(
parse_escape_seq_kbinput(win,
*kbinput));
break;
}
}
@@ -662,6 +663,8 @@ int parse_kbinput(WINDOW *win, bool *meta_key, bool *func_key)
fprintf(stderr, "parse_kbinput(): kbinput = %d, meta_key = %s, func_key = %s, escapes = %d, byte_digits = %d, retval = %d\n", *kbinput, *meta_key ? "TRUE" : "FALSE", *func_key ? "TRUE" : "FALSE", escapes, byte_digits, retval);
#endif
free(kbinput);
/* Return the result. */
return retval;
}
@@ -1441,9 +1444,12 @@ void unparse_kbinput(char *output, size_t output_len)
return;
input = (int *)nmalloc(output_len * sizeof(int));
for (i = 0; i < output_len; i++)
input[i] = (int)output[i];
unget_input(input, output_len);
free(input);
}
@@ -1534,6 +1540,8 @@ int *parse_verbatim_kbinput(WINDOW *win, size_t *kbinput_len)
/* Put back the first keystroke. */
unget_input(kbinput, 1);
free(kbinput);
/* Get the complete sequence, and save the characters in it as the
* result. */
*kbinput_len = get_key_buffer_len();
@@ -1974,7 +1982,7 @@ char *display_string(const char *buf, size_t start_col, size_t len, bool
assert(alloc_len >= index + 1);
/* Null terminate converted. */
/* Null-terminate converted. */
converted[index] = '\0';
/* Make sure converted takes up no more than len columns. */
@@ -2095,8 +2103,9 @@ void titlebar(const char *path)
if (!newfie) {
size_t lenpt = strlenpt(path), start_col;
/* Don't set dots to TRUE if we have fewer than 8 columns (i.e.
* 1 column for padding, plus 7 columns for a filename). */
/* Don't set dots to TRUE if we have fewer than eight columns
* (i.e. one column for padding, plus seven columns for a
* filename). */
dots = (space >= 8 && lenpt >= space);
if (dots) {
@@ -2513,9 +2522,12 @@ void edit_draw(const filestruct *fileptr, const char *converted, int
* expanded location of the end of the match minus
* the expanded location of the beginning of the
* page. */
paintlen = (end_line != fileptr) ? -1 :
actual_x(converted, strnlenpt(fileptr->data,
endmatch.rm_eo) - start);
if (end_line != fileptr)
paintlen = -1;
else
paintlen = actual_x(converted,
strnlenpt(fileptr->data,
endmatch.rm_eo) - start);
mvwaddnstr(edit, line, 0, converted, paintlen);
@@ -2639,8 +2651,11 @@ void edit_draw(const filestruct *fileptr, const char *converted, int
* Otherwise, paintlen is the expanded location of the end
* of the mark minus the expanded location of the beginning
* of the mark. */
paintlen = (bot_x >= endpos) ? -1 : strnlenpt(fileptr->data,
bot_x) - (x_start + start);
if (bot_x >= endpos)
paintlen = -1;
else
paintlen = strnlenpt(fileptr->data, bot_x) - (x_start +
start);
/* If x_start is before the beginning of the page, shift
* paintlen x_start characters to compensate, and put
@@ -3124,12 +3139,10 @@ void do_replace_highlight(bool highlight, const char *word)
if (highlight)
wattron(edit, reverse_attr);
#ifdef HAVE_REGEX_H
/* This is so we can show zero-length regex matches. */
/* This is so we can show zero-length matches. */
if (word_len == 0)
waddch(edit, ' ');
else
#endif
waddnstr(edit, word, actual_x(word, y));
if (word_len > y)
@@ -3199,8 +3212,8 @@ void do_credits(void)
"",
"",
"",
"(c) 1999-2004 Chris Allegretta",
"(c) 2005-2006 David Lawrence Ramsey",
"(c) 1999, 2000, 2001, 2002, 2003, 2004 Chris Allegretta",
"(c) 2005, 2006, 2007 David Lawrence Ramsey",
"",
"",
"",