David Benbennick's minor fixes, plus one of mine
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1275 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
Этот коммит содержится в:
родитель
605165e292
Коммит
e21adfa181
30
ChangeLog
30
ChangeLog
@ -15,6 +15,15 @@ CVS code -
|
|||||||
some functions around to put similar functions closer
|
some functions around to put similar functions closer
|
||||||
together (for this, rename clear_bottombars() to
|
together (for this, rename clear_bottombars() to
|
||||||
blank_bottombars()). (DLR; suggested by David Benbennick)
|
blank_bottombars()). (DLR; suggested by David Benbennick)
|
||||||
|
- More changes of char *'s to const char *'s when possible.
|
||||||
|
(David Benbennick)
|
||||||
|
- Fix various minor memory leaks in files.c. (David Benbennick)
|
||||||
|
- Fix minor problems with the operating directory code: set the
|
||||||
|
operating directory properly if it's specified only in a
|
||||||
|
nanorc file, and handle an operating directory of "/"
|
||||||
|
properly. New function init_operating_dir() to handle
|
||||||
|
setting it both on the command line and in the nanorc file.
|
||||||
|
(David Benbennick)
|
||||||
- configure.ac:
|
- configure.ac:
|
||||||
- Added pt_BR to ALL_LINGUAS (Jordi).
|
- Added pt_BR to ALL_LINGUAS (Jordi).
|
||||||
- Changed --enable-color warning to be slightly less severe.
|
- Changed --enable-color warning to be slightly less severe.
|
||||||
@ -28,10 +37,9 @@ CVS code -
|
|||||||
- Disallow multibuffer toggling at the "Insert File" prompt if
|
- Disallow multibuffer toggling at the "Insert File" prompt if
|
||||||
we're in both view and multibuffer mode, so as to keep proper
|
we're in both view and multibuffer mode, so as to keep proper
|
||||||
integration between the two, and make sure the toggle
|
integration between the two, and make sure the toggle
|
||||||
actually works all the time otherwise. Also, use
|
actually works all the time otherwise. Also, make sure
|
||||||
NANO_LOAD_KEY as an alias for TOGGLE_LOAD_KEY, so
|
TOGGLE_LOAD_KEY isn't referenced when NANO_SMALL and
|
||||||
--enable-tiny and --enable-multibuffer can be used together
|
ENABLE_MULTIBUFFER are both defined. (DLR)
|
||||||
again. (DLR)
|
|
||||||
open_prevfile_void(), open_nextfile_void()
|
open_prevfile_void(), open_nextfile_void()
|
||||||
- Return the return values of open_prevfile() and
|
- Return the return values of open_prevfile() and
|
||||||
open_nextfile(), respectively, instead of (incorrectly)
|
open_nextfile(), respectively, instead of (incorrectly)
|
||||||
@ -45,9 +53,9 @@ CVS code -
|
|||||||
username and the string already contains data. (DLR)
|
username and the string already contains data. (DLR)
|
||||||
- global.c:
|
- global.c:
|
||||||
shortcut_init()
|
shortcut_init()
|
||||||
- Use NANO_LOAD_KEY as an alias for TOGGLE_LOAD_KEY, so
|
- Disable the new multibuffer toggle at the file insertion
|
||||||
--enable-tiny and --enable-multibuffer can be used together
|
prompt when NANO_SMALL and ENABLE_MULTIBUFFER are both
|
||||||
again. (DLR)
|
defined. (DLR)
|
||||||
thanks_for_all_the_fish()
|
thanks_for_all_the_fish()
|
||||||
- Make sure the reference to help_text is #ifdefed out when
|
- Make sure the reference to help_text is #ifdefed out when
|
||||||
--disable-help is used. (DLR)
|
--disable-help is used. (DLR)
|
||||||
@ -92,7 +100,9 @@ CVS code -
|
|||||||
Benbennick)
|
Benbennick)
|
||||||
do_justify()
|
do_justify()
|
||||||
- Fix cosmetic problems caused when justifying on the
|
- Fix cosmetic problems caused when justifying on the
|
||||||
magicline. (David Benbennick)
|
magicline, and a minor problem where the cursor would
|
||||||
|
sometimes be moved to the wrong line after justification.
|
||||||
|
(David Benbennick)
|
||||||
main()
|
main()
|
||||||
- When searching through the main shortcut list looking for a
|
- When searching through the main shortcut list looking for a
|
||||||
shortcut key, stop searching after finding one; this avoids a
|
shortcut key, stop searching after finding one; this avoids a
|
||||||
@ -104,6 +114,10 @@ CVS code -
|
|||||||
- nanorc.sample:
|
- nanorc.sample:
|
||||||
- Fix the c-file regex for all caps words to be extended regex
|
- Fix the c-file regex for all caps words to be extended regex
|
||||||
format ({} instead of \{\}) (found by DLR).
|
format ({} instead of \{\}) (found by DLR).
|
||||||
|
- utils.c:
|
||||||
|
charalloc()
|
||||||
|
- Switch from using calloc() to using malloc(). (David
|
||||||
|
Benbennick)
|
||||||
- faq.html:
|
- faq.html:
|
||||||
- Typo fix. (DLR)
|
- Typo fix. (DLR)
|
||||||
- TODO:
|
- TODO:
|
||||||
|
561
files.c
561
files.c
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
12
global.c
12
global.c
@ -153,10 +153,10 @@ regex_t syntaxfile_regexp; /* Global to store compiled search regexp */
|
|||||||
regmatch_t synfilematches[1]; /* Match positions for parenthetical */
|
regmatch_t synfilematches[1]; /* Match positions for parenthetical */
|
||||||
#endif /* ENABLE_COLOR */
|
#endif /* ENABLE_COLOR */
|
||||||
|
|
||||||
|
|
||||||
int length_of_list(const shortcut *s)
|
int length_of_list(const shortcut *s)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
for (; s != NULL; s = s->next)
|
for (; s != NULL; s = s->next)
|
||||||
i++;
|
i++;
|
||||||
return i;
|
return i;
|
||||||
@ -304,7 +304,7 @@ void free_shortcutage(shortcut **shortcutage)
|
|||||||
void shortcut_init(int unjustify)
|
void shortcut_init(int unjustify)
|
||||||
{
|
{
|
||||||
#ifndef DISABLE_HELP
|
#ifndef DISABLE_HELP
|
||||||
char *nano_help_msg = "", *nano_writeout_msg = "", *nano_exit_msg =
|
const char *nano_help_msg = "", *nano_writeout_msg = "", *nano_exit_msg =
|
||||||
"", *nano_goto_msg = "", *nano_justify_msg =
|
"", *nano_goto_msg = "", *nano_justify_msg =
|
||||||
"", *nano_replace_msg = "", *nano_insert_msg =
|
"", *nano_replace_msg = "", *nano_insert_msg =
|
||||||
"", *nano_whereis_msg = "", *nano_prevpage_msg =
|
"", *nano_whereis_msg = "", *nano_prevpage_msg =
|
||||||
@ -325,11 +325,11 @@ void shortcut_init(int unjustify)
|
|||||||
"", *nano_backup_msg = "";
|
"", *nano_backup_msg = "";
|
||||||
|
|
||||||
#ifdef ENABLE_MULTIBUFFER
|
#ifdef ENABLE_MULTIBUFFER
|
||||||
char *nano_openprev_msg = "", *nano_opennext_msg =
|
const char *nano_openprev_msg = "", *nano_opennext_msg =
|
||||||
"", *nano_multibuffer_msg = "";
|
"", *nano_multibuffer_msg = "";
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_REGEX_H
|
#ifdef HAVE_REGEX_H
|
||||||
char *nano_regexp_msg = "", *nano_bracket_msg = "";
|
const char *nano_regexp_msg = "", *nano_bracket_msg = "";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
nano_help_msg = _("Invoke the help menu");
|
nano_help_msg = _("Invoke the help menu");
|
||||||
@ -725,10 +725,10 @@ void shortcut_init(int unjustify)
|
|||||||
#ifndef NANO_SMALL
|
#ifndef NANO_SMALL
|
||||||
sc_init_one(&insertfile_list, NANO_EXTCMD_KEY, _("Execute Command"),
|
sc_init_one(&insertfile_list, NANO_EXTCMD_KEY, _("Execute Command"),
|
||||||
IFHELP(nano_execute_msg, 0), 0, 0, NOVIEW, 0);
|
IFHELP(nano_execute_msg, 0), 0, 0, NOVIEW, 0);
|
||||||
#endif
|
|
||||||
#ifdef ENABLE_MULTIBUFFER
|
#ifdef ENABLE_MULTIBUFFER
|
||||||
sc_init_one(&insertfile_list, NANO_LOAD_KEY, _("New Buffer"),
|
sc_init_one(&insertfile_list, TOGGLE_LOAD_KEY, _("New Buffer"),
|
||||||
IFHELP(nano_multibuffer_msg, 0), 0, 0, NOVIEW, 0);
|
IFHELP(nano_multibuffer_msg, 0), 0, 0, NOVIEW, 0);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
free_shortcutage(&spell_list);
|
free_shortcutage(&spell_list);
|
||||||
|
57
nano.c
57
nano.c
@ -2177,7 +2177,7 @@ int do_justify(void)
|
|||||||
* 2) the line above it is not part of a paragraph, or
|
* 2) the line above it is not part of a paragraph, or
|
||||||
* 3) the line above it does not have precisely the same quote
|
* 3) the line above it does not have precisely the same quote
|
||||||
* part, or
|
* part, or
|
||||||
* 4) the indentation of this line is not a subset of the
|
* 4) the indentation of this line is not an initial substring of the
|
||||||
* indentation of the previous line, or
|
* indentation of the previous line, or
|
||||||
* 5) this line has no quote part and some indentation, and
|
* 5) this line has no quote part and some indentation, and
|
||||||
* AUTOINDENT is not set.
|
* AUTOINDENT is not set.
|
||||||
@ -2250,29 +2250,28 @@ int do_justify(void)
|
|||||||
current_x = 0;
|
current_x = 0;
|
||||||
if (current->data[quote_len + indent_len] != '\0') {
|
if (current->data[quote_len + indent_len] != '\0') {
|
||||||
/* This line is part of a paragraph. So we must search back to
|
/* This line is part of a paragraph. So we must search back to
|
||||||
* the first line of this paragraph. */
|
* the first line of this paragraph. First we check items 1) and
|
||||||
if (quote_len > 0 || indent_len == 0
|
* 3) above. */
|
||||||
#ifndef NANO_SMALL
|
while (current->prev && quotes_match(current->data,
|
||||||
|| ISSET(AUTOINDENT)
|
|
||||||
#endif
|
|
||||||
) {
|
|
||||||
/* We don't justify indented paragraphs unless AUTOINDENT is
|
|
||||||
* turned on. See 5) above. */
|
|
||||||
while (current->prev && quotes_match(current->data,
|
|
||||||
quote_len, IFREG(current->prev->data, &qreg))) {
|
quote_len, IFREG(current->prev->data, &qreg))) {
|
||||||
/* indentation length of the previous line */
|
size_t temp_id_len =
|
||||||
size_t temp_id_len =
|
|
||||||
indent_length(current->prev->data + quote_len);
|
indent_length(current->prev->data + quote_len);
|
||||||
|
/* The indentation length of the previous line. */
|
||||||
|
|
||||||
if (!indents_match(current->prev->data + quote_len,
|
/* Is this line the beginning of a paragraph, according to
|
||||||
temp_id_len, current->data + quote_len,
|
items 2), 5), or 4) above? If so, stop. */
|
||||||
indent_len) ||
|
if (current->prev->data[quote_len + temp_id_len] == '\0' ||
|
||||||
current->prev->data[quote_len + temp_id_len] == '\0')
|
(quote_len == 0 && indent_len > 0
|
||||||
break;
|
#ifndef NANO_SMALL
|
||||||
indent_len = temp_id_len;
|
&& !ISSET(AUTOINDENT)
|
||||||
current = current->prev;
|
#endif
|
||||||
current_y--;
|
) ||
|
||||||
}
|
!indents_match(current->prev->data + quote_len,
|
||||||
|
temp_id_len, current->data + quote_len, indent_len))
|
||||||
|
break;
|
||||||
|
indent_len = temp_id_len;
|
||||||
|
current = current->prev;
|
||||||
|
current_y--;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* This line is not part of a paragraph. Move down until we get
|
/* This line is not part of a paragraph. Move down until we get
|
||||||
@ -2646,15 +2645,13 @@ void signal_init(void)
|
|||||||
#endif /* _POSIX_VDISABLE */
|
#endif /* _POSIX_VDISABLE */
|
||||||
|
|
||||||
if (!ISSET(SUSPEND)) {
|
if (!ISSET(SUSPEND)) {
|
||||||
|
/* Insane! */
|
||||||
/* Insane! */
|
|
||||||
#ifdef _POSIX_VDISABLE
|
#ifdef _POSIX_VDISABLE
|
||||||
term.c_cc[VSUSP] = _POSIX_VDISABLE;
|
term.c_cc[VSUSP] = _POSIX_VDISABLE;
|
||||||
#else
|
#else
|
||||||
act.sa_handler = SIG_IGN;
|
act.sa_handler = SIG_IGN;
|
||||||
sigaction(SIGTSTP, &act, NULL);
|
sigaction(SIGTSTP, &act, NULL);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
/* If we don't do this, it seems other stuff interrupts the
|
/* If we don't do this, it seems other stuff interrupts the
|
||||||
suspend handler! Try using nano with mutt without this
|
suspend handler! Try using nano with mutt without this
|
||||||
@ -3091,12 +3088,6 @@ int main(int argc, char *argv[])
|
|||||||
#ifndef DISABLE_OPERATINGDIR
|
#ifndef DISABLE_OPERATINGDIR
|
||||||
case 'o':
|
case 'o':
|
||||||
operating_dir = mallocstrcpy(operating_dir, optarg);
|
operating_dir = mallocstrcpy(operating_dir, optarg);
|
||||||
|
|
||||||
/* make sure we're inside the operating directory */
|
|
||||||
if (check_operating_dir(".", 0) && chdir(operating_dir) == -1) {
|
|
||||||
free(operating_dir);
|
|
||||||
operating_dir = NULL;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
case 'p':
|
case 'p':
|
||||||
@ -3150,6 +3141,12 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef DISABLE_OPERATINGDIR
|
||||||
|
/* Set up the operating directory. This entails chdir()ing there, so
|
||||||
|
that file reads and writes will be based there. */
|
||||||
|
init_operating_dir();
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Clear the filename we'll be using */
|
/* Clear the filename we'll be using */
|
||||||
filename = charalloc(1);
|
filename = charalloc(1);
|
||||||
filename[0] = '\0';
|
filename[0] = '\0';
|
||||||
|
3
nano.h
3
nano.h
@ -137,7 +137,7 @@ typedef struct toggle {
|
|||||||
|
|
||||||
#ifdef ENABLE_NANORC
|
#ifdef ENABLE_NANORC
|
||||||
typedef struct rcoption {
|
typedef struct rcoption {
|
||||||
char *name;
|
const char *name;
|
||||||
int flag;
|
int flag;
|
||||||
} rcoption;
|
} rcoption;
|
||||||
#endif /* ENABLE_NANORC */
|
#endif /* ENABLE_NANORC */
|
||||||
@ -326,7 +326,6 @@ know what you're doing */
|
|||||||
#define NANO_TOFILES_KEY NANO_CONTROL_T
|
#define NANO_TOFILES_KEY NANO_CONTROL_T
|
||||||
#define NANO_APPEND_KEY NANO_ALT_A
|
#define NANO_APPEND_KEY NANO_ALT_A
|
||||||
#define NANO_PREPEND_KEY NANO_ALT_P
|
#define NANO_PREPEND_KEY NANO_ALT_P
|
||||||
#define NANO_LOAD_KEY NANO_ALT_F
|
|
||||||
#define NANO_OPENPREV_KEY NANO_ALT_LCARAT
|
#define NANO_OPENPREV_KEY NANO_ALT_LCARAT
|
||||||
#define NANO_OPENNEXT_KEY NANO_ALT_RCARAT
|
#define NANO_OPENNEXT_KEY NANO_ALT_RCARAT
|
||||||
#define NANO_OPENPREV_ALTKEY NANO_ALT_COMMA
|
#define NANO_OPENPREV_ALTKEY NANO_ALT_COMMA
|
||||||
|
22
proto.h
22
proto.h
@ -126,7 +126,6 @@ int do_uncut_text(void);
|
|||||||
void load_file(int update);
|
void load_file(int update);
|
||||||
void new_file(void);
|
void new_file(void);
|
||||||
filestruct *read_line(char *buf, filestruct *prev, int *line1ins, int len);
|
filestruct *read_line(char *buf, filestruct *prev, int *line1ins, int len);
|
||||||
int write_file(char *name, int tmpfile, int append, int nonamechange);
|
|
||||||
int read_file(FILE *f, const char *filename, int quiet);
|
int read_file(FILE *f, const char *filename, int quiet);
|
||||||
int open_file(const char *filename, int insert, int quiet);
|
int open_file(const char *filename, int insert, int quiet);
|
||||||
char *get_next_filename(const char *name);
|
char *get_next_filename(const char *name);
|
||||||
@ -147,20 +146,21 @@ int open_nextfile_void(void);
|
|||||||
int close_open_file(void);
|
int close_open_file(void);
|
||||||
#endif
|
#endif
|
||||||
#if !defined(DISABLE_SPELLER) || !defined(DISABLE_OPERATINGDIR)
|
#if !defined(DISABLE_SPELLER) || !defined(DISABLE_OPERATINGDIR)
|
||||||
char *get_full_path(char *origpath);
|
char *get_full_path(const char *origpath);
|
||||||
#endif
|
#endif
|
||||||
#ifndef DISABLE_SPELLER
|
#ifndef DISABLE_SPELLER
|
||||||
char *check_writable_directory(char *path);
|
char *check_writable_directory(const char *path);
|
||||||
char *safe_tempnam(const char *dirname, const char *filename_prefix);
|
char *safe_tempnam(const char *dirname, const char *filename_prefix);
|
||||||
#endif
|
#endif
|
||||||
#ifndef DISABLE_OPERATINGDIR
|
#ifndef DISABLE_OPERATINGDIR
|
||||||
int check_operating_dir(char *currpath, int allow_tabcomp);
|
void init_operating_dir(void);
|
||||||
|
int check_operating_dir(const char *currpath, int allow_tabcomp);
|
||||||
#endif
|
#endif
|
||||||
int write_file(char *name, int tmp, int append, int nonamechange);
|
int write_file(const char *name, int tmp, int append, int nonamechange);
|
||||||
int do_writeout(char *path, int exiting, int append);
|
int do_writeout(const char *path, int exiting, int append);
|
||||||
int do_writeout_void(void);
|
int do_writeout_void(void);
|
||||||
#ifndef DISABLE_TABCOMP
|
#ifndef DISABLE_TABCOMP
|
||||||
char *real_dir_from_tilde(char *buf);
|
char *real_dir_from_tilde(const char *buf);
|
||||||
#endif
|
#endif
|
||||||
int append_slash_if_dir(char *buf, int *lastwastab, int *place);
|
int append_slash_if_dir(char *buf, int *lastwastab, int *place);
|
||||||
char **username_tab_completion(char *buf, int *num_matches);
|
char **username_tab_completion(char *buf, int *num_matches);
|
||||||
@ -170,11 +170,11 @@ char *input_tab(char *buf, int place, int *lastwastab, int *newplace, int *list)
|
|||||||
struct stat filestat(const char *path);
|
struct stat filestat(const char *path);
|
||||||
int diralphasort(const void *va, const void *vb);
|
int diralphasort(const void *va, const void *vb);
|
||||||
void free_charptrarray(char **array, int len);
|
void free_charptrarray(char **array, int len);
|
||||||
char *tail(char *foo);
|
const char *tail(const char *foo);
|
||||||
void striponedir(char *foo);
|
void striponedir(char *foo);
|
||||||
char **browser_init(char *path, int *longest, int *numents);
|
char **browser_init(const char *path, int *longest, int *numents);
|
||||||
char *do_browser(char *inpath);
|
char *do_browser(const char *inpath);
|
||||||
char *do_browse_from(char *inpath);
|
char *do_browse_from(const char *inpath);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Public functions in global.c */
|
/* Public functions in global.c */
|
||||||
|
9
rcfile.c
9
rcfile.c
@ -19,6 +19,8 @@
|
|||||||
* *
|
* *
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -30,7 +32,6 @@
|
|||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include "config.h"
|
|
||||||
#include "proto.h"
|
#include "proto.h"
|
||||||
#include "nano.h"
|
#include "nano.h"
|
||||||
|
|
||||||
@ -43,7 +44,7 @@
|
|||||||
#define _(string) (string)
|
#define _(string) (string)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static rcoption rcopts[] = {
|
const static rcoption rcopts[] = {
|
||||||
#ifndef NANO_SMALL
|
#ifndef NANO_SMALL
|
||||||
{"autoindent", AUTOINDENT},
|
{"autoindent", AUTOINDENT},
|
||||||
{"backup", BACKUP_FILE},
|
{"backup", BACKUP_FILE},
|
||||||
@ -90,7 +91,7 @@ static rcoption rcopts[] = {
|
|||||||
{"tabsize", 0},
|
{"tabsize", 0},
|
||||||
{"tempfile", TEMP_OPT},
|
{"tempfile", TEMP_OPT},
|
||||||
{"view", VIEW_MODE},
|
{"view", VIEW_MODE},
|
||||||
{"", 0}
|
{NULL, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
static int errors = 0;
|
static int errors = 0;
|
||||||
@ -483,7 +484,7 @@ void parse_rcfile(FILE *rcstream)
|
|||||||
/* We don't care if ptr == NULL, as it should if using proper syntax */
|
/* We don't care if ptr == NULL, as it should if using proper syntax */
|
||||||
|
|
||||||
if (set != 0) {
|
if (set != 0) {
|
||||||
for (i = 0; rcopts[i].name != ""; i++) {
|
for (i = 0; rcopts[i].name != NULL; i++) {
|
||||||
if (!strcasecmp(option, rcopts[i].name)) {
|
if (!strcasecmp(option, rcopts[i].name)) {
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
fprintf(stderr, _("parse_rcfile: Parsing option %s\n"),
|
fprintf(stderr, _("parse_rcfile: Parsing option %s\n"),
|
||||||
|
2
search.c
2
search.c
@ -820,7 +820,7 @@ void do_gotopos(int line, int pos_x, int pos_y, int pos_placewewant)
|
|||||||
int do_find_bracket(void)
|
int do_find_bracket(void)
|
||||||
{
|
{
|
||||||
char ch_under_cursor, wanted_ch;
|
char ch_under_cursor, wanted_ch;
|
||||||
char *pos, *brackets = "([{<>}])";
|
const char *pos, *brackets = "([{<>}])";
|
||||||
char regexp_pat[] = "[ ]";
|
char regexp_pat[] = "[ ]";
|
||||||
int offset, have_past_editbuff = 0, flagsave, current_x_save, count = 1;
|
int offset, have_past_editbuff = 0, flagsave, current_x_save, count = 1;
|
||||||
filestruct *current_save;
|
filestruct *current_save;
|
||||||
|
11
utils.c
11
utils.c
@ -19,13 +19,14 @@
|
|||||||
* *
|
* *
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include "config.h"
|
|
||||||
#include "proto.h"
|
#include "proto.h"
|
||||||
#include "nano.h"
|
#include "nano.h"
|
||||||
|
|
||||||
@ -221,12 +222,10 @@ void *nmalloc(size_t howmuch)
|
|||||||
the transition cost of moving to the appropriate function. */
|
the transition cost of moving to the appropriate function. */
|
||||||
char *charalloc(size_t howmuch)
|
char *charalloc(size_t howmuch)
|
||||||
{
|
{
|
||||||
char *r;
|
char *r = (char *)malloc(howmuch * sizeof(char));
|
||||||
|
|
||||||
/* Panic save? */
|
if (r == NULL)
|
||||||
|
die(_("nano: malloc: out of memory!"));
|
||||||
if (!(r = (char *)calloc(howmuch, sizeof (char))))
|
|
||||||
die(_("nano: calloc: out of memory!"));
|
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
9
winio.c
9
winio.c
@ -19,13 +19,14 @@
|
|||||||
* *
|
* *
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include "config.h"
|
|
||||||
#include "proto.h"
|
#include "proto.h"
|
||||||
#include "nano.h"
|
#include "nano.h"
|
||||||
|
|
||||||
@ -1804,10 +1805,10 @@ void do_credits(void)
|
|||||||
{
|
{
|
||||||
int i, j = 0, k, place = 0, start_x;
|
int i, j = 0, k, place = 0, start_x;
|
||||||
|
|
||||||
char *what;
|
const char *what;
|
||||||
char *xlcredits[XLCREDIT_LEN];
|
const char *xlcredits[XLCREDIT_LEN];
|
||||||
|
|
||||||
char *credits[CREDIT_LEN] = {
|
const char *credits[CREDIT_LEN] = {
|
||||||
"0", /* "The nano text editor" */
|
"0", /* "The nano text editor" */
|
||||||
"1", /* "version" */
|
"1", /* "version" */
|
||||||
VERSION,
|
VERSION,
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user