* src/*: Introduce (basic) vim-style file locks. Does not allow vim to recover
our files, and doesn't yet support setting the file as modified; just lets a
vim user know we're editing a file. Commands line "-G" or "--locking", nanorc
option "locking". New functions src/files.c:do_lockfile(), write_lockfile(),
and delete_lockfile().
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4549 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
* src/*: Fix overlapping strings highlighting each other. new variables in edit_draw
(slmatcharray, pbegin, paintok), new logic (with repeated setting od values in the
array but its BFI after all). FIXME: Need to create a new 'overlap'
* src/*: Fix a silly issue with the argument to nregcomp, as it's confusing to the caller
* src/nano.h: Change the color types to a compiler macro (COLORWIDTH), may not actually
even be worth doing, but someday who knows how wide a color curses implementation might
be, and maybe we'll even start checking for it in autoconf!
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4547 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
* text.c (do_enter): Only increment totsize by the auto-indented amount, size the previous line's size was
already counted. Fixes bug reported by Robert Spanjaard.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4544 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
* doc/syntax/Makefile.am: Finally get around to sorting the syntax file list
2011-05-08 Matthew Wild <mattj100@Savannah>
* doc/syntax/spec.nanorc: New lua syntax highlighting config
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4543 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
* po/*: Sync latest translation fixes, add an update_linguas.sh script. Rename
existing update.pl to update_sources.pl to make it more specific.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4541 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
* color.c (color_update): Add check for whether the file even exists
before we try to run the magic check on it. Fixes error messages to stderr
when reading in files that don't exist, reported by Mike Frysinger.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4540 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
* color.c (color_update): Remove unneeded debugging message from
libmagic commit. Fixed extra messages going to stderr reported by Mike Frysinger.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4539 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
* Change RAW in function_type enum to RAWINPUT, to fix compilation on AIX,
reported by Richard G Daniel <skunk@iskunk.org>.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4535 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
* 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
* color.c (nfreeregex): Fix that we were trying to set the pointer passed by value
to NULL. Fixes crashes on file save reported by Ken Tyler and Matthieu Lejeune.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4532 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
so do_research will succeed without needing to manually load the last seach in. Fixes
bug reported by Matt "ML" at gmail.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4531 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
* New saved cursor position history option. Command line option -P or --poslog, rc file
entry "poslog". Search history changes to ~/.nano/search_history, cursor position log
is ~/.nano/filepos_history. Added checks to move the legacy .nano_history file to the new
location. Several new functions to files.c: load_poshistory(), save_poshistory(),
check_poshistory(), update_poshistory(), and reworking of histfilename(). New FAQ entry
4.15 discussing the change and offering an interoperability workaround.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4530 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
* Initial libmagic implementation, adapted from Eitan Adler <eitanadlerlist@gmail.com>.
New nanorc entry "magic" to enable this functionality, nanorc file and man page updates.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4528 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
This does add 20KB to nano's executable size but it gets rid of a lot of indirection
that makes people stomach turn. There are several new stub functions and need of more
tidying as a result of this.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4527 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
* files.c (write_file) - Fix problems with writing the backup file (albeit interactively)
with new function prompt_failed_backupwrite(), allows more secure handling of problems
with failing to write the backup file compared to 'allow_insecure_backup'.
* winio.c (edit_redraw): Removed unused variable
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4526 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
* Add a section to the FAQ about using nanorc on Win32 systems.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4522 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
* Add check for RESTRICTED mode back to speller, suspend and insert file
routines, since adding key bindings broke the fact that they should be
disabled in restricted mode. Fixes Savannah bug 31625 reported by
Charlie Somerville.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4519 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
* New option allow_insecure_backup, allows the previous security
fixes for backup files to be overridden if you're really positive
you want to. Fixes Savannah bug 29732 by Brian Szymanski <skibrianski>.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4508 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
* files.c (write_file): Don't even try to chown() the backup
file unless we're root, since it's probably going to fail if
we're editing a file we don't own. Fixes Savannah bug
29514: [nano 2.2.2] backup should ignore chown errors.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4507 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
* doc/man/nano.1,nanorc.5: Remove the backup file warnings now
that a sufficient security fix exists for the backup file code.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4502 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
* files.c (wirte_file): Don't set current_stat when tmp == TRUE, check
whether current_stat is set when trying to use it, and don't do the
modification check if the filename changed, since we have no way
of knowing about it in that case. Fixes Savannah bug 29392, reported
by Mike Frysinger.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4500 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
* text.c (do_alt_speller): Skip invoking the alt speller if the file size
is 0 bytes. Fixes Savannah bug 29393 reported by Mike Frysinger.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4499 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
* files.c (do_writeout): Better security fixes for backup file writing,
mangled from submission by Dan Rosenberg <dan.j.rosenberg at gmail>.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4496 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
* files.c (do_writeout): Previous fixes should not cause a crash
when saving a new file. Discovered by Mike Frysinger <vapier@gentoo.org>.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4494 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
* doc/man/nano.1,nanorc.5: Add warnings about using backup
mode as root due to the Dan Rosenberg security analysis.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4493 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
* files.c (do_writeout): Expand modification check to include both the
original file's device ID and inode number as reasons to warn the
user that the file has been modified. Based on security article on nano
by Dan Rosenberg.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4490 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
* nano.c (page_stdin et al): Don't attempt to reset/reopen the terminal
settings when reading stdin if it was aborted with SIGINT. May fix Savannah
bug 29114 reported by Mike Frysinger.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4489 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
* doc/syntax/c.nanorc: Add additional support for #include_next and #pragma
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4488 35c25a1d-7b9e-4130-9fde-d3aeb78583b8