1
1

172 Коммитов

Автор SHA1 Сообщение Дата
Benno Schulenberg
b6efea266e chars: invalid sequences are not blank, nor text, nor punctuation
So, slightly speed up the functions that check for those.
2016-06-30 14:34:34 +02:00
Benno Schulenberg
8686cb3d3d chars: measure invalid sequences and unassigned codepoints more quickly
Invalid multibyte sequences get depicted with the Replacement Character,
and unassigned codepoints are shown as if they were a space.  Both have
a width of one.
2016-06-30 14:33:25 +02:00
Benno Schulenberg
af53c56ec8 chars: speed up the determination whether something is a control character
Use knowledge of UTF-8 instead of converting to wide characters first.
2016-06-29 20:56:50 +02:00
Benno Schulenberg
019d7b34ca chars: delete a now-unused function 2016-06-29 20:56:50 +02:00
Benno Schulenberg
622995fb12 chars: the representation of a control character is always two bytes
Any control character is represented by a ^ plus an ASCII character.
2016-06-29 20:56:50 +02:00
Benno Schulenberg
03586c60da chars: represent the high-bit controls more intelligibly
Instead of showing the upper control codes like this:

   ^À ^Á ^Â ^Ã ^Ä ^Å ^Æ ^Ç ^È ^É ^Ê ^Ë ^Ì ^Í ^Î ^Ï
   ^Ð ^Ñ ^Ò ^Ó ^Ô ^Õ ^Ö ^× ^Ø ^Ù ^Ú ^Û ^Ü ^Ý ^Þ ^ß

show them like this:

   ^` ^a ^b ^c ^d ^e ^f ^g ^h ^i ^j ^k ^l ^m ^n ^o
   ^p ^q ^r ^s ^t ^u ^v ^w ^x ^y ^z ^{ ^| ^} ^~ ^=

The lower control codes continue to be shown like this:

   ^@ ^A ^B ^C ^D ^E ^F ^G ^H ^I ^J ^K ^L ^M ^N ^O
   ^P ^Q ^R ^S ^T ^U ^V ^W ^X ^Y ^Z ^[ ^\ ^] ^^ ^_

The representation of DEL (0x7F) continues as ^?.

Further, use knowledge of UTF-8 to avoid a roundtrip through
wide characters.
2016-06-29 20:56:50 +02:00
Benno Schulenberg
6fda7a7057 chars: speed up two reverse-searching routines a bit
By removing from their main loops a condition that occurs just once.
2016-06-27 19:22:28 +02:00
Benno Schulenberg
1e2833e07b tweaks: elide two unneeded variables 2016-06-27 19:22:20 +02:00
Benno Schulenberg
56f067a284 chars: ensure that files are sorted also when strncasecmp() is strange
When running in a non-UTF locale, and when strncasecmp() suffers from
the same defect as strncmp(), make sure not to pass a length with the
high bit set.
2016-06-01 21:59:25 +02:00
Benno Schulenberg
05e2a6d259 chars: a control character can never be an invalid multibyte sequence
The function is_cntrl_mbchar() has always been called successfully before
calling control_mbrep(), so the passed character *is* a valid sequence.
2016-06-01 13:08:40 +02:00
Benno Schulenberg
b42887fe14 tweaks: adjust a couple of comments 2016-06-01 13:04:00 +02:00
Benno Schulenberg
4172268bd2 chars: the representation of control characters is always two columns wide 2016-06-01 13:03:43 +02:00
Benno Schulenberg
a9f79a6130 tweaks: reindent and rewrap a few lines, and shorten a comment 2016-06-01 13:03:26 +02:00
Benno Schulenberg
17cf833b9c tweaks: normalize some whitespace 2016-05-30 09:09:36 +02:00
Benno Schulenberg
a5b3f00d78 chars: make comparing multibyte strings twice as fast
Instead of parsing every multibyte character twice, first with
parse_mbchar() and then with mbtowc(), just let mbtowc() do all
the work.  This makes searching for a fixed string twice as fast.

This also gets rid of four variables and lots of memory allocations.
(And, more importantly: it stops nano messing up the internal state
of the multibyte-to-wide character conversion, and thus would make
the calls to mbtowc_reset() superfluous.)
2016-05-27 10:37:43 +02:00
Benno Schulenberg
1bffa17c01 tweaks: rename two more variables 2016-05-27 10:36:54 +02:00
Benno Schulenberg
a151167416 tweaks: rename some variables for contrast 2016-05-27 10:36:12 +02:00
Benno Schulenberg
3b21659661 tweaks: elide four #ifdefs, improve one comment and unwrap some others 2016-05-24 17:55:24 +02:00
Benno Schulenberg
d92eb4fee3 all: eradicate SVN's $Id$ tags 2016-04-05 14:59:12 +02:00
Benno Schulenberg
f9d6aa9ba3 Speeding up Unicode validation.
(The measurable effect (during long searches, for example) is zero, though.)


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5773 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2016-03-29 14:46:53 +00:00
Benno Schulenberg
2163d961a1 Deleting two dead prototypes, adjusting two comments for correctness,
and two other minute tweaks.


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5649 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2016-02-16 10:09:26 +00:00
Benno Schulenberg
9205c28865 Reverting my own patch that claimed that UTF8 is a stateless encoding.
Apparently there is /some/ state somewhere after all.  Don't have time
now to figure out where exactly.


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5369 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2015-09-04 19:34:55 +00:00
Benno Schulenberg
58a0ddebac Not bothering to reset any state, because UTF-8 is a stateless encoding.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5354 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2015-08-12 19:27:13 +00:00
Benno Schulenberg
b967368d41 Finding only valid UTF-8 byte sequences when searching.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5316 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2015-07-23 19:18:25 +00:00
Benno Schulenberg
76e7aaf514 Starting to look for a multibyte character not at the start of the string,
but only as far back as such a character can possibly be.
Speedup suggested by Mark Majeres.


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5147 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2015-03-22 11:20:02 +00:00
Chris Allegretta
82a411077a 2014-05-29 Chris Allegretta <chrisa@asty.org>
* src/chars.c (addstrings): Needs to be available even on
          non-utf-8 sustems.
        * nano-regress: Added --disable-utf8 to regression check



git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4933 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2014-05-29 18:30:23 +00:00
Benno Schulenberg
f5ac8c1ee1 Placing the cursor after an undo there where it was before the do,
and handling multibyte characters correctly.
*Patch by Mark Majeres.*


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4908 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2014-05-25 19:41:49 +00:00
Benno Schulenberg
7a9f4a456e Update the years in the copyright notices.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4826 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2014-04-30 20:18:26 +00:00
Benno Schulenberg
ff8454a6f5 Avoiding a compiler warning, and straightening out the logic.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4772 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2014-04-14 20:42:10 +00:00
Benno Schulenberg
eea0908236 Converting #ifdef ENABLE_NANORC to #ifndef DISABLE_NANORC.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4765 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2014-04-13 20:50:20 +00:00
Benno Schulenberg
70b2d08610 Cosmetic tweaks.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4734 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2014-04-05 20:28:29 +00:00
Benno Schulenberg
0b2f84322a Eliding a variable.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4660 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2014-03-21 12:47:34 +00:00
Chris Allegretta
4cc2462ed4 Clean-up warnings with -pedantic.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4555 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2013-01-03 04:23:10 +00:00
Chris Allegretta
3459e4f432 2011-02-23 Chris Allegretta <chrisa@asty.org>
* Fix some more severe warnings from 'g++ -pedantic', from patch originally
          by Eitan Adler <lists@eitanadler.com>



git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4534 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2011-02-24 02:47:25 +00:00
Chris Allegretta
8a07a96eef 2009-12-01 David Lawrence Ramsey <pooka109@gmail.com>
* Update documentation for 2.2 features including sample nanorc file, texinfo
          file, man pages, UPGRADE file, and update copyright noticed for the current year.



git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4453 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2009-12-02 03:36:22 +00:00
Chris Allegretta
a97cb819f2 2009-12-01 Kamil Dudka <kdudka@redhat.com>
* chars.c, file.c - Better handle unused results for things like mbtowc(), new
          macro IGNORE_CALL_RESULT.

2009-12-01 Chris Allegretta <chrisa@asty.org>
        * global.c (shortcut_init) - Remove redundant entries for ^Y/^V reported by
          Christian Weisgerber.
        * doc/man/nanorc.5 - Fix typo in Meta documentation, reported by gibboris@gmail.com.

2009-11-29 David Lawrence Ramsey <pooka109@gmail.com>
        * global.c (shortcut_init) - Add support for ^P and ^N in the help menu.



git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4452 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2009-12-02 03:24:18 +00:00
Chris Allegretta
5a018f0d3a 2009-11-29 Chris Allegretta <chrisa@asty.org>
* prompt.c (get_prompt_string) - Universally handle help key when is disabled.  Fixes Savannah
          bug 28117 by David Lawrence Ramsey <pooka109@gmail.com>.
        * chars.c, files.c: Add junk vars to silence the compiler.  Sigh.

2009-11-29 David Lawrence Ramsey <pooka109@gmail.com>
        * Change several *chars to const char, additional cleanups and casts to make compilers happier.



git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4448 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2009-11-29 06:13:22 +00:00
David Lawrence Ramsey
d8a1d37161 update copyright notices, as Chris Allegretta's copyrights have now been
assigned to the Free Software Foundation; also, make copyright notices
consistent in style


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4173 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-10-11 05:01:32 +00:00
David Lawrence Ramsey
c9694b7636 update copyright notices, as my copyrights have now been assigned to the
Free Software Foundation


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4172 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-10-05 16:44:45 +00:00
David Lawrence Ramsey
d0035b4ab2 convert to GPLv3 or later
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4147 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-08-11 05:17:36 +00:00
David Lawrence Ramsey
9276f4d0b1 in nstrcasestr(), mbstrcasestr(), revstrstr(), revstrcasestr(), and
mbrevstrcasestr(), simplify and rewrite to use strncasecmp()


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4131 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-07-10 22:54:58 +00:00
David Lawrence Ramsey
36536670c8 typo fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4129 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-07-09 22:57:07 +00:00
David Lawrence Ramsey
bebfd9fbb6 in mbstrncasecmp(), mbstrnlen(), mbstrpbrk(), and has_blank_mbchars(),
simplify by using for loops instead of while loops where possible, to
match the single-byte versions of these functions


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4127 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-07-09 22:36:32 +00:00
David Lawrence Ramsey
ae46b91b7e in nstrcasestr(), mbstrcasestr(), revstrstr(), revstrcasestr(), and
mbrevstrcasestr(), return char* instead of const char*


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4126 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-07-06 13:44:13 +00:00
David Lawrence Ramsey
84763ef473 cosmetic fix
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4125 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-07-06 13:38:20 +00:00
David Lawrence Ramsey
710583064f in nstrcasestr(), mbstrcasestr(), revstrstr(), revstrcasestr(), and
mbrevstrcasestr(), for efficiency, return haystack immediately if needle
is blank


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4122 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-07-02 15:45:13 +00:00
David Lawrence Ramsey
444f802d58 in nstrncasecmp() and mbstrncasecmp(), for efficiency, return zero
immediately if s1 and s2 point to the same string


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4121 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-07-01 21:46:00 +00:00
David Lawrence Ramsey
10442330bf cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4119 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-07-01 21:17:05 +00:00
David Lawrence Ramsey
be27ba45d5 still more cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4100 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-04-23 14:03:28 +00:00
David Lawrence Ramsey
b94d51aa7e more cosmetic fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4085 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
2007-04-19 03:15:04 +00:00