Go to file
Benno Schulenberg 31a6931be9 tweaks: elide a call of strlen() for every row
For a normal file (without overlong lines) the strlen() wasn't much
of a problem.  But when there are very long lines, it wasted time
counting stuff that wouldn't be displayed on the current row anyway,
and reserved *far* too much memory for the displayable string.

Problem existed since commit cf0eed6c from five years ago that traded
a continuous comparison (of the used space with the reserved space)
against a one-time big reservation up front involving a strlen().
In retrospect that was not a good trade-off when softwrapping.

The extra check (charwidth == 0) is incurred only by characters that
have their high bit set, so the average file (with only ASCII) is not
affected by this -- it just loses an unneeded call of strlen().
2021-04-08 12:15:12 +02:00
doc bump version numbers and add a news item for the 5.6.1 release 2021-03-03 09:47:41 +01:00
m4 tweaks: delete another pointless ChangeLog 2020-03-26 13:17:41 +01:00
po po: update translations and regenerate POT file and PO files 2021-03-03 10:11:58 +01:00
src tweaks: elide a call of strlen() for every row 2021-04-08 12:15:12 +02:00
syntax tweaks: reshuffle a comment, and put the main extension first 2021-04-05 16:06:54 +02:00
.gitignore tweaks: drop obsolete 'nano.spec' from .gitignore file, and reshuffle 2020-06-15 19:11:45 +02:00
AUTHORS docs: note Marco as the original author of the bookmarking code 2020-04-16 11:05:14 +02:00
COPYING convert to GPLv3 or later 2007-08-11 05:17:36 +00:00
COPYING.DOC convert documentation to GPLv3/GFDLv1.2 2007-08-23 04:34:35 +00:00
ChangeLog bump version numbers and add a news item for the 5.6.1 release 2021-03-03 09:47:41 +01:00
ChangeLog.1999-2006 tweaks: for each version, mention the changes to the PO files last 2020-03-26 12:18:22 +01:00
ChangeLog.2007-2015 tweaks: fix twenty typos, in old Changelogs and in some comments 2020-03-25 16:57:43 +01:00
IMPROVEMENTS bump version numbers and add a news item for the 5.6 release 2021-02-24 09:23:50 +01:00
Makefile.am build: stop distributing the README.GIT file 2020-08-24 09:29:05 +02:00
NEWS bump version numbers and add a news item for the 5.6.1 release 2021-03-03 09:47:41 +01:00
README tweaks: condense the description of how to report a bug 2020-12-25 16:45:31 +01:00
README.GIT docs: adjust for the changed name of the header-file package on Debian 2020-10-11 16:44:40 +02:00
THANKS tweaks: sort three translator names better 2019-06-06 15:22:02 +02:00
TODO docs: reduce the TODO file to a reference to the bug tracker on Savannah 2020-03-26 19:27:46 +01:00
autogen.sh gnulib: update to its current upstream state 2021-02-23 09:53:17 +01:00
configure.ac bump version numbers and add a news item for the 5.6.1 release 2021-03-03 09:47:41 +01:00
nano-regress 2014-05-29 Chris Allegretta <chrisa@asty.org> 2014-05-29 18:30:23 +00:00
roll-a-release.sh bump version numbers and add a news item for the 5.6.1 release 2021-03-03 09:47:41 +01:00

README

          GNU nano -- a simple editor, inspired by Pico

Overview

    The nano project was started because of a few "problems" with the
    wonderfully easy-to-use and friendly Pico text editor.

    First and foremost was its license: the Pine suite does not use
    the GPL, and (before using the Apache License) it had unclear
    restrictions on redistribution.  Because of this, Pine and Pico
    were not included in many GNU/Linux distributions.  Furthermore,
    some features (like go-to-line-number or search-and-replace) were
    unavailable for a long time or require a command-line flag.  Yuck.

    Nano aimed to solve these problems by: 1) being truly free software
    by using the GPL, 2) emulating the functionality of Pico as closely
    as is reasonable, and 3) including extra functionality by default.

    Nowadays, nano wants to be a generally useful editor with sensible
    defaults (linewise scrolling, no automatic line breaking).

    The nano editor is an official GNU package.  For more information on
    GNU and the Free Software Foundation, please see https://www.gnu.org/.

How to compile and install nano

    Download the latest nano source tarball, and then:

        tar -xvf nano-x.y.tar.gz
        cd nano-x.y
        ./configure
        make
        make install

    You will need the header files of ncurses installed for ./configure
    to succeed -- get them from libncurses-dev (Debian) or ncurses-devel
    (Fedora) or a similarly named package.  Use --prefix with ./configure
    to override the default installation directory of /usr/local.

    After installation you may want to copy the doc/sample.nanorc file
    to your home directory, rename it to ".nanorc", and then edit it
    according to your taste.

Web Page

    https://nano-editor.org/

Mailing Lists

    There are three nano-related mailing-lists.

    + info-nano@gnu.org is a very low traffic list used to announce
      new nano versions or other important info about the project.

    + help-nano@gnu.org is for those seeking to get help without
      wanting to hear about the technical details of its development.

    + nano-devel@gnu.org is the list used by the people that make nano
      and a general development discussion list, with moderate traffic.

    To subscribe, send email to <name>-request@gnu.org with a subject
    of "subscribe", where <name> is the list you want to subscribe to.

    The archives of the development and help mailing lists are here:

        https://lists.gnu.org/archive/html/nano-devel/
        https://lists.gnu.org/archive/html/help-nano/

Bug Reports

    If you find a bug, please file a detailed description of the problem
    on nano's bug tracker: https://savannah.gnu.org/bugs/?group=nano.

Copyright Years

    When in any file of this package a copyright notice mentions a
    year range (such as 1999-2011), it is a shorthand for a list of
    all the years in that interval.