Compare commits

...

86 Commits

Author SHA1 Message Date
David Lawrence Ramsey
fa1497b38f GNU nano 1.3.1
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1615 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2004-01-09 23:22:02 +00:00
David Lawrence Ramsey
6481c3fb2d update the year in do_credits() too
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1614 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2004-01-09 23:06:54 +00:00
David Lawrence Ramsey
f28f50e6b5 update the copyright years on the source files to 2004 (adding a few
minor comment tweaks so that all the source files are covered)


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1613 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2004-01-09 23:04:55 +00:00
David Lawrence Ramsey
f8ddf31bfb remove now-unnecessary initialization of kbinput in main()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1612 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2004-01-09 22:38:09 +00:00
David Lawrence Ramsey
9e45a47054 add formatting and typo fixes for NEWS, and add version numbers (minus
"-cvs" suffixes) to the manpages


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1611 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2004-01-06 17:12:28 +00:00
David Lawrence Ramsey
9b5bd42978 minor comment fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1610 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2004-01-06 01:45:04 +00:00
David Lawrence Ramsey
47162bc428 add verbatim input question and a few minor fixes to the faq
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1609 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2004-01-05 19:01:53 +00:00
David Lawrence Ramsey
e190ff30f2 find all beginning-of-line and/or end-of-line regexes once per line, not
just the zero-length ones; this fixes multiple replaces occurring with
them in conjunction with "*"


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1608 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2004-01-03 21:42:25 +00:00
David Lawrence Ramsey
afb75f22b2 clean up a bit of weirdness in do_replace_loop()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1606 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-12-29 02:15:23 +00:00
David Lawrence Ramsey
32559294e8 comment addition, minor cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1605 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-12-28 03:56:04 +00:00
David Lawrence Ramsey
c2946fbe09 typo fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1603 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-12-24 21:47:28 +00:00
David Lawrence Ramsey
2a4ab6d29d and wrap the zero-length regex displaying code in a HAVE_REGEX_H #define
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1602 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-12-24 08:29:49 +00:00
David Lawrence Ramsey
76c4b33ef4 display a highlighted space for zero-length regex matches, so that we
have a reference point when we're replacing them


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1601 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-12-24 08:17:54 +00:00
David Lawrence Ramsey
8213850df6 add DB's overhaul of the cutting code and related file-writing code, his
fixes to check_operating_dir(), and a few minor cleanups and fixes of
mine


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1600 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-12-24 08:03:54 +00:00
David Lawrence Ramsey
f427694400 the last of the low-level input overhaul: make the global shortcut list
use NANO_NO_KEY to represent no key value, add the NANO_HISTORY_KEY
sentinel value, add support for many more escape sequences for those
terminals that generate them, add DB's extensibility tweaks to
do_yesno(), make ASCII 128 act like Backspace when -d is used, add
various cleanups to the low-level input functions, and make the last of
the low-level input routines use the new low-level input functions


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1599 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-12-24 03:33:09 +00:00
David Lawrence Ramsey
18394ac621 fix search/replace misbehaviors for good (I hope)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1598 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-12-24 03:13:44 +00:00
David Lawrence Ramsey
d29146040b minor redundancy fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1597 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-11-30 02:22:22 +00:00
David Lawrence Ramsey
a593f538dd another low-level input overhaul: split out low-level mouse input,
remove references to ncurses key values from the global shortcut list
and restructure it to specify function key values when needed, hook up
verbatim input to the edit window, and do a few miscellaneous cleanups


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1596 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-11-28 19:47:42 +00:00
David Lawrence Ramsey
45cfbece4c replace the old fix for infinite regex replacement loops with something
that works better and is less hackish


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1595 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-11-28 16:04:24 +00:00
Jordi Mallach
895e65ce1a Updated Romanian translation by Laurentiu Buzdugan.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1594 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-11-25 11:30:05 +00:00
David Lawrence Ramsey
4dca76f2e9 add check for glib 2.x
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1592 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-11-20 00:15:52 +00:00
David Lawrence Ramsey
82a8f91392 minor tabbing fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1591 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-11-20 00:14:16 +00:00
David Lawrence Ramsey
bc503c80db don't prompt if we're saving only a selection of a file under a
different name


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1590 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-11-19 23:59:14 +00:00
Jordi Mallach
a5d8e54ab9 Added Danilo Segan (Serbian).
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1589 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-11-06 10:47:44 +00:00
Jordi Mallach
10dd6c7714 Added Serbian translation (Danilo Segan).
Recoded ChangeLog to UTF-8.


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1586 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-11-06 10:39:38 +00:00
David Lawrence Ramsey
4e25410680 minor cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1585 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-11-05 22:04:08 +00:00
David Lawrence Ramsey
637f6e50c0 update nano.spec.in for the 1.3 branch
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1584 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-11-04 18:34:44 +00:00
David Lawrence Ramsey
7776ef9149 work around problem with Backspace's generating ASCII 127 on Linux
sometimes


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1583 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-11-04 18:32:35 +00:00
David Lawrence Ramsey
8fa1976796 allow WHEREIS_NEXT_KEY to be used in view mode
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1582 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-11-03 00:13:21 +00:00
David Lawrence Ramsey
7127857924 prompt before saving the current file under a different name
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1581 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-10-31 17:58:44 +00:00
David Lawrence Ramsey
b7cb6a38c8 avoid infinite loop when doing a forward regex replace of "$"
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1580 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-10-31 17:53:38 +00:00
Jordi Mallach
b78649b664 Patch from Martin-Eric Racine <q-funk@pp.fishpool.fi> to accept "Yy" and "Nn" as well as the Finnish letters in Yes/No prompts.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1579 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-10-30 13:10:32 +00:00
David Lawrence Ramsey
95114c1bc4 Back to CVS
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1577 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-10-23 01:09:43 +00:00
David Lawrence Ramsey
133f7b16ea GNU nano 1.3.0
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1575 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-10-22 17:15:12 +00:00
David Lawrence Ramsey
8bbd1eb89f minor comment fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1574 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-10-22 16:27:18 +00:00
David Lawrence Ramsey
f6cf4a7d7c avoid having duplicate case values when some key values are missing
(assume ERR is -1 when doing so)


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1573 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-10-22 16:20:47 +00:00
David Lawrence Ramsey
13dfdb2493 document the setting of EXTRA_DIST
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1572 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-10-22 15:37:13 +00:00
David Lawrence Ramsey
699412175d set EXTRA_DIST so that 'make dist" and "make distcheck" actually include
the manual pages and their HTML versions


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1571 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-10-22 15:36:15 +00:00
Jordi Mallach
3a420879d6 Create html manpages when building nano.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1570 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-10-19 23:30:48 +00:00
David Lawrence Ramsey
c1f630e914 SunOS 5.9 doesn't define KEY_RESIZE either
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1569 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-10-18 20:21:52 +00:00
Jordi Mallach
5f34d6e3b0 Updated Catalan translation.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1568 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-10-18 10:59:55 +00:00
David Lawrence Ramsey
25307257c9 Changelog update: fix problem with KEY_RESIZE's not being defined on
SunOS 5.7 and 5.8


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1567 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-10-10 04:42:48 +00:00
David Lawrence Ramsey
bb7e2cbfad fix problem with KEY_RESIZE's not being defined on SunOS 5.7 and 5.8
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1566 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-10-10 04:38:17 +00:00
David Lawrence Ramsey
f5b256bb9f miscellaneous #define cleanups
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1565 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-10-03 20:26:25 +00:00
David Lawrence Ramsey
4dcd070cdf fix problems with the marking highlight's being drawn improperly in some
cases


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1564 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-10-03 04:20:28 +00:00
David Lawrence Ramsey
0362c58b37 add missing set of parentheses
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1563 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-09-30 03:31:56 +00:00
David Lawrence Ramsey
99bede34e7 have nano handle SIGHUP/SIGTERM properly when it's suspended
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1562 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-09-29 07:21:11 +00:00
David Lawrence Ramsey
2dd7ed14bc a few last missing minor bits of DB's refactored display code
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1561 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-09-29 05:15:24 +00:00
David Lawrence Ramsey
f03c78b382 DB's minor efficiency tweak for do_mark()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1560 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-09-28 21:26:49 +00:00
David Lawrence Ramsey
5dcba30395 a few missing minor bits of DB's refactored display code
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1559 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-09-28 19:15:18 +00:00
David Lawrence Ramsey
7bf00de84f set fileformat back to 0 after reading in a file to prevent erroneous
conversion messages from showing up when we read in more files


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1558 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-09-23 04:25:05 +00:00
David Lawrence Ramsey
a3831ab2b8 minor cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1557 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-09-22 16:26:40 +00:00
David Lawrence Ramsey
f0b7dcaa99 remove abcd(); the low-level input overhaul left it unused
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1556 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-09-22 15:46:21 +00:00
David Lawrence Ramsey
9eff7465d9 all our memmove() function calls work on char*'s, so we can use the
charmove() macro for them instead


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1554 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-09-16 02:04:00 +00:00
David Lawrence Ramsey
da8fd8f894 a few minor fixes for low-level keyboard input
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1553 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-09-16 01:22:31 +00:00
David Lawrence Ramsey
5ffbec56f6 port over some of DB's refactored display code, most importantly the
display_string() function, and convert some parts of nano to use it


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1552 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-09-16 01:16:49 +00:00
Jordi Mallach
b23554fa25 2003-09-12 Jordi Mallach <jordi@gnu.org>
* POTFILES.in: Updated path to sources.


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1551 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-09-12 00:25:04 +00:00
David Lawrence Ramsey
1356a0a72d change enum "topmidbotnone" to "topmidnone", since we no longer have a
BOTTOM option


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1550 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-09-10 20:31:02 +00:00
David Lawrence Ramsey
c97acfb2d6 since the SAMELINEWRAP flag is only used in nano.c, convert it to a
static int there and free up space for one more flag; also make a few
misc. cleanups involving #ifdefs


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1549 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-09-10 20:08:00 +00:00
David Lawrence Ramsey
14509a3aa2 capitalize one last rcfile message I missed before
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1548 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-09-10 17:15:12 +00:00
David Lawrence Ramsey
7f47d42289 don't let the user type in ASCII 127 at the statusbar prompt
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1547 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-09-08 18:01:49 +00:00
David Lawrence Ramsey
d91ab6e912 DB's movement code overhaul (smooth paging, etc.) with a few of my fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1546 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-09-07 23:57:24 +00:00
David Lawrence Ramsey
dc9c40a56d Brand Huntsman's improved nanorc regexes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1545 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-09-07 23:54:57 +00:00
David Lawrence Ramsey
e0a9f50a64 fix slang compilation problem
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1544 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-09-07 05:32:24 +00:00
Jordi Mallach
298b975264 Major package reorganization:
- Move code to src/.
- Move docs to doc/:
  + texi doc to doc/texinfo/
  + original manual pages to doc/man/
  + translated manual pages to doc/man/xx/


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1543 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-09-07 00:44:12 +00:00
David Lawrence Ramsey
417b03a4c3 make sure the "historylog" option isn't included in tiny mode
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1542 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-09-06 21:44:37 +00:00
David Lawrence Ramsey
21cc550752 minor nanorc.sample fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1541 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-09-06 19:04:02 +00:00
David Lawrence Ramsey
3bd9628b38 minor rcfile fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1540 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-09-06 05:09:32 +00:00
David Lawrence Ramsey
74ea836fcc slightly simplify paragraph searching code
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1539 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-09-04 23:22:47 +00:00
David Lawrence Ramsey
8faf305d0c add paragraph searching ability
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1538 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-09-04 20:25:29 +00:00
Jordi Mallach
954b00de74 Updated French translation by Jean-Philippe Guérard.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1537 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-09-01 21:54:27 +00:00
David Lawrence Ramsey
79c849a4a9 fix indentation of a label
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1536 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-09-01 16:34:12 +00:00
David Lawrence Ramsey
cb7ee0e491 one last documentation fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1535 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-08-31 17:08:59 +00:00
David Lawrence Ramsey
aaad3af523 documentation updates
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1534 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-08-31 16:44:10 +00:00
David Lawrence Ramsey
ec290f2385 fix bug where calculated filename space on the titlebar is short by one
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1533 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-08-30 19:05:40 +00:00
David Lawrence Ramsey
27863665ca fix Meta-X's turning the keypad off under ncurses
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1532 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-08-29 21:31:37 +00:00
David Lawrence Ramsey
ba6fd42b3c move line wrapping toggle entry to global.c
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1531 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-08-23 21:16:02 +00:00
David Lawrence Ramsey
e04970675f Wouter van Hemel's "Where Is Next" patch
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1530 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-08-23 21:11:06 +00:00
Jordi Mallach
222feaa953 Updated Turkish translation by A. Murat EREN.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1526 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-08-17 19:41:07 +00:00
David Lawrence Ramsey
10187610f8 minor changelog fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1525 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-08-17 05:40:45 +00:00
David Lawrence Ramsey
a9cebd8054 remove unneeded breaks at the ends of default: clauses
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1524 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-08-17 03:31:57 +00:00
David Lawrence Ramsey
4d7c260270 low-level input overhaul
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1523 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-08-17 02:48:43 +00:00
Chris Allegretta
f3fee5db91 Update the ChangeLog too
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1522 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-08-12 02:40:47 +00:00
Chris Allegretta
21599f805b Update stable/development series maintainership in the AUTHORS file
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1519 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-08-12 02:37:01 +00:00
Chris Allegretta
6954f05276 add 1.3 fork info, change version to 1.2.99-cvs
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1518 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-08-12 02:34:03 +00:00
Chris Allegretta
194c26f879 Back to CVS
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1517 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2003-08-12 02:01:17 +00:00
50 changed files with 7082 additions and 4484 deletions

View File

@@ -18,10 +18,7 @@ depcomp
install-sh
missing
mkinstalldirs
nano
nano.info
nano.spec
stamp-h
stamp-h.in
stamp-h1
texinfo.tex

13
AUTHORS
View File

@@ -4,7 +4,13 @@ editor. Please see the ChangeLog for specific changes by author.
-------------------------------------------------------------------------
Chris Allegretta <chrisa@asty.org>
* Main program author and maintainer.
* Original program author, stable series maintainer.
David Lawrence Ramsey <pooka_regent@sluggy.net>
* Development series maintainer. Multiple buffer support,
operating dir (-o) option, bug fixes for display routines,
wrapping code, spelling fixes, const mode and various other
fixes.
Jordi Mallach <jordi@sindominio.net>
* Debian package maintainer, fellow bug squasher.
@@ -25,11 +31,6 @@ Rocco Corsi <rocco.corsi@sympatico.ca>
findnextstr and search-related functions, various display and
file handling fixes.
David Lawrence Ramsey <pooka_regent@sluggy.net>
* Multiple buffer support, operating dir (-o) option, bug fixes
for display routines, wrapping code, spelling fixes, const
mode and various other fixes.
David Benbennick <dbenbenn@math.cornell.edu>
* Wrap and justify bugfixes/enhancements, new color syntax
code, memleak fixes and other miscellaneous fixes.

355
ChangeLog
View File

@@ -1,3 +1,358 @@
GNU nano 1.3.1 - 2004.01.09
- General:
- Minor overhaul and abstraction of the lowest level of mouse
input, mostly adapted from the code in do_mouse() that handles
clicking on the shortcut list. New function do_mouseinput();
changes to do_mouse(). (DLR) David Benbennick: Add a few
efficiency/extensibility tweaks.
- Modify the shortcut structure so that instead of having two
miscellaneous key values (misc1 and misc2), there is one key
value reserved for function keys (func_key) and one
miscellaneous key value (misc), and tweak the
shortcut-handling code to deal with this. These changes allow
NANO_OPEN(PREV|NEXT)_ALTKEY to work properly when added to the
shortcut entries for NANO_OPEN(PREV|NEXT)_KEY. Also remove
the values in the shortcut list and elsewhere that were made
redundant by the low-level input overhaul, use toupper()
instead of subtracting 32 from values for greater code
readability, and eliminate use of adding 32 to values when
testing for toggles, as get_kbinput_accepted() converts toggle
values to lowercase before returning them. (DLR)
- Remove the workarounds for missing KEY_UP and KEY_DOWN, as
they appear to be holdovers of the old way of denoting the
search history shortcuts; if they aren't defined, KEY_LEFT and
KEY_RIGHT probably shouldn't work either, and all four appear
to be standard keys in termcap/terminfo in any case. Add new
special sentinel key values NANO_NO_KEY (for no shortcut key)
and NANO_HISTORY_KEY (for search history keys, both Up and
Down), modify the shortcut list to use them, and modify the
shortcut display routines to handle them. Also modify the
shortcut list code to not treat non-control character values
of val as Meta-sequences, and fix dependencies on that
behavior. Also rename several variables: "alt" -> "meta",
"altval" -> "metaval". (DLR)
- Hook up the verbatim input functions so that verbatim input
can be used in the edit window. New function
do_verbatim_input(); changes to do_char(). (DLR) Additional
minor tweaks to do_char() by David Benbennick.
- Clarify the description of the --rebinddelete option. (DLR)
- Miscellaneous comment tweaks, and copyright year updates in
the comments and in do_credits(). (DLR)
- cut.c:
- Overhaul to increase efficiency and add various cleanups.
Changes to add_to_cutbuffer(), cut_marked_segment(), and
do_uncut_text(). (David Benbennick)
- files.c:
check_operating_dir()
- Add an assert to ensure that full_operatingdir isn't NULL,
a fix for reporting nonexistent (incomplete) directory names
as being outside the operating directory when tab completion
is being used, and cosmetic cleanups. (David Benbennick)
copy_file()
- New function containing part of the functionality formerly in
do_writeout(). (David Benbennick)
do_writeout()
- Prompt the user if we're trying to save an existing file (and
not just a selection of it) under a different name. (DLR;
suggested by Jean-Philippe Guérard)
open_prevfile(), open_nextfile()
- For consistency with the rest of the multibuffer code, change
"No more open files" to "No more open file buffers". (DLR)
do_browser()
- Allow '?' to open the help browser, and readd the ability of
'G'/'g' to open the "Go to Directory" prompt (which was
erroneously removed before), for compatibility with Pico.
(DLR)
- global.c:
shortcut_init()
- Allow WHEREIS_NEXT_KEY to be used in view mode. (DLR)
- nano.c:
do_int_spell_fix()
- Add comment explaining why findnextstr() is called with
bracket_mode set to TRUE even though we aren't doing a bracket
search. (DLR)
do_para_operation()
- Convert to use the new low-level input functions. (DLR)
main()
- Remove unused variable option_index. (DLR)
- Fix omission of NANO_NO_KEY in the shortcut list scanning
code. (DLR)
- Remove now-unnecessary initialization of kbinput. (DLR)
- nano.h:
- Comment additions and cosmetic tweaks. (DLR)
- search.c:
findnextstr(), do_replace_loop()
- Fix potential infinite loops and other misbehavior when doing
beginning-of-line or end-of-line regex replacements ("^", "$",
and "^$"). Add a no_sameline parameter to findnextstr(), and
set it in the calls in do_replace_loop() when such regexes are
found, so that such regexes are only found once per line.
Also change length_change from a long to an int; size_t is
unsuitable due to its being unsigned. (DLR; found by Mike
Frysinger and DLR) David Benbennick: Add a few minor cleanups
to do_replace_loop().
- winio.c:
get_kbinput(), get_accepted_kbinput()
- Don't pass in the value of the REBIND_DELETE flag anymore.
Instead, handle it directly inside the functions. (DLR)
get_accepted_kbinput()
- Translate Ctrl-8 into NANO_DELETE_KEY (or NANO_BACKSPACE_KEY
if REBIND_DELETE is set), since it apparently is generated
sometimes even when keypad() is TRUE. (DLR)
- Translate KEY_SLEFT into NANO_BACK_KEY and KEY_SRIGHT into
NANO_FORWARD_KEY, since they are sometimes generated by
Shift-Left and Shift-Right. (DLR)
get_ascii_kbinput()
- Tweak to make it slightly more readable. (DLR)
get_verbatim_kbinput()
- Modify to take an extra parameter indicating if we should
interpret ASCII codes or not. (DLR)
get_escape_seq_kbinput()
- Expand to deal with more broken terminals that don't generate
keypad values. Support the escape sequences for Insert,
Delete, Home, End, PageUp, and PageDown, [arrow key],
Ctrl-[arrow key], and Shift-[arrow key] when needed in the
Linux console, the FreeBSD console, the Hurd console, xterm,
rxvt, and Eterm. Also, use get_verbatim_kbinput(), with ASCII
interpretation disabled, to read in the sequences. (DLR)
get_skip_tilde_kbinput()
- Removed, as it is unneeded due to the expansion of
get_escape_seq_kbinput(). (DLR)
get_mouseinput()
- Modify to take an extra parameter indicating if we should
ungetch() the key equivalents of shortcuts we click on or not.
(DLR)
nanogetstr()
- Properly interpret the Meta key value in misc if we hit it at
the statusbar prompt. (DLR)
do_yesno()
- Add a few efficiency/extensibility tweaks. (David Benbennick)
- Convert to use the new low-level input functions, and remove
two last hardcoded widths left after the above tweaks. (DLR)
do_replace_highlight()
- Display a highlighted space if the word length is zero, so
that we can see zero-length regexes we're replacing. (DLR;
suggested by Mike Frysinger)
- configure.ac:
- Check for glib 2.x and then 1.2.x if we need glib. (DLR)
- faq.html:
- Add question explaining how verbatim input works, as well as a
few minor fixes. (DLR)
- nano.1, nanorc.5:
- Add nano version numbers (minus any "-cvs" suffixes). (DLR)
- nano.spec.in:
- Update for the 1.3 branch of nano. (DLR)
- NEWS:
- Reformat so all lines are limited to 72 columns, add a few
typo fixes, and make a few minor cosmetic cleanups. (DLR)
- THANKS:
- Add Danilo Segan, for the Serbian translation.
GNU nano 1.3.0 - 2003.10.22
- General:
- Complete overhaul and abstraction of the lowest level of
keyboard input, mostly rewritten but incorporating a few bits
from the old functions and adding support for Pico's Esc Esc
[three-digit decimal ASCII code] input method. New functions
get_kbinput(), get_verbatim_kbinput(), get_ignored_kbinput(),
get_accepted_kbinput(), get_ascii_kbinput(),
get_escape_seq_kbinput(), and get_skip_tilde_kbinput(). These
should work properly on FreeBSD (due to code and input
provided by Lee Nelson and Wouter van Hemel, respectively).
(DLR)
- The -K/--keypad command line/rcfile option has been removed,
and keypad() is now always TRUE. keypad_on() in winio.c and
the check for _use_keypad in configure.ac have both been
removed. (DLR)
- The -d/--rebinddelete command line/rcfile option, equivalent
to Pico's -d, has been added. It is intended to work around
the problem with Backspace/Delete confusion on some terminals,
notably FreeBSD; if your Backspace key acts like Delete, this
option will fix that. (DLR)
- Remove unneeded breaks at the ends of default: clauses. (DLR)
- Add the ability to repeat the last search without prompting
via Meta-W, and move the line wrapping toggle to Meta-L. New
function do_research(). (Wouter van Hemel)
- Added the ability to move to the beginning or end of the
paragraph, which Pico has via ^W^W (previous paragraph)
and ^W^O (next paragraph). Modifications to do_justify(),
new functions do_para_operation(), do_para_begin(), and
do_para_end(). Note that the last three functions are
disabled if justification is disabled. (DLR)
- Make sure the "historylog" option isn't included at all if
NANO_SMALL is defined. (DLR)
- Source reorganization: move code to src/, docs to doc/.
(Jordi)
- Translation updates (see po/ChangeLog for details).
- Since SAMELINEWRAP is only used in nano.c, make it a static
variable in nano.c instead of a flag, and surround all
wrap_reset() calls with DISABLE_WRAPPING #ifdefs. (DLR)
- Change enum "topmidbotnone" to "topmidnone", as there's no
BOTTOM option anymore. (DLR)
- Split out the string-displaying routine from update_line()
into a separate function; convert the edit window, statusbar
display, and statusbar prompt to use it, so that they can all
properly display control characters and tabs; free and NULL
the backup search string in one place in the search code
instead of several; and do some other minor refactoring of
related display functions to simplify them. New functions
mark_order() and display_string(); changes to actual_x(),
strnlenpt(), blank_bottombars(), blank_edit(),
get_page_start(), edit_add(), update_line(), statusbar(), and
do_replace_highlight(). (David Benbennick) DLR: Add minor
cosmetic tweaks, add missing NANO_SMALL #ifdef around the text
for a backwards search in the refactored code, and enclose
dump_buffer() and dump_buffer_reverse() in one ENABLE_DEBUG
#ifdef instead of two.
- Convert memmove() function calls to charmove() macro calls, as
the former all work on char*'s. (DLR)
- Miscellaneous #define cleanups: only include the prototype for
and definition of wrap_at if wrapping and/or justification are
enabled, remove duplicate wrap_at prototype, and define
DISABLE_MOUSE if NCURSES_MOUSE_VERSION isn't defined in nano.h
instead of all over the code. (DLR)
- Autogenerate the html versions of the manpages in the
Makefile.am's in doc/man/, make sure that they're properly
installed via "make dist", and make sure that "make distcheck"
works too. Also be sure to set EXTRA_DIST properly. (Jordi,
DLR and Jeff Bailey)
- files.c:
read_file()
- After we've read in a file and possibly converted it from
DOS/Mac format, set fileformat back to 0 to prevent erroneous
conversion messages when we read other files in. (DLR)
do_browser()
- Some of the Pico compatibility options in the file browser
that don't work properly for current Pico have been removed.
Backspace, 'g', 'l', 'q', and 'u' are invalid. 'd' deletes
the highlighted file, and 'r' renames the highlighted file;
neither of these are implemented. (DLR)
- global.c:
toggle_init()
- Change the message for the line wrapping toggle from "Auto
wrap" to "Auto line wrap", to more clearly associate it with
Meta-L. (DLR)
shortcut_init()
- Change multibuffer-enabled references to
opening/closing/toggling the previous/next loaded file to
toggling/switching to/closing the previous/next file buffer,
for consistency with other references. (DLR)
- nano.c:
window_init()
- Set keypad() to TRUE regardless of whether PDCurses is being
used, as Meta-X apparently turns it off even under ncurses.
(DLR)
do_backspace()
- Vastly simplify, and remove dependency on page_up(). (David
Benbennick)
help_init()
- Document the support for Esc Esc [character]'s being
interpreted as Ctrl-[character], and the support for Pico's
Esc Esc [three-digit decimal ASCII code] input method. (DLR)
do_mark()
- Toggle MARK_ISSET() at the beginning of the function instead
of setting it in one place and unsetting it in another place.
(David Benbennick)
do_suspend()
- Use handle_hupterm() to handle SIGHUP and SIGTERM so we can
properly deal with them while nano is suspended. (DLR; problem
found by David Benbennick)
abcd()
- Removed, as it's unneeded due to the low-level input overhaul.
(DLR)
- nano.h:
- Define KEY_RESIZE and KEY_SUSPEND as -1 when slang is used, as
slang has no equivalent of either. When nano is compiled with
slang support, resizing the window doesn't generate
KEY_RESIZE, and pressing Ctrl-Z to suspend nano at the Linux
console with keypad(TRUE) generates Ctrl-Z instead of
KEY_SUSPEND, both unlike ncurses. (DLR)
- Define KEY_RESIZE as -1 if it isn't defined, as it isn't in
the curses library included with SunOS 5.7-5.9. Also define
KEY_SUSPEND as -1 if it isn't defined, in case it isn't in
more than just Slang. (DLR)
- Define all potentially missing keys as different negative
values (ERR is -1, so use -2, -3, etc.) so as to avoid having
duplicate case values when keys are missing. (DLR)
- move.c:
- Remove unneeded inclusion of stdio.h, make various cleanups,
and preserve the cursor's coordinates when paging up and down.
(David Benbennick) DLR: Readd the ability to behave the old
way while paging, make it so the new behavior is only used in
smooth-scrolling mode, and modify page_down() to always go
down a full page (even when there's less than one page of text
left) for consistency.
page_up()
- Removed due to rewrite of movement functions. (David
Benbennick)
- proto.h:
- Surround the do_prev_word() and do_next_word() prototypes with
NANO_SMALL #ifdefs, since the actual functions aren't included
in tiny mode. (DLR)
- rcfile.c:
parse_colors()
- Generate an error if we try to use a bright background color
in a nanorc file. (DLR; found by Brand Huntsman)
- Make sure all rcfile error messages are capitalized, for
consistency. (DLR)
- winio.c:
get_verbatim_kbinput()
- Fix a silly memory corruption bug that would occur when trying
to read a sequence of more than one key verbatim. (DLR)
get_accepted_kbinput()
Handle Ctrl-{ to Ctrl-~ correctly, and drop support for
converting Esc ` to Esc Space, since making Meta-[key]
correspond to Ctrl-[key] in all cases is inconsistent due to
the different natures of Contol and Meta key sequences. (DLR)
do_first_line()
- Call edit_update() with TOP instead of CENTER; both do the
same thing, but it works faster with TOP. (DLR)
nanogetstr()
- Don't let the user type in ASCII 127 at the statusbar prompt.
(DLR)
titlebar()
- Fix problem with the available space for a filename on the
titlebar's being short by one. (DLR)
edit_add()
- Fix problems with the marking highlight's being drawn
improperly in some cases. (DLR)
edit_update()
- Tweak for efficiency and remove the fix_editbot() call. (David
Benbennick)
do_credits()
- Update the copyright years to "1999-2003", to match those
given in the rest of the code. (DLR)
- configure.ac:
- Change instances of "GNU Nano" to "GNU nano" for consistency.
(DLR)
- nano.1, nanorc.5, nano.texi:
- Change all instances of $SYSCONFDIR to SYSCONFDIR, since
SYSCONFDIR is set at compile time and can't be overridden by
setting SYSCONFDIR in the environment. (David Benbennick)
- Remove -K/--keypad, and document -d/--rebinddelete. (DLR)
- Document the support for Esc Esc [character]'s being
interpreted as Ctrl-[character], and the support for Pico's
Esc Esc [three-digit decimal ASCII code] input method, if
applicable. (DLR)
- French translation by Jean-Philippe Guérard.
- nano.1.html, nanorc.5.html:
- Regenerated. (DLR)
- nanorc.sample:
- Remove duplicate "historylog" entry, remove "keypad" entry,
and add "rebinddelete" entry. (DLR)
- Update and add comments to the regexes for nanorc files.
(Brand Huntsman)
- Fix an attempt at a bright background color in the sample Java
source regexes. (DLR)
- Since tabs are shown as groups of spaces, they are interpreted
as such when parsed by color regexes. Accordingly, simplify
regexes that handle both spaces and tabs to just handle
spaces, as the results are the same. (DLR)
- AUTHORS
- Updated to show 1.2/1.3 maintainers.
- 1.3 tree forks here
GNU nano 1.2.2 - 2003.08.11
- General:
- Translation updates (see po/ChangeLog for details).

View File

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

883
NEWS

File diff suppressed because it is too large Load Diff

1
THANKS
View File

@@ -28,6 +28,7 @@ Sergey A. Ribalchenko <fisher@obu.ck.ua> Russian, Ukrainian translator
Michel Robitaille <robitail@IRO.UMontreal.CA> French translator
Christian Rose <menthos@menthos.com> Swedish translator
Stig E Sandoe <stig@ii.uib.no> Norwegian bokmål translator
Danilo Segan <dsegan@gmx.net> Serbian translator
Keld Simonsen <keld@dkuug.dk> Danish translator
Guus Sliepen <guus@nl.linux.org> Dutch translator
Cezary Sliwa <sliwa@cft.edu.pl> Polish translator

4
TODO
View File

@@ -3,16 +3,18 @@ TODO file (? means the feature may be implemented, but not definitely)
For version 1.4:
- UTF-8 support.
- Support for Pico's paragraph searching ability.
- Support for Pico's paragraph searching ability. [DONE]
- Undo/Redo key?
- Rebindable keys?
- Keystroke to implement "Add next sequence as raw" like vi's ^V.
[DONE for edit window, needs to be done for statusbar prompt]
- Spell check selected text only.
- Make "To line" (^W^T) and "Read from Command" (^R^X) re-enter their
parent menu when their keystroke is entered a second time (^W^T^T and
(^R^X^X)(requires figuring out when to keep cursor pos and when not
to).
- Fix resetstatuspos global which we shouldn't have.
- Rewrite the nano FAQ in SGML.
Old requests:

View File

@@ -2,25 +2,25 @@
#
# Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
#
# GNU Nano is free software; you can redistribute it and/or modify
# GNU nano is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# GNU Nano is distributed in the hope that it will be useful,
# GNU nano is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Nano; if not, write to the Free Software
# along with GNU nano; if not, write to the Free Software
# Foundation, Inc.
# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# $Id$
AC_INIT([GNU Nano], [1.2.2], [nano-devel@gnu.org], [nano])
AC_CONFIG_SRCDIR([nano.c])
AC_INIT([GNU nano], [1.3.1], [nano-devel@gnu.org], [nano])
AC_CONFIG_SRCDIR([src/nano.c])
AM_INIT_AUTOMAKE
AM_CONFIG_HEADER([config.h:config.h.in])
@@ -273,14 +273,13 @@ dnl Checks for functions
AC_CHECK_FUNCS(snprintf vsnprintf strcasecmp strncasecmp)
if test "x$ac_cv_func_snprintf" = "xno" -o "xac_cv_func_vsnprintf" = "xno"
then
AM_PATH_GLIB(1.2.4,,
[AC_MSG_ERROR([
AM_PATH_GLIB_2_0(2.0.0,,
[AM_PATH_GLIB(1.2.4,,
[AC_MSG_ERROR([
*** snprintf() and/or vsnprintf() not found. GLIB not found either.
*** You need both snprintf() and vsnprintf(). Alternatively you can
*** install the GLIB library which can be found at ftp://ftp.gtk.org/.])],
glib)
glib_cflags=`$GLIB_CONFIG --cflags glib`
glib_libs=`$GLIB_CONFIG --libs glib`
glib)])
fi
dnl Checks for typedefs, structures, and compiler characteristics.
@@ -330,20 +329,6 @@ AC_CHECK_LIB([$CURSES_LIB_NAME], use_default_colors, AC_DEFINE(HAVE_USE_DEFAULT_
if test x$slang_support != xyes; then
AC_CHECK_LIB([$CURSES_LIB_NAME], wresize, AC_DEFINE(HAVE_WRESIZE, 1, [Define this if you have the wresize function in your ncurses-type library.]))
AC_CHECK_LIB([$CURSES_LIB_NAME], resizeterm, AC_DEFINE(HAVE_RESIZETERM, 1, [Define this if you have the resizeterm function in your ncurses-type library.]))
# Taken from aumix (can't tell from the variable name?)
AC_CACHE_CHECK([for private member _use_keypad in WINDOW],
aumix_cv_struct_window_usekeypad,
[AC_TRY_COMPILE([#ifdef HAVE_NCURSES_H
#include <ncurses.h>
#else
#include <curses.h>
#endif], [WINDOW w; w._use_keypad;],
aumix_cv_struct_window_usekeypad=yes, aumix_cv_struct_window_usekeypad=no)])
if test $aumix_cv_struct_window_usekeypad = yes; then
AC_DEFINE(HAVE_USEKEYPAD, 1, [Define this if your curses lib has the _use_keypad flag.])
fi
fi
dnl Parse any configure options
@@ -352,14 +337,25 @@ LIBS="$LIBS $CURSES_LIB"
AC_SUBST(CURSES_LIB)
if test "x$glib_cflags" != "x"
if test "x$GLIB_CFLAGS" != "x"
then
CFLAGS="$CFLAGS $glib_cflags"
CFLAGS="$CFLAGS $GLIB_CFLAGS"
fi
if test "x$glib_libs" != "x"
if test "x$GLIB_LIBS" != "x"
then
LDFLAGS="$LDFLAGS $glib_libs"
LDFLAGS="$LDFLAGS $GLIB_LIBS"
fi
AC_CONFIG_FILES([Makefile m4/Makefile po/Makefile.in nano.spec])
AC_CONFIG_FILES([
Makefile
doc/Makefile
doc/man/Makefile
doc/man/fr/Makefile
doc/texinfo/Makefile
m4/Makefile
po/Makefile.in
src/Makefile
nano.spec
])
AC_OUTPUT

2
doc/.cvsignore Normal file
View File

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

3
doc/Makefile.am Normal file
View File

@@ -0,0 +1,3 @@
SUBDIRS = man texinfo
EXTRA_DIST = faq.html nanorc.sample

View File

@@ -29,7 +29,8 @@
<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. How do I make a .nanorc file that nano will read when I start it?</a></p></blockquote>
<a href="#3.8">3.8. Tell me more about this verbatim input stuff!</a><br>
<a href="#3.9">3.9. How do I make a .nanorc file that nano will read when I start it?</a></p></blockquote>
<h2><a href="#4">4. Running</a></h2>
<blockquote><p><a href="#4.1">4.1. Ack! My backspace/delete/enter/double bucky/meta key doesn't seem to work! What can I do?</a><br>
<a href="#4.2">4.2. Nano crashes when I type &lt;insert keystroke here&gt;!</a><br>
@@ -78,7 +79,7 @@
<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.2.2. 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 1.3.1. 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.2/nano.1.html">here</a>.</p></blockquote>
<hr width="100%">
@@ -157,10 +158,14 @@
<b>--enable-multibuffer</b> Enables having multiple file buffers open
<b>--enable-all</b> Enables all of the above features</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.12 or newer, and you must have configured nano with <b>--enable-multibuffer</b> or <b>--enable-extra</b> (use nano -V to check). Then when you want to enable inserting a file into its own buffer instead of into the current file, just hit <b>Meta-F</b>, then insert the file as normal with <b>^R</b>. If you always want files to be loaded into their own buffers, use the <b>--multibuffer</b> or <b>-F</b> flag when you invoke nano. </p>
<blockquote><p>To use multiple file buffers, you must be using nano 1.1.12 or newer, and you must have configured nano with <b>--enable-multibuffer</b> or <b>--enable-extra</b> (use nano -V to check). Then when you want to enable inserting a file into its own buffer instead of into the current file, just hit <b>Meta-F</b>, then insert the file as normal with <b>^R</b>. If you always want files to be loaded into their own buffers, use the <b>--multibuffer</b> or <b>-F</b> flag when you invoke nano.</p>
<p>You can move between the buffers you have open with the <b>Meta-&lt;</b> and <b>Meta-&gt;</b> keys, or more easily with <b>Meta-,</b> and <b>Meta-.</b> (clear as mud, right? =-). When you have more than one file buffer open, the ^X shortcut will say &quot;Close&quot;, instead of the normal &quot;Exit&quot; when only one buffer is open.</p></blockquote>
<h2><a name="3.8"></a>3.8. How do I make a .nanorc file that nano will read when I start it?</h2>
<blockquote>It's not hard at all! But, your version of nano must have been compiled with <b>--enable-nanorc</b>, and again must be version 1.1.12 or newer (use nano -V to check your version and compiled features). Then simply copy the <b>nanorc.sample</b> that came with the nano source or your nano package (most likely in /usr/doc/nano) to .nanorc in your home directory. If you didn't get one, the syntax is simple. Flags are turned on and off by using the word <b>set</b> and the getopt_long flag for the feature, for example &quot;set pico&quot; or &quot;set nowrap&quot;.</blockquote>
<h2><a name="3.8"></a>3.8. Tell me more about this verbatim input stuff!</h2>
<blockquote><p>To use verbatim input, you must be using nano 1.3.1 or newer. When you want to insert a literal character into the file you're editing, such as a control character that nano usually treats as a command, first press <b>Meta-V</b>. (If you're not at a prompt, you'll get the message &quot;Verbatim input&quot;.) Then press the key(s) that generate the character you want.</p>
<p>Alternatively, you can press <b>Meta-V</b> and then type a three-digit ASCII code from 000 to 255, and the character with that ASCII code will be inserted instead.</p>
<p><b>NOTE:</b> Verbatim input doesn't work at prompts right now. This will be fixed soon.</p></blockquote>
<h2><a name="3.9"></a>3.9. How do I make a .nanorc file that nano will read when I start it?</h2>
<blockquote><p>It's not hard at all! But, your version of nano must have been compiled with <b>--enable-nanorc</b>, and again must be version 1.1.12 or newer (use nano -V to check your version and compiled features). Then simply copy the <b>nanorc.sample</b> that came with the nano source or your nano package (most likely in /usr/doc/nano) to .nanorc in your home directory. If you didn't get one, the syntax is simple. Flags are turned on and off by using the word <b>set</b> and the getopt_long flag for the feature, for example &quot;set nowrap&quot; or &quot;set suspend&quot;.</p></blockquote>
<hr width="100%">
<h1><a name="4"></a>4. Running</h1>
<h2><a name="4.1"></a>4.1. Ack! My backspace/delete/enter/double bucky/meta key doesn't seem to work! What can I do?</h2>
@@ -195,7 +200,7 @@
<p><b>my_hdr X-Composer: nano x.y.z</b></p>
<p>Again, replace x.y.z with the version of nano you use.</p></blockquote>
<h2><a name="4.8"></a>4.8. I've compiled nano with color support, but I don't see any color when I run it!</h2>
<blockquote><p>If you want nano to actually use color, you have to specify the color configurations you want it to use in your .nanorc. Some example configurations are in the <b>nanorc.sample</b> that comes with the nano source or your nano package. See Section <a href="#3.8">3.8</a>.</p></blockquote>
<blockquote><p>If you want nano to actually use color, you have to specify the color configurations you want it to use in your .nanorc. Some example configurations are in the <b>nanorc.sample</b> that comes with the nano source or your nano package. See Section <a href="#3.9">3.9</a>.</p></blockquote>
<hr width="100%">
<h1><a name="5"></a>5. Internationalization</h1>
<h2><a name="5.1"></a>5.1. There's no translation for my language!</h2>
@@ -236,8 +241,9 @@
<h2><a name="8"></a>8. ChangeLog</h2>
<blockquote>
<p>
2003/12/31 - Added question about the new verbatim input function, and a few minor fixes. Removed reference to &quot;set pico&quot; (DLR).<br>
2003/07/02 - Added question about nano's not showing color when it's compiled with color support (DLR; suggested by Jordi).<br>
2003/02/23 - Updated RPM links for nano 1.2.x. (DLR).<br>
2003/02/23 - Updated RPM links for nano 1.2.x (DLR).<br>
2003/01/16 - Split section 4.5 into 4.5a and 4.5b for search string behavior. Added --enable-all docs.<br>
2002/12/28 - More misc. fixes (David Benbennick, DLR).<br>
2002/10/25 - Misc. fixes and link updates (DLR).<br>

4
doc/man/.cvsignore Normal file
View File

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

12
doc/man/Makefile.am Normal file
View File

@@ -0,0 +1,12 @@
SUBDIRS = fr
man_MANS = nano.1 nanorc.5
BUILT_SOURCES = nano.1.html nanorc.5.html
nano.1.html: nano.1
cat $< | groff -t -mandoc -Thtml > $@
nanorc.5.html: nanorc.5
cat $< | groff -t -mandoc -Thtml > $@
EXTRA_DIST = $(man_MANS) $(BUILT_SOURCES)

4
doc/man/fr/.cvsignore Normal file
View File

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

10
doc/man/fr/Makefile.am Normal file
View File

@@ -0,0 +1,10 @@
man_MANS = nano.1 nanorc.5
BUILT_SOURCES = nano.1.html nanorc.5.html
nano.1.html: nano.1
cat $< | groff -t -mandoc -Thtml > $@
nanorc.5.html: nanorc.5
cat $< | groff -t -mandoc -Thtml > $@
EXTRA_DIST = $(man_MANS) $(BUILT_SOURCES)

229
doc/man/fr/nano.1 Normal file
View File

@@ -0,0 +1,229 @@
.\" Hey, EMACS: -*- nroff -*-
.\" nano.1 is copyright (C) 1999, 2000, 2001, 2002, 2003 by
.\" Chris Allegretta <chrisa@asty.org>
.\"
.\" (c) 2003 Jean-Philippe Guérard <jean-philippe.guerard@corbeaunoir.org>
.\" pour l'adaptation française
.\"
.\" This is free documentation, see the latest version of the GNU General
.\" Public License for copying conditions. There is NO warranty.
.\"
.\" Ce document est libre. Reportez-vous à la dernière version de la
.\" licence publique générale GNU (GNU GPL) pour connaître ses
.\" conditions d'utilisation. AUCUNE garantie n'est offerte.
.\"
.TH NANO 1 "19 juin 2003 (v.f. du 25 août 2003)"
.\" Please adjust this date whenever revising the manpage.
.\" Merci de modifier ces dates à chaque mise à jour de cette page.
.SH NOM
nano \- NAno un NOuvel éditeur, un clone libre et amélioré de Pico
.SH SYNOPSIS
.B nano
.I [\+LIGNE]\ [options]\ [fichier]
.br
.SH DESCRIPTION
Cette page de manuel décrit brièvement la commande \fBnano\fP.
.PP
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
.\" \fI<whatever>\fP escape sequences to invoke bold face and italics,
.\" respectively.
\fBnano\fP est un petit éditeur sympathique et libre, qui vise à remplacer
Pico, l'éditeur par défaut du paquet non-libre Pine. \fBnano\fP ne se
contentant pas de copier l'interface et l'ergonomie de Pico, il offre
également certaines fonctionnalités manquantes (ou désactivées par
défaut) de Pico. Ces fonctionnalités sont, par exemple, les fonctions de
recherche et de remplacement, et la possibilité de sauter directement à
un numéro de ligne.
.SH OPTIONS
.TP
.B \+\fILIGNE\fP
Démarre avec le curseur positionné à la ligne numéro \fILIGNE\fP.
.TP
.B \-B (\-\-backup)
Lors de l'écriture d'un fichier, crée une copie de sécurité de la
version précédente, en ajoutant un tilde (~) au nom du fichier.
.TP
.B \-D (\-\-dos)
Écrit le fichier au format DOS.
.TP
.B \-F (\-\-multibuffer)
Active le mode multifichiers, autorisant l'édition simultanée de
plusieurs fichiers, si ce mode est disponible.
.TP
.B \-H (\-\-historylog)
Enregistre les chaînes ayant fait l'objet d'une recherche ou d'un
remplacement dans le fichier
.I ~/.nano_history
afin de permettre leur réutilisation. Ceci n'est possible que si
.B nano
est capable d'utiliser les fichiers
nanorc.
.TP
.B \-I (\-\-ignorercfiles)
N'utilise pas les fichiers
.I $SYSCONFDIR/nanorc
et
.IR ~/.nanorc ,
même si
.B nano
est capable de les utiliser.
.TP
.B \-K (\-\-keypad)
Essaie au maximum de ne pas utiliser les appels keypad() de ncurses.
Utilisez ce paramètre si vous vous apercevez que les flèches du pavé
numérique ne fonctionnent pas sous nano.
.TP
.B \-M (\-\-mac)
Écrit le fichier au format Mac.
.TP
.B \-N (\-\-noconvert)
Désactive la conversion automatique des fichiers depuis les
formats Mac et DOS.
.TP
.B \-Q \fIchaîne\fP (\-\-quotestr=\fIchaîne\fP)
Définit le préfixe par défaut des citations. Nano utilise ce préfixe
pour réaliser une justification correcte des citations.
Si nano est capable d'utiliser des expressions rationnelles, le préfixe
par défaut sera "^([\ \\t]*[|>:}#])+", sinon, ce sera ">\ ".
.TP
.B \-R (\-\-regexp)
Active l'utilisation d'expressions rationnelles lors des recherches,
ainsi que la possibilité d'utiliser \\\fIn\fP dans les chaînes de
remplacement pour faire référence à la \fIn\fP-ième sous-expression du
motif de recherche, si cette fonction est disponible.
.TP
.B \-S (\-\-smooth)
Active le défilement progressif. Le texte défilera ligne-par-ligne au
lieu de défiler morceau-par-morceau.
.TP
.B \-T \fInombre\fP (\-\-tabsize=\fInombre\fP)
Définit la taille (largeur) des tabulations.
.TP
.B \-V (\-\-version)
Affiche le numéro de version et l'auteur.
.TP
.B \-Y \fIchaîne\fP (\-\-syntax=\fIchaîne\fP)
Indique quel mode de colorisation syntaxique adopter, parmi les modes
définis dans le fichier
.IR .nanorc ,
si cette fonctionnalité est disponible.
.TP
.B \-c (\-\-const)
Affiche en permanence la position du curseur.
.TP
.B \-h (\-\-help)
Affiche de la liste des options disponibles en ligne de commande.
.TP
.B \-i (\-\-autoindent)
Indentation automatique. Commence chaque nouvelle ligne au même niveau
que la ligne précédente. Utile pour l'édition de code source.
.TP
.B \-k (\-\-cut)
^K coupe le texte du curseur à la fin de la ligne, au lieu de couper la
ligne entière.
.TP
.B \-l (\-\-nofollow)
Si le fichier édité est un lien symbolique, remplace le lien par le
nouveau fichier, sans le suivre. Ce mode ne serait-il pas utile pour
éditer les fichiers de
.IR /tmp \ ?
.TP
.B \-m (\-\-mouse)
Active l'utilisation de la souris (si elle est disponible sur votre
système).
.TP
.B \-o \fIrépertoire\fP (\-\-operatingdir=\fIrépertoire\fP)
Définit le répertoire de travail. Demande à nano de mettre en place
quelque-chose de similaire à une cage chroot.
.TP
.B \-p (\-\-preserve)
Préserve les séquences XON et XOFF (^Q et ^S), afin qu'elle soient
reçues par le terminal.
.TP
.B \-r \fIcolonne\fP (\-\-fill=\fIcolonne\fP)
Passe automatiquement à la ligne à la colonne \fIcolonne\fP. Par défaut,
le passage à la ligne se fait à la taille de l'écran moins huit. Si la
valeur indiquée est négative, le point de passage à la ligne sera
calculé relativement au bord droit de l'écran. Cela permet de faire
varier le point de passage à la ligne lorsque l'on change la taille de
l'écran.
.TP
.B \-s \fIprogramme\fP (\-\-speller=\fIprogramme\fP)
Choix d'un correcteur orthographique de remplacement.
.TP
.B \-t (\-\-tempfile)
S'il a été modifié, le fichier sera sauvegardé automatiquement sans
demande de confirmation. Identique à l'option -t de Pico.
.TP
.B \-v (\-\-view)
Mode visualisation (lecture seule).
.TP
.B \-w (\-\-nowrap)
Désactive le passage automatique à la ligne.
.TP
.B \-x (\-\-nohelp)
Désactive la barre d'aide affichée en bas de l'écran.
.TP
.B \-z (\-\-suspend)
Autorise à suspendre l'éditeur.
.TP
.B \-a, \-b, \-e, \-f, \-g, \-j
Ignoré, pour être compatible avec Pico.
.SH FICHIERS D'INITIALISATION
\fBnano\fP lit les fichiers d'initialisation dans l'ordre suivant\ :
\fI$SYSCONFDIR/nanorc\fP, puis \fI~/.nanorc\fP. Reportez-vous à la page
de manuel de \fBnanorc\fP(5) et au fichier-exemple \fInanorc.sample\fP
qui devrait être livré avec \fBnano\fP.
.SH NOTES
Dans certains cas, \fBnano\fP essaiera de sauvegarder le fichier en
cours d'édition dans un fichier de secours. Cela arrivera
principalement si \fBnano\fP reçoit un signal SIGHUP ou SIGTERM, ou
bien se trouve à court de mémoire. Le nom de ce fichier de secours sera
\fInano.save\fP si le fichier en cours n'avait pas encore de nom, ou
sera composé du nom du fichier en cours suivi du suffixe «\ .save\ ». Si
un fichier de ce nom existe déjà dans le répertoire, un «\ .save\ » et
un nombre seront ajoutée à la fin du nom du fichier en cours afin de le
rendre unique (par exemple, «\ .save.1\ »). En mode multifichiers,
\fBnano\fP réalisera une sauvegarde de tous les fichiers en cours dans
leurs fichiers de secours respectifs.
.SH BOGUES
Merci de nous faire parvenir vos commentaires et de nous signaler les
bogues, en écrivant, en anglais, à
.BR nano@nano-editor.org .
N'hésitez pas à faire parvenir vos suggestions et commentaires relatifs
à la version française de \fBnano\fP à
.BR jean-philippe.guerard@corbeaunoir.org .
La liste de discussion anglophone \fBnano\fP est disponible via
.BR nano-devel@gnu.org .
Pour vous abonner, envoyez un courrier électronique à
.BR nano-devel-request@gnu.org ,
ayant pour objet «\ subscribe\ ».
.SH SITE INTERNET
http://www.nano-editor.org/
.SH VOIR AUSSI
.PD 0
.TP
\fBnanorc\fP(5)
.PP
\fI/usr/share/doc/nano/\fP (ou son équivalent sur votre système)
.SH AUTEUR
Chris Allegretta <chrisa@asty.org> et d'autres (voir les fichiers
\fIAUTHORS\fP et \fITHANKS\fP pour plus d'information). Cette page de
manuel a été initialement rédigée par Jordi Mallach
<jordi@sindominio.net> pour le système GNU Debian (mais elle peut être
utilisée par d'autres).
.SH TRADUCTION
Jean-Philippe Guérard <jean-philippe.guerard@corbeaunoir.org>, 2003.

198
doc/man/fr/nanorc.5 Normal file
View File

@@ -0,0 +1,198 @@
.\" Hey, EMACS: -*- nroff -*-
.\" nanorc.5 is Copyright (C) 2003 Free Software Foundation, Inc.
.\"
.\" (c) 2003 Jean-Philippe Guérard <jean-philippe.guerard@corbeaunoir.org>
.\" pour l'adaptation française
.\"
.\" This is free documentation, see the latest version of the GNU General
.\" Public License for copying conditions. There is NO warranty.
.\"
.\" Ce document est libre. Reportez-vous à la dernière version de la
.\" licence publique générale GNU (GNU GPL) pour connaître ses
.\" conditions d'utilisation. AUCUNE garantie n'est offerte.
.\"
.TH NANORC 5 "19 juin 2003 (v.f. du 25 août 2003)"
.\" Please adjust this date whenever revising the manpage.
.\" Merci de modifier ces dates à chaque mise à jour de cette page.
.SH NAME
nanorc \- fichier de configuration de l'éditeur nano du projet GNU
.SH DESCRIPTION
Cette page de manuel décrit brièvement le fichier de configuration de
l'éditeur \fBnano\fP du projet GNU.
.PP
\fBnano\fP est un petit éditeur sympathique et libre, qui vise à
remplacer Pico, l'éditeur par défaut du paquet non-libre Pine.
\fBnano\fP ne se contentant pas de copier l'interface et l'ergonomie de
Pico, il offre également certaines fonctionnalités manquantes (ou
désactivées par défaut) de Pico. Ces fonctionnalités sont, par exemple,
les fonctions de recherche et de remplacement, et la possibilité de
sauter directement à un numéro de ligne.
.PP
Le fichier \fInanorc\fP contient les paramètres par défaut de
\fBnano\fP. Lors de son démarrage, nano commence par lire le fichier de
configuration général \fI$SYSCONFDIR/nanorc\fP, puis lit le fichier de
configuration personnel de l'utilisateur \fI~/.nanorc\fP.
.SH OPTIONS
Le fichier de configuration accepte une série de commandes «\ set\ »
(activer) et «\ unset\ » (désactiver), qui permettent de définir la
configuration de nano au démarrage sans avoir à utiliser d'options sur
la ligne de commande.
De plus, les mots clefs «\ syntax\ » (syntaxe) et «\ color\ » (couleur)
sont utilisés pour définir les règles de colorisation pour différents
motifs de texte. Nano lira une commande par ligne.
Les options du fichier de configuration ont priorité sur les valeurs par
défaut utilisées par nano. Les options données sur la ligne de commande
permettent d'outrepasser les options du fichier de configuration.
Les options sont désactivées (unset) par défaut, sauf les options
prenant un argument.
Les commandes et arguments reconnus sont\ :
.TP 3
\fBset/unset autoindent\fP
Active l'indentation automatique.
.TP
\fBset/unset backup\fP
Crée des copie de sécurité appelées
.IR nom_du_fichier~ .
.TP
\fBset/unset const\fP
Affiche en permanence la position du curseur dans la barre
d'information.
.TP
\fBset/unset cut\fP
Par défaut, utilise ^K pour couper le texte du curseur à la fin de la
ligne, au lieu de couper la ligne entière.
.TP
\fBset fill \fIn\fP\fP
Passe automatiquement à la ligne à la colonne \fIn\fP. Si la valeur
indiquée est 0 ou moins, la longueur de la ligne sera égale à la largeur
de l'écran moins \fIn\fP. La valeur par défaut est -8.
.TP
\fBset/unset historylog\fP
Active l'utilisation de
.I ~/.nano_history
pour enregistrer et relire les chaînes ayant fait l'objet d'une
recherche ou d'un remplacement.
.TP
\fBset/unset keypad\fP
Utilise l'autre gestion du pavé numérique.
.TP
\fBset/unset multibuffer\fP
Permet de charger simultanément plusieurs fichiers.
.TP
\fBset/unset noconvert\fP
Pas de conversion depuis les formats DOS et Mac.
.TP
\fBset/unset nofollow\fP
Ne suit pas les liens symboliques lors de l'écriture des fichiers.
.TP
\fBset/unset nohelp\fP
Désactive la barre d'aide affichée en bas de l'écran.
.TP
\fBset/unset nowrap\fP
Désactive le passage automatique à la ligne.
.TP
\fBset operatingdir "\fIrépertoire\fP"\fP
\fBnano\fP ne lira et n'écrira des fichiers qu'à l'intérieur du
\fIrépertoire\fP et de ses sous-répertoires. De plus, celui-ci devient
le répertoire courant, afin que les fichiers soient écrits dans ce
dossier. Par défaut, cette fonction est désactivée.
.TP
\fBset/unset preserve\fP
Préserve les séquences XON et XOFF (^Q et ^S).
.TP
\fBset quotestr "\fIchaîne\fP"\fP
Définit le préfixe par défaut utilisé pour les citations dans les
courriers électroniques. Ce préfixe est utilisé pour réaliser une
justification correcte de ces citations. Il s'agira, si votre système le
permet, d'une «\ expression rationnelle étendue\ ». Dans le cas
contraire, il s'agira d'une chaîne de texte brut. Si vous disposez des
expressions rationnelles, la valeur par défaut sera\ :
set quotestr "^([\ \\t]*[|>:}#])+"
Sinon, ce sera ">\ ". Notez que le «\ \\t\ » ci-dessus correspond à un
caractère de tabulation.
.TP
\fBset/unset regexp\fP
Utilise par défaut des expressions rationnelles pour les recherches.
.TP
\fBset/unset smooth\fP
Active le défilement ligne-par-ligne du texte.
.TP
\fBset speller \fIprogramme\fP\fP
Utilise le correcteur orthographique \fIprogramme\fP au lieu du
correcteur intégré, qui s'appuie sur \fIspell\fP.
.TP
\fBset/unset suspend\fP
Autorise à suspendre nano avec ^Z.
.TP
\fBset tabsize \fIn\fP\fP
Utilise une largeur de tabulation de \fIn\fP au lieu de la valeur par
défaut (8). Cette valeur doit être supérieur à 0.
.TP
\fBset/unset tempfile\fP
S'il a été modifié, le fichier sera sauvegardé automatiquement
sans demande de confirmation.
.TP
\fBset/unset view\fP
Interdit la modification du fichier.
.TP
.B syntax "\fIchaîne\fP" ["\fImotif_de_fichier\fP" ... ]
Définit une syntaxe nommée \fIchaîne\fP qui pourra être activé via
l'option \fB-Y\fP, ou qui sera automatiquement activé si le nom du
fichier en cours correspond au \fImotif_de_fichier\fP. Toutes les
instructions de colorisation \fBcolor\fP suivantes s'appliqueront à cette
syntaxe, jusqu'à la définition d'une nouvelle syntaxe.
.TP
.B color \fIcouleur_texte\fP[,\fIcouleur_fond\fP] "\fImotif\fP" ...
Pour la syntaxe en cours, affiche toutes les expressions correspondant à
l'expression rationnelle \fImotif\fP en utilisant la couleur de texte
\fIcouleur_texte\fP et éventuellement la couleur de fond
\fIcouleur_fond\fP. Les couleurs acceptées par \fBnano\fP pour le
texte et le fond sont\ : \fIwhite\fP (blanc), \fIblack\fP (noir),
\fIred\fP (rouge), \fIblue\fP (bleu), \fIgreen\fP (vert), \fIyellow\fP
(jaune), \fImagenta\fP, et \fIcyan\fP. Vous pouvez ajouter à
ces couleurs le préfixe \fIbright\fP pour obtenir une couleur plus
lumineuse. Si votre terminal est capable de gérer la transparence, ne
pas spécifier de \fIcouleur_fond\fP indique à \fBnano\fP d'essayer
d'utiliser un fond transparent.
.TP
.B color \fIcouleur_texte\fP[,\fIcouleur_fond\fP] start="\fImotif_début\fP" end="\fImotif_fin\fP"
Affiche les expressions commençant par \fImotif_début\fP et se terminant
par \fImotif_fin\fP en utilisant la couleur de texte \fIcouleur_texte\fP
et éventuellement la couleur de fond \fIcouleur_fond\fP. Cela permet à
la colorisation syntaxique de s'étendre sur plusieurs lignes. Notez que
toutes les occurrences successives de \fImotif_début\fP après le
\fImotif_début\fP initial seront colorées jusqu'à la prochaine instance
de \fImotif_fin\fP.
.SH FICHIERS
.TP
.I $SYSCONFDIR/nanorc
Fichier de configuration général
.TP
.I ~/.nanorc
Fichier de configuration personnel
.SH VOIR AUSSI
.PD 0
.TP
\fBnano\fP(1)
.PP
\fI/usr/share/doc/nano/examples/nanorc.sample\fP (ou son équivalent sur
votre système)
.SH AUTEUR
Chris Allegretta <chrisa@asty.org> et d'autres (voir les fichiers
\fIAUTHORS\fP et \fITHANKS\fP pour plus d'information). Cette page de
manuel a été rédigée par Jordi Mallach <jordi@gnu.org>.
.SH TRADUCTION
Jean-Philippe Guérard <jean-philippe.guerard@corbeaunoir.org>, 2003.

View File

@@ -3,10 +3,10 @@
.\" Chris Allegretta <chrisa@asty.org>
.\"
.\" This is free documentation, see the latest version of the GNU General
.\" Public License for copying conditions. There is NO warranty.
.\" Public License for copying conditions. There is NO warranty.
.\"
.\" $Id$
.TH NANO 1 "June 19, 2003"
.TH NANO 1 "version 1.3.1" "January 09, 2004"
.\" Please adjust this date whenever revising the manpage.
.\"
@@ -22,10 +22,10 @@ nano \- Nano's ANOther editor, an enhanced free Pico clone
This manual page documents briefly the \fBnano\fP command.
.PP
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
.\" \fI<whatever>\fP escape sequences to invoke bold face and italics,
.\" \fI<whatever>\fP escape sequences to invoke bold face and italics,
.\" respectively.
\fBnano\fP is a small, free and friendly editor which aims to replace
Pico, the default editor included in the non-free Pine package. Rather
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".
@@ -48,21 +48,16 @@ Enable multiple file buffers, if available.
.B \-H (\-\-historylog)
Log search and replace strings to
.I ~/.nano_history
so they may be stored for later editing, if nanorc support is
so they may be stored for later editing, if nanorc support is
configured.
.TP
.B \-I (\-\-ignorercfiles)
Don't look at
.I $SYSCONFDIR/nanorc
.I SYSCONFDIR/nanorc
or
.IR ~/.nanorc ,
if nanorc support is available.
.TP
.B \-K (\-\-keypad)
Do not use the ncurses keypad() call unless necessary. Try this flag if
you find that the arrow keys on the numeric keypad do not work for you
under nano.
.TP
.B \-M (\-\-mac)
Write file in Mac format.
.TP
@@ -79,7 +74,7 @@ Enable regular expression matching for search strings, as well as
\\n subexpression replacement for replace strings, if available.
.TP
.B \-S (\-\-smooth)
Enable smooth scrolling. Text will scroll line-by-line, instead of the
Enable smooth scrolling. Text will scroll line-by-line, instead of the
usual chunk-by-chunk behavior.
.TP
.B \-T \fInum\fP (\-\-tabsize=\fInum\fP)
@@ -96,11 +91,16 @@ to use, if available.
.B \-c (\-\-const)
Constantly show the cursor position.
.TP
.B \-d (\-\-rebinddelete)
Interpret the Delete key differently so that both Backspace and Delete
work properly. You should only need to use this option if Backspace
acts like Delete on your system.
.TP
.B \-h (\-\-help)
Display a summary of command line options.
.TP
.B \-i (\-\-autoindent)
Indent new lines to the previous line's indentation. Useful when editing
Indent new lines to the previous line's indentation. Useful when editing
source code.
.TP
.B \-k (\-\-cut)
@@ -116,17 +116,17 @@ perhaps?
Enable mouse support (if available for your system).
.TP
.B \-o \fIdir\fP (\-\-operatingdir=\fIdir\fP)
Set operating directory. Makes nano set up something similar to a
Set operating directory. Makes nano set up something similar to a
chroot.
.TP
.B \-p (\-\-preserve)
Preserve the XON and XOFF sequences (^Q and ^S) so they will be
caught by the terminal.
Preserve the XON and XOFF sequences (^Q and ^S) so they will be caught
by the terminal.
.TP
.B \-r \fIcols\fP (\-\-fill=\fIcols\fP)
Wrap lines at column \fIcols\fP. By default, this is the width of the
screen, less eight. If this value is negative, wrapping will occur at
\fIcols\fP columns from the right of the screen, allowing the wrap point
\fIcols\fP columns from the right of the screen, allowing the wrap point
to vary along with the screen width if resized.
.TP
.B \-s \fIprog\fP (\-\-speller=\fIprog\fP)
@@ -151,15 +151,14 @@ Enable suspend ability.
Ignored, for compatibility with Pico.
.SH INITIALIZATION FILE
\fBnano\fP will read initialization files in the following
order:
.IR $SYSCONFDIR/nanorc ,
\fBnano\fP will read initialization files in the following order:
.IR SYSCONFDIR/nanorc ,
then
.IR ~/.nanorc .
Please see
.BR nanorc (5)
and the example file \fBnanorc.sample\fP which should be provided with
\fBnano\fP.
and the example file \fBnanorc.sample\fP which should be provided with
\fBnano\fP.
.SH NOTES
\fBnano\fP will try to dump the buffer into an emergency file in some
@@ -167,11 +166,11 @@ cases. Mainly, this will happen if \fBnano\fP receives a SIGHUP or
SIGTERM or runs out of memory, when it will write the buffer into a file
named
.I nano.save
if the buffer didn't have a name already, or will add a ".save" suffix
to the current filename. If an emergency file with that name already
exists in the current directory, ".save" and a number (e.g. ".save.1")
will be suffixed to the current filename in order to make it unique. In
multibuffer mode, \fBnano\fP will write all the open buffers to the
if the buffer didn't have a name already, or will add a ".save" suffix
to the current filename. If an emergency file with that name already
exists in the current directory, ".save" and a number (e.g. ".save.1")
will be suffixed to the current filename in order to make it unique. In
multibuffer mode, \fBnano\fP will write all the open buffers to the
respective emergency files.
.SH BUGS
@@ -201,5 +200,5 @@ Chris Allegretta <chrisa@asty.org>, et al (see
and
.I THANKS
for details). This manual page was originally written by Jordi Mallach
<jordi@sindominio.net>, for the Debian GNU system (but may be
used by others).
<jordi@sindominio.net>, for the Debian GNU system (but may be used by
others).

View File

@@ -2,10 +2,10 @@
.\" nanorc.5 is Copyright (C) 2003 Free Software Foundation, Inc.
.\"
.\" This is free documentation, see the latest version of the GNU General
.\" Public License for copying conditions. There is NO warranty.
.\" Public License for copying conditions. There is NO warranty.
.\"
.\" $Id$
.TH NANORC 5 "June 19, 2003"
.TH NANORC 5 "version 1.3.1" "January 09, 2004"
.\" Please adjust this date whenever revising the manpage.
.\"
.SH NAME
@@ -14,26 +14,26 @@ nanorc \- GNU nano's rcfile
This manual page documents GNU \fBnano\fP's rcfile.
.PP
\fBnano\fP is a small, free and friendly editor which aims to replace
Pico, the default editor included in the non-free Pine package. Rather
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".
.PP
The \fInanorc\fP file contains the default settings for \fBnano\fP.
The \fInanorc\fP file contains the default settings for \fBnano\fP.
During startup, \fBnano\fP will first read its system-wide settings from
.IR $SYSCONFDIR/nanorc ,
.IR SYSCONFDIR/nanorc ,
and then user-specific settings from
.IR ~/.nanorc .
.SH OPTIONS
The configuration file accepts a series of "set" and "unset" commands,
which can be used to configure nano on startup without using the
command-line options. Additionally, the "syntax" and "color" keywords
are used to define syntax highlighting rules for different text patterns.
GNU nano will read one command per line.
command-line options. Additionally, the "syntax" and "color" keywords
are used to define syntax highlighting rules for different text
patterns. GNU nano will read one command per line.
Options in rcfiles take precedence over nano's defaults, and command line
options override rcfile settings.
Options in rcfiles take precedence over nano's defaults, and command
line options override rcfile settings.
Options are unset by default, except for options that take an argument.
@@ -62,9 +62,6 @@ Enable
.I ~/.nano_history
for saving and reading search/replace strings.
.TP
\fBset/unset keypad\fP
Use alternate keypad routines.
.TP
\fBset/unset multibuffer\fP
Allow inserting files into their own buffers.
.TP
@@ -82,23 +79,28 @@ Don't wrap text at all.
.TP
\fBset operatingdir "\fIdirectory\fP"\fP
\fBnano\fP will only read and write files inside \fIdirectory\fP and its
subdirectories. Also, the current directory is changed to here, so files
are inserted from this dir. By default the operating directory feature is
turned off.
subdirectories. Also, the current directory is changed to here, so
files are inserted from this dir. By default the operating directory
feature is turned off.
.TP
\fBset/unset preserve\fP
Preserve the XON and XOFF keys (^Q and ^S).
.TP
\fBset quotestr "\fIstring\fP"\fP
The email-quote string, used to justify email-quoted paragraphs. This is
an "extended regular expression" if your system supports them, otherwise a
literal string. The default value is
The email-quote string, used to justify email-quoted paragraphs. This
is an "extended regular expression" if your system supports them,
otherwise a literal string. The default value is
set quotestr "^([\ \\t]*[|>:}#])+"
if you have regexps, otherwise set quotestr ">\ ". Note that '\\t'
if you have regexps, otherwise set quotestr ">\ ". Note that '\\t'
above stands for a literal Tab character.
.TP
\fBset/unset rebinddelete\fP
Interpret the Delete key differently so that both Backspace and Delete
work properly. You should only need to use this option if Backspace
acts like Delete on your system.
.TP
\fBset/unset regexp\fP
Do regular expression searches by default.
.TP
@@ -113,7 +115,7 @@ calls \fIspell\fP.
Allow nano to be suspended with ^Z.
.TP
\fBset tabsize \fIn\fP\fP
Use a tab size of \fIn\fP instead of the default (8); must be greater
Use a tab size of \fIn\fP instead of the default (8); must be greater
than 0.
.TP
\fBset/unset tempfile\fP
@@ -123,32 +125,31 @@ Save automatically on exit, don't prompt.
Disallow file modification.
.TP
.B syntax "\fIstr\fP" ["\fIfileregex\fP" ... ]
Defines a syntax named \fIstr\fP which can be activated via the
\fB-Y\fP flag, or will be automatically activated if the current
filename matches \fIfileregex\fP. All following \fBcolor\fP statements
will apply to \fIsyntax\fP until a new syntax is defined.
Defines a syntax named \fIstr\fP which can be activated via the \fB-Y\fP
flag, or will be automatically activated if the current filename matches
\fIfileregex\fP. All following \fBcolor\fP statements will apply to
\fIsyntax\fP until a new syntax is defined.
.TP
.B color \fIfgcolor\fP[,\fIbgcolor\fP] "\fIregex\fP" ...
For the currently defined syntax, display all expressions matching
\fIregex\fP with foreground color \fIfgcolor\fP and optional background
color \fIbgcolor\fP. Legal colors for foreground and background color are:
white, black, red, blue, green, yellow, magenta, and cyan. You may use
the prefix "bright" to force a stronger color highlight. If your
terminal supports transparency, not specifying a \fIbgcolor\fP tells
For the currently defined syntax, display all expressions matching
\fIregex\fP with foreground color \fIfgcolor\fP and optional background
color \fIbgcolor\fP. Legal colors for foreground and background color
are: white, black, red, blue, green, yellow, magenta, and cyan. You may
use the prefix "bright" to force a stronger color highlight. If your
terminal supports transparency, not specifying a \fIbgcolor\fP tells
\fBnano\fP to attempt to use a transparent background.
.TP
.B color \fIfgcolor\fP[,\fIbgcolor\fP] start="\fIsr\fP" end="\fIer\fP"
Display expressions which start with \fIsr\fP and end with \fIer\fP
with foreground color \fIfgcolor\fP and optional
background color \fIbgcolor\fP. This allows syntax highlighting to span
multiple lines. Note that all subsequent instances of \fIsr\fP after
an initial \fIsr\fP is found will be highlighted until the first
instance of \fIer\fP.
Display expressions which start with \fIsr\fP and end with \fIer\fP
with foreground color \fIfgcolor\fP and optional background color
\fIbgcolor\fP. This allows syntax highlighting to span multiple lines.
Note that all subsequent instances of \fIsr\fP after an initial \fIsr\fP
is found will be highlighted until the first instance of \fIer\fP.
\fI
.SH FILES
.TP
.I $SYSCONFDIR/nanorc
.I SYSCONFDIR/nanorc
System-wide configuration file
.TP
.I ~/.nanorc
@@ -158,7 +159,7 @@ Per-user configuration file
.TP
\fBnano\fP(1)
.PP
\fI/usr/share/doc/nano/examples/nanorc.sample\fP (or equivalent on your
\fI/usr/share/doc/nano/examples/nanorc.sample\fP (or equivalent on your
system)
.SH AUTHOR
Chris Allegretta <chrisa@asty.org>, et al (see

View File

@@ -29,9 +29,6 @@
## Enable ~/.nano_history for saving and reading search/replace strings.
# set historylog
## Use alternate keypad routines
# set keypad
## Allow multiple file buffers (using ^R inserts into separate buffer).
## You must have configured with --enable-multibuffer or --enable-extra
## for this to work.
@@ -69,6 +66,9 @@
## You can get old nano quoted-justify behavior via:
# set quotestr "(> )+"
## Fix Backspace/Delete confusion problem
# set rebinddelete
## Do extended regular expression searches by default
# set regexp
@@ -89,9 +89,6 @@
## Save automatically on exit, don't prompt
# set tempfile
## Enable ~/.nano_history for saving and reading search/replace strings.
# set historylog
## Disallow file modification, why would you want this in an rc file? ;)
# set view
@@ -113,16 +110,16 @@
# color red "\<[A-Z_]{2,}\>"
# color green "\<(float|char|int|void|static|const|struct)\>"
# color brightyellow "\<(if|while|do|else|case|switch)\>"
# color brightcyan "^#( )*(define|include|ifn?def|endif|elif|else|if)"
# color brightcyan "^ *# *(define|include|ifn?def|endif|elif|else|if)"
##
## You will in general want your comments and strings to come last,
## because syntax highlighting rules will be applied in the order they
## are read in.
##
# color brightyellow "<[^= ]*>" ""(\\.|[^\"])*""
# color brightyellow "<[^= ]*>" ""(\\.|[^\"])*""
##
## This string is VERY resource intensive!!!
# color brightyellow start=""(\\.|[^\"])*\\( | )*$" end="^(\\.|[^\"])*""
# color brightyellow start=""(\\.|[^\"])*\\ *$" end="^(\\.|[^\"])*""
##
## And we want to have some nice comment highlighting too
# color brightblue "//.*"
@@ -131,7 +128,7 @@
## Here is a short example for HTML
# syntax "HTML" "\.html$"
# color blue start="<" end=">"
# color red "&[^; ]*;"
# color red "&[^; ]*;"
## Here is a short example for TeX files
# syntax "TeX" "\.tex$"
@@ -196,16 +193,20 @@
# color blue "//.*"
# color blue start="/\*" end="\*/"
# color brightblue start="/\*\*" end="\*/"
# color brightgreen,brightgreen "[ ]+$"
# color brightgreen,green " +$"
## Here is an example for your .nanorc
##
# syntax "nanorc" "[\.]*nanorc$"
# color white "^ *(set|unset).*$"
# color cyan "^ *(set|unset) (autoindent|backup|const|cut|fill|keypad|multibuffer|noconvert|nofollow|nohelp|nowrap|operatingdir|preserve|quotestr|regexp|smooth|speller|suspend|tabsize|tempfile|historylog|view)"
# color brightwhite "^ *syntax [^ ]*"
# color brightblue "^ *set\>" "^ *unset\>" "^ *syntax\>"
# color white "^ *color\>.*"
# color yellow "^ *color (bright)?(white|black|red|blue|green|yellow|magenta|cyan)\>"
# color magenta "^ *color\>"
# color green "^#.*$"
#syntax "nanorc" "(\.|/|)nanorc$"
## highlight possible errors and parameters
#color brightwhite "^ *(set|unset|syntax|color).*$"
## set, unset and syntax
#color cyan "^ *(set|unset) +(autoindent|backup|const|cut|fill|historylog|multibuffer|noconvert|nofollow|nohelp|nowrap|operatingdir|preserve|quotestr|rebinddelete|regexp|smooth|speller|suspend|tabsize|tempfile|view)"
#color green "^ *(set|unset|syntax)\>"
## colors
#color yellow "^ *color +(bright)?(white|black|red|blue|green|yellow|magenta|cyan)(,(white|black|red|blue|green|yellow|magenta|cyan))?\>"
#color magenta "^ *color\>" "\<(start|end)="
## strings
#color white "\"(\\.|[^\"])*\""
## comments
#color blue "^ *#.*$"

4
doc/texinfo/.cvsignore Normal file
View File

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

5
doc/texinfo/Makefile.am Normal file
View File

@@ -0,0 +1,5 @@
info_TEXINFOS = nano.texi
MAKEINFO = makeinfo --no-split
EXTRA_DIST = nano.info

View File

@@ -8,8 +8,8 @@
@c Run `makeinfo' rather than `texinfo-format-buffer'.
@smallbook
@set EDITION 0.1
@set VERSION 1.2.2
@set UPDATED 17 Jan 2003
@set VERSION 1.3.1
@set UPDATED 09 Jan 2004
@dircategory Editors
@direntry
@@ -23,7 +23,7 @@
@titlepage
@title GNU @code{nano}
@subtitle a small and friendly text editor.
@subtitle version 1.2.2
@subtitle version 1.3.1
@author Chris Allegretta
@page
@@ -95,10 +95,10 @@ internationalization support, and filename tab completion.
The original goal for @code{nano} was a complete bug-for-bug compatible
emulation of Pico, but nano's main goal is to be as compatible as
possible while offering a superset of Pico's functionality.
Also see @xref{Pico Compatibility}, for other differences.
possible while offering a superset of Pico's functionality. Also see
@xref{Pico Compatibility}, for other differences.
Email bug reports to @email{nano@@nano-editor.org}.
Email bug reports to @email{nano@@nano-editor.org}.
@node Command Line Options, , Overview, Introduction
@section Command Line Options
@@ -118,14 +118,9 @@ Write file in DOS format.
Enable multiple file buffers, if available.
@item -I, --ignorercfiles
Don't look at $SYSCONFDIR/nanorc or ~/.nanorc, if nanorc support is
Don't look at SYSCONFDIR/nanorc or ~/.nanorc, if nanorc support is
available.
@item -K, --keypad
Do not use the ncurses keypad() call unless necessary. Try this flag if
you find that the arrow keys on the numeric keypad do not work for you
under @code{nano}.
@item -M, --mac
Write file in Mac format.
@@ -151,7 +146,7 @@ Enable smooth scrolling.
@item -T [num], --tabsize=[num]
Set the displayed tab length to [num] columns.
@item -V, --version
@item -V, --version
Print the version number and copyright and quit.
@item -Y, --syntax=[str]
@@ -161,6 +156,11 @@ available.
@item -c, --const
Constantly display the cursor position and line number on the statusbar.
@item -d, --rebinddelete
Interpret the Delete key differently so that both Backspace and Delete
work properly. You should only need to use this option if Backspace
acts like Delete on your system.
@item -h, --help
Print the usage and exit.
@@ -181,18 +181,18 @@ Enables the use of the mouse to select text (currently only useful for
running under the X window system).
@item -o [dir], --operatingdir=[dir]
Set operating directory. Makes @code{nano} set up something similar to a
chroot.
Set operating directory. Makes @code{nano} set up something similar to
a chroot.
@item -p, --preserve
Preserve the ^Q (XON) and ^S (XOFF) sequences so data being sent to the editor
can be can be stopped and started.
Preserve the ^Q (XON) and ^S (XOFF) sequences so data being sent to the
editor can be can be stopped and started.
@item -r [#cols], --fill=[#cols].
Wrap lines at column #cols. By default this is the width of the screen,
less eight. If this value is negative, wrapping will occur at #cols from
the right of the screen, allowing it to vary along with the screen width
if the screen is resized.
less eight. If this value is negative, wrapping will occur at #cols
from the right of the screen, allowing it to vary along with the screen
width if the screen is resized.
@item -s [prog], --speller=[prog]
Invoke [prog] as the spell checker. By default, @code{nano} uses its
@@ -206,21 +206,21 @@ composer of a mailer program.
@anchor{Expert Mode}
@item -x, --nohelp
In Expert Mode, the Shortcut Lists will not appear at the bottom of the
screen. This affects the location of the statusbar as well, as in Expert
Mode it is located at the very bottom of the editor.
In Expert Mode, the Shortcut Lists will not appear at the bottom of the
screen. This affects the location of the statusbar as well, as in
Expert Mode it is located at the very bottom of the editor.
Note: When accessing the help system, Expert Mode is temporarily disabled
to display the help system navigation keys.
Note: When accessing the help system, Expert Mode is temporarily
disabled to display the help system navigation keys.
@item -v, --view
Do not allow the contents of the file to be altered. Note that this
flag should NOT be used in place of correct file permissions to implement
a read-only file.
flag should NOT be used in place of correct file permissions to
implement a read-only file.
@item -w, --nowrap
Do not wrap long lines at any length. This option overrides any value for
-r.
Do not wrap long lines at any length. This option overrides any value
for -r.
@item -z, --suspend
Enable suspend ability of @code{nano} using the system's suspend
@@ -249,38 +249,41 @@ Start at line number LINE instead of the default of line 1.
All key sequences in @code{nano} are entered using the keyboard.
@code{nano} is a ``modeless'' editor. All keys with the exception of
Control and Meta key sequences will enter text into the file being
edited.
edited.
@node Special Functions, The Titlebar, Entering Text, Editor Basics
@section Special Functions
Special functions use the Control key (displayed in the help and
shortcut lists as ^) or the Meta key (displayed as M).
shortcut lists as ^), the Meta key (displayed as M), or the Esc key.
@itemize @bullet
@item
Control key sequences are entered by holding down the Control key and
pressing the desired letter.
pressing the desired key, or by pressing the Esc key twice and pressing
the desired key.
@item
Meta key sequences can be entered in a number of
possible ways: Pressing the Escape key, then releasing it and pressing
the desired key, or holding down the Alt key while pressing the desired
key. This varies from keyboard to keyboard, and certain commercial
operating systems ``swallow'' the Alt key so that it never reaches the
application. If your operating system does this, you should use the
Escape key to generate Meta key sequences.
Pressing Esc twice and then typing a three-digit number from 000 to 255
will enter the character with the corresponding ASCII code.
@item
Meta key sequences can be entered in a number of possible ways: Pressing
the Escape key, then releasing it and pressing the desired key, or
holding down the Alt key while pressing the desired key. This varies
from keyboard to keyboard, and certain commercial operating systems
``swallow'' the Alt key so that it never reaches the application. If
your operating system does this, you should use the Escape key to
generate Meta key sequences.
@end itemize
@node The Titlebar, The Statusbar, Special Functions, Editor Basics
@section The Titlebar
The titlebar is the line displayed at the top of the editor. There are
three sections: left, center and right. The section on the left displays
the version of @code{nano} being used. The center section displays the
current file name, or ``New Buffer'' if the file has not yet been named.
The section on the right will display ``Modified'' if the file has been
modified since it was last saved or opened.
three sections: left, center and right. The section on the left
displays the version of @code{nano} being used. The center section
displays the current file name, or ``New Buffer'' if the file has not
yet been named. The section on the right will display ``Modified'' if
the file has been modified since it was last saved or opened.
Special modes: When @code{nano} is in ``File browser'' mode, the center
section will display the current directory instead of the filename.
@@ -302,13 +305,13 @@ the statusbar.
@section Shortcut Lists
The Shortcut Lists are the two lines at the bottom of the screen which
show some of the more commonly used functions in the editor.
show some of the more commonly used functions in the editor.
@node Online Help, Feature Toggles, Editor Basics, Top
@chapter Online Help
The online help system in @code{nano} is available by pressing ^G.
It is fairly self explanatory, documenting the various parts of the
It is fairly self explanatory, documenting the various parts of the
editor and available keystrokes. Navigation is via the ^Y (Page Up)
and ^V (Page Down) keys. ^X exits the help system.
@@ -317,8 +320,8 @@ and ^V (Page Down) keys. ^X exits the help system.
@chapter Feature Toggles
Toggles allow you to change certain aspects of the editor that
would normally be done via command line flags. They are invoked via
certain Meta key sequences. @xref{Special Functions}, for more info.
would normally be done via command line flags. They are invoked via
certain Meta key sequences. @xref{Special Functions}, for more info.
The following global toggles are available:
@table @code
@@ -375,7 +378,7 @@ find the desired file.
Basic movement in the file browser is accomplished with the arrow keys
and page up/down. The behavior of the enter (or `s') key varies by what
is currently selected. If the currently selected object is a directory,
the file browser will enter and display the contents of the directory.
the file browser will enter and display the contents of the directory.
If the object is a file, this filename and path are copied to the
statusbar and the file browser is exited.
@@ -388,15 +391,15 @@ are certain differences between the editors:
@table @code
@item Search and Replace History
As of version 1.2.2 of @code{nano}, text entered as search or replace
strings will be stored and can be accessed with the up/down
arrow keys. Previously, @code{nano} offered a more consistent, but incompatible
with Pico, method for entering search and replace strings. In the old
method, previous entries would be displayed by default as editable text
in front of the cursor, as opposed to being bracketed and uneditable as
it is in Pico. The old behavior could be made compatible with Pico via the
@code{-p} flag, but recent versions of Pico use the @code{-p} flag
to preserve the XON and XOFF sequences within the editor. Since with the new
method search and replace strings can still be edited by simply
strings will be stored and can be accessed with the up/down arrow keys.
Previously, @code{nano} offered a more consistent, but incompatible with
Pico, method for entering search and replace strings. In the old
method, previous entries would be displayed by default as editable text
in front of the cursor, as opposed to being bracketed and uneditable as
it is in Pico. The old behavior could be made compatible with Pico via
the @code{-p} flag, but recent versions of Pico use the @code{-p} flag
to preserve the XON and XOFF sequences within the editor. Since with
the new method search and replace strings can still be edited by simply
hitting the up arrow key once, the old method was removed completely.
@@ -405,13 +408,12 @@ Text selected using the Control-Caret (^^) key can be written out or
appended to a new or existing file using the Writeout key (^O).
@item Toggles
Many options which alter the functionality of the program can be
"toggled" on or off using Meta key sequences, meaning the program does
not have to be restarted to turn a particular feature of the editor
on or off. Please see the internal help function (^G) for a list of
what functions can be toggled for a particular version of
@code{nano}. Also see @xref{Feature Toggles}, though this may be out
of date.
Many options which alter the functionality of the program can be
"toggled" on or off using Meta key sequences, meaning the program does
not have to be restarted to turn a particular feature of the editor on
or off. Please see the internal help function (^G) for a list of what
functions can be toggled for a particular version of @code{nano}. Also
see @xref{Feature Toggles}, though this may be out of date.
@item Cursor Position Display
The output of the "Display Cursor Position" in @code{nano} displays
@@ -420,21 +422,21 @@ position of the cursor.
@item Interactive Replace and Spell Checker
It is worth noting that the @code{nano} replace function is interactive,
i.e. it does not stop after one search string is found and automatically
i.e, it does not stop after one search string is found and automatically
replace it. The @code{nano} implementation will stop at each search
string found and query whether to replace this instance or not. The
internal spell checker operates similarly. Note that these is no way
to force these functions to behave in the Pico fashion. As of
version 1.2.2, misspelled words are sorted and trimmed for
uniqueness in the internal spell checker such that the words 'apple'
and 'Apple' will be prompted for correction separately.
string found and query whether to replace this instance or not. The
internal spell checker operates similarly. Note that these is no way to
force these functions to behave in the Pico fashion. As of version
1.2.2, misspelled words are sorted and trimmed for uniqueness in the
internal spell checker such that the words 'apple' and 'Apple' will be
prompted for correction separately.
@end table
@node Building and Configure Options, , Pico Compatibility, Top
@chapter Building and Configure Options
Building @code{nano} from source is fairly straightforward if you are familiar
with compiling programs with autoconf support:
Building @code{nano} from source is fairly straightforward if you are
familiar with compiling programs with autoconf support:
@itemize @bullet
@item tar xvfz nano-x.y.z.tar.gz (where x.y.z is the version of nano)
@@ -486,7 +488,7 @@ Disable all word wrapping in the editor. This also eliminates the -w
command line flag, as nonwrapping is then the default behavior.
@item --disable-nls
Disables Native Language support. This will make the available GNU
Disables Native Language support. This will make the available GNU
@code{nano} translations unusable.
@item --with-slang

222
move.c
View File

@@ -1,222 +0,0 @@
/* $Id$ */
/**************************************************************************
* move.c *
* *
* Copyright (C) 1999-2003 Chris Allegretta *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2, or (at your option) *
* any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the Free Software *
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
* *
**************************************************************************/
#include "config.h"
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <assert.h>
#include "proto.h"
#include "nano.h"
int do_home(void)
{
current_x = 0;
placewewant = 0;
update_line(current, current_x);
return 1;
}
int do_end(void)
{
current_x = strlen(current->data);
placewewant = xplustabs();
update_line(current, current_x);
return 1;
}
void page_up(void)
{
if (edittop != fileage) {
#ifndef NANO_SMALL
if (ISSET(SMOOTHSCROLL))
edit_update(edittop->prev, TOP);
else
#endif
{
edit_update(edittop, CENTER);
/* Now that we've updated the edit window, edittop might be
at the top of the file; if so, just move the cursor up one
line and don't center it. */
if (edittop != fileage)
center_cursor();
else
reset_cursor();
}
} else
current_y = 0;
update_cursor();
}
int do_page_up(void)
{
int i;
wrap_reset();
current_x = 0;
placewewant = 0;
if (current == fileage)
return 0;
current_y = 0;
current = edittop;
for (i = 0; i <= editwinrows - 3 && current->prev != NULL; i++)
current = current->prev;
edit_update(current, TOP);
update_cursor();
check_statblank();
return 1;
}
int do_page_down(void)
{
wrap_reset();
current_x = 0;
placewewant = 0;
if (current == filebot)
return 0;
/* AHEM, if we only have a screen or less of text, DON'T do an
edit_update(), just move the cursor to editbot! */
if (edittop == fileage && editbot == filebot && totlines < editwinrows) {
current = editbot;
reset_cursor();
#ifndef NANO_SMALL
/* ...unless marking is on, in which case we need it to update
the highlight. */
if (ISSET(MARK_ISSET))
edit_update(current, NONE);
#endif
} else if (editbot != filebot || edittop == fileage) {
current_y = 0;
current = editbot;
if (current->prev != NULL)
current = current->prev;
if (current->prev != NULL)
current = current->prev;
edit_update(current, TOP);
} else {
while (current != filebot) {
current = current->next;
current_y++;
}
edit_update(edittop, TOP);
}
update_cursor();
check_statblank();
return 1;
}
int do_up(void)
{
wrap_reset();
if (current->prev != NULL) {
current_x = actual_x(current->prev, placewewant);
current = current->prev;
if (current_y > 0) {
update_line(current->next, 0);
/* It is necessary to change current first, so the mark
display will change! */
current_y--;
update_line(current, current_x);
} else
page_up();
check_statblank();
}
return 1;
}
/* Return value 1 means we moved down, 0 means we were already at the
* bottom. */
int do_down(void)
{
wrap_reset();
check_statblank();
if (current->next == NULL)
return 0;
current = current->next;
current_x = actual_x(current, placewewant);
/* Note current_y is zero-based. This test checks for the cursor's
* being on the last row of the edit window. */
if (current_y == editwinrows - 1) {
#ifndef NANO_SMALL
if (ISSET(SMOOTHSCROLL)) {
/* In this case current_y does not change. The cursor
* remains at the bottom of the edit window. */
edittop = edittop->next;
editbot = editbot->next;
edit_refresh();
} else
#endif
{
/* Set edittop so editbot->next (or else editbot) is
* centered, and set current_y = editwinrows / 2. */
edit_update(editbot->next != NULL ? editbot->next : editbot, CENTER);
center_cursor();
}
} else {
update_line(current->prev, 0);
update_line(current, current_x);
current_y++;
}
return 1;
}
int do_left(void)
{
if (current_x > 0)
current_x--;
else if (current != fileage) {
do_up();
current_x = strlen(current->data);
}
placewewant = xplustabs();
update_line(current, current_x);
check_statblank();
return 1;
}
int do_right(void)
{
assert(current_x <= strlen(current->data));
if (current->data[current_x] != '\0')
current_x++;
else if (current->next != NULL) {
do_down();
current_x = 0;
}
placewewant = xplustabs();
update_line(current, current_x);
check_statblank();
return 1;
}

View File

@@ -1,298 +0,0 @@
<HTML><HEAD><TITLE>Manpage of NANO</TITLE>
</HEAD><BODY>
<H1>NANO</H1>
Section: User Commands (1)<BR>Updated: June 19, 2003<BR><A HREF="#index">Index</A>
<A HREF="http://localhost/cgi-bin/man/man2html">Return to Main Contents</A><HR>
<P>
<A NAME="lbAB">&nbsp;</A>
<H2>NAME</H2>
nano - Nano's ANOther editor, an enhanced free Pico clone
<P>
<A NAME="lbAC">&nbsp;</A>
<H2>SYNOPSIS</H2>
<B>nano</B>
<I>[+LINE]&nbsp;[options]&nbsp;[file]</I>
<BR>
<P>
<A NAME="lbAD">&nbsp;</A>
<H2>DESCRIPTION</H2>
This manual page documents briefly the <B>nano</B> command.
<P>
<B>nano</B> is a small, free and friendly editor which aims to replace
Pico, the default editor included in the non-free Pine package. Rather
than just copying Pico's look and feel, <B>nano</B> also implements some
missing (or disabled by default) features in Pico, such as &quot;search and
replace&quot; and &quot;go to line number&quot;.
<P>
<A NAME="lbAE">&nbsp;</A>
<H2>OPTIONS</H2>
<DL COMPACT>
<DT><B>+</B><I>LINE</I>
<DD>
Places cursor at <I>LINE</I> on startup.
<DT><B>-B (--backup)</B>
<DD>
When saving a file, back up the previous version of it to the current
filename suffixed with a ~.
<DT><B>-D (--dos)</B>
<DD>
Write file in DOS format.
<DT><B>-F (--multibuffer)</B>
<DD>
Enable multiple file buffers, if available.
<DT><B>-H (--historylog)</B>
<DD>
Log search and replace strings to
<I>~/.nano_history</I>
so they may be stored for later editing, if nanorc support is
configured.
<DT><B>-I (--ignorercfiles)</B>
<DD>
Don't look at
<I>$SYSCONFDIR/nanorc</I>
or
<I>~/.nanorc</I>,
if nanorc support is available.
<DT><B>-K (--keypad)</B>
<DD>
Do not use the ncurses keypad() call unless necessary. Try this flag if
you find that the arrow keys on the numeric keypad do not work for you
under nano.
<DT><B>-M (--mac)</B>
<DD>
Write file in Mac format.
<DT><B>-N (--noconvert)</B>
<DD>
Disable automatic conversion of files from DOS/Mac format.
<DT><B>-Q </B><I>str</I> (--quotestr=<I>str</I>)
<DD>
Set the quoting string for justifying. The default is
&quot;^([&nbsp;\t]*[|&gt;:}#])+&quot; if regular expression support is available, or
&quot;&gt;&nbsp;&quot; otherwise.
<DT><B>-R (--regexp)</B>
<DD>
Enable regular expression matching for search strings, as well as
\n subexpression replacement for replace strings, if available.
<DT><B>-S (--smooth)</B>
<DD>
Enable smooth scrolling. Text will scroll line-by-line, instead of the
usual chunk-by-chunk behavior.
<DT><B>-T </B><I>num</I> (--tabsize=<I>num</I>)
<DD>
Set the size (width) of a tab.
<DT><B>-V (--version)</B>
<DD>
Show the current version number and author.
<DT><B>-Y </B><I>str</I> (--syntax=<I>str</I>)
<DD>
Specify a specific syntax highlighting from the
<I>.nanorc</I>
to use, if available.
<DT><B>-c (--const)</B>
<DD>
Constantly show the cursor position.
<DT><B>-h (--help)</B>
<DD>
Display a summary of command line options.
<DT><B>-i (--autoindent)</B>
<DD>
Indent new lines to the previous line's indentation. Useful when editing
source code.
<DT><B>-k (--cut)</B>
<DD>
Enable cut from cursor to end of line with ^K.
<DT><B>-l (--nofollow)</B>
<DD>
If the file being edited is a symbolic link, replace the link with
a new file, do not follow it. Good for editing files in
<I>/tmp</I>,
perhaps?
<DT><B>-m (--mouse)</B>
<DD>
Enable mouse support (if available for your system).
<DT><B>-o </B><I>dir</I> (--operatingdir=<I>dir</I>)
<DD>
Set operating directory. Makes nano set up something similar to a
chroot.
<DT><B>-p (--preserve)</B>
<DD>
Preserve the XON and XOFF sequences (^Q and ^S) so they will be
caught by the terminal.
<DT><B>-r </B><I>cols</I> (--fill=<I>cols</I>)
<DD>
Wrap lines at column <I>cols</I>. By default, this is the width of the
screen, less eight. If this value is negative, wrapping will occur at
<I>cols</I> columns from the right of the screen, allowing the wrap point
to vary along with the screen width if resized.
<DT><B>-s </B><I>prog</I> (--speller=<I>prog</I>)
<DD>
Enable alternative spell checker command.
<DT><B>-t (--tempfile)</B>
<DD>
Always save changed buffer without prompting. Same as Pico -t option.
<DT><B>-v (--view)</B>
<DD>
View file (read only) mode.
<DT><B>-w (--nowrap)</B>
<DD>
Disable wrapping of long lines.
<DT><B>-x (--nohelp)</B>
<DD>
Disable help screen at bottom of editor.
<DT><B>-z (--suspend)</B>
<DD>
Enable suspend ability.
<DT><B>-a, -b, -e, -f, -g, -j</B>
<DD>
Ignored, for compatibility with Pico.
<P>
</DL>
<A NAME="lbAF">&nbsp;</A>
<H2>INITIALIZATION FILE</H2>
<B>nano</B> will read initialization files in the following
order:
<I>$SYSCONFDIR/nanorc</I>,
then
<I>~/.nanorc</I>.
Please see
<B><A HREF="http://localhost/cgi-bin/man/man2html?5+nanorc">nanorc</A></B>(5)
and the example file <B>nanorc.sample</B> which should be provided with
<B>nano</B>.
<P>
<A NAME="lbAG">&nbsp;</A>
<H2>NOTES</H2>
<B>nano</B> will try to dump the buffer into an emergency file in some
cases. Mainly, this will happen if <B>nano</B> receives a SIGHUP or
SIGTERM or runs out of memory, when it will write the buffer into a file
named
<I>nano.save</I>
if the buffer didn't have a name already, or will add a &quot;.save&quot; suffix
to the current filename. If an emergency file with that name already
exists in the current directory, &quot;.save&quot; and a number (e.g. &quot;.save.1&quot;)
will be suffixed to the current filename in order to make it unique. In
multibuffer mode, <B>nano</B> will write all the open buffers to the
respective emergency files.
<P>
<A NAME="lbAH">&nbsp;</A>
<H2>BUGS</H2>
Please send any comments or bug reports to
<B><A HREF="mailto:nano@nano-editor.org">nano@nano-editor.org</A></B>.
<P>
The <B>nano</B> mailing list is available from
<B><A HREF="mailto:nano-devel@gnu.org">nano-devel@gnu.org</A></B>.
<P>
To subscribe, email to
<B><A HREF="mailto:nano-devel-request@gnu.org">nano-devel-request@gnu.org</A></B>
with a subject of &quot;subscribe&quot;.
<P>
<A NAME="lbAI">&nbsp;</A>
<H2>HOMEPAGE</H2>
<A HREF="http://www.nano-editor.org/">http://www.nano-editor.org/</A>
<P>
<A NAME="lbAJ">&nbsp;</A>
<H2>SEE ALSO</H2>
<DL COMPACT>
<DT><B><A HREF="http://localhost/cgi-bin/man/man2html?5+nanorc">nanorc</A></B>(5)<DD>
</DL>
<P>
<I>/usr/share/doc/nano/</I> (or equivalent on your system)
<P>
<A NAME="lbAK">&nbsp;</A>
<H2>AUTHOR</H2>
Chris Allegretta &lt;<A HREF="mailto:chrisa@asty.org">chrisa@asty.org</A>&gt;, et al (see
<I>AUTHORS</I>
and
<I>THANKS</I>
for details). This manual page was originally written by Jordi Mallach
&lt;<A HREF="mailto:jordi@sindominio.net">jordi@sindominio.net</A>&gt;, for the Debian GNU system (but may be
used by others).
<P>
<HR>
<A NAME="index">&nbsp;</A><H2>Index</H2>
<DL>
<DT><A HREF="#lbAB">NAME</A><DD>
<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
<DT><A HREF="#lbAE">OPTIONS</A><DD>
<DT><A HREF="#lbAF">INITIALIZATION FILE</A><DD>
<DT><A HREF="#lbAG">NOTES</A><DD>
<DT><A HREF="#lbAH">BUGS</A><DD>
<DT><A HREF="#lbAI">HOMEPAGE</A><DD>
<DT><A HREF="#lbAJ">SEE ALSO</A><DD>
<DT><A HREF="#lbAK">AUTHOR</A><DD>
</DL>
<HR>
This document was created by
<A HREF="http://localhost/cgi-bin/man/man2html">man2html</A>,
using the manual pages.<BR>
Time: 22:27:55 GMT, June 19, 2003
</BODY>
</HTML>

View File

@@ -9,7 +9,7 @@ Release : %{rel}
Copyright : GPL
Group : Console/Editors
URL : http://www.nano-editor.org
Source : http://www.nano-editor.org/dist/v1.2/%{name}-%{ver}.tar.gz
Source : http://www.nano-editor.org/dist/v1.3/%{name}-%{ver}.tar.gz
BuildRoot : /var/tmp/%{name}-buildroot
Requires : ncurses
@@ -30,7 +30,7 @@ make DESTDIR="$RPM_BUILD_ROOT" install
%files
%defattr(-,root,root)
%doc AUTHORS BUGS COPYING ChangeLog INSTALL NEWS README THANKS TODO nanorc.sample
%doc AUTHORS BUGS COPYING ChangeLog INSTALL NEWS README THANKS TODO doc/faq.html doc/nanorc.sample
%{_bindir}/nano
%{_mandir}/*/*
%{_datadir}/locale/*/LC_MESSAGES/nano.mo

View File

@@ -1,195 +0,0 @@
<HTML><HEAD><TITLE>Manpage of NANORC</TITLE>
</HEAD><BODY>
<H1>NANORC</H1>
Section: File Formats (5)<BR>Updated: June 19, 2003<BR><A HREF="#index">Index</A>
<A HREF="http://localhost/cgi-bin/man/man2html">Return to Main Contents</A><HR>
<A NAME="lbAB">&nbsp;</A>
<H2>NAME</H2>
nanorc - GNU nano's rcfile
<A NAME="lbAC">&nbsp;</A>
<H2>DESCRIPTION</H2>
This manual page documents GNU <B>nano</B>'s rcfile.
<P>
<B>nano</B> is a small, free and friendly editor which aims to replace
Pico, the default editor included in the non-free Pine package. Rather
than just copying Pico's look and feel, <B>nano</B> also implements some
missing (or disabled by default) features in Pico, such as &quot;search and
replace&quot; and &quot;go to line number&quot;.
<P>
The <I>nanorc</I> file contains the default settings for <B>nano</B>.
During startup, <B>nano</B> will first read its system-wide settings from
<I>$SYSCONFDIR/nanorc</I>,
and then user-specific settings from
<I>~/.nanorc</I>.
<P>
<A NAME="lbAD">&nbsp;</A>
<H2>OPTIONS</H2>
The configuration file accepts a series of &quot;set&quot; and &quot;unset&quot; commands,
which can be used to configure nano on startup without using the
command-line options. Additionally, the &quot;syntax&quot; and &quot;color&quot; keywords
are used to define syntax highlighting rules for different text patterns.
GNU nano will read one command per line.
<P>
Options in rcfiles take precedence over nano's defaults, and command line
options override rcfile settings.
<P>
Options are unset by default, except for options that take an argument.
<P>
The supported commands and arguments are:
<P>
<DL COMPACT>
<DT><B>set/unset autoindent</B><DD>
Use auto-indentation.
<DT><B>set/unset backup</B><DD>
Create backup files in
<I>filename~</I>.
<DT><B>set/unset const</B><DD>
Constantly display the cursor position in the status bar.
<DT><B>set/unset cut</B><DD>
Use cut to end of line with ^K by default.
<DT><B>set fill </B><I>n</I><DD>
Wrap lines at column number <I>n</I>. If <I>n</I> is 0 or less, the line
length will be the screen width less <I>n</I>. The default value is -8.
<DT><B>set/unset historylog</B><DD>
Enable
<I>~/.nano_history</I>
for saving and reading search/replace strings.
<DT><B>set/unset keypad</B><DD>
Use alternate keypad routines.
<DT><B>set/unset multibuffer</B><DD>
Allow inserting files into their own buffers.
<DT><B>set/unset noconvert</B><DD>
Don't convert files from DOS/Mac format.
<DT><B>set/unset nofollow</B><DD>
Don't follow symlinks when writing files.
<DT><B>set/unset nohelp</B><DD>
Don't display the help lists at the bottom of the screen.
<DT><B>set/unset nowrap</B><DD>
Don't wrap text at all.
<DT><B>set operatingdir &quot;</B><I>directory</I>&quot;<DD>
<B>nano</B> will only read and write files inside <I>directory</I> and its
subdirectories. Also, the current directory is changed to here, so files
are inserted from this dir. By default the operating directory feature is
turned off.
<DT><B>set/unset preserve</B><DD>
Preserve the XON and XOFF keys (^Q and ^S).
<DT><B>set quotestr &quot;</B><I>string</I>&quot;<DD>
The email-quote string, used to justify email-quoted paragraphs. This is
an &quot;extended regular expression&quot; if your system supports them, otherwise a
literal string. The default value is
<P>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT>set quotestr &quot;^([&nbsp;\t]*[|&gt;:}#])+&quot;<BR>
<P>
if you have regexps, otherwise set quotestr &quot;&gt;&nbsp;&quot;. Note that '\t'
above stands for a literal Tab character.
<DT><B>set/unset regexp</B><DD>
Do regular expression searches by default.
<DT><B>set/unset smooth</B><DD>
Use smooth scrolling by default.
<DT><B>set speller </B><I>spellprog</I><DD>
Use spelling checker <I>spellprog</I> instead of the built-in one, which
calls <I>spell</I>.
<DT><B>set/unset suspend</B><DD>
Allow nano to be suspended with ^Z.
<DT><B>set tabsize </B><I>n</I><DD>
Use a tab size of <I>n</I> instead of the default (8); must be greater
than 0.
<DT><B>set/unset tempfile</B><DD>
Save automatically on exit, don't prompt.
<DT><B>set/unset view</B><DD>
Disallow file modification.
<DT><B>syntax </B><I>str</I> [<I>fileregex</I> ... ]
<DD>
Defines a syntax named <I>str</I> which can be activated via the
<B>-Y</B> flag, or will be automatically activated if the current
filename matches <I>fileregex</I>. All following <B>color</B> statements
will apply to <I>syntax</I> until a new syntax is defined.
<DT><B>color </B><I>fgcolor</I>[,<I>bgcolor</I>] <I>regex</I> ...
<DD>
For the currently defined syntax, display all expressions matching
<I>regex</I> with foreground color <I>fgcolor</I> and optional background
color <I>bgcolor</I>. Legal colors for foreground and background color are:
white, black, red, blue, green, yellow, magenta, and cyan. You may use
the prefix &quot;bright&quot; to force a stronger color highlight. If your
terminal supports transparency, not specifying a <I>bgcolor</I> tells
<B>nano</B> to attempt to use a transparent background.
<DT><B>color </B><I>fgcolor</I>[,<I>bgcolor</I>] start=<I>sr</I> end=<I>er</I>
<DD>
Display expressions which start with <I>sr</I> and end with <I>er</I>
with foreground color <I>fgcolor</I> and optional
background color <I>bgcolor</I>. This allows syntax highlighting to span
multiple lines. Note that all subsequent instances of <I>sr</I> after
an initial <I>sr</I> is found will be highlighted until the first
instance of <I>er</I>.
<I>
<P>
</DL>
</I><A NAME="lbAE">&nbsp;</A>
<H2>FILES</H2>
<DL COMPACT>
<DT><I>$SYSCONFDIR/nanorc</I>
<DD>
System-wide configuration file
<DT><I>~/.nanorc</I>
<DD>
Per-user configuration file
</DL>
<A NAME="lbAF">&nbsp;</A>
<H2>SEE ALSO</H2>
<DL COMPACT>
<DT><B><A HREF="http://localhost/cgi-bin/man/man2html?1+nano">nano</A></B>(1)<DD>
</DL>
<P>
<I>/usr/share/doc/nano/examples/nanorc.sample</I> (or equivalent on your
system)
<A NAME="lbAG">&nbsp;</A>
<H2>AUTHOR</H2>
Chris Allegretta &lt;<A HREF="mailto:chrisa@asty.org">chrisa@asty.org</A>&gt;, et al (see
<I>AUTHORS</I>
and
<I>THANKS</I>
for details).
This manual page was written by Jordi Mallach &lt;<A HREF="mailto:jordi@gnu.org">jordi@gnu.org</A>&gt;.
<P>
<HR>
<A NAME="index">&nbsp;</A><H2>Index</H2>
<DL>
<DT><A HREF="#lbAB">NAME</A><DD>
<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
<DT><A HREF="#lbAD">OPTIONS</A><DD>
<DT><A HREF="#lbAE">FILES</A><DD>
<DT><A HREF="#lbAF">SEE ALSO</A><DD>
<DT><A HREF="#lbAG">AUTHOR</A><DD>
</DL>
<HR>
This document was created by
<A HREF="http://localhost/cgi-bin/man/man2html">man2html</A>,
using the manual pages.<BR>
Time: 22:28:00 GMT, June 19, 2003
</BODY>
</HTML>

View File

@@ -1,14 +1,46 @@
2003-08-05 Jordi Mallach <jordi@sindominio.net>
2003-11-25 Jordi Mallach <jordi@gnu.org>
* ro.po: Updated Romanian translation by Laurentiu Buzdugan.
2003-11-06 Jordi Mallach <jordi@gnu.org>
* sr.po: Added Serbian translation by Danilo Segan <dsegan@gmx.net>.
* LINGUAS: Added "sr" (Serbian), and alphabetize.
* ChangeLog: Recoded as UTF-8.
2003-10-30 Jordi Mallach <jordi@gnu.org>
* fi.po: Patch from Martin-Eric Racine <q-funk@pp.fishpool.fi>
to accept "Yy" and "Nn" as well as the Finnish letters in Yes/No
prompts.
2003-10-18 Jordi Mallach <jordi@gnu.org>
* ca.po: Updated Catalan translation.
2003-09-12 Jordi Mallach <jordi@gnu.org>
* POTFILES.in: Updated path to sources.
2003-09-01 Jordi Mallach <jordi@gnu.org>
* fr.po: Updated French translation by Jean-Philippe Guérard.
2003-08-17 Jordi Mallach <jordi@gnu.org>
* tr.po: Updated Turkish translation by A. Murat EREN.
2003-08-05 Jordi Mallach <jordi@gnu.org>
* ca.po: Updated Catalan translation.
2003-06-11 Jordi Mallach <jordi@gnu.org>
* nb.po: Updated Norwegian bokmål translation by Geir Helland.
* nb.po: Updated Norwegian bokmål translation by Geir Helland.
2003-06-10 Jordi Mallach <jordi@gnu.org>
* fr.po: Updated French translation by Jean-Philippe Guérard.
* fr.po: Updated French translation by Jean-Philippe Guérard.
2003-06-02 Jordi Mallach <jordi@gnu.org>
@@ -30,7 +62,7 @@
2003-04-04 Jordi Mallach <jordi@gnu.org>
* fr.po: Updated French translation by Jean-Philippe Guérard.
* fr.po: Updated French translation by Jean-Philippe Guérard.
2003-03-17 Jordi Mallach <jordi@gnu.org>
@@ -52,7 +84,7 @@
2003-02-19 Jordi Mallach <jordi@gnu.org>
* fi.po: Updated Finnish translation by Kalle Olavi Niemitalo.
* es.po: Updated Spanish translation by Ricardo Javier Cárdenes
* es.po: Updated Spanish translation by Ricardo Javier Cárdenes
Medina.
2003-02-17 Jordi Mallach <jordi@gnu.org>
@@ -63,12 +95,12 @@
2003-02-16 Jordi Mallach <jordi@gnu.org>
* gl.po: Updated Galician translation by Jacobo Tarrío.
* fr.po: Updated French translation by Jean-Philippe Guérard.
* gl.po: Updated Galician translation by Jacobo Tarrío.
* fr.po: Updated French translation by Jean-Philippe Guérard.
2003-02-15 Jordi Mallach <jordi@gnu.org>
* fr.po: Updated French translation by Jean-Philippe Guérard.
* fr.po: Updated French translation by Jean-Philippe Guérard.
* nl.po: Updated Dutch translation by Guus Sliepen.
* sv.po: Updated Swedish translation by Christian Rose.
* ca.po: Updated Catalan translation.
@@ -95,8 +127,8 @@
2003-02-08 Jordi Mallach <jordi@gnu.org>
* it.po: Updated Italian translation by Marco Colombo.
* gl.po: Updated Galician translation by Jacobo Tarrío.
* es.po: Updated Spanish translation by Ricardo Javier Cárdenes
* gl.po: Updated Galician translation by Jacobo Tarrío.
* es.po: Updated Spanish translation by Ricardo Javier Cárdenes
Medina.
2003-02-06 Jordi Mallach <jordi@gnu.org>
@@ -107,13 +139,13 @@
2003-02-04 Jordi Mallach <jordi@gnu.org>
* ca.po: Updated Catalan translation.
* fr.po: Updated French translation by Jean-Philippe Guérard.
* fr.po: Updated French translation by Jean-Philippe Guérard.
* uk.po: Updated Ukrainian translation by Sergey A. Ribalchenko.
* de.po: Updated German translation by Michael Piefel.
2003-01-27 Jordi Mallach <jordi@gnu.org>
* es.po: Updated translation by Ricardo Javier Cárdenes Medina.
* es.po: Updated translation by Ricardo Javier Cárdenes Medina.
2002-01-26 Jordi Mallach <jordi@gnu.org>
@@ -121,7 +153,7 @@
2002-01-25 Jordi Mallach <jordi@gnu.org>
* gl.po: Updated translation by Jacobo Tarrío.
* gl.po: Updated translation by Jacobo Tarrío.
2002-01-22 Jordi Mallach <jordi@gnu.org>
@@ -129,13 +161,13 @@
2003-01-21 Jordi Mallach <jordi@gnu.org>
* fr.po: Updated translation by Jean-Philippe Guérard.
* fr.po: Updated translation by Jean-Philippe Guérard.
* ms.po: Updated translation by Sharuzzaman Ahmat Raslan.
* uk.po: Updated translation by Sergey A. Ribalchenko.
2003-01-18 Jordi Mallach <jordi@gnu.org>
* fr.po: Updated translation by Jean-Philippe Guérard.
* fr.po: Updated translation by Jean-Philippe Guérard.
* sv.po: Updated translation by Christian Rose.
* nl.po: Updated translation by Guus Sliepen.
* ca.po: Updated translation.
@@ -159,7 +191,7 @@
2002-12-14 Jordi Mallach <jordi@sindominio.net>
* fr.po: Updated translation by Jean-Philippe Guérard.
* fr.po: Updated translation by Jean-Philippe Guérard.
* tr.po: New Turkish translation by Doruk Fisek.
2002-11-10 Jordi Mallach <jordi@sindominio.net>
@@ -179,22 +211,22 @@
2002-10-29 Jordi Mallach <jordi@sindominio.net>
* id.po: Updated translation by Tedi Heriyanto.
* fr.po: Updated translation by Jean-Philippe Guérard.
* fr.po: Updated translation by Jean-Philippe Guérard.
2002-10-27 Jordi Mallach <jordi@sindominio.net>
* fr.po: Updated translation by Jean-Philippe Guérard.
* fr.po: Updated translation by Jean-Philippe Guérard.
2002-10-26 Jordi Mallach <jordi@sindominio.net>
* es.po: Updated translation by Ricardo Javier Cárdenes Medina.
* es.po: Updated translation by Ricardo Javier Cárdenes Medina.
2002-10-26 Jordi Mallach <jordi@sindominio.net>
* gl.po: Updated translation by Jacobo Tarrío.
* gl.po: Updated translation by Jacobo Tarrío.
* sv.po: Updated translation by Christian Rose.
* de.po: Updated translation by Michael Piefel.
* fr.po: Updated translation by Jean-Philippe Guérard.
* fr.po: Updated translation by Jean-Philippe Guérard.
* ca.po: Updated translation.
2002-10-17 Jordi Mallach <jordi@sindominio.net>
@@ -203,11 +235,11 @@
2002-10-14 Jordi Mallach <jordi@sindominio.net>
* fr.po: Updated translation by Jean-Philippe Guérard.
* fr.po: Updated translation by Jean-Philippe Guérard.
2002-10-13 Jordi Mallach <jordi@sindominio.net>
* es.po: Updated translation by Ricardo Javier Cárdenes Medina.
* es.po: Updated translation by Ricardo Javier Cárdenes Medina.
2002-10-08 Jordi Mallach <jordi@sindominio.net>
@@ -225,7 +257,7 @@
2002-10-07 Jordi Mallach <jordi@sindominio.net>
* sv.po: Updated translation by Christian Rose.
* gl.po: Updated translation by Jacobo Tarrío.
* gl.po: Updated translation by Jacobo Tarrío.
* pl.po: Updated translation by Wojciech Kotwica.
2002-09-08 Jordi Mallach <jordi@sindominio.net>
@@ -234,7 +266,7 @@
2002-09-08 Jordi Mallach <jordi@sindominio.net>
* fr.po: Updated translation by Jean-Philippe Guérard.
* fr.po: Updated translation by Jean-Philippe Guérard.
* da.po: Updated translation by Keld Simonsen.
2002-08-19 Jordi Mallach <jordi@sindominio.net>
@@ -244,15 +276,15 @@
2002-07-31 Jordi Mallach <jordi@sindominio.net>
* gl.po: Updated translation by Jacobo Tarrío.
* gl.po: Updated translation by Jacobo Tarrío.
2002-07-31 Jordi Mallach <jordi@sindominio.net>
* es.po: Updated translation by Ricardo Javier Cárdenes Medina.
* es.po: Updated translation by Ricardo Javier Cárdenes Medina.
2002-07-31 Jordi Mallach <jordi@sindominio.net>
* fr.po: Updated translation by Jean-Philippe Guérard.
* fr.po: Updated translation by Jean-Philippe Guérard.
2002-07-30 Jordi Mallach <jordi@sindominio.net>
@@ -302,13 +334,13 @@
2002-05-13 Jordi Mallach <jordi@sindominio.net>
* fr.po: Updated translation by Jean-Philippe Guérard.
* fr.po: Updated translation by Jean-Philippe Guérard.
* de.po: Updated translation by Michael Piefel.
2002-05-13 Jordi Mallach <jordi@sindominio.net>
* it.po: Updated translation by Marco Colombo.
* gl.po: Updated translation by Jacobo Tarrío.
* gl.po: Updated translation by Jacobo Tarrío.
* ca.po: Updated translation.
* es.po: Updated translation.
@@ -345,7 +377,7 @@
* gl.po: Updated translation by Jacobo Tarrio.
* de.po: Updated translation by Michael Piefel.
* fr.po: Updated translation by Jean-Philippe Guérard.
* fr.po: Updated translation by Jean-Philippe Guérard.
* ca.po: Updated.
* es.po: Updated.
@@ -363,7 +395,7 @@
2002-03-17 Jordi Mallach <jordi@sindominio.net>
* fr.po: Updated translation by Jean-Philippe Guérard.
* fr.po: Updated translation by Jean-Philippe Guérard.
2002-03-15 Jordi Mallach <jordi@sindominio.net>
@@ -386,7 +418,7 @@
2002-03-11 Jordi Mallach <jordi@sindominio.net>
* fr.po: Updated translation by Jean-Philippe Guérard.
* fr.po: Updated translation by Jean-Philippe Guérard.
2002-03-09 Jordi Mallach <jordi@sindominio.net>
@@ -434,7 +466,7 @@
2002-02-06 Jordi Mallach <jordi@sindominio.net>
* cs.po: Incomplete update by Václav Haisman.
* cs.po: Incomplete update by Václav Haisman.
2002-01-27 Jordi Mallach <jordi@sindominio.net>
@@ -442,14 +474,14 @@
2002-01-26 Jordi Mallach <jordi@sindominio.net>
* fr.po: Updated translation by Jean-Philippe Guérard.
* fr.po: Updated translation by Jean-Philippe Guérard.
* nn.po: Updated translation by Kjetil Torgrim Homme.
* de.po: Updated translation by Michael Piefel.
2002-01-25 Jordi Mallach <jordi@sindominio.net>
* sv.po: Updated translation by Christian Rose.
* fr.po: Updated translation by Jean-Philippe Guérard.
* fr.po: Updated translation by Jean-Philippe Guérard.
2002-01-25 Jordi Mallach <jordi@sindominio.net>
@@ -480,21 +512,21 @@
* no.po: Removed, replaced by nn.po.
* nn.po: Updated translation by Kjetil Torgrim Homme.
* nb.po: New Norwegian bokmål translation by Stig E Sandoe.
* nb.po: New Norwegian bokmål translation by Stig E Sandoe.
2002-01-12 Jordi Mallach <jordi@sindominio.net>
* fr.po: Updated translation by Jean-Philippe Guérard.
* fr.po: Updated translation by Jean-Philippe Guérard.
2002-01-10 Jordi Mallach <jordi@sindominio.net>
* fr.po: Updated translation by Jean-Philippe Guérard.
* fr.po: Updated translation by Jean-Philippe Guérard.
2002-01-08 Jordi Mallach <jordi@sindominio.net>
* ru.po, uk.po: Updated translations by Sergey A.
Ribalchenko.
* fr.po: Updated translation by Jean-Philippe Guérard.
* fr.po: Updated translation by Jean-Philippe Guérard.
2002-01-07 Jordi Mallach <jordi@sindominio.net>

View File

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

View File

@@ -2,16 +2,16 @@
# List of source files containing translatable strings.
# Package source files
cut.c
files.c
global.c
move.c
nano.c
rcfile.c
search.c
utils.c
winio.c
src/cut.c
src/files.c
src/global.c
src/move.c
src/nano.c
src/rcfile.c
src/search.c
src/utils.c
src/winio.c
# Package header files
nano.h
proto.h
src/nano.h
src/proto.h

178
po/ca.po
View File

@@ -1,14 +1,13 @@
# Catalan messages for the GNU nano editor.
# Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
# Copyright © 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
# Jordi Mallach <jordi@gnu.org>, 2000, 2001, 2002, 2003.
# Miquel Vidal <miquel@sindominio.net>, 2001.
#
msgid ""
msgstr ""
"Project-Id-Version: nano 1.2.1\n"
"Report-Msgid-Bugs-To: \n"
"Project-Id-Version: nano 1.2.2\n"
"POT-Creation-Date: 2003-08-11 21:49-0400\n"
"PO-Revision-Date: 2003-08-05 23:25+0200\n"
"PO-Revision-Date: 2003-10-18 12:48+0200\n"
"Last-Translator: Jordi Mallach <jordi@gnu.org>\n"
"Language-Team: Catalan <ca@dodds.net>\n"
"MIME-Version: 1.0\n"
@@ -44,7 +43,7 @@ msgstr "
#: files.c:347
msgid "New File"
msgstr "Nou Fitxer"
msgstr "Nou fitxer"
#: files.c:353
#, c-format
@@ -127,16 +126,12 @@ msgstr "No s'ha pogut establir permisos %o en la c
#: files.c:1419
#, c-format
msgid "Could not set owner %d/group %d on backup %s: %s"
msgstr ""
"No s'ha pogut establir el propietari %d/grup %d en la còpia de seguretat %s: "
"%s"
msgstr "No s'ha pogut establir el propietari %d/grup %d en la còpia de seguretat %s: %s"
#: files.c:1424
#, c-format
msgid "Could not set access/modification time on backup %s: %s"
msgstr ""
"No s'ha pogut establir la data d'accés modificació en la còpia de seguretat %"
"s: %s"
msgstr "No s'ha pogut establir la data d'accés modificació en la còpia de seguretat %s: %s"
#: files.c:1459 files.c:1475 files.c:1487 files.c:1509 files.c:1542
#: files.c:1549 files.c:1561
@@ -544,7 +539,7 @@ msgstr "Desjustifica"
#: global.c:484
msgid "UnCut Txt"
msgstr "Engantxa"
msgstr "Enganxa"
#: global.c:489
msgid "Cur Pos"
@@ -738,27 +733,18 @@ msgstr "La tecla
msgid ""
"Search Command Help Text\n"
"\n"
" Enter the words or characters you would like to search for, then hit "
"enter. If there is a match for the text you entered, the screen will be "
"updated to the location of the nearest match for the search string.\n"
" Enter the words or characters you would like to search for, then hit enter. If there is a match for the text you entered, the screen will be updated to the location of the nearest match for the search string.\n"
"\n"
" The previous search string will be shown in brackets after the Search: "
"prompt. Hitting Enter without entering any text will perform the previous "
"search.\n"
" The previous search string will be shown in brackets after the Search: prompt. Hitting Enter without entering any text will perform the previous search.\n"
"\n"
" The following function keys are available in Search mode:\n"
"\n"
msgstr ""
"Text d'ajuda per a l'ordre Cerca\n"
"\n"
" Introduïu les paraules o caràcters que voleu cercar i premeu Retorn. Si hi "
"ha una coincidència per a el text que heu introduït, la pantalla "
"s'actualitzarà al lloc on està la coincidència de la cadena cercada més "
"propera.\n"
" Introduïu les paraules o caràcters que voleu cercar i premeu Retorn. Si hi ha una coincidència per a el text que heu introduït, la pantalla s'actualitzarà al lloc on està la coincidència de la cadena cercada més propera.\n"
"\n"
" La cadena de la cerca anterior es mostrarà entre claudàtors després del "
"indicatiu Cerca:. Prémer Retorn sense introduir cap texte durà a terme la "
"anterior cerca.\n"
" La cadena de la cerca anterior es mostrarà entre claudàtors després del indicatiu Cerca:. Prémer Retorn sense introduir cap texte durà a terme la anterior cerca.\n"
"\n"
" Les següents tecles de funció estan disponibles en el mode Cerca:\n"
"\n"
@@ -767,18 +753,14 @@ msgstr ""
msgid ""
"Go To Line Help Text\n"
"\n"
" Enter the line number that you wish to go to and hit Enter. If there are "
"fewer lines of text than the number you entered, you will be brought to the "
"last line of the file.\n"
" Enter the line number that you wish to go to and hit Enter. If there are fewer lines of text than the number you entered, you will be brought to the last line of the file.\n"
"\n"
" The following function keys are available in Go To Line mode:\n"
"\n"
msgstr ""
"Text d'ajuda d'Anar a línia\n"
"\n"
" Introduïu el número de la línia a la que voleu anar i premeu Retorn. Si hi "
"ha menys línias de texte que el número que heu introduit, el cursor es mourà "
"a la última línia del fitxer.\n"
" Introduïu el número de la línia a la que voleu anar i premeu Retorn. Si hi ha menys línias de texte que el número que heu introduit, el cursor es mourà a la última línia del fitxer.\n"
"\n"
" Les següents tecles de funció estan disponibles en el mode Anar a línia:\n"
"\n"
@@ -787,61 +769,42 @@ msgstr ""
msgid ""
"Insert File Help Text\n"
"\n"
" Type in the name of a file to be inserted into the current file buffer at "
"the current cursor location.\n"
" Type in the name of a file to be inserted into the current file buffer at the current cursor location.\n"
"\n"
" If you have compiled nano with multiple file buffer support, and enable "
"multiple buffers with the -F or --multibuffer command line flags, the Meta-F "
"toggle, or a nanorc file, inserting a file will cause it to be loaded into a "
"separate buffer (use Meta-< and > to switch between file buffers).\n"
" If you have compiled nano with multiple file buffer support, and enable multiple buffers with the -F or --multibuffer command line flags, the Meta-F toggle, or a nanorc file, inserting a file will cause it to be loaded into a separate buffer (use Meta-< and > to switch between file buffers).\n"
"\n"
" If you need another blank buffer, do not enter any filename, or type in a "
"nonexistent filename at the prompt and press Enter.\n"
" If you need another blank buffer, do not enter any filename, or type in a nonexistent filename at the prompt and press Enter.\n"
"\n"
" The following function keys are available in Insert File mode:\n"
"\n"
msgstr ""
"Text d'ajuda d'Insereix Fitxer\n"
"\n"
" Escriviu el nom del fitxer a afegir en el búfer actual en la posició actual "
"del cursor.\n"
" Escriviu el nom del fitxer a afegir en el búfer actual en la posició actual del cursor.\n"
"\n"
" Si s'ha compilat nano amb suport per a múltiples fitxers i heu habilitat "
"els búfers múltiples amb les opcions -F o --multibuffer, l'interruptor Meta-"
"F o amb un fitxer nanorc, la inserció d'un fitxer farà que es carregue en un "
"búfer different (feu servir Meta-< i > per a canviar de búfers de fitxer).\n"
" Si s'ha compilat nano amb suport per a múltiples fitxers i heu habilitat els búfers múltiples amb les opcions -F o --multibuffer, l'interruptor Meta-F o amb un fitxer nanorc, la inserció d'un fitxer farà que es carregue en un búfer different (feu servir Meta-< i > per a canviar de búfers de fitxer).\n"
"\n"
" Si necessiteu un altre búfer en blanc, no inseriu cap nom de fitxer o "
"escriviu el nom d'un fitxer no existent en l'indicatiu i premeu Retorn.\n"
" Si necessiteu un altre búfer en blanc, no inseriu cap nom de fitxer o escriviu el nom d'un fitxer no existent en l'indicatiu i premeu Retorn.\n"
"\n"
" Les següents tecles de funció estan disponibles en el mode Insereix "
"fitxer:\n"
" Les següents tecles de funció estan disponibles en el mode Insereix fitxer:\n"
"\n"
#: nano.c:310
msgid ""
"Write File Help Text\n"
"\n"
" Type the name that you wish to save the current file as and hit Enter to "
"save the file.\n"
" Type the name that you wish to save the current file as and hit Enter to save the file.\n"
"\n"
" If you have selected text with Ctrl-^, you will be prompted to save only "
"the selected portion to a separate file. To reduce the chance of "
"overwriting the current file with just a portion of it, the current filename "
"is not the default in this mode.\n"
" If you have selected text with Ctrl-^, you will be prompted to save only the selected portion to a separate file. To reduce the chance of overwriting the current file with just a portion of it, the current filename is not the default in this mode.\n"
"\n"
" The following function keys are available in Write File mode:\n"
"\n"
msgstr ""
"Text d'ajuda de Desa fitxer\n"
"\n"
" Escriviu el nom amb el que voleu desar el fitxer actual i premeu Retorn per "
"a salvar-ho.\n"
" Escriviu el nom amb el que voleu desar el fitxer actual i premeu Retorn per a salvar-ho.\n"
"\n"
" Si esteu fent servir el codi de marcat amb Ctrl-^ i heu sel·leccionat text, "
"s'us preguntarà si voleu desar només la porció marcada a un fitxer diferent. "
"Per a reduir la posibilitat de sobreescriure el fitxer actual amb només una "
"part d'ell, el nom del fitxer actual no és el predeterminat en aquest mode.\n"
" Si esteu fent servir el codi de marcat amb Ctrl-^ i heu sel·leccionat text, s'us preguntarà si voleu desar només la porció marcada a un fitxer diferent. Per a reduir la posibilitat de sobreescriure el fitxer actual amb només una part d'ell, el nom del fitxer actual no és el predeterminat en aquest mode.\n"
"\n"
" Les següents tecles de funció estan disponibles en el mode Desa fitxer:\n"
"\n"
@@ -850,26 +813,16 @@ msgstr ""
msgid ""
"File Browser Help Text\n"
"\n"
" The file browser is used to visually browse the directory structure to "
"select a file for reading or writing. You may use the arrow keys or Page Up/"
"Down to browse through the files, and S or Enter to choose the selected file "
"or enter the selected directory. To move up one level, select the directory "
"called \"..\" at the top of the file list.\n"
" The file browser is used to visually browse the directory structure to select a file for reading or writing. You may use the arrow keys or Page Up/Down to browse through the files, and S or Enter to choose the selected file or enter the selected directory. To move up one level, select the directory called \"..\" at the top of the file list.\n"
"\n"
" The following function keys are available in the file browser:\n"
"\n"
msgstr ""
"Text d'ajuda del Navegador de fitxers\n"
"\n"
" El navegador de fitxers s'utilitza per a navegar visualment la estructura "
"del directori per a seleccionar un fitxer per a lectura o escriptura. Podeu "
"fer servir els cursors o Re/Av Pag per a navegar per els fitxers i S o Intro "
"per a triar el fitxer seleccionat o entrar dins del directori seleccionat. "
"Per a pujar un nivel, seleccioneu el directori «..» en la part superior de "
"la llista de fitxers.\n"
" El navegador de fitxers s'utilitza per a navegar visualment la estructura del directori per a seleccionar un fitxer per a lectura o escriptura. Podeu fer servir els cursors o Re/Av Pag per a navegar per els fitxers i S o Intro per a triar el fitxer seleccionat o entrar dins del directori seleccionat. Per a pujar un nivel, seleccioneu el directori «..» en la part superior de la llista de fitxers.\n"
"\n"
" Les següents tecles de funció estan disponibles en el navegador de "
"fitxers:\n"
" Les següents tecles de funció estan disponibles en el navegador de fitxers:\n"
"\n"
#: nano.c:332
@@ -878,8 +831,7 @@ msgid ""
"\n"
" Enter the name of the directory you would like to browse to.\n"
"\n"
" If tab completion has not been disabled, you can use the TAB key to "
"(attempt to) automatically complete the directory name.\n"
" If tab completion has not been disabled, you can use the TAB key to (attempt to) automatically complete the directory name.\n"
"\n"
" The following function keys are available in Browser Go To Directory mode:\n"
"\n"
@@ -888,50 +840,39 @@ msgstr ""
"\n"
" Introduïu el nom del directori per el que voleu navegar.\n"
"\n"
" Si el completat amb el tabulador no està desactivat, podeu fer servir la "
"tecla TAB per a (intentar) completar automàticament el nom del directori.\n"
" Si el completat amb el tabulador no està desactivat, podeu fer servir la tecla TAB per a (intentar) completar automàticament el nom del directori.\n"
"\n"
" Les següents tecles de funció estan disponibles en el mode del navegador "
"Anar a directori:\n"
" Les següents tecles de funció estan disponibles en el mode del navegador Anar a directori:\n"
"\n"
#: nano.c:341
msgid ""
"Spell Check Help Text\n"
"\n"
" The spell checker checks the spelling of all text in the current file. "
"When an unknown word is encountered, it is highlighted and a replacement can "
"be edited. It will then prompt to replace every instance of the given "
"misspelled word in the current file.\n"
" The spell checker checks the spelling of all text in the current file. When an unknown word is encountered, it is highlighted and a replacement can be edited. It will then prompt to replace every instance of the given misspelled word in the current file.\n"
"\n"
" The following other functions are available in Spell Check mode:\n"
"\n"
msgstr ""
"Text d'ajuda del Corrector d'Ortografia\n"
"\n"
" El Corrector d'ortografia comprova la ortografia de tot el texte en el "
"fitxer actual. Quan es troba una paraula desconeguda, aquesta es marca i es "
"pot editar una substitució. Després preguntarà si es vol reemplaçar totes "
"les coincidències d'eixa paraula mal escrita el el fitxer actual.\n"
" El Corrector d'ortografia comprova la ortografia de tot el texte en el fitxer actual. Quan es troba una paraula desconeguda, aquesta es marca i es pot editar una substitució. Després preguntarà si es vol reemplaçar totes les coincidències d'eixa paraula mal escrita el el fitxer actual.\n"
"\n"
" Les següents tecles de funció estan disponibles en el mode Corrector "
"d'Ortografia:\n"
" Les següents tecles de funció estan disponibles en el mode Corrector d'Ortografia:\n"
"\n"
#: nano.c:352
msgid ""
"External Command Help Text\n"
"\n"
" This menu allows you to insert the output of a command run by the shell "
"into the current buffer (or a new buffer in multibuffer mode).\n"
" This menu allows you to insert the output of a command run by the shell into the current buffer (or a new buffer in multibuffer mode).\n"
"\n"
" The following keys are available in this mode:\n"
"\n"
msgstr ""
"Text d'ajuda de l'Ordre Externa\n"
"\n"
" Aquest menú vos permet inserir l'eixida d'una ordre executada per "
"l'intèrpret en el búfer actual (o un nou búfer en el mode multibuffer).\n"
" Aquest menú vos permet inserir l'eixida d'una ordre executada per l'intèrpret en el búfer actual (o un nou búfer en el mode multibuffer).\n"
"\n"
" Les següents tecles de funció estan disponibles en el mode Ordre Externa:\n"
@@ -939,39 +880,16 @@ msgstr ""
msgid ""
" nano help text\n"
"\n"
" The nano editor is designed to emulate the functionality and ease-of-use of "
"the UW Pico text editor. There are four main sections of the editor: The "
"top line shows the program version, the current filename being edited, and "
"whether or not the file has been modified. Next is the main editor window "
"showing the file being edited. The status line is the third line from the "
"bottom and shows important messages. The bottom two lines show the most "
"commonly used shortcuts in the editor.\n"
" The nano editor is designed to emulate the functionality and ease-of-use of the UW Pico text editor. There are four main sections of the editor: The top line shows the program version, the current filename being edited, and whether or not the file has been modified. Next is the main editor window showing the file being edited. The status line is the third line from the bottom and shows important messages. The bottom two lines show the most commonly used shortcuts in the editor.\n"
"\n"
" The notation for shortcuts is as follows: Control-key sequences are notated "
"with a caret (^) symbol and are entered with the Control (Ctrl) key. Escape-"
"key sequences are notated with the Meta (M) symbol and can be entered using "
"either the Esc, Alt or Meta key depending on your keyboard setup. The "
"following keystrokes are available in the main editor window. Alternative "
"keys are shown in parentheses:\n"
" The notation for shortcuts is as follows: Control-key sequences are notated with a caret (^) symbol and are entered with the Control (Ctrl) key. Escape-key sequences are notated with the Meta (M) symbol and can be entered using either the Esc, Alt or Meta key depending on your keyboard setup. The following keystrokes are available in the main editor window. Alternative keys are shown in parentheses:\n"
"\n"
msgstr ""
" texte d'ajuda de nano\n"
"\n"
" L'editor nano està dissenyat per a emular la funcionalitat i la facilitat "
"d'ús de Pico, l'editor de text de la UW. Hi ha quatre seccions a l'editor: "
"la línia superior mostra la versió del programa, el nom del fitxer editat i "
"si el fitxer ha estat o no modificat. També tenim la finestra principal de "
"edició, que mostra el fitxer que s'està editant. La línia d'estat és la "
"tercera des de baix i mostra missatges importants. Les últimes dues línies "
"mostren les dreceres més utilitzades a l'editor.\n"
" L'editor nano està dissenyat per a emular la funcionalitat i la facilitat d'ús de Pico, l'editor de text de la UW. Hi ha quatre seccions a l'editor: la línia superior mostra la versió del programa, el nom del fitxer editat i si el fitxer ha estat o no modificat. També tenim la finestra principal de edició, que mostra el fitxer que s'està editant. La línia d'estat és la tercera des de baix i mostra missatges importants. Les últimes dues línies mostren les dreceres més utilitzades a l'editor.\n"
"\n"
" La notació de les dreceres és la següent: les sequències amb la tecla "
"Control estan anotades amb el símbol circunflex (^) i són accedides "
"mitjançant la tecla Control. Les seqüències amb tecles d'escapada estan "
"anotades amb el símbol Meta (M) i s'hi pot accedir mitjançant les tecles "
"Esc, Alt o Meta, tot depenent de la configuració del teu teclat. Les "
"següents combinacions estan disponibles a la finestra principal. Les tecles "
"alternatives estan representades entre parèntesi:\n"
" La notació de les dreceres és la següent: les sequències amb la tecla Control estan anotades amb el símbol circunflex (^) i són accedides mitjançant la tecla Control. Les seqüències amb tecles d'escapada estan anotades amb el símbol Meta (M) i s'hi pot accedir mitjançant les tecles Esc, Alt o Meta, tot depenent de la configuració del teu teclat. Les següents combinacions estan disponibles a la finestra principal. Les tecles alternatives estan representades entre parèntesi:\n"
"\n"
#: nano.c:388 nano.c:458
@@ -1313,8 +1231,7 @@ msgstr "No es pot moure la finestra inferior"
#: nano.c:2919
msgid "NumLock glitch detected. Keypad will malfunction with NumLock off"
msgstr ""
"Detectat NumLock trencat. El tecl. numèric funcionarà amb NumLock activat"
msgstr "Detectat NumLock trencat. El tecl. numèric funcionarà amb NumLock activat"
#: nano.c:2968
msgid "enabled"
@@ -1731,21 +1648,6 @@ msgstr "Gr
#~ msgid "Can't visit parent in restricted mode"
#~ msgstr "No es pot visitar el directori pare en mode restringit"
#~ msgid "string val=%s\n"
#~ msgstr "cadena val=%s\n"
#~ msgid "For end part, beginning = \"%s\"\n"
#~ msgstr "Per a la part final, beginning = «%s»\n"
#~ msgid "current->data = \"%s\"\n"
#~ msgstr "current->data = \"%s\"\n"
#~ msgid "do_cursorpos: linepct = %f, bytepct = %f\n"
#~ msgstr "do_cursorpos: linepct = %f, bytepct = %f\n"
#~ msgid "read_line: not on first line and prev is NULL"
#~ msgstr "read_line: no som a la primera línia i la anterior és NULL"
#~ msgid "Pico mode"
#~ msgstr "Mode Pico"

View File

@@ -1592,11 +1592,11 @@ msgstr "En hyv
#: winio.c:1297
msgid "Yy"
msgstr "Kk"
msgstr "KkYy"
#: winio.c:1298
msgid "Nn"
msgstr "Ee"
msgstr "EeNn"
#: winio.c:1299
msgid "Aa"

629
po/fr.po

File diff suppressed because it is too large Load Diff

265
po/ro.po
View File

@@ -6,10 +6,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: nano 1.2.1\n"
"Report-Msgid-Bugs-To: \n"
"Project-Id-Version: nano 1.2.2\n"
"POT-Creation-Date: 2003-08-11 21:49-0400\n"
"PO-Revision-Date: 2003-04-22 23:00-0600\n"
"PO-Revision-Date: 2003-11-24 12:00-0500\n"
"Last-Translator: Laurentiu Buzdugan <buzdugan@voyager.net>\n"
"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
@@ -423,8 +422,7 @@ msgstr "Insereaz
#: global.c:382
msgid "Insert a carriage return at the cursor position"
msgstr ""
"Insereazã un caracter \"carriage return\" la poziþia curentã a cursorului"
msgstr "Insereazã un caracter \"carriage return\" la poziþia curentã a cursorului"
#: global.c:384
msgid "Make the current search or replace case (in)sensitive"
@@ -736,26 +734,18 @@ msgstr "Tast
msgid ""
"Search Command Help Text\n"
"\n"
" Enter the words or characters you would like to search for, then hit "
"enter. If there is a match for the text you entered, the screen will be "
"updated to the location of the nearest match for the search string.\n"
" Enter the words or characters you would like to search for, then hit enter. If there is a match for the text you entered, the screen will be updated to the location of the nearest match for the search string.\n"
"\n"
" The previous search string will be shown in brackets after the Search: "
"prompt. Hitting Enter without entering any text will perform the previous "
"search.\n"
" The previous search string will be shown in brackets after the Search: prompt. Hitting Enter without entering any text will perform the previous search.\n"
"\n"
" The following function keys are available in Search mode:\n"
"\n"
msgstr ""
"Text de ajutor pentru comanda \"Cautã\"\n"
"\n"
"Introduceþi cuvântul sau caracterele pe care aþi dori sã le cãutaþi, apoi "
"apãsaþi Enter. Dacã existã vreo potrivire pentru textul cãutat, ecranul va "
"fi actualizat la locaþia cea mai apropiatã de locul unde aceastã potrivire a "
"avut loc.\n"
"Introduceþi cuvântul sau caracterele pe care aþi dori sã le cãutaþi, apoi apãsaþi Enter. Dacã existã vreo potrivire pentru textul cãutat, ecranul va fi actualizat la locaþia cea mai apropiatã de locul unde aceastã potrivire a avut loc.\n"
"\n"
"ªirul cãutat anterior va fi arãtat în paranteze dupã cuvântul Cautã: . "
"Apãsând Enter fãrã a introduce vreun text va executa cãutarea anterioarã.\n"
"ªirul cãutat anterior va fi arãtat în paranteze dupã cuvântul Cautã: . Apãsând Enter fãrã a introduce vreun text va executa cãutarea anterioarã.\n"
"\n"
"Urmãtoarele taste de funcþii sunt disponibile în modul \"Cautã\"\n"
"\n"
@@ -764,18 +754,14 @@ msgstr ""
msgid ""
"Go To Line Help Text\n"
"\n"
" Enter the line number that you wish to go to and hit Enter. If there are "
"fewer lines of text than the number you entered, you will be brought to the "
"last line of the file.\n"
" Enter the line number that you wish to go to and hit Enter. If there are fewer lines of text than the number you entered, you will be brought to the last line of the file.\n"
"\n"
" The following function keys are available in Go To Line mode:\n"
"\n"
msgstr ""
"Textul de ajutor pentru \"Du-te la linia\"\n"
"\n"
" Introduceþi numãrul liniei unde doriþi sã mergeþi ºi apãsaþi Enter. Dacã "
"existã mai puþine linii de text decât numãrul introdus veþi ajunge la ultima "
"linie a fiºierului.\n"
" Introduceþi numãrul liniei unde doriþi sã mergeþi ºi apãsaþi Enter. Dacã existã mai puþine linii de text decât numãrul introdus veþi ajunge la ultima linie a fiºierului.\n"
"\n"
" Urmãtoarele taste de funcþii sunt disponibile în modul \"Du-te la linia\" \n"
@@ -783,61 +769,41 @@ msgstr ""
msgid ""
"Insert File Help Text\n"
"\n"
" Type in the name of a file to be inserted into the current file buffer at "
"the current cursor location.\n"
" Type in the name of a file to be inserted into the current file buffer at the current cursor location.\n"
"\n"
" If you have compiled nano with multiple file buffer support, and enable "
"multiple buffers with the -F or --multibuffer command line flags, the Meta-F "
"toggle, or a nanorc file, inserting a file will cause it to be loaded into a "
"separate buffer (use Meta-< and > to switch between file buffers).\n"
" If you have compiled nano with multiple file buffer support, and enable multiple buffers with the -F or --multibuffer command line flags, the Meta-F toggle, or a nanorc file, inserting a file will cause it to be loaded into a separate buffer (use Meta-< and > to switch between file buffers).\n"
"\n"
" If you need another blank buffer, do not enter any filename, or type in a "
"nonexistent filename at the prompt and press Enter.\n"
" If you need another blank buffer, do not enter any filename, or type in a nonexistent filename at the prompt and press Enter.\n"
"\n"
" The following function keys are available in Insert File mode:\n"
"\n"
msgstr ""
"Textul de ajutor pentru \"Insereazã fiºier\"\n"
"\n"
" Tastaþi numele unui fiºier de introdus în buffer-ul pentru fiºierul curent "
"la poziþia curentã a cursorului.\n"
" Tastaþi numele unui fiºier de introdus în buffer-ul pentru fiºierul curent la poziþia curentã a cursorului.\n"
"\n"
" Dacã aþi compilat nano cu suport pentru multiple buffere ºi aþi activat "
"acestã opþiune cu indicatorii de linie de comandã -F sau --multibuffer, "
"comutatorul Meta-F, sau un fiºier nanorc, inserând un fiºier va face ca "
"acesta sã fie încãrcat într-un alt buffer (folosiþi Meta-< ºi > pentru a "
"comuta între buffere).\n"
" Dacã aþi compilat nano cu suport pentru multiple buffere ºi aþi activat acestã opþiune cu indicatorii de linie de comandã -F sau --multibuffer, comutatorul Meta-F, sau un fiºier nanorc, inserând un fiºier va face ca acesta sã fie încãrcat într-un alt buffer (folosiþi Meta-< ºi > pentru a comuta între buffere).\n"
"\n"
"Dacã aveþi nevoie de un alt buffer liber, nu introduceþi nici un nume sau "
"introduceþi un nume de fiºier ce nu existã ºi apãsaþi Enter.\n"
"Dacã aveþi nevoie de un alt buffer liber, nu introduceþi nici un nume sau introduceþi un nume de fiºier ce nu existã ºi apãsaþi Enter.\n"
"\n"
" Urmãtoarele taste de funcþii sunt disponibile în modul \"Insereazã fiºier"
"\" \n"
" Urmãtoarele taste de funcþii sunt disponibile în modul \"Insereazã fiºier\" \n"
#: nano.c:310
msgid ""
"Write File Help Text\n"
"\n"
" Type the name that you wish to save the current file as and hit Enter to "
"save the file.\n"
" Type the name that you wish to save the current file as and hit Enter to save the file.\n"
"\n"
" If you have selected text with Ctrl-^, you will be prompted to save only "
"the selected portion to a separate file. To reduce the chance of "
"overwriting the current file with just a portion of it, the current filename "
"is not the default in this mode.\n"
" If you have selected text with Ctrl-^, you will be prompted to save only the selected portion to a separate file. To reduce the chance of overwriting the current file with just a portion of it, the current filename is not the default in this mode.\n"
"\n"
" The following function keys are available in Write File mode:\n"
"\n"
msgstr ""
"Textul de ajutor pentru \"Scrie fiºier\"\n"
"\n"
" Tastaþi numele sub care doriþi sã salvaþi fiºierul curent ºi apãsaþi Enter "
"pentru a salva fiºierul.\n"
" Tastaþi numele sub care doriþi sã salvaþi fiºierul curent ºi apãsaþi Enter pentru a salva fiºierul.\n"
"\n"
" Dacã aþi selectat text cu Ctrl-^, veþi fi interpolat sã salvaþi numai "
"porþiunea selectatã într-un fiºier separat. Pentru a reduce ºansa de a "
"suprascrie fiºierul curent cu doar o porþiune a sa, numele de fiºier curent "
"nu este implicit în acest mod.\n"
" Dacã aþi selectat text cu Ctrl-^, veþi fi interpolat sã salvaþi numai porþiunea selectatã într-un fiºier separat. Pentru a reduce ºansa de a suprascrie fiºierul curent cu doar o porþiune a sa, numele de fiºier curent nu este implicit în acest mod.\n"
"\n"
" Urmãtoarele taste de funcþii sunt disponibile în modul \"Scrie fiºier\"\n"
"\n"
@@ -846,23 +812,14 @@ msgstr ""
msgid ""
"File Browser Help Text\n"
"\n"
" The file browser is used to visually browse the directory structure to "
"select a file for reading or writing. You may use the arrow keys or Page Up/"
"Down to browse through the files, and S or Enter to choose the selected file "
"or enter the selected directory. To move up one level, select the directory "
"called \"..\" at the top of the file list.\n"
" The file browser is used to visually browse the directory structure to select a file for reading or writing. You may use the arrow keys or Page Up/Down to browse through the files, and S or Enter to choose the selected file or enter the selected directory. To move up one level, select the directory called \"..\" at the top of the file list.\n"
"\n"
" The following function keys are available in the file browser:\n"
"\n"
msgstr ""
"Textul de ajutor pentru \"Navigator fiºiere\"\n"
"\n"
" Navigatorul de fiºiere este folosit pentru a naviga vizual structura de "
"directoare ºi a selecta un fiºier pentru citire sau scriere. Puteþi folosi "
"tastele cu sãgeþi sau Page Up/Down pentru a naviga prin fiºiere, ºi S sau "
"Enter pentru a alege fiºierul selectat sau a intra într-un director "
"selectat. Pentru a vã muta în sus un nivel, selectaþi directorul numit \".."
"\" din capãtul de sus a listei de fiºiere.\n"
" Navigatorul de fiºiere este folosit pentru a naviga vizual structura de directoare ºi a selecta un fiºier pentru citire sau scriere. Puteþi folosi tastele cu sãgeþi sau Page Up/Down pentru a naviga prin fiºiere, ºi S sau Enter pentru a alege fiºierul selectat sau a intra într-un director selectat. Pentru a vã muta în sus un nivel, selectaþi directorul numit \"..\" din capãtul de sus a listei de fiºiere.\n"
"\n"
" Urmãtoarele taste de funcþii sunt disponibile în \"Navigator fiºiere\":\n"
"\n"
@@ -873,8 +830,7 @@ msgid ""
"\n"
" Enter the name of the directory you would like to browse to.\n"
"\n"
" If tab completion has not been disabled, you can use the TAB key to "
"(attempt to) automatically complete the directory name.\n"
" If tab completion has not been disabled, you can use the TAB key to (attempt to) automatically complete the directory name.\n"
"\n"
" The following function keys are available in Browser Go To Directory mode:\n"
"\n"
@@ -883,51 +839,39 @@ msgstr ""
"\n"
" Introduceþi numele directorului pe care aþi dori sã-l navigaþi.\n"
"\n"
" Dacã completarea cu tab nu a fost deactivatã, puteþi folosi tasta TAB "
"pentru a încerca sã completaþi automat numele directorului.\n"
" Dacã completarea cu tab nu a fost deactivatã, puteþi folosi tasta TAB pentru a încerca sã completaþi automat numele directorului.\n"
"\n"
" Urmãtoarele taste de funcþii sunt disponibile în modul \"Navigator Du-te la "
"Directorul\":\n"
" Urmãtoarele taste de funcþii sunt disponibile în modul \"Navigator Du-te la Directorul\":\n"
"\n"
#: nano.c:341
msgid ""
"Spell Check Help Text\n"
"\n"
" The spell checker checks the spelling of all text in the current file. "
"When an unknown word is encountered, it is highlighted and a replacement can "
"be edited. It will then prompt to replace every instance of the given "
"misspelled word in the current file.\n"
" The spell checker checks the spelling of all text in the current file. When an unknown word is encountered, it is highlighted and a replacement can be edited. It will then prompt to replace every instance of the given misspelled word in the current file.\n"
"\n"
" The following other functions are available in Spell Check mode:\n"
"\n"
msgstr ""
"Text de ajutor pentru \"Corector ortografic\"\n"
"\n"
" Corectorul ortografic verificã ortografierea întregului text din fiºierul "
"curent. Când un cuvânt necunoscut este întâlnit, acesta este evidenþiat ºi "
"un înlocuitor poate fi introdus/editat. Corectorul vã va întreba dacã "
"doriþi sã înlocuiþi toate apariþiile cu aceeaºi greºealã în fiºierul "
"curent.\n"
" Corectorul ortografic verificã ortografierea întregului text din fiºierul curent. Când un cuvânt necunoscut este întâlnit, acesta este evidenþiat ºi un înlocuitor poate fi introdus/editat. Corectorul vã va întreba dacã doriþi sã înlocuiþi toate apariþiile cu aceeaºi greºealã în fiºierul curent.\n"
"\n"
" Urmãtoarele alte funcþii sunt disponibile în modul \"Corector ortografic"
"\":\n"
" Urmãtoarele alte funcþii sunt disponibile în modul \"Corector ortografic\":\n"
"\n"
#: nano.c:352
msgid ""
"External Command Help Text\n"
"\n"
" This menu allows you to insert the output of a command run by the shell "
"into the current buffer (or a new buffer in multibuffer mode).\n"
" This menu allows you to insert the output of a command run by the shell into the current buffer (or a new buffer in multibuffer mode).\n"
"\n"
" The following keys are available in this mode:\n"
"\n"
msgstr ""
"Text de ajutor \"Comandã externã\"\n"
"\n"
" Acest meniu vã permite sã inseraþi ieºirea unei comenzi executate de shell "
"în buffer-ul curent (sau într-un nou buffer în modul multibuffer).\n"
" Acest meniu vã permite sã inseraþi ieºirea unei comenzi executate de shell în buffer-ul curent (sau într-un nou buffer în modul multibuffer).\n"
"\n"
" Urmãtoarele taste sunt disponibile în acest mod:\n"
"\n"
@@ -936,40 +880,16 @@ msgstr ""
msgid ""
" nano help text\n"
"\n"
" The nano editor is designed to emulate the functionality and ease-of-use of "
"the UW Pico text editor. There are four main sections of the editor: The "
"top line shows the program version, the current filename being edited, and "
"whether or not the file has been modified. Next is the main editor window "
"showing the file being edited. The status line is the third line from the "
"bottom and shows important messages. The bottom two lines show the most "
"commonly used shortcuts in the editor.\n"
" The nano editor is designed to emulate the functionality and ease-of-use of the UW Pico text editor. There are four main sections of the editor: The top line shows the program version, the current filename being edited, and whether or not the file has been modified. Next is the main editor window showing the file being edited. The status line is the third line from the bottom and shows important messages. The bottom two lines show the most commonly used shortcuts in the editor.\n"
"\n"
" The notation for shortcuts is as follows: Control-key sequences are notated "
"with a caret (^) symbol and are entered with the Control (Ctrl) key. Escape-"
"key sequences are notated with the Meta (M) symbol and can be entered using "
"either the Esc, Alt or Meta key depending on your keyboard setup. The "
"following keystrokes are available in the main editor window. Alternative "
"keys are shown in parentheses:\n"
" The notation for shortcuts is as follows: Control-key sequences are notated with a caret (^) symbol and are entered with the Control (Ctrl) key. Escape-key sequences are notated with the Meta (M) symbol and can be entered using either the Esc, Alt or Meta key depending on your keyboard setup. The following keystrokes are available in the main editor window. Alternative keys are shown in parentheses:\n"
"\n"
msgstr ""
" text ajutor pentru nano\n"
"\n"
" Editotul nano este proiectat sa emuleze funþionalitatea ºi uºurinþa de "
"folosire a editorului de texte UW Pico. Existã patru secþiuni principale "
"ale editorului: Linia de sus aratã versiunea programului, numele fiºierului "
"curent ce este editat ºi dacã fiºierul a fost sau nu modificat. Urmãtoarea "
"secþiune principalã este fereastra de editare ce aratã fiºierul ce este "
"editat. Linia de stare este a treia linie de jos ºi aratã mesaje "
"importante. Ultimele douã linii aratã cele mai frecvente scurtãturi "
"folosite în editor.\n"
" Editotul nano este proiectat sa emuleze funþionalitatea ºi uºurinþa de folosire a editorului de texte UW Pico. Existã patru secþiuni principale ale editorului: Linia de sus aratã versiunea programului, numele fiºierului curent ce este editat ºi dacã fiºierul a fost sau nu modificat. Urmãtoarea secþiune principalã este fereastra de editare ce aratã fiºierul ce este editat. Linia de stare este a treia linie de jos ºi aratã mesaje importante. Ultimele douã linii aratã cele mai frecvente scurtãturi folosite în editor.\n"
"\n"
" Notaþia pentru scurtãturi este dupã cum urmeazã: secvenþe Control-tastã "
"sunt notate cu un simbol (^) ºi sunt introduse cu tasta Control (Ctrl). "
"Secvenþele Escape-tastã sunt notate cu sombolul Meta (M) ºi pot fi introduse "
"folosind oricare din tastele Esc, Alt sau Meta, în funcþie de setarea "
"tastaturii d-voastrã. Urmãtoarele combinaþii de taste sunt disponibile în "
"fereastra de editare principalã. Tastele alternative sunt arãtate în "
"paranteze:\n"
" Notaþia pentru scurtãturi este dupã cum urmeazã: secvenþe Control-tastã sunt notate cu un simbol (^) ºi sunt introduse cu tasta Control (Ctrl). Secvenþele Escape-tastã sunt notate cu sombolul Meta (M) ºi pot fi introduse folosind oricare din tastele Esc, Alt sau Meta, în funcþie de setarea tastaturii d-voastrã. Urmãtoarele combinaþii de taste sunt disponibile în fereastra de editare principalã. Tastele alternative sunt arãtate în paranteze:\n"
"\n"
#: nano.c:388 nano.c:458
@@ -1154,7 +1074,7 @@ msgstr "Permite corector ortografic alternativ"
#: nano.c:680
msgid "Auto save on exit, don't prompt"
msgstr "Saulveazã automat la ieºire, nu întreba"
msgstr "Salveazã automat la ieºire, nu întreba"
#: nano.c:681
msgid "View (read only) mode"
@@ -1275,8 +1195,7 @@ msgstr "Nu pot De-Alinia!"
#: nano.c:2696
msgid "Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? "
msgstr ""
"Salvez buffer-ul modificat (RÃSPUNSUL \"Nu\" VA DISTRUGE SCHIMBÃRILE) ?"
msgstr "Salvez buffer-ul modificat (RÃSPUNSUL \"Nu\" VA DISTRUGE SCHIMBÃRILE) ?"
#: nano.c:2796
msgid "Received SIGHUP or SIGTERM\n"
@@ -1312,9 +1231,7 @@ msgstr "Nu pot muta fereastra de jos"
#: nano.c:2919
msgid "NumLock glitch detected. Keypad will malfunction with NumLock off"
msgstr ""
"Am detectat problema cu NumLock. Keypad-ul va funcþiona greºit cu NumLock "
"deactivat"
msgstr "Am detectat problema cu NumLock. Keypad-ul va funcþiona greºit cu NumLock deactivat"
#: nano.c:2968
msgid "enabled"
@@ -1569,8 +1486,7 @@ msgstr "Nu"
#: winio.c:1499
#, c-format
msgid "line %ld/%ld (%d%%), col %lu/%lu (%d%%), char %lu/%ld (%d%%)"
msgstr ""
"linia %ld/%ld (%d%%), coloana %lu/%lu (%d%%), caracterul %lu/%ld (%d%%)"
msgstr "linia %ld/%ld (%d%%), coloana %lu/%lu (%d%%), caracterul %lu/%ld (%d%%)"
#: winio.c:1838
msgid "The nano text editor"
@@ -1603,108 +1519,3 @@ msgstr "
#: winio.c:1845
msgid "Thank you for using nano!\n"
msgstr "Vã mulþumim cã folosiþi nano!\n"
#~ msgid "add_to_cutbuffer() called with inptr->data = %s\n"
#~ msgstr "add_to_cutbuffer() chemat cu inptr->data = %s\n"
#~ msgid "Blew away cutbuffer =)\n"
#~ msgstr "Am renunþat la conþinutul cutbuffer-ului =)\n"
#~ msgid "filename is %s\n"
#~ msgstr "nume_fiºier este %s\n"
#~ msgid "%s: free'd a node, YAY!\n"
#~ msgstr "%s: am eliberat un nod, URA!\n"
#~ msgid "%s: free'd last node.\n"
#~ msgstr "%s: am eliberat ultimul nod.\n"
#~ msgid "Backing up %s to %s\n"
#~ msgstr "Copiez pentru siguranþã (backup) %s în %s\n"
#~ msgid "Wrote >%s\n"
#~ msgstr "Am scris >%s\n"
#~ msgid "current->data now = \"%s\"\n"
#~ msgstr "current->data acum = \"%s\"\n"
#~ msgid "After, data = \"%s\"\n"
#~ msgstr "Dupã, data = \"%s\"\n"
#~ msgid "Main: set up windows\n"
#~ msgstr "Principal: seteazã ferestre\n"
#~ msgid "Main: bottom win\n"
#~ msgstr "Principal: fereastra de jos\n"
#~ msgid "Main: open file\n"
#~ msgstr "Principal: deschide fiºier\n"
#~ msgid "AHA! %c (%d)\n"
#~ msgstr "AHA! %c (%d)\n"
#~ msgid "I got Alt-O-%c! (%d)\n"
#~ msgstr "Am primit Alt-O-%c! (%d)\n"
#~ msgid "I got Alt-[-1-%c! (%d)\n"
#~ msgstr "Am primit Alt-[-1-%c! (%d)\n"
#~ msgid "I got Alt-[-2-%c! (%d)\n"
#~ msgstr "Am primit Alt-[-2-%c! (%d)\n"
#~ msgid "I got Alt-[-%c! (%d)\n"
#~ msgstr "Am primit Alt-[-%c! (%d)\n"
#~ msgid "I got Alt-%c! (%d)\n"
#~ msgstr "Am primit Alt-%c! (%d)\n"
#~ msgid "I got %c (%d)!\n"
#~ msgstr "Am primit %c (%d)!\n"
#~ msgid "Adding new syntax after 1st\n"
#~ msgstr "Adaug o nouã sintaxã dupã primul\n"
#~ msgid "Starting a new syntax type\n"
#~ msgstr "Încep un nou tip de sintaxã\n"
#~ msgid "Starting a new colorstring for fg %d bg %d\n"
#~ msgstr "Încep un nou ºir_culoare pentru fg %d bg %d\n"
#~ msgid "Adding new entry for fg %d bg %d\n"
#~ msgstr "Adaug o nouã intrare pentru fg %d bg %d\n"
#~ msgid "%s: Read a comment\n"
#~ msgstr "%s: Am citit un comentariu\n"
#~ msgid "%s: Parsing option %s\n"
#~ msgstr "%s: Interpretare opþiune %s\n"
#~ msgid "set flag %d!\n"
#~ msgstr "seteazã marcaj (flag) %d!\n"
#~ msgid "unset flag %d!\n"
#~ msgstr "deseteazã marcaj (flag) %d!\n"
#~ msgid "actual_x for xplus=%d returns %d\n"
#~ msgstr "actual_x pentru xplus=%d întoarce %d\n"
#~ msgid "Aha! '%c' (%d)\n"
#~ msgstr "Aha! '%c' (%d)\n"
#~ msgid "input '%c' (%d)\n"
#~ msgstr "intrare '%c' (%d)\n"
#~ msgid "Moved to (%d, %d) in edit buffer\n"
#~ msgstr "Mutat la (%d, %d) în buffer-ul de editare\n"
#~ msgid "I got \"%s\"\n"
#~ msgstr "Am primit \"%s\"\n"
#~ msgid "Dumping file buffer to stderr...\n"
#~ msgstr "Scriu fiºierul buffer la stderr...\n"
#~ msgid "Dumping cutbuffer to stderr...\n"
#~ msgstr "Scriu cutbuffer-ul la stderr...\n"
#~ msgid "Dumping a buffer to stderr...\n"
#~ msgstr "Scriu un buffer la stderr...\n"

1528
po/sr.po Normal file

File diff suppressed because it is too large Load Diff

1004
po/tr.po

File diff suppressed because it is too large Load Diff

4
src/.cvsignore Normal file
View File

@@ -0,0 +1,4 @@
Makefile
Makefile.in
nano
.deps

22
src/Makefile.am Normal file
View File

@@ -0,0 +1,22 @@
DEFS= -DSYSCONFDIR=\"$(sysconfdir)\"
localedir = $(datadir)/locale
INCLUDES = -Iintl -DLOCALEDIR=\"$(localedir)\" -I@includedir@
ACLOCAL_AMFLAGS = -I m4
bin_PROGRAMS = nano
nano_SOURCES = color.c \
cut.c \
files.c \
global.c \
move.c \
nano.c \
nano.h \
proto.h \
rcfile.c \
search.c \
utils.c \
winio.c
nano_LDADD = @GLIB_LIBS@ @LIBINTL@

View File

@@ -2,7 +2,7 @@
/**************************************************************************
* color.c *
* *
* Copyright (C) 1999-2003 Chris Allegretta *
* Copyright (C) 1999-2004 Chris Allegretta *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2, or (at your option) *
@@ -39,14 +39,14 @@ void set_colorpairs(void)
{
const syntaxtype *this_syntax = syntaxes;
for(; this_syntax != NULL; this_syntax = this_syntax->next) {
for (; this_syntax != NULL; this_syntax = this_syntax->next) {
colortype *this_color = this_syntax->color;
int color_pair = 1;
for(; this_color != NULL; this_color = this_color->next) {
for (; this_color != NULL; this_color = this_color->next) {
const colortype *beforenow = this_syntax->color;
for(; beforenow != NULL && beforenow != this_color &&
for (; beforenow != NULL && beforenow != this_color &&
(beforenow->fg != this_color->fg ||
beforenow->bg != this_color->bg ||
beforenow->bright != this_color->bright);
@@ -109,7 +109,7 @@ void update_color(void)
for (e = tmpsyntax->extensions; e != NULL; e = e->next) {
/* Set colorstrings if we matched the extension regex */
if (!regexec(&e->val, filename, 0, NULL, 0))
if (regexec(&e->val, filename, 0, NULL, 0) == 0)
colorstrings = tmpsyntax->color;
if (colorstrings != NULL)

View File

@@ -2,7 +2,7 @@
/**************************************************************************
* cut.c *
* *
* Copyright (C) 1999-2003 Chris Allegretta *
* Copyright (C) 1999-2004 Chris Allegretta *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2, or (at your option) *
@@ -28,15 +28,17 @@
#include "proto.h"
#include "nano.h"
static int marked_cut; /* Is the cutbuffer from a mark? */
static int marked_cut; /* Is the cutbuffer from a mark?
* 0 means whole-line cut, 1 means mark,
* 2 means cut-from-cursor. */
#ifndef NANO_SMALL
static int concatenate_cut; /* Should we add this cut string to the
end of the last one? */
* end of the last one? */
#endif
static filestruct *cutbottom = NULL;
/* Pointer to end of cutbuffer */
/* Pointer to end of cutbuffer. */
filestruct *get_cutbottom(void)
{
@@ -46,29 +48,27 @@ filestruct *get_cutbottom(void)
void add_to_cutbuffer(filestruct *inptr)
{
#ifdef DEBUG
fprintf(stderr, "add_to_cutbuffer() called with inptr->data = %s\n",
inptr->data);
fprintf(stderr, "add_to_cutbuffer(): inptr->data = %s\n", inptr->data);
#endif
if (cutbuffer == NULL) {
if (cutbuffer == NULL)
cutbuffer = inptr;
inptr->prev = NULL;
#ifndef NANO_SMALL
} else if (concatenate_cut && !ISSET(JUSTIFY_MODE)) {
else if (concatenate_cut && !ISSET(JUSTIFY_MODE)) {
/* Just tack the text in inptr onto the text in cutbottom,
unless we're backing up lines while justifying text. */
* unless we're backing up lines while justifying text. */
cutbottom->data = charealloc(cutbottom->data,
strlen(cutbottom->data) + strlen(inptr->data) + 1);
strcat(cutbottom->data, inptr->data);
return;
}
#endif
} else {
else {
cutbottom->next = inptr;
inptr->prev = cutbottom;
}
inptr->next = NULL;
cutbottom = inptr;
cutbottom->next = NULL;
}
#ifndef NANO_SMALL
@@ -78,112 +78,115 @@ void add_to_cutbuffer(filestruct *inptr)
* last cut line has length bot_x. That is, if bot_x > 0 then we cut to
* bot->data[bot_x - 1].
*
* destructive is whether to actually modify the file structure, if not
* then just copy the buffer into cutbuffer and don't pull it from the
* file.
* We maintain totsize, totlines, filebot, the magicline, and line
* numbers. Also, we set current and current_x so the cursor will be on
* the first character after what was cut. We do not do any screen
* updates.
*
* If destructive, then we maintain totsize, totlines, filebot, the
* magic line, and line numbers. Also, we set current and current_x so
* the cursor will be on the first character after what was cut. We do
* not do any screen updates. */
void cut_marked_segment(filestruct *top, size_t top_x, filestruct *bot,
size_t bot_x, int destructive)
* Note cutbuffer might not be NULL if cut to end is used. */
void cut_marked_segment(void)
{
filestruct *tmp, *next;
filestruct *top;
filestruct *bot;
filestruct *tmp;
size_t top_x;
size_t bot_x;
size_t newsize;
if (top == bot && top_x == bot_x)
/* If the mark doesn't cover any text, get out. */
if (current == mark_beginbuf && current_x == mark_beginx)
return;
assert(top != NULL && bot != NULL);
assert(current != NULL && mark_beginbuf != NULL);
/* Make top be no later than bot. */
if (top->lineno > bot->lineno) {
filestruct *swap = top;
int swap2 = top_x;
/* Set up the top and bottom lines and coordinates of the marked
* text. */
mark_order((const filestruct **)&top, &top_x,
(const filestruct **)&bot, &bot_x);
top = bot;
bot = swap;
top_x = bot_x;
bot_x = swap2;
} else if (top == bot && top_x > bot_x) {
/* And bot_x can't be an earlier character than top_x. */
int swap = top_x;
top_x = bot_x;
bot_x = swap;
}
/* Make the first cut line manually. */
/* Make the first cut line manually. Move the cut part of the top
* line into tmp, and set newsize to that partial line's length. */
tmp = copy_node(top);
newsize = (top == bot ? bot_x - top_x : strlen(top->data + top_x));
memmove(tmp->data, top->data + top_x, newsize);
charmove(tmp->data, tmp->data + top_x, newsize);
null_at(&tmp->data, newsize);
add_to_cutbuffer(tmp);
/* And make the remainder line manually too. */
if (destructive) {
current_x = top_x;
totsize -= newsize;
totlines -= bot->lineno - top->lineno;
newsize = top_x + strlen(bot->data + bot_x) + 1;
if (top == bot) {
/* In this case, the remainder line is shorter, so we must
move text from the end forward first. */
memmove(top->data + top_x, bot->data + bot_x,
newsize - top_x);
top->data = charealloc(top->data, newsize);
} else {
totsize -= bot_x + 1;
/* Here, the remainder line might get longer, so we
realloc() it first. */
top->data = charealloc(top->data, newsize);
memmove(top->data + top_x, bot->data + bot_x,
newsize - top_x);
}
/* Add the contents of tmp to the cutbuffer. Note that cutbuffer
* might be non-NULL if we have cut to end enabled. */
if (cutbuffer == NULL) {
cutbuffer = tmp;
cutbottom = tmp;
} else {
cutbottom->next = tmp;
tmp->prev = cutbottom;
cutbottom = tmp;
}
/* And make the top remainder line manually too. Update current_x
* and totlines to account for all the cut text, and update totsize
* to account for the length of the cut part of the first line. */
current_x = top_x;
totsize -= newsize;
totlines -= bot->lineno - top->lineno;
/* Now set newsize to be the length of the top remainder line plus
* the bottom remainder line, plus one for the null terminator. */
newsize = top_x + strlen(bot->data + bot_x) + 1;
if (top == bot) {
/* In this case, we're only cutting one line or part of one
* line, so the remainder line is shorter. This means that we
* must move text from the end forward first. */
charmove(top->data + top_x, bot->data + bot_x, newsize - top_x);
top->data = charealloc(top->data, newsize);
cutbottom->next = NULL;
#ifdef DEBUG
dump_buffer(cutbuffer);
#endif
return;
}
tmp = top->next;
while (tmp != bot) {
next = tmp->next;
if (!destructive)
tmp = copy_node(tmp);
else
totsize -= strlen(tmp->data) + 1;
add_to_cutbuffer(tmp);
tmp = next;
}
/* Update totsize to account for the cut part of the last line. */
totsize -= bot_x + 1;
/* Here, the top remainder line might get longer (if the bottom
* remainder line is added to the end of it), so we realloc() it
* first. */
top->data = charealloc(top->data, newsize);
charmove(top->data + top_x, bot->data + bot_x, newsize - top_x);
assert(cutbottom != NULL && cutbottom->next != NULL);
/* We're cutting multiple lines, so in particular the next line is
* cut too. */
cutbottom->next->prev = cutbottom;
/* Update totsize to account for all the complete lines that have
* been cut. After this, totsize is fully up to date. */
for (tmp = top->next; tmp != bot; tmp = tmp->next)
totsize -= strlen(tmp->data) + 1;
/* Make the last cut line manually. */
tmp = copy_node(bot);
null_at(&tmp->data, bot_x);
add_to_cutbuffer(tmp);
#ifdef DEBUG
dump_buffer(cutbuffer);
#endif
null_at(&bot->data, bot_x);
if (destructive) {
top->next = bot->next;
if (top->next != NULL)
top->next->prev = top;
delete_node(bot);
renumber(top);
current = top;
if (bot == filebot) {
filebot = top;
assert(bot_x == 0);
if (top_x > 0)
new_magicline();
}
/* Move the rest of the cut text (other than the cut part of the top
* line) from the buffer to the end of the cutbuffer, and fix the
* edit buffer to account for the cut text. */
top->next = bot->next;
cutbottom = bot;
cutbottom->next = NULL;
if (top->next != NULL)
top->next->prev = top;
renumber(top);
current = top;
/* If the bottom line of the cut was the magicline, set filebot
* properly, and add a new magicline if the top remainder line
* (which is now the new bottom line) is non-blank. */
if (bot == filebot) {
filebot = top;
assert(bot_x == 0);
if (top_x > 0)
new_magicline();
}
#ifdef DEBUG
dump_buffer(cutbuffer);
@@ -194,9 +197,6 @@ void cut_marked_segment(filestruct *top, size_t top_x, filestruct *bot,
int do_cut_text(void)
{
filestruct *fileptr;
#ifndef NANO_SMALL
int dontupdate = 0;
#endif
assert(current != NULL && current->data != NULL);
@@ -214,8 +214,8 @@ int do_cut_text(void)
#endif
}
/* You can't cut the magic line except with the mark. But
trying does clear the cutbuffer if KEEP_CUTBUFFER is not set. */
/* You can't cut the magicline except with the mark. But trying
* does clear the cutbuffer if KEEP_CUTBUFFER is not set. */
if (current == filebot
#ifndef NANO_SMALL
&& !ISSET(MARK_ISSET)
@@ -231,11 +231,12 @@ int do_cut_text(void)
if (current->data[current_x] == '\0') {
/* If the line is empty and we didn't just cut a non-blank
line, create a dummy line and add it to the cutbuffer */
* line, create a dummy blank line and add it to the
* cutbuffer. */
if (marked_cut != 1 && current->next != filebot) {
filestruct *junk = make_new_node(current);
junk->data = charalloc(1);
junk->data = charalloc(1);
junk->data[0] = '\0';
add_to_cutbuffer(junk);
#ifdef DEBUG
@@ -251,33 +252,22 @@ int do_cut_text(void)
mark_beginx = strlen(current->data);
mark_beginbuf = current;
dontupdate = 1;
}
}
if (ISSET(MARK_ISSET)) {
/* Don't do_update() and move the screen position if the marked
area lies entirely within the screen buffer */
dontupdate |= current->lineno >= edittop->lineno &&
current->lineno <= editbot->lineno &&
mark_beginbuf->lineno >= edittop->lineno &&
mark_beginbuf->lineno <= editbot->lineno;
cut_marked_segment(current, current_x, mark_beginbuf,
mark_beginx, 1);
cut_marked_segment();
placewewant = xplustabs();
UNSET(MARK_ISSET);
/* If we just did a marked cut of part of a line, we should add
the first line of any cut done immediately afterward to the
end of this cut, as Pico does. */
* the first line of any cut done immediately afterward to the
* end of this cut, as Pico does. */
if (current == mark_beginbuf && current_x < strlen(current->data))
concatenate_cut = 1;
marked_cut = 1;
if (dontupdate)
edit_refresh();
else
edit_update(current, CENTER);
edit_refresh();
set_modified();
return 1;
@@ -310,27 +300,26 @@ int do_cut_text(void)
#ifndef NANO_SMALL
concatenate_cut = 0;
#endif
placewewant = 0;
return 1;
}
int do_uncut_text(void)
{
filestruct *tmp = current, *fileptr = current;
filestruct *newbuf = NULL, *newend = NULL;
char *tmpstr, *tmpstr2;
filestruct *hold = current;
int i;
filestruct *tmp = current;
filestruct *newbuf = NULL;
filestruct *newend = NULL;
#ifndef DISABLE_WRAPPING
wrap_reset();
#endif
check_statblank();
if (cutbuffer == NULL || fileptr == NULL)
if (cutbuffer == NULL || current == NULL)
return 0; /* AIEEEEEEEEEEEE */
/* If we're uncutting a previously non-marked block, uncut to end if
we're not at the beginning of the line. If we are at the
beginning of the line, set placewewant to 0. Pico does both of
these. */
* we're not at the beginning of the line. If we are at the
* beginning of the line, set placewewant to 0. Pico does both of
* these. */
if (marked_cut == 0) {
if (current_x != 0)
marked_cut = 2;
@@ -339,48 +328,48 @@ int do_uncut_text(void)
}
/* If we're going to uncut on the magicline, always make a new
magicline in advance. */
* magicline in advance, as Pico does. */
if (current->next == NULL)
new_magicline();
if (marked_cut == 0 || cutbuffer->next != NULL)
{
if (marked_cut == 0 || cutbuffer->next != NULL) {
newbuf = copy_filestruct(cutbuffer);
for (newend = newbuf; newend->next != NULL && newend != NULL;
newend = newend->next)
totlines++;
}
/* Hook newbuf into fileptr */
/* Hook newbuf in at current. */
if (marked_cut != 0) {
int recenter_me = 0;
/* Should we eventually use edit_update(CENTER)? */
filestruct *hold = current;
/* If there's only one line in the cutbuffer */
/* If there's only one line in the cutbuffer... */
if (cutbuffer->next == NULL) {
size_t buf_len = strlen(cutbuffer->data);
size_t cur_len = strlen(current->data);
current->data = charealloc(current->data, cur_len + buf_len + 1);
memmove(current->data + current_x + buf_len,
charmove(current->data + current_x + buf_len,
current->data + current_x, cur_len - current_x + 1);
strncpy(current->data + current_x, cutbuffer->data, buf_len);
/* Use strncpy() to not copy the terminal '\0'. */
/* Use strncpy() to not copy the null terminator. */
current_x += buf_len;
totsize += buf_len;
placewewant = xplustabs();
update_cursor();
} else { /* yuck -- no kidding! */
} else { /* Yuck -- no kidding! */
char *tmpstr, *tmpstr2;
tmp = current->next;
/* New beginning */
/* New beginning. */
tmpstr = charalloc(current_x + strlen(newbuf->data) + 1);
strncpy(tmpstr, current->data, current_x);
strcpy(&tmpstr[current_x], newbuf->data);
totsize += strlen(newbuf->data) + strlen(newend->data) + 1;
/* New end */
/* New end. */
tmpstr2 = charalloc(strlen(newend->data) +
strlen(&current->data[current_x]) + 1);
strcpy(tmpstr2, newend->data);
@@ -399,35 +388,28 @@ int do_uncut_text(void)
newend->next = tmp;
/* If tmp isn't null, we're in the middle: update the
prev pointer. If it IS null, we're at the end; update
the filebot pointer */
/* If tmp isn't NULL, we're in the middle: update the
* prev pointer. If it IS NULL, we're at the end; update
* the filebot pointer. */
if (tmp != NULL)
tmp->prev = newend;
else {
/* Fix the editbot pointer too */
if (editbot == filebot)
editbot = newend;
filebot = newend;
new_magicline();
}
/* Now why don't we update the totsize also */
/* Now why don't we update the totsize also? */
for (tmp = current->next; tmp != newend; tmp = tmp->next)
totsize += strlen(tmp->data) + 1;
current = newend;
if (editbot->lineno < newend->lineno)
recenter_me = 1;
}
/* If marked cut == 2, that means that we're doing a cut to end
and we don't want anything else on the line, so we have to
screw up all the work we just did and separate the line.
There must be a better way to do this, but not at 1AM on a
work night. */
* and we don't want anything else on the line, so we have to
* screw up all the work we just did and separate the line.
* There must be a better way to do this, but not at 1 AM on a
* work night. */
if (marked_cut == 2) {
tmp = make_new_node(current);
tmp->data = mallocstrcpy(NULL, current->data + current_x);
@@ -437,7 +419,7 @@ int do_uncut_text(void)
current_x = 0;
placewewant = 0;
/* Extra line added, update stuff */
/* Extra line added; update stuff. */
totlines++;
totsize++;
}
@@ -449,41 +431,32 @@ int do_uncut_text(void)
dump_buffer(cutbuffer);
#endif
set_modified();
if (recenter_me)
edit_update(current, CENTER);
else
edit_refresh();
edit_refresh();
return 0;
}
if (fileptr != fileage) {
tmp = fileptr->prev;
if (current != fileage) {
tmp = current->prev;
tmp->next = newbuf;
newbuf->prev = tmp;
} else
fileage = newbuf;
totlines++; /* Unmarked uncuts don't split lines */
totlines++; /* Unmarked uncuts don't split lines. */
/* This is so uncutting at the top of the buffer will work => */
if (current_y == 0)
edittop = newbuf;
/* Connect the end of the buffer to the filestruct */
newend->next = fileptr;
fileptr->prev = newend;
/* Connect the end of the buffer to the filestruct. */
newend->next = current;
current->prev = newend;
/* Recalculate size *sigh* */
for (tmp = newbuf; tmp != fileptr; tmp = tmp->next)
for (tmp = newbuf; tmp != current; tmp = tmp->next)
totsize += strlen(tmp->data) + 1;
i = editbot->lineno;
renumber(newbuf);
/* Center the screen if we've moved beyond the line numbers of both
the old and new editbots */
if (i < newend->lineno && editbot->lineno < newend->lineno)
edit_update(fileptr, CENTER);
else
edit_refresh();
edit_refresh();
#ifdef DEBUG
dump_buffer_reverse();

File diff suppressed because it is too large Load Diff

View File

@@ -2,7 +2,7 @@
/**************************************************************************
* global.c *
* *
* Copyright (C) 1999-2003 Chris Allegretta *
* Copyright (C) 1999-2004 Chris Allegretta *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2, or (at your option) *
@@ -29,8 +29,11 @@
/* Global variables */
#ifndef DISABLE_WRAPJUSTIFY
/* wrap_at might be set in rcfile.c or nano.c */
int wrap_at = -CHARS_FROM_EOL;/* Right justified fill value, allows resize */
#endif
char *last_search = NULL; /* Last string we searched for */
char *last_replace = NULL; /* Last replacement string */
int search_last_line; /* Is this the last search line? */
@@ -89,7 +92,7 @@ char *help_text; /* The text in the help window */
/* More stuff for the marker select */
#ifndef NANO_SMALL
filestruct *mark_beginbuf; /* the begin marker buffer */
filestruct *mark_beginbuf; /* The begin marker buffer */
int mark_beginx; /* X value in the string to start */
#endif
@@ -129,7 +132,7 @@ syntaxtype *syntaxes = NULL;
char *syntaxstr = NULL;
#endif
#if !defined(DISABLE_BROWSER) || !defined(DISABLE_HELP) || (!defined(DISABLE_MOUSE) && defined(NCURSES_MOUSE_VERSION))
#if !defined(DISABLE_BROWSER) || !defined(DISABLE_HELP) || !defined(DISABLE_MOUSE)
const shortcut *currshortcut; /* Current shortcut list we're using */
#endif
@@ -169,7 +172,7 @@ void sc_init_one(shortcut **shortcutage, int key, const char *desc,
#ifndef DISABLE_HELP
const char *help,
#endif
int alt, int misc1, int misc2, int view, int (*func) (void))
int meta, int func_key, int misc, int view, int (*func) (void))
{
shortcut *s;
@@ -188,9 +191,9 @@ void sc_init_one(shortcut **shortcutage, int key, const char *desc,
#ifndef DISABLE_HELP
s->help = help;
#endif
s->altval = alt;
s->misc1 = misc1;
s->misc2 = misc2;
s->metaval = meta;
s->func_key = func_key;
s->misc = misc;
s->viewok = view;
s->func = func;
s->next = NULL;
@@ -225,14 +228,14 @@ void toggle_init(void)
*toggle_nohelp_msg, *toggle_cuttoend_msg,
*toggle_noconvert_msg, *toggle_dos_msg, *toggle_mac_msg,
*toggle_backup_msg, *toggle_smooth_msg;
#if !defined(DISABLE_MOUSE) && defined(NCURSES_MOUSE_VERSION)
#ifndef DISABLE_MOUSE
char *toggle_mouse_msg;
#endif
#ifndef DISABLE_WRAPPING
char *toggle_wrap_msg;
#endif
#ifdef ENABLE_MULTIBUFFER
char *toggle_load_msg;
char *toggle_multibuffer_msg;
#endif
#ifdef ENABLE_COLOR
char *toggle_syntax_msg;
@@ -247,7 +250,7 @@ void toggle_init(void)
toggle_autoindent_msg = _("Auto indent");
toggle_suspend_msg = _("Suspend");
toggle_nohelp_msg = _("Help mode");
#if !defined(DISABLE_MOUSE) && defined(NCURSES_MOUSE_VERSION)
#ifndef DISABLE_MOUSE
toggle_mouse_msg = _("Mouse support");
#endif
toggle_cuttoend_msg = _("Cut to end");
@@ -260,25 +263,25 @@ void toggle_init(void)
toggle_syntax_msg = _("Color syntax highlighting");
#endif
#ifndef DISABLE_WRAPPING
toggle_wrap_msg = _("Auto wrap");
toggle_wrap_msg = _("Auto line wrap");
#endif
#ifdef ENABLE_MULTIBUFFER
toggle_load_msg = _("Multiple file buffers");
toggle_multibuffer_msg = _("Multiple file buffers");
#endif
toggle_init_one(TOGGLE_NOHELP_KEY, toggle_nohelp_msg, NO_HELP);
#ifdef ENABLE_MULTIBUFFER
toggle_init_one(TOGGLE_MULTIBUFFER_KEY, toggle_multibuffer_msg, MULTIBUFFER);
#endif
toggle_init_one(TOGGLE_CONST_KEY, toggle_const_msg, CONSTUPDATE);
toggle_init_one(TOGGLE_AUTOINDENT_KEY, toggle_autoindent_msg, AUTOINDENT);
toggle_init_one(TOGGLE_SUSPEND_KEY, toggle_suspend_msg, SUSPEND);
toggle_init_one(TOGGLE_NOHELP_KEY, toggle_nohelp_msg, NO_HELP);
#ifndef DISABLE_WRAPPING
toggle_init_one(TOGGLE_WRAP_KEY, toggle_wrap_msg, NO_WRAP);
#endif
#if !defined(DISABLE_MOUSE) && defined(NCURSES_MOUSE_VERSION)
toggle_init_one(TOGGLE_MOUSE_KEY, toggle_mouse_msg, USE_MOUSE);
#endif
toggle_init_one(TOGGLE_CUTTOEND_KEY, toggle_cuttoend_msg, CUT_TO_END);
#ifdef ENABLE_MULTIBUFFER
toggle_init_one(TOGGLE_LOAD_KEY, toggle_load_msg, MULTIBUFFER);
toggle_init_one(TOGGLE_SUSPEND_KEY, toggle_suspend_msg, SUSPEND);
#ifndef DISABLE_MOUSE
toggle_init_one(TOGGLE_MOUSE_KEY, toggle_mouse_msg, USE_MOUSE);
#endif
toggle_init_one(TOGGLE_NOCONVERT_KEY, toggle_noconvert_msg, NO_CONVERT);
toggle_init_one(TOGGLE_DOS_KEY, toggle_dos_msg, DOS_FILE);
@@ -318,25 +321,30 @@ void free_shortcutage(shortcut **shortcutage)
void shortcut_init(int unjustify)
{
#ifndef DISABLE_HELP
const char *nano_help_msg = "", *nano_writeout_msg = "", *nano_exit_msg =
"", *nano_goto_msg = "", *nano_justify_msg =
"", *nano_replace_msg = "", *nano_insert_msg =
"", *nano_whereis_msg = "", *nano_prevpage_msg =
const char *nano_help_msg = "", *nano_writeout_msg =
"", *nano_exit_msg = "", *nano_goto_msg =
"", *nano_justify_msg = "", *nano_replace_msg =
"", *nano_insert_msg = "", *nano_whereis_msg =
"", *nano_whereis_next_msg = "", *nano_prevpage_msg =
"", *nano_nextpage_msg = "", *nano_cut_msg =
"", *nano_uncut_msg = "", *nano_cursorpos_msg =
"", *nano_spell_msg = "", *nano_up_msg = "", *nano_down_msg =
"", *nano_forward_msg = "", *nano_back_msg = "", *nano_home_msg =
"", *nano_spell_msg = "", *nano_up_msg =
"", *nano_down_msg = "", *nano_forward_msg =
"", *nano_back_msg = "", *nano_home_msg =
"", *nano_end_msg = "", *nano_firstline_msg =
"", *nano_lastline_msg = "", *nano_refresh_msg =
"", *nano_mark_msg = "", *nano_delete_msg =
"", *nano_backspace_msg = "", *nano_tab_msg =
"", *nano_enter_msg = "", *nano_cancel_msg =
"", *nano_unjustify_msg = "", *nano_append_msg =
"", *nano_prepend_msg = "", *nano_tofiles_msg =
"", *nano_gotodir_msg = "", *nano_case_msg =
"", *nano_reverse_msg = "", *nano_execute_msg =
"", *nano_dos_msg = "", *nano_mac_msg =
"", *nano_backup_msg = "", *nano_editstr_msg = "";
"", *nano_enter_msg = "", *nano_prevword_msg =
"", *nano_nextword_msg = "", *nano_verbatim_msg =
"", *nano_cancel_msg = "", *nano_unjustify_msg =
"", *nano_append_msg = "", *nano_prepend_msg =
"", *nano_tofiles_msg = "", *nano_gotodir_msg =
"", *nano_case_msg = "", *nano_reverse_msg =
"", *nano_execute_msg = "", *nano_dos_msg =
"", *nano_mac_msg = "", *nano_backup_msg =
"", *nano_editstr_msg = "", *nano_parabegin_msg =
"", *nano_paraend_msg = "";
#ifdef ENABLE_MULTIBUFFER
const char *nano_openprev_msg = "", *nano_opennext_msg =
@@ -349,7 +357,7 @@ void shortcut_init(int unjustify)
nano_help_msg = _("Invoke the help menu");
nano_writeout_msg = _("Write the current file to disk");
#ifdef ENABLE_MULTIBUFFER
nano_exit_msg = _("Close currently loaded file/Exit from nano");
nano_exit_msg = _("Close current file buffer/Exit from nano");
#else
nano_exit_msg = _("Exit from nano");
#endif
@@ -359,6 +367,7 @@ void shortcut_init(int unjustify)
nano_replace_msg = _("Replace text within the editor");
nano_insert_msg = _("Insert another file into the current one");
nano_whereis_msg = _("Search for text within the editor");
nano_whereis_next_msg = _("Repeat last search");
nano_prevpage_msg = _("Move to the previous screen");
nano_nextpage_msg = _("Move to the next screen");
nano_cut_msg = _("Cut the current line and store it in the cutbuffer");
@@ -380,6 +389,10 @@ void shortcut_init(int unjustify)
_("Delete the character to the left of the cursor");
nano_tab_msg = _("Insert a tab character");
nano_enter_msg = _("Insert a carriage return at the cursor position");
nano_prevword_msg = _("Move backward one word");
nano_nextword_msg = _("Move forward one word");
nano_verbatim_msg = _("Insert character(s) verbatim");
nano_enter_msg = _("Insert a carriage return at the cursor position");
nano_case_msg =
_("Make the current search or replace case (in)sensitive");
nano_tofiles_msg = _("Go to file browser");
@@ -393,14 +406,16 @@ void shortcut_init(int unjustify)
nano_mac_msg = _("Write file out in Mac format");
nano_backup_msg = _("Back up original file when saving");
nano_editstr_msg = _("Edit the previous search/replace strings");
nano_parabegin_msg = _("Go to the beginning of the current paragraph");
nano_paraend_msg = _("Go to the end of the current paragraph");
#ifdef HAVE_REGEX_H
nano_regexp_msg = _("Use regular expressions");
nano_bracket_msg = _("Find other bracket");
#endif
#ifdef ENABLE_MULTIBUFFER
nano_openprev_msg = _("Open previously loaded file");
nano_opennext_msg = _("Open next loaded file");
nano_multibuffer_msg = _("Toggle insert into new buffer");
nano_openprev_msg = _("Switch to previous file buffer");
nano_opennext_msg = _("Switch to next file buffer");
nano_multibuffer_msg = _("Toggle insert into new file buffer");
#endif
#endif /* !DISABLE_HELP */
@@ -414,39 +429,41 @@ void shortcut_init(int unjustify)
#else
# define IFHELP(help, nextvar) help, nextvar
#endif
/* Translators: try to keep this string under 10 characters long */
sc_init_one(&main_list, NANO_HELP_KEY, _("Get Help"),
IFHELP(nano_help_msg, 0), NANO_HELP_FKEY, 0, VIEW,
do_help);
IFHELP(nano_help_msg, NANO_NO_KEY), NANO_HELP_FKEY,
NANO_NO_KEY, VIEW, do_help);
#ifdef ENABLE_MULTIBUFFER
if (open_files != NULL && (open_files->prev != NULL || open_files->next != NULL))
/* Translators: try to keep this string under 10 characters long */
sc_init_one(&main_list, NANO_EXIT_KEY, _("Close"),
IFHELP(nano_exit_msg, 0), NANO_EXIT_FKEY, 0, VIEW,
do_exit);
IFHELP(nano_exit_msg, NANO_NO_KEY), NANO_EXIT_FKEY,
NANO_NO_KEY, VIEW, do_exit);
else
#endif
/* Translators: try to keep this string under 10 characters long */
sc_init_one(&main_list, NANO_EXIT_KEY, _("Exit"),
IFHELP(nano_exit_msg, 0), NANO_EXIT_FKEY, 0, VIEW,
do_exit);
IFHELP(nano_exit_msg, NANO_NO_KEY), NANO_EXIT_FKEY,
NANO_NO_KEY, VIEW, do_exit);
/* Translators: try to keep this string under 10 characters long */
sc_init_one(&main_list, NANO_WRITEOUT_KEY, _("WriteOut"),
IFHELP(nano_writeout_msg, 0),
NANO_WRITEOUT_FKEY, 0, NOVIEW, do_writeout_void);
IFHELP(nano_writeout_msg, NANO_NO_KEY), NANO_WRITEOUT_FKEY,
NANO_NO_KEY, NOVIEW, do_writeout_void);
/* Translators: try to keep this string under 10 characters long */
sc_init_one(&main_list, NANO_JUSTIFY_KEY, _("Justify"),
IFHELP(nano_justify_msg, 0), NANO_JUSTIFY_FKEY, 0,
NOVIEW, do_justify);
IFHELP(nano_justify_msg, NANO_NO_KEY),
NANO_JUSTIFY_FKEY, NANO_NO_KEY, NOVIEW, do_justify);
/* this is so we can view multiple files */
/* Translators: try to keep this string under 10 characters long */
sc_init_one(&main_list, NANO_INSERTFILE_KEY, _("Read File"),
IFHELP(nano_insert_msg, 0), NANO_INSERTFILE_FKEY, 0,
IFHELP(nano_insert_msg, NANO_NO_KEY), NANO_INSERTFILE_FKEY,
NANO_NO_KEY,
#ifdef ENABLE_MULTIBUFFER
VIEW
#else
@@ -456,168 +473,201 @@ void shortcut_init(int unjustify)
/* Translators: try to keep this string under 10 characters long */
sc_init_one(&main_list, NANO_WHEREIS_KEY, _("Where Is"),
IFHELP(nano_whereis_msg, 0),
NANO_WHEREIS_FKEY, 0, VIEW, do_search);
IFHELP(nano_whereis_msg, NANO_NO_KEY), NANO_WHEREIS_FKEY,
NANO_NO_KEY, VIEW, do_search);
/* Translators: try to keep this string under 10 characters long */
sc_init_one(&main_list, NANO_PREVPAGE_KEY, _("Prev Page"),
IFHELP(nano_prevpage_msg, 0),
NANO_PREVPAGE_FKEY, KEY_PPAGE, VIEW, do_page_up);
IFHELP(nano_prevpage_msg, NANO_NO_KEY), NANO_PREVPAGE_FKEY,
NANO_NO_KEY, VIEW, do_page_up);
/* Translators: try to keep this string under 10 characters long */
sc_init_one(&main_list, NANO_NEXTPAGE_KEY, _("Next Page"),
IFHELP(nano_nextpage_msg, 0),
NANO_NEXTPAGE_FKEY, KEY_NPAGE, VIEW, do_page_down);
IFHELP(nano_nextpage_msg, NANO_NO_KEY), NANO_NEXTPAGE_FKEY,
NANO_NO_KEY, VIEW, do_page_down);
/* Translators: try to keep this string under 10 characters long */
sc_init_one(&main_list, NANO_CUT_KEY, _("Cut Text"),
IFHELP(nano_cut_msg, 0),
NANO_CUT_FKEY, 0, NOVIEW, do_cut_text);
IFHELP(nano_cut_msg, NANO_NO_KEY), NANO_CUT_FKEY,
NANO_NO_KEY, NOVIEW, do_cut_text);
if (unjustify)
/* Translators: try to keep this string under 10 characters long */
sc_init_one(&main_list, NANO_UNJUSTIFY_KEY, _("UnJustify"),
IFHELP(nano_unjustify_msg, 0),
0, 0, NOVIEW, do_uncut_text);
IFHELP(nano_unjustify_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, NOVIEW, do_uncut_text);
else
/* Translators: try to keep this string under 10 characters long */
sc_init_one(&main_list, NANO_UNCUT_KEY, _("UnCut Txt"),
IFHELP(nano_uncut_msg, 0),
NANO_UNCUT_FKEY, 0, NOVIEW, do_uncut_text);
IFHELP(nano_uncut_msg, NANO_NO_KEY), NANO_UNCUT_FKEY,
NANO_NO_KEY, NOVIEW, do_uncut_text);
/* Translators: try to keep this string under 10 characters long */
sc_init_one(&main_list, NANO_CURSORPOS_KEY, _("Cur Pos"),
IFHELP(nano_cursorpos_msg, 0),
NANO_CURSORPOS_FKEY, 0, VIEW, do_cursorpos_void);
IFHELP(nano_cursorpos_msg, NANO_NO_KEY), NANO_CURSORPOS_FKEY,
NANO_NO_KEY, VIEW, do_cursorpos_void);
/* Translators: try to keep this string under 10 characters long */
sc_init_one(&main_list, NANO_SPELL_KEY, _("To Spell"),
IFHELP(nano_spell_msg, 0),
NANO_SPELL_FKEY, 0, NOVIEW, do_spell);
IFHELP(nano_spell_msg, NANO_NO_KEY), NANO_SPELL_FKEY,
NANO_NO_KEY, NOVIEW, do_spell);
sc_init_one(&main_list, NANO_GOTO_KEY, _("Go To Line"),
IFHELP(nano_goto_msg, NANO_ALT_GOTO_KEY), NANO_GOTO_FKEY,
NANO_NO_KEY, VIEW, do_gotoline_void);
sc_init_one(&main_list, NANO_REPLACE_KEY, _("Replace"),
IFHELP(nano_replace_msg, NANO_ALT_REPLACE_KEY), NANO_REPLACE_FKEY,
NANO_NO_KEY, NOVIEW, do_replace);
sc_init_one(&main_list, NANO_UP_KEY, _("Up"),
IFHELP(nano_up_msg, 0),
KEY_UP, 0, VIEW, do_up);
IFHELP(nano_up_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, do_up);
sc_init_one(&main_list, NANO_DOWN_KEY, _("Down"),
IFHELP(nano_down_msg, 0),
KEY_DOWN, 0, VIEW, do_down);
IFHELP(nano_down_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, do_down);
sc_init_one(&main_list, NANO_FORWARD_KEY, _("Forward"),
IFHELP(nano_forward_msg, 0),
KEY_RIGHT, 0, VIEW, do_right);
IFHELP(nano_forward_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, do_right);
sc_init_one(&main_list, NANO_BACK_KEY, _("Back"),
IFHELP(nano_back_msg, 0),
KEY_LEFT, 0, VIEW, do_left);
IFHELP(nano_back_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, do_left);
sc_init_one(&main_list, NANO_HOME_KEY, _("Home"),
IFHELP(nano_home_msg, 0),
KEY_HOME, 362, VIEW, do_home);
IFHELP(nano_home_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, do_home);
sc_init_one(&main_list, NANO_END_KEY, _("End"),
IFHELP(nano_end_msg, 0),
KEY_END, 385, VIEW, do_end);
IFHELP(nano_end_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, do_end);
sc_init_one(&main_list, NANO_REFRESH_KEY, _("Refresh"),
IFHELP(nano_refresh_msg, 0),
0, 0, VIEW, total_refresh);
IFHELP(nano_refresh_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, total_refresh);
sc_init_one(&main_list, NANO_MARK_KEY, _("Mark Text"),
IFHELP(nano_mark_msg, NANO_ALT_MARK_KEY),
0, 0, NOVIEW, do_mark);
NANO_NO_KEY, NANO_NO_KEY, NOVIEW, do_mark);
sc_init_one(&main_list, NANO_DELETE_KEY, _("Delete"),
IFHELP(nano_delete_msg, 0), KEY_DC,
NANO_CONTROL_D, NOVIEW, do_delete);
IFHELP(nano_delete_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, NOVIEW, do_delete);
sc_init_one(&main_list, NANO_BACKSPACE_KEY, _("Backspace"),
IFHELP(nano_backspace_msg, 0),
KEY_BACKSPACE, 127, NOVIEW, do_backspace);
IFHELP(nano_backspace_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, NOVIEW, do_backspace);
sc_init_one(&main_list, NANO_TAB_KEY, _("Tab"),
IFHELP(nano_tab_msg, 0), 0, 0, NOVIEW, do_tab);
sc_init_one(&main_list, NANO_REPLACE_KEY, _("Replace"),
IFHELP(nano_replace_msg, NANO_ALT_REPLACE_KEY),
NANO_REPLACE_FKEY, 0, NOVIEW, do_replace);
IFHELP(nano_tab_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, NOVIEW, do_tab);
sc_init_one(&main_list, NANO_ENTER_KEY, _("Enter"),
IFHELP(nano_enter_msg, 0),
KEY_ENTER, NANO_CONTROL_M, NOVIEW, do_enter);
sc_init_one(&main_list, NANO_GOTO_KEY, _("Go To Line"),
IFHELP(nano_goto_msg, NANO_ALT_GOTO_KEY),
NANO_GOTO_FKEY, 0, VIEW, do_gotoline_void);
IFHELP(nano_enter_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, NOVIEW, do_enter);
#ifndef NANO_SMALL
sc_init_one(&main_list, NANO_NEXTWORD_KEY, _("Next Word"),
IFHELP(_("Move forward one word"), 0),
0, 0, VIEW, do_next_word);
IFHELP(nano_nextword_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, do_next_word);
sc_init_one(&main_list, -9, _("Prev Word"),
IFHELP(_("Move backward one word"), NANO_PREVWORD_KEY), 0, 0,
VIEW, do_prev_word);
#endif
#if !defined(NANO_SMALL) && defined(HAVE_REGEX_H)
sc_init_one(&main_list, -9, _("Find Other Bracket"),
IFHELP(nano_bracket_msg, NANO_BRACKET_KEY),
0, 0, VIEW, do_find_bracket);
sc_init_one(&main_list, NANO_NO_KEY, _("Prev Word"),
IFHELP(nano_prevword_msg, NANO_PREVWORD_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, do_prev_word);
#endif
sc_init_one(&main_list, NANO_NO_KEY, _("Verbatim Input"),
IFHELP(nano_verbatim_msg, NANO_VERBATIM_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, do_verbatim_input);
#ifdef ENABLE_MULTIBUFFER
sc_init_one(&main_list, -9, _("Previous File"),
IFHELP(nano_openprev_msg, NANO_OPENPREV_KEY),
0, 0, VIEW, open_prevfile_void);
sc_init_one(&main_list, -9, _("Next File"),
IFHELP(nano_opennext_msg, NANO_OPENNEXT_KEY),
0, 0, VIEW, open_nextfile_void);
sc_init_one(&main_list, NANO_NO_KEY, _("Previous File"),
IFHELP(nano_openprev_msg, NANO_OPENPREV_KEY), NANO_NO_KEY,
NANO_OPENPREV_ALTKEY, VIEW, open_prevfile_void);
sc_init_one(&main_list, NANO_NO_KEY, _("Next File"),
IFHELP(nano_opennext_msg, NANO_OPENNEXT_KEY), NANO_NO_KEY,
NANO_OPENNEXT_ALTKEY, VIEW, open_nextfile_void);
#endif
#if !defined(NANO_SMALL) && defined(HAVE_REGEX_H)
sc_init_one(&main_list, NANO_NO_KEY, _("Find Other Bracket"),
IFHELP(nano_bracket_msg, NANO_BRACKET_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, do_find_bracket);
#endif
sc_init_one(&main_list, NANO_NO_KEY, _("Where Is Next"),
IFHELP(nano_whereis_next_msg, NANO_WHEREIS_NEXT_KEY),
NANO_NO_KEY, NANO_NO_KEY, VIEW, do_research);
free_shortcutage(&whereis_list);
sc_init_one(&whereis_list, NANO_HELP_KEY, _("Get Help"),
IFHELP(nano_help_msg, 0), 0, 0, VIEW, do_help);
IFHELP(nano_help_msg, NANO_NO_KEY), NANO_HELP_FKEY,
NANO_NO_KEY, VIEW, do_help);
/* Translators: try to keep this string under 12 characters long */
/* Translators: try to keep this string under 10 characters long */
sc_init_one(&whereis_list, NANO_CANCEL_KEY, _("Cancel"),
IFHELP(nano_cancel_msg, 0), 0, 0, VIEW, 0);
IFHELP(nano_cancel_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, 0);
/* Translators: try to keep this string under 12 characters long */
/* Translators: try to keep this string under 10 characters long */
sc_init_one(&whereis_list, NANO_FIRSTLINE_KEY, _("First Line"),
IFHELP(nano_firstline_msg, 0),
0, 0, VIEW, do_first_line);
IFHELP(nano_firstline_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, do_first_line);
/* Translators: try to keep this string under 12 characters long */
/* Translators: try to keep this string under 10 characters long */
sc_init_one(&whereis_list, NANO_LASTLINE_KEY, _("Last Line"),
IFHELP(nano_lastline_msg, 0), 0, 0, VIEW, do_last_line);
IFHELP(nano_lastline_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, do_last_line);
/* Translators: try to keep this string under 12 characters long */
/* Translators: try to keep this string under 10 characters long */
sc_init_one(&whereis_list, NANO_OTHERSEARCH_KEY, _("Replace"),
IFHELP(nano_replace_msg, 0), 0, 0, VIEW, do_replace);
IFHELP(nano_replace_msg, NANO_NO_KEY), NANO_REPLACE_FKEY,
NANO_NO_KEY, VIEW, do_replace);
/* Translators: try to keep this string under 12 characters long */
/* Translators: try to keep this string under 10 characters long */
sc_init_one(&whereis_list, NANO_FROMSEARCHTOGOTO_KEY, _("Go To Line"),
IFHELP(nano_goto_msg, 0), 0, 0, VIEW, do_gotoline_void);
IFHELP(nano_goto_msg, NANO_NO_KEY), NANO_GOTO_FKEY,
NANO_NO_KEY, VIEW, do_gotoline_void);
#ifndef NANO_SMALL
/* Translators: try to keep this string under 12 characters long */
sc_init_one(&whereis_list, TOGGLE_CASE_KEY, _("Case Sens"),
IFHELP(nano_case_msg, 0), 0, 0, VIEW, 0);
#ifndef DISABLE_JUSTIFY
/* Translators: try to keep this string under 10 characters long */
sc_init_one(&whereis_list, NANO_PARABEGIN_KEY, _("Beg of Par"),
IFHELP(nano_parabegin_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, do_para_begin);
/* Translators: try to keep this string under 12 characters long */
sc_init_one(&whereis_list, TOGGLE_BACKWARDS_KEY, _("Direction"),
IFHELP(nano_reverse_msg, 0), 0, 0, VIEW, 0);
#ifdef HAVE_REGEX_H
/* Translators: try to keep this string under 12 characters long */
sc_init_one(&whereis_list, TOGGLE_REGEXP_KEY, _("Regexp"),
IFHELP(nano_regexp_msg, 0), 0, 0, VIEW, 0);
/* Translators: try to keep this string under 10 characters long */
sc_init_one(&whereis_list, NANO_PARAEND_KEY, _("End of Par"),
IFHELP(nano_paraend_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, do_para_end);
#endif
#ifndef NANO_SMALL
/* Translators: try to keep this string under 12 characters long */
sc_init_one(&whereis_list, KEY_UP, _("History"),
IFHELP(nano_editstr_msg, 0), NANO_UP_KEY, 0, VIEW, 0);
/* Translators: try to keep this string under 10 characters long */
sc_init_one(&whereis_list, NANO_NO_KEY, _("Case Sens"),
IFHELP(nano_case_msg, TOGGLE_CASE_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, 0);
/* Translators: try to keep this string under 10 characters long */
sc_init_one(&whereis_list, NANO_NO_KEY, _("Direction"),
IFHELP(nano_reverse_msg, TOGGLE_BACKWARDS_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, 0);
#ifdef HAVE_REGEX_H
/* Translators: try to keep this string under 10 characters long */
sc_init_one(&whereis_list, NANO_NO_KEY, _("Regexp"),
IFHELP(nano_regexp_msg, TOGGLE_REGEXP_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, 0);
#endif
#ifndef NANO_SMALL
/* Translators: try to keep this string under 10 characters long */
sc_init_one(&whereis_list, NANO_HISTORY_KEY, _("History"),
IFHELP(nano_editstr_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, 0);
#endif
#endif /* !NANO_SMALL */
@@ -625,147 +675,181 @@ void shortcut_init(int unjustify)
free_shortcutage(&replace_list);
sc_init_one(&replace_list, NANO_HELP_KEY, _("Get Help"),
IFHELP(nano_help_msg, 0), 0, 0, VIEW, do_help);
IFHELP(nano_help_msg, NANO_NO_KEY), NANO_HELP_FKEY,
NANO_NO_KEY, VIEW, do_help);
sc_init_one(&replace_list, NANO_CANCEL_KEY, _("Cancel"),
IFHELP(nano_cancel_msg, 0), 0, 0, VIEW, 0);
IFHELP(nano_cancel_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, 0);
sc_init_one(&replace_list, NANO_FIRSTLINE_KEY, _("First Line"),
IFHELP(nano_firstline_msg, 0), 0, 0, VIEW, do_first_line);
IFHELP(nano_firstline_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, do_first_line);
sc_init_one(&replace_list, NANO_LASTLINE_KEY, _("Last Line"),
IFHELP(nano_lastline_msg, 0), 0, 0, VIEW, do_last_line);
IFHELP(nano_lastline_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, do_last_line);
/* Translators: try to keep this string under 12 characters long */
sc_init_one(&replace_list, NANO_OTHERSEARCH_KEY, _("No Replace"),
IFHELP(nano_whereis_msg, 0), 0, 0, VIEW, do_search);
IFHELP(nano_whereis_msg, NANO_NO_KEY), NANO_REPLACE_FKEY,
NANO_NO_KEY, VIEW, do_search);
sc_init_one(&replace_list, NANO_FROMSEARCHTOGOTO_KEY, _("Go To Line"),
IFHELP(nano_goto_msg, 0), 0, 0, VIEW, do_gotoline_void);
IFHELP(nano_goto_msg, NANO_NO_KEY), NANO_GOTO_FKEY,
NANO_NO_KEY, VIEW, do_gotoline_void);
#ifndef NANO_SMALL
sc_init_one(&replace_list, TOGGLE_CASE_KEY, _("Case Sens"),
IFHELP(nano_case_msg, 0), 0, 0, VIEW, 0);
sc_init_one(&replace_list, NANO_NO_KEY, _("Case Sens"),
IFHELP(nano_case_msg, TOGGLE_CASE_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, 0);
sc_init_one(&replace_list, TOGGLE_BACKWARDS_KEY, _("Direction"),
IFHELP(nano_reverse_msg, 0), 0, 0, VIEW, 0);
sc_init_one(&replace_list, NANO_NO_KEY, _("Direction"),
IFHELP(nano_reverse_msg, TOGGLE_BACKWARDS_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, 0);
#ifdef HAVE_REGEX_H
sc_init_one(&replace_list, TOGGLE_REGEXP_KEY, _("Regexp"),
IFHELP(nano_regexp_msg, 0), 0, 0, VIEW, 0);
sc_init_one(&replace_list, NANO_NO_KEY, _("Regexp"),
IFHELP(nano_regexp_msg, TOGGLE_REGEXP_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, 0);
#endif
sc_init_one(&replace_list, KEY_UP, _("History"),
IFHELP(nano_editstr_msg, 0), NANO_UP_KEY, 0, VIEW, 0);
sc_init_one(&replace_list, NANO_HISTORY_KEY, _("History"),
IFHELP(nano_editstr_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_DOWN_KEY, VIEW, 0);
#endif /* !NANO_SMALL */
free_shortcutage(&replace_list_2);
sc_init_one(&replace_list_2, NANO_HELP_KEY, _("Get Help"),
IFHELP(nano_help_msg, 0), 0, 0, VIEW, do_help);
IFHELP(nano_help_msg, NANO_NO_KEY), NANO_HELP_FKEY,
NANO_NO_KEY, VIEW, do_help);
sc_init_one(&replace_list_2, NANO_CANCEL_KEY, _("Cancel"),
IFHELP(nano_cancel_msg, 0), 0, 0, VIEW, 0);
IFHELP(nano_cancel_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, 0);
sc_init_one(&replace_list_2, NANO_FIRSTLINE_KEY, _("First Line"),
IFHELP(nano_firstline_msg, 0), 0, 0, VIEW, do_first_line);
IFHELP(nano_firstline_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, do_first_line);
sc_init_one(&replace_list_2, NANO_LASTLINE_KEY, _("Last Line"),
IFHELP(nano_lastline_msg, 0), 0, 0, VIEW, do_last_line);
IFHELP(nano_lastline_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, do_last_line);
#ifndef NANO_SMALL
sc_init_one(&replace_list_2, KEY_UP, _("History"),
IFHELP(nano_editstr_msg, 0), NANO_UP_KEY, 0, VIEW, 0);
sc_init_one(&replace_list_2, NANO_UP_KEY, _("History"),
IFHELP(nano_editstr_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_DOWN_KEY, VIEW, 0);
#endif
free_shortcutage(&goto_list);
sc_init_one(&goto_list, NANO_HELP_KEY, _("Get Help"),
IFHELP(nano_help_msg, 0), 0, 0, VIEW, do_help);
IFHELP(nano_help_msg, NANO_NO_KEY), NANO_HELP_FKEY,
NANO_NO_KEY, VIEW, do_help);
sc_init_one(&goto_list, NANO_CANCEL_KEY, _("Cancel"),
IFHELP(nano_cancel_msg, 0), 0, 0, VIEW, 0);
IFHELP(nano_cancel_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, 0);
sc_init_one(&goto_list, NANO_FIRSTLINE_KEY, _("First Line"),
IFHELP(nano_firstline_msg, 0), 0, 0, VIEW, do_first_line);
IFHELP(nano_firstline_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, do_first_line);
sc_init_one(&goto_list, NANO_LASTLINE_KEY, _("Last Line"),
IFHELP(nano_lastline_msg, 0), 0, 0, VIEW, do_last_line);
IFHELP(nano_lastline_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, do_last_line);
#ifndef DISABLE_HELP
free_shortcutage(&help_list);
sc_init_one(&help_list, NANO_PREVPAGE_KEY, _("Prev Page"),
IFHELP(nano_prevpage_msg, 0), NANO_PREVPAGE_FKEY,
KEY_PPAGE, VIEW, do_page_up);
IFHELP(nano_prevpage_msg, NANO_NO_KEY), NANO_PREVPAGE_FKEY,
NANO_NO_KEY, VIEW, do_page_up);
sc_init_one(&help_list, NANO_NEXTPAGE_KEY, _("Next Page"),
IFHELP(nano_nextpage_msg, 0),
NANO_NEXTPAGE_FKEY, KEY_NPAGE, VIEW, do_page_down);
IFHELP(nano_nextpage_msg, NANO_NO_KEY), NANO_NEXTPAGE_FKEY,
NANO_NO_KEY, VIEW, do_page_down);
sc_init_one(&help_list, NANO_EXIT_KEY, _("Exit"),
IFHELP(nano_exit_msg, 0), NANO_EXIT_FKEY, 0, VIEW,
do_exit);
IFHELP(nano_exit_msg, NANO_NO_KEY), NANO_EXIT_FKEY,
NANO_NO_KEY, VIEW, do_exit);
#endif
free_shortcutage(&writefile_list);
sc_init_one(&writefile_list, NANO_HELP_KEY, _("Get Help"),
IFHELP(nano_help_msg, 0), 0, 0, VIEW, do_help);
IFHELP(nano_help_msg, NANO_NO_KEY), NANO_HELP_FKEY,
NANO_NO_KEY, VIEW, do_help);
#ifndef DISABLE_BROWSER
/* Translators: try to keep this string under 16 characters long */
sc_init_one(&writefile_list, NANO_TOFILES_KEY, _("To Files"),
IFHELP(nano_tofiles_msg, 0), 0, 0, NOVIEW, 0);
IFHELP(nano_tofiles_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, NOVIEW, 0);
#endif
#ifndef NANO_SMALL
/* Translators: try to keep this string under 16 characters long */
sc_init_one(&writefile_list, TOGGLE_DOS_KEY, _("DOS Format"),
IFHELP(nano_dos_msg, 0), 0, 0, NOVIEW, 0);
sc_init_one(&writefile_list, NANO_NO_KEY, _("DOS Format"),
IFHELP(nano_dos_msg, TOGGLE_DOS_KEY), NANO_NO_KEY,
NANO_NO_KEY, NOVIEW, 0);
/* Translators: try to keep this string under 16 characters long */
sc_init_one(&writefile_list, TOGGLE_MAC_KEY, _("Mac Format"),
IFHELP(nano_mac_msg, 0), 0, 0, NOVIEW, 0);
sc_init_one(&writefile_list, NANO_NO_KEY, _("Mac Format"),
IFHELP(nano_mac_msg, TOGGLE_MAC_KEY), NANO_NO_KEY,
NANO_NO_KEY, NOVIEW, 0);
#endif
/* Translators: try to keep this string under 16 characters long */
sc_init_one(&writefile_list, NANO_APPEND_KEY, _("Append"),
IFHELP(nano_append_msg, 0), 0, 0, NOVIEW, 0);
sc_init_one(&writefile_list, NANO_NO_KEY, _("Append"),
IFHELP(nano_append_msg, NANO_APPEND_KEY), NANO_NO_KEY,
NANO_NO_KEY, NOVIEW, 0);
/* Translators: try to keep this string under 16 characters long */
sc_init_one(&writefile_list, NANO_PREPEND_KEY, _("Prepend"),
IFHELP(nano_prepend_msg, 0), 0, 0, NOVIEW, 0);
sc_init_one(&writefile_list, NANO_NO_KEY, _("Prepend"),
IFHELP(nano_prepend_msg, NANO_PREPEND_KEY), NANO_NO_KEY,
NANO_NO_KEY, NOVIEW, 0);
#ifndef NANO_SMALL
/* Translators: try to keep this string under 16 characters long */
sc_init_one(&writefile_list, TOGGLE_BACKUP_KEY, _("Backup File"),
IFHELP(nano_backup_msg, 0), 0, 0, NOVIEW, 0);
sc_init_one(&writefile_list, NANO_NO_KEY, _("Backup File"),
IFHELP(nano_backup_msg, TOGGLE_BACKUP_KEY), NANO_NO_KEY,
NANO_NO_KEY, NOVIEW, 0);
#endif
sc_init_one(&writefile_list, NANO_CANCEL_KEY, _("Cancel"),
IFHELP(nano_cancel_msg, 0), 0, 0, VIEW, 0);
IFHELP(nano_cancel_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, 0);
free_shortcutage(&insertfile_list);
sc_init_one(&insertfile_list, NANO_HELP_KEY, _("Get Help"),
IFHELP(nano_help_msg, 0), 0, 0, VIEW, do_help);
IFHELP(nano_help_msg, NANO_NO_KEY), NANO_HELP_FKEY,
NANO_NO_KEY, VIEW, do_help);
sc_init_one(&insertfile_list, NANO_CANCEL_KEY, _("Cancel"),
IFHELP(nano_cancel_msg, 0), 0, 0, VIEW, 0);
IFHELP(nano_cancel_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, 0);
#ifndef DISABLE_BROWSER
sc_init_one(&insertfile_list, NANO_TOFILES_KEY, _("To Files"),
IFHELP(nano_tofiles_msg, 0), 0, 0, NOVIEW, 0);
IFHELP(nano_tofiles_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, NOVIEW, 0);
#endif
#ifndef NANO_SMALL
/* Translators: try to keep this string under 22 characters long */
sc_init_one(&insertfile_list, NANO_EXTCMD_KEY, _("Execute Command"),
IFHELP(nano_execute_msg, 0), 0, 0, NOVIEW, 0);
IFHELP(nano_execute_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, NOVIEW, 0);
#ifdef ENABLE_MULTIBUFFER
/* Translators: try to keep this string under 22 characters long */
sc_init_one(&insertfile_list, TOGGLE_LOAD_KEY, _("New Buffer"),
IFHELP(nano_multibuffer_msg, 0), 0, 0, NOVIEW, 0);
sc_init_one(&insertfile_list, NANO_NO_KEY, _("New Buffer"),
IFHELP(nano_multibuffer_msg, TOGGLE_MULTIBUFFER_KEY), NANO_NO_KEY,
NANO_NO_KEY, NOVIEW, 0);
#endif
#endif
@@ -773,54 +857,62 @@ void shortcut_init(int unjustify)
free_shortcutage(&spell_list);
sc_init_one(&spell_list, NANO_HELP_KEY, _("Get Help"),
IFHELP(nano_help_msg, 0), 0, 0, VIEW, do_help);
IFHELP(nano_help_msg, NANO_NO_KEY), NANO_HELP_FKEY,
NANO_NO_KEY, VIEW, do_help);
sc_init_one(&spell_list, NANO_CANCEL_KEY, _("Cancel"),
IFHELP(nano_cancel_msg, 0), 0, 0, VIEW, 0);
IFHELP(nano_cancel_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, 0);
#endif
#ifndef NANO_SMALL
free_shortcutage(&extcmd_list);
sc_init_one(&extcmd_list, NANO_HELP_KEY, _("Get Help"),
IFHELP(nano_help_msg, 0), 0, 0, VIEW, do_help);
IFHELP(nano_help_msg, NANO_NO_KEY), NANO_HELP_FKEY,
NANO_NO_KEY, VIEW, do_help);
sc_init_one(&extcmd_list, NANO_CANCEL_KEY, _("Cancel"),
IFHELP(nano_cancel_msg, 0), 0, 0, VIEW, 0);
IFHELP(nano_cancel_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, 0);
#endif
#ifndef DISABLE_BROWSER
free_shortcutage(&browser_list);
sc_init_one(&browser_list, NANO_HELP_KEY, _("Get Help"),
IFHELP(nano_help_msg, 0), 0, 0, VIEW, do_help);
IFHELP(nano_help_msg, NANO_NO_KEY), NANO_HELP_FKEY,
NANO_NO_KEY, VIEW, do_help);
sc_init_one(&browser_list, NANO_CANCEL_KEY, _("Cancel"),
IFHELP(nano_cancel_msg, 0), NANO_EXIT_FKEY, 0, VIEW, 0);
IFHELP(nano_cancel_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, 0);
sc_init_one(&browser_list, NANO_PREVPAGE_KEY, _("Prev Page"),
IFHELP(nano_prevpage_msg, 0), NANO_PREVPAGE_FKEY,
KEY_PPAGE, VIEW, 0);
IFHELP(nano_prevpage_msg, NANO_NO_KEY), NANO_PREVPAGE_FKEY,
NANO_NO_KEY, VIEW, 0);
sc_init_one(&browser_list, NANO_NEXTPAGE_KEY, _("Next Page"),
IFHELP(nano_nextpage_msg, 0), NANO_NEXTPAGE_FKEY,
KEY_NPAGE, VIEW, 0);
IFHELP(nano_nextpage_msg, NANO_NO_KEY), NANO_NEXTPAGE_FKEY,
NANO_NO_KEY, VIEW, 0);
/* Translators: try to keep this string under 22 characters long */
sc_init_one(&browser_list, NANO_GOTO_KEY, _("Go To Dir"),
IFHELP(nano_gotodir_msg, NANO_ALT_GOTO_KEY),
NANO_GOTO_FKEY, 0, VIEW, 0);
IFHELP(nano_gotodir_msg, NANO_ALT_GOTO_KEY), NANO_GOTO_FKEY,
NANO_NO_KEY, VIEW, 0);
free_shortcutage(&gotodir_list);
sc_init_one(&gotodir_list, NANO_HELP_KEY, _("Get Help"),
IFHELP(nano_help_msg, 0), 0, 0, VIEW, do_help);
IFHELP(nano_help_msg, NANO_NO_KEY), NANO_HELP_FKEY,
NANO_NO_KEY, VIEW, do_help);
sc_init_one(&gotodir_list, NANO_CANCEL_KEY, _("Cancel"),
IFHELP(nano_cancel_msg, 0), 0, 0, VIEW, 0);
IFHELP(nano_cancel_msg, NANO_NO_KEY), NANO_NO_KEY,
NANO_NO_KEY, VIEW, 0);
#endif
#if !defined(DISABLE_BROWSER) || !defined(DISABLE_HELP) || (!defined(DISABLE_MOUSE) && defined(NCURSES_MOUSE_VERSION))
#if !defined(DISABLE_BROWSER) || !defined(DISABLE_HELP) || !defined(DISABLE_MOUSE)
currshortcut = main_list;
#endif
#ifndef NANO_SMALL

225
src/move.c Normal file
View File

@@ -0,0 +1,225 @@
/* $Id$ */
/**************************************************************************
* move.c *
* *
* Copyright (C) 1999-2004 Chris Allegretta *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2, or (at your option) *
* any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the Free Software *
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
* *
**************************************************************************/
#include "config.h"
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include "proto.h"
#include "nano.h"
int do_home(void)
{
current_x = 0;
placewewant = 0;
check_statblank();
update_line(current, current_x);
return 1;
}
int do_end(void)
{
current_x = strlen(current->data);
placewewant = xplustabs();
check_statblank();
update_line(current, current_x);
return 1;
}
int do_page_up(void)
{
int i;
#ifndef DISABLE_WRAPPING
wrap_reset();
#endif
/* If edittop is the first line of the file, move current up there
* and put the cursor at the beginning of the line. */
if (edittop == fileage) {
current = fileage;
placewewant = 0;
} else {
/* Move the top line of the edit window up a page. */
for (i = 0; i < editwinrows - 2 && edittop->prev != NULL; i++)
edittop = edittop->prev;
#ifndef NANO_SMALL
/* If we're in smooth scrolling mode and there was at least one
* page of text left, move the current line of the edit window
* up a page. */
if (ISSET(SMOOTHSCROLL) && current->lineno > editwinrows - 2)
for (i = 0; i < editwinrows - 2; i++)
current = current->prev;
/* If we're not in smooth scrolling mode and there was at least
* one page of text left, put the cursor at the beginning of the
* top line of the edit window, as Pico does. */
else {
#endif
current = edittop;
placewewant = 0;
#ifndef NANO_SMALL
}
#endif
}
/* Get the equivalent x-coordinate of the new line. */
current_x = actual_x(current->data, placewewant);
edit_refresh();
check_statblank();
return 1;
}
int do_page_down(void)
{
int i;
#ifndef DISABLE_WRAPPING
wrap_reset();
#endif
/* If the last line of the file is onscreen, move current down
* there and put the cursor at the beginning of the line. */
if (edittop->lineno + editwinrows > filebot->lineno) {
current = filebot;
placewewant = 0;
} else {
/* Move the top line of the edit window down a page. */
for (i = 0; i < editwinrows - 2; i++)
edittop = edittop->next;
#ifndef NANO_SMALL
/* If we're in smooth scrolling mode and there was at least one
* page of text left, move the current line of the edit window
* down a page. */
if (ISSET(SMOOTHSCROLL) && current->lineno + editwinrows - 2 <= filebot->lineno)
for (i = 0; i < editwinrows - 2; i++)
current = current->next;
/* If we're not in smooth scrolling mode and there was at least
* one page of text left, put the cursor at the beginning of the
* top line of the edit window, as Pico does. */
else {
#endif
current = edittop;
placewewant = 0;
#ifndef NANO_SMALL
}
#endif
}
/* Get the equivalent x-coordinate of the new line. */
current_x = actual_x(current->data, placewewant);
edit_refresh();
check_statblank();
return 1;
}
int do_up(void)
{
#ifndef DISABLE_WRAPPING
wrap_reset();
#endif
check_statblank();
if (current->prev == NULL)
return 0;
assert(current_y == current->lineno - edittop->lineno);
current = current->prev;
current_x = actual_x(current->data, placewewant);
if (current_y > 0) {
update_line(current->next, 0);
/* It was necessary to change current first, so that the
* mark display will change! */
update_line(current, current_x);
} else
#ifndef NANO_SMALL
if (ISSET(SMOOTHSCROLL))
edit_update(current, TOP);
else
#endif
edit_update(current, CENTER);
return 1;
}
/* Return value 1 means we moved down, 0 means we were already at the
* bottom. */
int do_down(void)
{
#ifndef DISABLE_WRAPPING
wrap_reset();
#endif
check_statblank();
if (current->next == NULL)
return 0;
assert(current_y == current->lineno - edittop->lineno);
current = current->next;
current_x = actual_x(current->data, placewewant);
/* Note that current_y is zero-based. This test checks for the
* cursor's being not on the last row of the edit window. */
if (current_y != editwinrows - 1) {
update_line(current->prev, 0);
update_line(current, current_x);
} else
#ifndef NANO_SMALL
if (ISSET(SMOOTHSCROLL))
/* In this case current_y does not change. The cursor remains
* at the bottom of the edit window. */
edit_update(edittop->next, TOP);
else
#endif
edit_update(current, CENTER);
return 1;
}
int do_left(void)
{
if (current_x > 0)
current_x--;
else if (current != fileage) {
do_up();
current_x = strlen(current->data);
}
placewewant = xplustabs();
check_statblank();
update_line(current, current_x);
return 1;
}
int do_right(void)
{
assert(current_x <= strlen(current->data));
if (current->data[current_x] != '\0')
current_x++;
else if (current->next != NULL) {
do_down();
current_x = 0;
}
placewewant = xplustabs();
check_statblank();
update_line(current, current_x);
return 1;
}

File diff suppressed because it is too large Load Diff

View File

@@ -2,7 +2,7 @@
/**************************************************************************
* nano.h *
* *
* Copyright (C) 1999-2003 Chris Allegretta *
* Copyright (C) 1999-2004 Chris Allegretta *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2, or (at your option) *
@@ -29,29 +29,32 @@
/* Macros for the flags int... */
#define SET(bit) flags |= bit
#define UNSET(bit) flags &= ~bit
#define ISSET(bit) (flags & bit)
#define ISSET(bit) ((flags & bit) != 0)
#define TOGGLE(bit) flags ^= bit
/* Define charalloc as a macro rather than duplicating code */
#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))
#ifdef BROKEN_REGEXEC
#define regexec(preg, string, nmatch, pmatch, eflags) regexec_safe(preg, string, nmatch, pmatch, eflags)
#endif
#ifndef NANO_SMALL
/* For the backup file copy ... */
# define COPYFILEBLOCKSIZE 1024
/* For the backup file copy ... */
#define COPYFILEBLOCKSIZE 1024
#endif
#ifdef USE_SLANG /* Slang support enabled */
#ifdef USE_SLANG
/* Slang support enabled. Work around Slang's not defining KEY_DC or
* KEY_IC. */
#include <slcurses.h>
#define KEY_IC SL_KEY_IC
#define KEY_DC SL_KEY_DELETE
#define KEY_IC SL_KEY_IC
#elif defined(HAVE_NCURSES_H)
#include <ncurses.h>
#else /* Uh oh */
#include <curses.h>
#else /* Uh oh. */
#include <curses.h>
#endif /* CURSES_H */
#ifdef ENABLE_NLS
@@ -69,16 +72,18 @@
#include <sys/stat.h>
#include "config.h"
/* If no snprintf()/vsnprintf(), use the versions from glib. */
#if !defined(HAVE_SNPRINTF) || !defined(HAVE_VSNPRINTF)
#include <glib.h>
# ifndef HAVE_SNPRINTF
# define snprintf g_snprintf
# define snprintf g_snprintf
# endif
# ifndef HAVE_VSNPRINTF
# define vsnprintf g_vsnprintf
# define vsnprintf g_vsnprintf
# endif
#endif
/* If no strcasecmp()/strncasecmp(), use the versions we have. */
#ifndef HAVE_STRCASECMP
#define strcasecmp nstricmp
#endif
@@ -87,34 +92,57 @@
#define strncasecmp nstrnicmp
#endif
/* HP-UX 10 & 11 do not seem to support KEY_HOME and KEY_END */
/* Assume ERR is defined as -1. To avoid duplicate case values when
* some key definitions are missing, we have to set all of these, and
* all of the special sentinel values below, to different negative
* values other than -1. */
/* HP-UX 10 & 11 do not seem to support KEY_HOME and KEY_END. */
#ifndef KEY_HOME
#define KEY_HOME -1
#endif /* KEY_HOME */
#define KEY_HOME -2
#endif
#ifndef KEY_END
#define KEY_END -1
#endif /* KEY_END */
#define KEY_END -3
#endif
/* Snatch these out of the ncurses defs, so we can use them in search
history regardless of whether we're using ncurses or not */
#if !defined(KEY_UP) || !defined(KEY_DOWN)
#define KEY_UP 0403
#define KEY_DOWN 0402
#endif /* !KEY_UP || !KEY_DOWN */
/* Slang and SunOS 5.7-5.9 do not seem to support KEY_RESIZE. */
#ifndef KEY_RESIZE
#define KEY_RESIZE -4
#endif
/* Slang does not seem to support KEY_SUSPEND, KEY_SLEFT, or
* KEY_SRIGHT. */
#ifndef KEY_SUSPEND
#define KEY_SUSPEND -5
#endif
#ifndef KEY_SLEFT
#define KEY_SLEFT -6
#endif
#ifndef KEY_SRIGHT
#define KEY_SRIGHT -7
#endif
#define VERMSG "GNU nano " VERSION
/* If we aren't using ncurses, turn the mouse support off, as it's
* ncurses-specific. */
#ifndef NCURSES_MOUSE_VERSION
#define DISABLE_MOUSE 1
#endif
#if defined(DISABLE_WRAPPING) && defined(DISABLE_JUSTIFY)
#define DISABLE_WRAPJUSTIFY 1
#endif
/* Structure types */
/* Structure types. */
typedef struct filestruct {
char *data;
struct filestruct *next; /* Next node */
struct filestruct *prev; /* Previous node */
int lineno; /* The line number */
struct filestruct *next; /* Next node. */
struct filestruct *prev; /* Previous node. */
int lineno; /* The line number. */
} filestruct;
#ifdef ENABLE_MULTIBUFFER
@@ -123,49 +151,56 @@ typedef struct openfilestruct {
#ifndef NANO_SMALL
struct stat originalfilestat;
#endif
struct openfilestruct *next; /* Next node */
struct openfilestruct *prev; /* Previous node */
struct filestruct *fileage; /* Current file */
struct filestruct *filebot; /* Current file's last line */
struct openfilestruct *next; /* Next node. */
struct openfilestruct *prev; /* Previous node. */
struct filestruct *fileage; /* Current file. */
struct filestruct *filebot; /* Current file's last line. */
#ifndef NANO_SMALL
struct filestruct *file_mark_beginbuf;
/* Current file's beginning marked line */
int file_mark_beginx; /* Current file's beginning marked line's
x-coordinate position */
/* Current file's beginning marked
* line. */
int file_mark_beginx; /* Current file's beginning marked
* line's x-coordinate position. */
#endif
int file_current_x; /* Current file's x-coordinate position */
int file_current_y; /* Current file's y-coordinate position */
int file_current_x; /* Current file's x-coordinate
* position. */
int file_current_y; /* Current file's y-coordinate
* position. */
int file_flags; /* Current file's flags: modification
status (and marking status, if
available) */
int file_placewewant; /* Current file's place we want */
int file_totlines; /* Current file's total number of lines */
long file_totsize; /* Current file's total size */
int file_lineno; /* Current file's line number */
* status (and marking status, if
* available). */
int file_placewewant; /* Current file's place we want. */
int file_totlines; /* Current file's total number of
* lines. */
long file_totsize; /* Current file's total size. */
int file_lineno; /* Current file's line number. */
} openfilestruct;
#endif
typedef struct shortcut {
int val; /* Actual sequence that generates the keystroke */
int altval; /* Alt key # for this function, or 0 for none */
int misc1; /* Other int functions we want bound */
int misc2;
int viewok; /* is this function legal in view mode? */
int (*func) (void); /* Function to call when we catch this key */
const char *desc; /* Description, e.g. "Page Up" */
/* Key values that aren't used should be set to NANO_NO_KEY. */
int val; /* Special sentinel key or control key we want
* bound. */
int metaval; /* Meta key we want bound. */
int func_key; /* Function key we want bound. */
int misc; /* Other Meta key we want bound. */
int viewok; /* Is this function legal in view mode? */
int (*func) (void); /* Function to call when we catch this key. */
const char *desc; /* Description, e.g. "Page Up". */
#ifndef DISABLE_HELP
const char *help; /* Help file entry text */
const char *help; /* Help file entry text. */
#endif
struct shortcut *next;
struct shortcut *next;
} shortcut;
#ifndef NANO_SMALL
typedef struct toggle {
int val; /* Sequence to toggle the key. Should only need 1 */
int val; /* Sequence to toggle the key. Should only need
* one. */
const char *desc; /* Description for when toggle is, uh, toggled,
e.g. "Pico Messages"; we'll append Enabled or
Disabled */
int flag; /* What flag actually gets toggled */
* e.g. "Cut to end"; we'll append Enabled or
* Disabled. */
int flag; /* What flag actually gets toggled. */
struct toggle *next;
} toggle;
#endif /* !NANO_SMALL */
@@ -210,8 +245,10 @@ typedef struct historytype {
char *data;
} historytype;
typedef struct historyheadtype {
struct historytype *next; /* keep *next and *prev members together */
struct historytype *prev; /* and in same order as in historytype */
struct historytype *next; /* Keep *next and *prev members
* together. */
struct historytype *prev; /* And in same order as in
* historytype. */
struct historytype *tail;
struct historytype *current;
int count;
@@ -219,8 +256,8 @@ typedef struct historyheadtype {
} historyheadtype;
#endif /* !NANO_SMALL */
/* Bitwise flags so we can save space (or more correctly, not waste it) */
/* Bitwise flags so we can save space (or more correctly, not waste
* it). */
#define MODIFIED (1<<0)
#define KEEP_CUTBUFFER (1<<1)
#define CASE_SENSITIVE (1<<2)
@@ -231,31 +268,29 @@ typedef struct historyheadtype {
#define SUSPEND (1<<7)
#define NO_WRAP (1<<8)
#define AUTOINDENT (1<<9)
#define SAMELINEWRAP (1<<10)
#define VIEW_MODE (1<<11)
#define USE_MOUSE (1<<12)
#define USE_REGEXP (1<<13)
#define REGEXP_COMPILED (1<<14)
#define TEMP_OPT (1<<15)
#define CUT_TO_END (1<<16)
#define REVERSE_SEARCH (1<<17)
#define MULTIBUFFER (1<<18)
#define DOS_FILE (1<<19)
#define MAC_FILE (1<<20)
#define SMOOTHSCROLL (1<<21)
#define DISABLE_CURPOS (1<<22) /* Damn, we still need it */
#define ALT_KEYPAD (1<<23)
#define NO_CONVERT (1<<24)
#define BACKUP_FILE (1<<25)
#define NO_RCFILE (1<<26)
#define COLOR_SYNTAX (1<<27)
#define PRESERVE (1<<28)
#define HISTORY_CHANGED (1<<29)
#define HISTORYLOG (1<<30)
#define JUSTIFY_MODE (1<<31)
/* Control key sequences, changing these would be very very bad */
#define VIEW_MODE (1<<10)
#define USE_MOUSE (1<<11)
#define USE_REGEXP (1<<12)
#define REGEXP_COMPILED (1<<13)
#define TEMP_OPT (1<<14)
#define CUT_TO_END (1<<15)
#define REVERSE_SEARCH (1<<16)
#define MULTIBUFFER (1<<17)
#define DOS_FILE (1<<18)
#define MAC_FILE (1<<19)
#define SMOOTHSCROLL (1<<20)
#define DISABLE_CURPOS (1<<21) /* Damn, we still need it. */
#define REBIND_DELETE (1<<22)
#define NO_CONVERT (1<<23)
#define BACKUP_FILE (1<<24)
#define NO_RCFILE (1<<25)
#define COLOR_SYNTAX (1<<26)
#define PRESERVE (1<<27)
#define HISTORY_CHANGED (1<<28)
#define HISTORYLOG (1<<29)
#define JUSTIFY_MODE (1<<30)
/* Control key sequences, changing these would be very very bad. */
#define NANO_CONTROL_SPACE 0
#define NANO_CONTROL_A 1
#define NANO_CONTROL_B 2
@@ -283,11 +318,12 @@ typedef struct historyheadtype {
#define NANO_CONTROL_X 24
#define NANO_CONTROL_Y 25
#define NANO_CONTROL_Z 26
#define NANO_CONTROL_3 27
#define NANO_CONTROL_4 28
#define NANO_CONTROL_5 29
#define NANO_CONTROL_6 30
#define NANO_CONTROL_7 31
#define NANO_CONTROL_8 127
#define NANO_ALT_A 'a'
#define NANO_ALT_B 'b'
@@ -319,16 +355,23 @@ typedef struct historyheadtype {
#define NANO_ALT_COMMA ','
#define NANO_ALT_LCARAT '<'
#define NANO_ALT_RCARAT '>'
#define NANO_ALT_BRACKET ']'
#define NANO_ALT_RBRACKET ']'
#define NANO_ALT_SPACE ' '
/* Some semi-changeable keybindings; don't play with unless you're sure you
know what you're doing */
/* Some semi-changeable keybindings; don't play with these unless you're
* sure you know what you're doing. */
/* No key at all. */
#define NANO_NO_KEY -8
/* Special sentinel key used for search string history. */
#define NANO_HISTORY_KEY -9
/* Normal keys. */
#define NANO_INSERTFILE_KEY NANO_CONTROL_R
#define NANO_INSERTFILE_FKEY KEY_F(5)
#define NANO_EXIT_KEY NANO_CONTROL_X
#define NANO_EXIT_FKEY KEY_F(2)
#define NANO_EXIT_KEY NANO_CONTROL_X
#define NANO_EXIT_FKEY KEY_F(2)
#define NANO_WRITEOUT_KEY NANO_CONTROL_O
#define NANO_WRITEOUT_FKEY KEY_F(3)
#define NANO_GOTO_KEY NANO_CONTROL_7
@@ -338,6 +381,7 @@ know what you're doing */
#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_REPLACE_KEY NANO_CONTROL_4
#define NANO_REPLACE_FKEY KEY_F(14)
#define NANO_ALT_REPLACE_KEY NANO_ALT_R
@@ -382,10 +426,13 @@ know what you're doing */
#define NANO_OPENNEXT_KEY NANO_ALT_RCARAT
#define NANO_OPENPREV_ALTKEY NANO_ALT_COMMA
#define NANO_OPENNEXT_ALTKEY NANO_ALT_PERIOD
#define NANO_BRACKET_KEY NANO_ALT_BRACKET
#define NANO_BRACKET_KEY NANO_ALT_RBRACKET
#define NANO_EXTCMD_KEY NANO_CONTROL_X
#define NANO_NEXTWORD_KEY NANO_CONTROL_SPACE
#define NANO_PREVWORD_KEY NANO_ALT_SPACE
#define NANO_PARABEGIN_KEY NANO_CONTROL_W
#define NANO_PARAEND_KEY NANO_CONTROL_O
#define NANO_VERBATIM_KEY NANO_ALT_V
#ifndef NANO_SMALL
/* Toggles do not exist with NANO_SMALL. */
@@ -396,10 +443,10 @@ know what you're doing */
#define TOGGLE_MOUSE_KEY NANO_ALT_M
#define TOGGLE_CUTTOEND_KEY NANO_ALT_K
#define TOGGLE_REGEXP_KEY NANO_ALT_R
#define TOGGLE_WRAP_KEY NANO_ALT_W
#define TOGGLE_WRAP_KEY NANO_ALT_L
#define TOGGLE_BACKWARDS_KEY NANO_ALT_B
#define TOGGLE_CASE_KEY NANO_ALT_C
#define TOGGLE_LOAD_KEY NANO_ALT_F
#define TOGGLE_MULTIBUFFER_KEY NANO_ALT_F
#define TOGGLE_DOS_KEY NANO_ALT_D
#define TOGGLE_MAC_KEY NANO_ALT_O
#define TOGGLE_SMOOTH_KEY NANO_ALT_S
@@ -414,21 +461,21 @@ know what you're doing */
#define NOVIEW 0
typedef enum {
CENTER, TOP, NONE
} topmidbotnone;
TOP, CENTER, NONE
} topmidnone;
/* Minimum editor window rows required for nano to work correctly */
/* Minimum editor window rows required for nano to work correctly. */
#define MIN_EDITOR_ROWS 3
/* Minimum editor window cols required for nano to work correctly */
/* Minimum editor window cols required for nano to work correctly. */
#define MIN_EDITOR_COLS 10
/* Default number of characters from end-of-line where text wrapping
occurs */
* occurs. */
#define CHARS_FROM_EOL 8
/* Maximum number of search history strings saved, same value used for
replace history */
* replace history. */
#define MAX_SEARCH_HISTORY 100
#endif /* !NANO_H */

View File

@@ -2,7 +2,7 @@
/**************************************************************************
* proto.h *
* *
* Copyright (C) 1999-2003 Chris Allegretta *
* Copyright (C) 1999-2004 Chris Allegretta *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2, or (at your option) *
@@ -19,7 +19,7 @@
* *
**************************************************************************/
/* Externs */
/* Externs. */
#include <sys/stat.h>
@@ -29,7 +29,9 @@
#include "nano.h"
#ifndef DISABLE_WRAPJUSTIFY
extern int wrap_at;
#endif
extern int editwinrows;
extern int current_x, current_y, totlines;
extern int placewewant;
@@ -38,7 +40,8 @@ extern int mark_beginx;
#endif
extern long totsize;
extern int temp_opt;
extern int wrap_at, flags, tabsize;
extern int flags;
extern int tabsize;
extern int search_last_line;
extern int search_offscreen;
extern int currslen;
@@ -101,7 +104,7 @@ extern shortcut *spell_list;
extern shortcut *browser_list, *gotodir_list;
#endif
#if !defined(DISABLE_BROWSER) || !defined(DISABLE_HELP) || (!defined(DISABLE_MOUSE) && defined(NCURSES_MOUSE_VERSION))
#if !defined(DISABLE_BROWSER) || !defined(DISABLE_HELP) || !defined(DISABLE_MOUSE)
extern const shortcut *currshortcut;
#endif
@@ -125,7 +128,7 @@ extern historyheadtype replace_history;
extern int curses_ended;
/* Functions we want available */
/* Functions we want available. */
/* Public functions in color.c */
#ifdef ENABLE_COLOR
@@ -137,8 +140,7 @@ void update_color(void);
/* Public functions in cut.c */
filestruct *get_cutbottom(void);
void add_to_cutbuffer(filestruct *inptr);
void cut_marked_segment(filestruct *top, size_t top_x, filestruct *bot,
size_t bot_x, int destructive);
void cut_marked_segment(void);
int do_cut_text(void);
int do_uncut_text(void);
@@ -204,7 +206,7 @@ void sc_init_one(shortcut **shortcutage, int key, const char *desc,
#ifndef DISABLE_HELP
const char *help,
#endif
int alt, int misc1, int misc2, int view, int (*func) (void));
int meta, int func_key, int misc, int view, int (*func) (void));
#ifndef NANO_SMALL
void toggle_init_one(int val, const char *desc, int flag);
void toggle_init(void);
@@ -221,7 +223,6 @@ void thanks_for_all_the_fish(void);
/* Public functions in move.c */
int do_home(void);
int do_end(void);
void page_up(void);
int do_page_up(void);
int do_page_down(void);
int do_up(void);
@@ -237,7 +238,7 @@ void die_too_small(void);
void print_view_warning(void);
void global_init(int save_cutbuffer);
void window_init(void);
#if !defined(DISABLE_MOUSE) && defined(NCURSES_MOUSE_VERSION)
#ifndef DISABLE_MOUSE
void mouse_init(void);
#endif
#ifndef DISABLE_HELP
@@ -266,20 +267,21 @@ RETSIGTYPE cancel_fork(int signal);
int open_pipe(const char *command);
#endif
#ifndef DISABLE_MOUSE
#ifdef NCURSES_MOUSE_VERSION
void do_mouse(void);
#endif
#endif
void do_char(char ch);
int do_verbatim_input(void);
int do_backspace(void);
int do_delete(void);
int do_tab(void);
int do_enter(void);
#ifndef NANO_SMALL
int do_next_word(void);
int do_prev_word(void);
#endif
int do_mark(void);
void wrap_reset(void);
#ifndef DISABLE_WRAPPING
void wrap_reset(void);
int do_wrap(filestruct *inptr);
#endif
#ifndef DISABLE_SPELLER
@@ -311,8 +313,13 @@ filestruct *backup_lines(filestruct *first_line, size_t par_len,
size_t quote_len);
int breakable(const char *line, int goal);
int break_line(const char *line, int goal, int force);
int do_para_operation(int operation);
#endif /* !DISABLE_JUSTIFY */
int do_justify(void);
#ifndef DISABLE_JUSTIFY
int do_para_begin(void);
int do_para_end(void);
#endif
int do_exit(void);
void signal_init(void);
RETSIGTYPE handle_hupterm(int signal);
@@ -325,7 +332,6 @@ void print_numlock_warning(void);
#ifndef NANO_SMALL
void do_toggle(const toggle *which);
#endif
int abcd(int input);
/* Public functions in rcfile.c */
#ifdef ENABLE_NANORC
@@ -356,8 +362,9 @@ int search_init(int replacing);
int is_whole_word(int curr_pos, const char *datastr, const char *searchword);
filestruct *findnextstr(int quiet, int bracket_mode,
const filestruct *begin, int beginx,
const char *needle);
const char *needle, int no_sameline);
int do_search(void);
int do_research(void);
void replace_abort(void);
#ifdef HAVE_REGEX_H
int replace_regexp(char *string, int create_flag);
@@ -419,16 +426,29 @@ void *nmalloc(size_t howmuch);
void *nrealloc(void *ptr, size_t howmuch);
char *mallocstrcpy(char *dest, const char *src);
void new_magicline(void);
#ifndef NANO_SMALL
void mark_order(const filestruct **top, size_t *top_x,
const filestruct **bot, size_t *bot_x);
#endif
#ifndef DISABLE_TABCOMP
int check_wildcard_match(const char *text, const char *pattern);
#endif
/* Public functions in winio.c */
int get_kbinput(WINDOW *win, int *meta);
char *get_verbatim_kbinput(WINDOW *win, int *kbinput_len,
int allow_ascii);
int get_ignored_kbinput(WINDOW *win);
int get_accepted_kbinput(WINDOW *win, int kbinput, int *meta);
int get_ascii_kbinput(WINDOW *win, int kbinput);
int get_escape_seq_kbinput(WINDOW *win, char *escape_seq, int
escape_seq_len);
int get_mouseinput(int *mouse_x, int *mouse_y, int shortcut);
int do_first_line(void);
int do_last_line(void);
int xpt(const filestruct *fileptr, int index);
size_t xplustabs(void);
size_t actual_x(const filestruct *fileptr, size_t xplus);
size_t actual_x(const char *str, size_t xplus);
size_t strnlenpt(const char *buf, size_t size);
size_t strlenpt(const char *buf);
void blank_bottombars(void);
@@ -437,7 +457,8 @@ void blank_edit(void);
void blank_statusbar(void);
void blank_statusbar_refresh(void);
void check_statblank(void);
void nanoget_repaint(const char *buf, const char *inputbuf, int x);
char *display_string(const char *buf, size_t start_col, int len);
void nanoget_repaint(const char *buf, const char *inputbuf, size_t x);
int nanogetstr(int allowtabs, const char *buf, const char *def,
#ifndef NANO_SMALL
historyheadtype *history_list,
@@ -454,27 +475,24 @@ void onekey(const char *keystroke, const char *desc, int len);
#ifndef NDEBUG
int check_linenumbers(const filestruct *fileptr);
#endif
int get_page_start(int column);
size_t get_page_start(size_t column);
void reset_cursor(void);
void add_marked_sameline(int begin, int end, filestruct *fileptr, int y,
int virt_cur_x, int this_page);
void edit_add(const filestruct *fileptr, int yval, int start
#ifndef NANO_SMALL
, int virt_mark_beginx, int virt_cur_x
#endif
);
void update_line(filestruct *fileptr, int index);
void edit_add(const filestruct *fileptr, const char *converted,
int yval, size_t start);
void update_line(const filestruct *fileptr, size_t index);
void update_cursor(void);
void center_cursor(void);
void edit_refresh(void);
void edit_refresh_clearok(void);
void edit_update(filestruct *fileptr, topmidbotnone location);
void edit_update(filestruct *fileptr, topmidnone location);
int statusq(int tabs, const shortcut *s, const char *def,
#ifndef NANO_SMALL
historyheadtype *history_list,
#endif
const char *msg, ...);
int do_yesno(int all, int leavecursor, const char *msg, ...);
int do_yesno(int all, const char *msg);
int total_refresh(void);
void display_main_list(void);
void statusbar(const char *msg, ...);
@@ -482,7 +500,6 @@ int do_cursorpos(int constant);
int do_cursorpos_void(void);
int line_len(const char *ptr);
int do_help(void);
int keypad_on(WINDOW *win, int newval);
void do_replace_highlight(int highlight_flag, const char *word);
void fix_editbot(void);
#ifdef DEBUG

View File

@@ -2,7 +2,7 @@
/**************************************************************************
* rcfile.c *
* *
* Copyright (C) 1999-2003 Chris Allegretta *
* Copyright (C) 1999-2004 Chris Allegretta *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2, or (at your option) *
@@ -49,8 +49,10 @@ const static rcoption rcopts[] = {
#ifndef DISABLE_WRAPJUSTIFY
{"fill", 0},
#endif
{"keypad", ALT_KEYPAD},
#if !defined(DISABLE_MOUSE) && defined(NCURSES_MOUSE_VERSION)
#ifndef NANO_SMALL
{"historylog", HISTORYLOG},
#endif
#ifndef DISABLE_MOUSE
{"mouse", USE_MOUSE},
#endif
#ifdef ENABLE_MULTIBUFFER
@@ -68,6 +70,7 @@ const static rcoption rcopts[] = {
{"operatingdir", 0},
#endif
{"preserve", PRESERVE},
{"rebinddelete", REBIND_DELETE},
#ifndef DISABLE_JUSTIFY
{"quotestr", 0},
#endif
@@ -84,7 +87,6 @@ const static rcoption rcopts[] = {
{"tabsize", 0},
{"tempfile", TEMP_OPT},
{"view", VIEW_MODE},
{"historylog", HISTORYLOG},
{NULL, 0}
};
@@ -170,7 +172,7 @@ char *parse_argument(char *ptr)
ptr = NULL;
else
*ptr++ = '\0';
rcfile_error(_("argument %s has unterminated \""), ptr_bak);
rcfile_error(_("Argument %s has unterminated \""), ptr_bak);
} else {
*last_quote = '\0';
ptr = last_quote + 1;
@@ -212,11 +214,11 @@ int colortoint(const char *colorname, int *bright)
else if (!strcasecmp(colorname, "black"))
mcolor = COLOR_BLACK;
else {
rcfile_error(_("color %s not understood.\n"
"Valid colors are \"green\", \"red\", \"blue\", \n"
"\"white\", \"yellow\", \"cyan\", \"magenta\" and \n"
"\"black\", with the optional prefix \"bright\".\n"),
colorname);
rcfile_error(_("Color %s not understood.\n"
"Valid colors are \"green\", \"red\", \"blue\", \n"
"\"white\", \"yellow\", \"cyan\", \"magenta\" and \n"
"\"black\", with the optional prefix \"bright\" \n"
"for foreground colors.\n"), colorname);
mcolor = -1;
}
return mcolor;
@@ -231,7 +233,7 @@ char *parse_next_regex(char *ptr)
if (*ptr == '\0')
return NULL;
/* Null terminate and advance ptr */
/* Null terminate and advance ptr. */
*ptr++ = '\0';
while (*ptr == ' ' || *ptr == '\t')
@@ -271,7 +273,7 @@ void parse_syntax(char *ptr)
return;
if (*ptr != '"') {
rcfile_error(_("regex strings must begin and end with a \" character\n"));
rcfile_error(_("Regex strings must begin and end with a \" character\n"));
return;
}
ptr++;
@@ -354,8 +356,14 @@ void parse_colors(char *ptr)
}
if (strstr(fgstr, ",")) {
char *bgcolorname;
strtok(fgstr, ",");
bg = colortoint(strtok(NULL, ","), &bright);
bgcolorname = strtok(NULL, ",");
if (!strncasecmp(bgcolorname, "bright", 6)) {
rcfile_error(_("Background color %s cannot be bright"), bgcolorname);
return;
}
bg = colortoint(bgcolorname, &bright);
} else
bg = -1;
@@ -395,7 +403,7 @@ void parse_colors(char *ptr)
}
if (*ptr != '"') {
rcfile_error(_("regex strings must begin and end with a \" character\n"));
rcfile_error(_("Regex strings must begin and end with a \" character\n"));
ptr = parse_next_regex(ptr);
continue;
}
@@ -442,7 +450,7 @@ void parse_colors(char *ptr)
if (*ptr != '"') {
rcfile_error(_
("regex strings must begin and end with a \" character\n"));
("Regex strings must begin and end with a \" character\n"));
continue;
}
ptr++;
@@ -506,7 +514,7 @@ void parse_rcfile(FILE *rcstream)
parse_colors(ptr);
#endif /* ENABLE_COLOR */
else {
rcfile_msg(_("command %s not understood"), keyword);
rcfile_msg(_("Command %s not understood"), keyword);
continue;
}
@@ -538,7 +546,7 @@ void parse_rcfile(FILE *rcstream)
) {
if (*ptr == '\n' || *ptr == '\0') {
rcfile_error(_
("option %s requires an argument"),
("Option %s requires an argument"),
rcopts[i].name);
continue;
}
@@ -563,7 +571,7 @@ void parse_rcfile(FILE *rcstream)
* errors. */
j = (int)strtol(option, &first_error, 10);
if (errno == ERANGE || *option == '\0' || *first_error != '\0')
rcfile_error(_("requested fill size %d invalid"),
rcfile_error(_("Requested fill size %d invalid"),
j);
else
wrap_at = j;
@@ -587,7 +595,7 @@ void parse_rcfile(FILE *rcstream)
* errors. */
j = (int)strtol(option, &first_error, 10);
if (errno == ERANGE || *option == '\0' || *first_error != '\0')
rcfile_error(_("requested tab size %d invalid"),
rcfile_error(_("Requested tab size %d invalid"),
j);
else
tabsize = j;

View File

@@ -2,7 +2,7 @@
/**************************************************************************
* search.c *
* *
* Copyright (C) 2000-2003 Chris Allegretta *
* Copyright (C) 2000-2004 Chris Allegretta *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2, or (at your option) *
@@ -107,18 +107,22 @@ int search_init(int replacing)
search_init_globals();
/* If we don't already have a backupstring, set it. */
if (backupstring == NULL)
backupstring = mallocstrcpy(backupstring, "");
backupstring = mallocstrcpy(NULL, "");
#ifndef NANO_SMALL
search_history.current = (historytype *)&search_history.next;
#endif
if (last_search[0] != '\0') {
char *disp = display_string(last_search, 0, COLS / 3);
buf = charalloc(COLS / 3 + 7);
/* We use COLS / 3 here because we need to see more on the line */
sprintf(buf, " [%.*s%s]", COLS / 3, last_search,
strlen(last_search) > COLS / 3 ? "..." : "");
sprintf(buf, " [%s%s]", disp,
strlenpt(last_search) > COLS / 3 ? "..." : "");
free(disp);
} else {
buf = charalloc(1);
buf[0] = '\0';
@@ -132,17 +136,23 @@ int search_init(int replacing)
"%s%s%s%s%s%s",
_("Search"),
#ifndef NANO_SMALL
/* This string is just a modifier for the search prompt,
no grammar is implied */
ISSET(CASE_SENSITIVE) ? _(" [Case Sensitive]") : "",
ISSET(CASE_SENSITIVE) ? _(" [Case Sensitive]") :
#endif
"",
/* This string is just a modifier for the search prompt,
no grammar is implied */
ISSET(USE_REGEXP) ? _(" [Regexp]") : "",
#ifndef NANO_SMALL
/* This string is just a modifier for the search prompt,
no grammar is implied */
ISSET(REVERSE_SEARCH) ? _(" [Backwards]") : "",
ISSET(REVERSE_SEARCH) ? _(" [Backwards]") :
#endif
"",
replacing ? _(" (to replace)") : "",
buf);
@@ -150,12 +160,13 @@ int search_init(int replacing)
/* Release buf now that we don't need it anymore */
free(buf);
free(backupstring);
backupstring = NULL;
/* Cancel any search, or just return with no previous search */
if (i == -1 || (i < 0 && last_search[0] == '\0')) {
statusbar(_("Search Cancelled"));
reset_cursor();
free(backupstring);
backupstring = NULL;
#ifndef NANO_SMALL
search_history.current = search_history.next;
#endif
@@ -169,29 +180,23 @@ int search_init(int replacing)
if (regexp_init(last_search) == 0) {
statusbar(regex_error, last_search);
reset_cursor();
free(backupstring);
backupstring = NULL;
return -3;
}
#endif
break;
case 0: /* They entered something new */
last_replace[0] = '\0';
#ifdef HAVE_REGEX_H
if (ISSET(USE_REGEXP))
if (regexp_init(answer) == 0) {
statusbar(regex_error, answer);
reset_cursor();
free(backupstring);
backupstring = NULL;
#ifndef NANO_SMALL
search_history.current = search_history.next;
#endif
return -3;
}
#endif
free(backupstring);
backupstring = NULL;
last_replace[0] = '\0';
break;
#ifndef NANO_SMALL
case TOGGLE_CASE_KEY:
@@ -213,8 +218,6 @@ int search_init(int replacing)
backupstring = mallocstrcpy(backupstring, answer);
return -2; /* Call the opposite search function */
case NANO_FROMSEARCHTOGOTO_KEY:
free(backupstring);
backupstring = NULL;
#ifndef NANO_SMALL
search_history.current = search_history.next;
#endif
@@ -226,8 +229,6 @@ int search_init(int replacing)
return -3;
default:
do_early_abort();
free(backupstring);
backupstring = NULL;
return -3;
}
}
@@ -246,7 +247,7 @@ int is_whole_word(int curr_pos, const char *datastr, const char *searchword)
filestruct *findnextstr(int quiet, int bracket_mode,
const filestruct *begin, int beginx,
const char *needle)
const char *needle, int no_sameline)
{
filestruct *fileptr = current;
const char *searchstr, *rev_start = NULL, *found = NULL;
@@ -264,8 +265,12 @@ filestruct *findnextstr(int quiet, int bracket_mode,
searchstr = &fileptr->data[current_x_find];
/* Look for needle in searchstr */
while ((found = strstrwrapper(searchstr, needle, rev_start, current_x_find)) == NULL) {
/* Look for needle in searchstr. Keep going until we find it
* and, if no_sameline is set, until it isn't on the current
* line. If we don't find it, we'll end up at
* current[current_x] regardless of whether no_sameline is
* set. */
while ((found = strstrwrapper(searchstr, needle, rev_start, current_x_find)) == NULL || (no_sameline && fileptr == current)) {
/* finished processing file, get out */
if (search_last_line) {
@@ -319,8 +324,13 @@ filestruct *findnextstr(int quiet, int bracket_mode,
rev_start = &fileptr->data[current_x_find];
searchstr = fileptr->data;
/* Look for needle in searchstr */
while ((found = strstrwrapper(searchstr, needle, rev_start, current_x_find)) == NULL) {
/* Look for needle in searchstr. Keep going until we find it
* and, if no_sameline is set, until it isn't on the current
* line. If we don't find it, we'll end up at
* current[current_x] regardless of whether no_sameline is
* set. */
while ((found = strstrwrapper(searchstr, needle, rev_start, current_x_find)) == NULL || (no_sameline && fileptr == current)) {
/* finished processing file, get out */
if (search_last_line) {
if (!quiet)
@@ -385,7 +395,9 @@ int do_search(void)
filestruct *fileptr = current, *didfind;
int fileptr_x = current_x;
#ifndef DISABLE_WRAPPING
wrap_reset();
#endif
i = search_init(0);
switch (i) {
case -1:
@@ -417,7 +429,7 @@ int do_search(void)
#endif /* !NANO_SMALL */
search_last_line = 0;
didfind = findnextstr(FALSE, FALSE, current, current_x, answer);
didfind = findnextstr(FALSE, FALSE, current, current_x, answer, 0);
if (fileptr == current && fileptr_x == current_x && didfind != NULL)
statusbar(_("This is the only occurrence"));
@@ -430,6 +442,48 @@ int do_search(void)
return 1;
}
/* Search for the next string without prompting. */
int do_research(void)
{
filestruct *fileptr = current, *didfind;
int fileptr_x = current_x;
#ifdef HAVE_REGEX_H
const char *regex_error = _("Invalid regex \"%s\"");
#endif /* HAVE_REGEX_H */
#ifndef DISABLE_WRAPPING
wrap_reset();
#endif
search_init_globals();
if (last_search[0] != '\0') {
#ifdef HAVE_REGEX_H
if (ISSET(USE_REGEXP))
if (regexp_init(last_search) == 0) {
statusbar(regex_error, last_search);
reset_cursor();
return -3;
}
#endif
search_last_line = 0;
didfind = findnextstr(FALSE, FALSE, current, current_x, last_search, 0);
if (fileptr == current && fileptr_x == current_x && didfind != NULL)
statusbar(_("This is the only occurrence"));
else if (current->lineno <= edittop->lineno
|| current->lineno >= editbot->lineno)
edit_update(current, CENTER);
} else
statusbar(_("No current search pattern"));
search_abort();
return 1;
}
void replace_abort(void)
{
/* Identical to search_abort, so we'll call it here. If it
@@ -563,22 +617,24 @@ int do_replace_loop(const char *prevanswer, const filestruct *begin,
int *beginx, int wholewords, int *i)
{
int replaceall = 0, numreplaced = -1;
#ifdef HAVE_REGEX_H
/* The starting-line match and bol/eol regex flags. */
int beginline = 0, bol_eol = 0;
#endif
filestruct *fileptr = NULL;
char *copy;
switch (*i) {
case -1: /* Aborted enter */
if (last_replace[0] != '\0')
answer = mallocstrcpy(answer, last_replace);
statusbar(_("Replace Cancelled"));
replace_abort();
return 0;
case 0: /* They actually entered something */
break;
default:
if (*i != -2) { /* First page, last page, for example, could
get here */
case -1: /* Aborted enter. */
if (last_replace[0] != '\0')
answer = mallocstrcpy(answer, last_replace);
statusbar(_("Replace Cancelled"));
replace_abort();
return 0;
case 0: /* They actually entered something. */
break;
default:
if (*i != -2) { /* First page, last page, for example, could
* get here. */
do_early_abort();
replace_abort();
return 0;
@@ -587,9 +643,38 @@ int do_replace_loop(const char *prevanswer, const filestruct *begin,
last_replace = mallocstrcpy(last_replace, answer);
while (1) {
/* Sweet optimization by Rocco here */
size_t match_len;
/* Sweet optimization by Rocco here. */
fileptr = findnextstr(fileptr || replaceall || search_last_line,
FALSE, begin, *beginx, prevanswer);
FALSE, begin, *beginx, prevanswer,
#ifdef HAVE_REGEX_H
/* We should find a bol and/or eol regex only once per
* line. If the bol_eol flag is set, it means that the
* last search found one on the beginning line, so we
* should skip over the beginning line when doing this
* search. */
bol_eol
#else
0
#endif
);
#ifdef HAVE_REGEX_H
/* If the bol_eol flag is set, we've found a match on the
* beginning line already, and we're still on the beginning line
* after the search, it means that we've wrapped around, so
* we're done. */
if (bol_eol && beginline && fileptr == begin)
fileptr = NULL;
/* Otherwise, set the beginline flag if we've found a match on
* the beginning line, reset the bol_eol flag, and continue. */
else {
if (fileptr == begin)
beginline = 1;
bol_eol = 0;
}
#endif
if (current->lineno <= edittop->lineno
|| current->lineno >= editbot->lineno)
@@ -599,27 +684,51 @@ int do_replace_loop(const char *prevanswer, const filestruct *begin,
if (fileptr == NULL)
break;
/* Make sure only whole words are found */
/* Make sure only whole words are found. */
if (wholewords && !is_whole_word(current_x, fileptr->data, prevanswer))
continue;
/* If we're here, we've found the search string */
/* If we're here, we've found the search string. */
if (numreplaced == -1)
numreplaced = 0;
#ifdef HAVE_REGEX_H
if (ISSET(USE_REGEXP))
match_len = regmatches[0].rm_eo - regmatches[0].rm_so;
else
#endif
match_len = strlen(prevanswer);
if (!replaceall) {
char *exp_word;
size_t xpt = xplustabs();
exp_word = display_string(current->data, xpt,
strnlenpt(current->data, match_len + current_x) - xpt);
curs_set(0);
do_replace_highlight(TRUE, prevanswer);
do_replace_highlight(TRUE, exp_word);
*i = do_yesno(1, 1, _("Replace this instance?"));
*i = do_yesno(1, _("Replace this instance?"));
do_replace_highlight(FALSE, prevanswer);
do_replace_highlight(FALSE, exp_word);
free(exp_word);
curs_set(1);
if (*i == -1) /* We canceled the replace. */
break;
}
#ifdef HAVE_REGEX_H
/* Set the bol_eol flag if we're doing a bol and/or eol regex
* replace ("^", "$", or "^$"). */
if (ISSET(USE_REGEXP) && regexec(&search_regexp, prevanswer, 1, NULL, REG_NOTBOL | REG_NOTEOL) == REG_NOMATCH)
bol_eol = 1;
#endif
if (*i > 0 || replaceall) { /* Yes, replace it!!!! */
long length_change;
size_t match_len;
char *copy;
int length_change;
if (*i == 2)
replaceall = 1;
@@ -633,13 +742,6 @@ int do_replace_loop(const char *prevanswer, const filestruct *begin,
length_change = strlen(copy) - strlen(current->data);
#ifdef HAVE_REGEX_H
if (ISSET(USE_REGEXP))
match_len = regmatches[0].rm_eo - regmatches[0].rm_so;
else
#endif
match_len = strlen(prevanswer);
#ifndef NANO_SMALL
if (current == mark_beginbuf && mark_beginx > current_x) {
if (mark_beginx < current_x + match_len)
@@ -657,14 +759,14 @@ int do_replace_loop(const char *prevanswer, const filestruct *begin,
}
/* Set the cursor at the last character of the replacement
* text, so searching will resume after the replacement text.
* Note that current_x might be set to -1 here. */
* text, so searching will resume after the replacement
* text. Note that current_x might be set to -1 here. */
#ifndef NANO_SMALL
if (!ISSET(REVERSE_SEARCH))
#endif
current_x += match_len + length_change - 1;
/* Cleanup */
/* Cleanup. */
totsize += length_change;
free(current->data);
current->data = copy;
@@ -672,9 +774,7 @@ int do_replace_loop(const char *prevanswer, const filestruct *begin,
edit_refresh();
set_modified();
numreplaced++;
} else if (*i == -1) /* Abort, else do nothing and continue
loop */
break;
}
}
/* If text has been added to the magicline, make a new magicline. */
@@ -877,7 +977,7 @@ int do_find_bracket(void)
while (1) {
search_last_line = 0;
if (findnextstr(1, 1, current, current_x, regexp_pat) != NULL) {
if (findnextstr(TRUE, TRUE, current, current_x, regexp_pat, 0) != NULL) {
have_search_offscreen |= search_offscreen;
/* found identical bracket */

View File

@@ -2,7 +2,7 @@
/**************************************************************************
* utils.c *
* *
* Copyright (C) 1999-2003 Chris Allegretta *
* Copyright (C) 1999-2004 Chris Allegretta *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2, or (at your option) *
@@ -84,7 +84,7 @@ void null_at(char **data, size_t index)
void unsunder(char *str, size_t true_len)
{
assert(str != NULL);
for(; true_len > 0; true_len--, str++)
for (; true_len > 0; true_len--, str++)
if (*str == '\0')
*str = '\n';
}
@@ -94,7 +94,7 @@ void unsunder(char *str, size_t true_len)
void sunder(char *str)
{
assert(str != NULL);
for(; *str != '\0'; str++)
for (; *str != '\0'; str++)
if (*str == '\n')
*str = '\0';
}
@@ -135,7 +135,7 @@ int nstrnicmp(const char *s1, const char *s2, size_t n)
const char *revstrstr(const char *haystack, const char *needle,
const char *rev_start)
{
for(; rev_start >= haystack ; rev_start--) {
for (; rev_start >= haystack; rev_start--) {
const char *r, *q;
for (r = rev_start, q = needle ; *q == *r && *q != '\0'; r++, q++)
@@ -197,13 +197,13 @@ const char *strstrwrapper(const char *haystack, const char *needle,
#ifndef NANO_SMALL
if (ISSET(REVERSE_SEARCH)) {
/* When doing a backwards search, haystack is a whole line. */
if (!regexec(&search_regexp, haystack, 1, regmatches, 0) &&
if (regexec(&search_regexp, haystack, 1, regmatches, 0) == 0 &&
haystack + regmatches[0].rm_so <= rev_start) {
const char *retval = haystack + regmatches[0].rm_so;
/* Search forward until there is no more match. */
while (!regexec(&search_regexp, retval + 1, 1, regmatches,
REG_NOTBOL) &&
while (regexec(&search_regexp, retval + 1, 1, regmatches,
REG_NOTBOL) == 0 &&
retval + 1 + regmatches[0].rm_so <= rev_start)
retval += 1 + regmatches[0].rm_so;
/* Finally, put the subexpression matches in global
@@ -214,8 +214,8 @@ const char *strstrwrapper(const char *haystack, const char *needle,
}
} else
#endif /* !NANO_SMALL */
if (!regexec(&search_regexp, haystack, 10, regmatches,
line_pos > 0 ? REG_NOTBOL : 0)) {
if (regexec(&search_regexp, haystack, 10, regmatches,
line_pos > 0 ? REG_NOTBOL : 0) == 0) {
const char *retval = haystack + regmatches[0].rm_so;
regexec(&search_regexp, retval, 10, regmatches, 0);
@@ -302,6 +302,28 @@ void new_magicline(void)
totsize++;
}
#ifndef NANO_SMALL
/* Set top_x and bot_x to the top and bottom x-coordinates of the mark,
* respectively, based on the locations of top and bot. */
void mark_order(const filestruct **top, size_t *top_x,
const filestruct **bot, size_t *bot_x)
{
assert(top != NULL && top_x != NULL && bot != NULL && bot_x != NULL);
if ((current->lineno == mark_beginbuf->lineno && current_x > mark_beginx)
|| current->lineno > mark_beginbuf->lineno) {
*top = mark_beginbuf;
*top_x = mark_beginx;
*bot = current;
*bot_x = current_x;
} else {
*bot = mark_beginbuf;
*bot_x = mark_beginx;
*top = current;
*top_x = current_x;
}
}
#endif
#ifndef DISABLE_TABCOMP
/*
* Routine to see if a text string is matched by a wildcard pattern.

File diff suppressed because it is too large Load Diff