commit 1d77823f79591765af41d661b8158626d24e098e
parent 874969be8136472077268f4ff070dfda3fe076c4
Author: Chris Allegretta <chrisa@asty.org>
Date: Sat, 30 Aug 2008 21:00:00 +0000
* global.c, help.c, browser.c, files.c, proto.h: Fix several compipation and programmatic
issues with --disable-help, especially that do-writeout was treating ^G the same as ^M.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4317 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
Diffstat:
7 files changed, 73 insertions(+), 57 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -2,13 +2,15 @@
* configure.ac, color.c, rcfile.c, utils.c: 1st attempt at supporting systems which don't support
GNU-style word boundaries. New function fixbounds() to translate from GNU-style to
BSD-style, autoconf option GNU_WORDBOUNDS.
+ * nano-regress: New perl script to check for some of the more obvious issues with compilation
+ issues with certain configure options.
+ * global.c, help.c, browser.c, files.c, proto.h: Fix several compipation and programmatic
+ issues with --disable-help, especially that do-writeout was treating ^G the same as ^M.
2008-08-28 Chris Allegretta <chrisa@asty.org>
* configure.ac, rcfile.c: Add support for an alternate rcfilename at configure time. Maybe this
should become a command line option some day, but I don't see the need currently. Start of
fix for Savannah bug #24128: Add nanorc support to win32 platform.
- * nano-regress: New perl script to check for some of the more obvious issues with compilation
- issues with certain configure options.
2008-08-21 Chris Allegretta <chrisa@asty.org>
* text.c: Change error messages where we may possibly get into a bad state and urge
diff --git a/src/browser.c b/src/browser.c
@@ -173,8 +173,8 @@ char *do_browser(char *path, DIR *dir)
total_redraw();
} else if (f->scfunc == do_help_void) {
#ifndef DISABLE_HELP
- do_browser_help();
- curs_set(0);
+ do_browser_help();
+ curs_set(0);
#else
nano_disabled_msg();
#endif
@@ -558,7 +558,9 @@ void parse_browser_input(int *kbinput, bool *meta_key, bool *func_key)
*kbinput = sc_seq_or(do_page_up, 0);
break;
case '?':
+#ifndef DISABLE_HELP
*kbinput = sc_seq_or(do_help_void, 0);
+#endif
break;
/* Cancel equivalent to Exit here. */
case 'E':
diff --git a/src/files.c b/src/files.c
@@ -1948,6 +1948,8 @@ bool do_writeout(bool exiting)
} else if (s && s->scfunc == (void *) append_msg) {
append = (append == APPEND) ? OVERWRITE : APPEND;
continue;
+ } else if (s && s->scfunc == do_help_void) {
+ continue;
}
#ifdef DEBUG
diff --git a/src/global.c b/src/global.c
@@ -237,7 +237,7 @@ void add_to_funcs(void *func, int menus, const char *desc, const char *help,
f->menus = menus;
f->desc = desc;
f->viewok = viewok;
-#ifndef NANO_TINY
+#ifndef DISABLE_HELP
f->help = help;
f->blank_after = blank_after;
#endif
@@ -483,6 +483,9 @@ void shortcut_init(bool unjustify)
const char *insert_file_msg = N_("Insert File");
const char *go_to_line_msg = N_("Go To Line");
+#ifndef DISABLE_JUSTIFY
+ const char *nano_justify_msg = N_("Justify the current paragraph");
+#endif
#ifndef DISABLE_HELP
/* TRANSLATORS: The next long series of strings are shortcut descriptions;
* they are best kept shorter than 56 characters, but may be longer. */
@@ -497,9 +500,6 @@ void shortcut_init(bool unjustify)
;
const char *nano_writeout_msg =
N_("Write the current file to disk");
-#ifndef DISABLE_JUSTIFY
- const char *nano_justify_msg = N_("Justify the current paragraph");
-#endif
const char *nano_insert_msg =
N_("Insert another file into the current one");
const char *nano_whereis_msg =
@@ -642,10 +642,8 @@ void shortcut_init(bool unjustify)
free(f);
}
-#ifndef DISABLE_HELP
- add_to_funcs(do_help_void, MALL, get_help_msg, nano_help_msg,
+ add_to_funcs(do_help_void, MALL, get_help_msg, IFSCHELP(nano_help_msg),
FALSE, VIEW);
-#endif
add_to_funcs((void *) cancel_msg,
(MWHEREIS|MREPLACE|MREPLACE2|MGOTOLINE|MWRITEFILE|MINSERTFILE|MEXTCMD|MSPELL|MWHEREISFILE|MGOTODIR|MYESNO),
@@ -723,7 +721,7 @@ void shortcut_init(bool unjustify)
#ifndef DISABLE_SPELLER
if (!ISSET(RESTRICTED))
/* TRANSLATORS: Try to keep this at most 10 characters. */
- add_to_funcs(do_spell, MMAIN, N_("To Spell"), nano_spell_msg,
+ add_to_funcs(do_spell, MMAIN, N_("To Spell"), IFSCHELP(nano_spell_msg),
TRUE, NOVIEW);
#endif
@@ -758,25 +756,25 @@ void shortcut_init(bool unjustify)
#ifndef NANO_TINY
add_to_funcs(do_mark, MMAIN, N_("Mark Text"),
- nano_mark_msg, FALSE, VIEW);
+ IFSCHELP(nano_mark_msg), FALSE, VIEW);
add_to_funcs(do_research, (MMAIN|MBROWSER), whereis_next_msg,
- nano_whereis_next_msg, TRUE, VIEW);
+ IFSCHELP(nano_whereis_next_msg), TRUE, VIEW);
add_to_funcs(do_copy_text, MMAIN, N_("Copy Text"),
- nano_copy_msg, FALSE, NOVIEW);
+ IFSCHELP(nano_copy_msg), FALSE, NOVIEW);
add_to_funcs(do_indent_void, MMAIN, N_("Indent Text"),
- nano_indent_msg, FALSE, NOVIEW);
+ IFSCHELP(nano_indent_msg), FALSE, NOVIEW);
add_to_funcs(do_unindent, MMAIN, N_("Unindent Text"),
- nano_unindent_msg, FALSE, NOVIEW);
+ IFSCHELP(nano_unindent_msg), FALSE, NOVIEW);
add_to_funcs(do_undo, MMAIN, N_("Undo"),
- nano_undo_msg, FALSE, NOVIEW);
+ IFSCHELP(nano_undo_msg), FALSE, NOVIEW);
add_to_funcs(do_redo, MMAIN, N_("Redo"),
- nano_redo_msg, TRUE, NOVIEW);
+ IFSCHELP(nano_redo_msg), TRUE, NOVIEW);
#endif
@@ -796,10 +794,10 @@ void shortcut_init(bool unjustify)
#ifndef NANO_TINY
add_to_funcs(do_next_word_void, MMAIN, N_("Next Word"),
- nano_nextword_msg, FALSE, VIEW);
+ IFSCHELP(nano_nextword_msg), FALSE, VIEW);
add_to_funcs(do_prev_word_void, MMAIN, N_("Prev Word"),
- nano_prevword_msg, FALSE, VIEW);
+ IFSCHELP(nano_prevword_msg), FALSE, VIEW);
#endif
add_to_funcs(do_up_void, (MMAIN|MHELP|MBROWSER), N_("Prev Line"),
@@ -816,21 +814,21 @@ void shortcut_init(bool unjustify)
#ifndef DISABLE_JUSTIFY
add_to_funcs(do_para_begin_void, (MMAIN|MWHEREIS), beg_of_par_msg,
- nano_parabegin_msg, FALSE, VIEW);
+ IFSCHELP(nano_parabegin_msg), FALSE, VIEW);
add_to_funcs(do_para_end_void, (MMAIN|MWHEREIS), end_of_par_msg,
- nano_paraend_msg, FALSE, VIEW);
+ IFSCHELP(nano_paraend_msg), FALSE, VIEW);
#endif
#ifndef NANO_TINY
add_to_funcs(do_find_bracket, MMAIN, _("Find Other Bracket"),
- nano_bracket_msg, FALSE, VIEW);
+ IFSCHELP(nano_bracket_msg), FALSE, VIEW);
add_to_funcs(do_scroll_up, MMAIN, N_("Scroll Up"),
- nano_scrollup_msg, FALSE, VIEW);
+ IFSCHELP(nano_scrollup_msg), FALSE, VIEW);
add_to_funcs(do_scroll_down, MMAIN, N_("Scroll Down"),
- nano_scrolldown_msg, FALSE, VIEW);
+ IFSCHELP(nano_scrolldown_msg), FALSE, VIEW);
#endif
#ifdef ENABLE_MULTIBUFFER
@@ -872,7 +870,7 @@ void shortcut_init(bool unjustify)
#ifndef NANO_TINY
add_to_funcs(do_cut_till_end, MMAIN, N_("CutTillEnd"),
- nano_cut_till_end_msg, TRUE, NOVIEW);
+ IFSCHELP(nano_cut_till_end_msg), TRUE, NOVIEW);
#endif
add_to_funcs(xon_complaint, MMAIN, "", "", FALSE, VIEW);
@@ -880,12 +878,12 @@ void shortcut_init(bool unjustify)
#ifndef DISABLE_JUSTIFY
add_to_funcs(do_full_justify, (MMAIN|MWHEREIS), fulljstify_msg,
- nano_fulljustify_msg, FALSE, NOVIEW);
+ IFSCHELP(nano_fulljustify_msg), FALSE, NOVIEW);
#endif
#ifndef NANO_TINY
add_to_funcs(do_wordlinechar_count, MMAIN, N_("Word Count"),
- nano_wordcount_msg, FALSE, VIEW);
+ IFSCHELP(nano_wordcount_msg), FALSE, VIEW);
#endif
add_to_funcs(total_refresh, (MMAIN|MHELP), refresh_msg,
@@ -897,11 +895,11 @@ void shortcut_init(bool unjustify)
#ifndef NANO_TINY
add_to_funcs((void *) case_sens_msg,
(MWHEREIS|MREPLACE|MWHEREISFILE),
- case_sens_msg, nano_case_msg, FALSE, VIEW);
+ case_sens_msg, IFSCHELP(nano_case_msg), FALSE, VIEW);
add_to_funcs((void *) backwards_msg,
(MWHEREIS|MREPLACE|MWHEREISFILE),
- backwards_msg, nano_reverse_msg, FALSE, VIEW);
+ backwards_msg, IFSCHELP(nano_reverse_msg), FALSE, VIEW);
#endif
#ifdef HAVE_REGEX_H
@@ -913,11 +911,11 @@ void shortcut_init(bool unjustify)
#ifndef NANO_TINY
add_to_funcs((void *) prev_history_msg,
(MWHEREIS|MREPLACE|MREPLACE2|MWHEREISFILE),
- prev_history_msg, nano_prev_history_msg, FALSE, VIEW);
+ prev_history_msg, IFSCHELP(nano_prev_history_msg), FALSE, VIEW);
add_to_funcs((void *) next_history_msg,
(MWHEREIS|MREPLACE|MREPLACE2|MWHEREISFILE),
- next_history_msg, nano_next_history_msg, FALSE, VIEW);
+ next_history_msg, IFSCHELP(nano_next_history_msg), FALSE, VIEW);
#endif
add_to_funcs((void *) no_replace_msg, MREPLACE,
@@ -930,7 +928,7 @@ void shortcut_init(bool unjustify)
if (!ISSET(RESTRICTED))
add_to_funcs((void *) to_files_msg,
(MGOTOLINE|MINSERTFILE),
- to_files_msg, nano_tofiles_msg, FALSE, VIEW);
+ to_files_msg, IFSCHELP(nano_tofiles_msg), FALSE, VIEW);
#endif
#ifndef NANO_TINY
@@ -942,23 +940,23 @@ void shortcut_init(bool unjustify)
* backups are disabled. */
if (!ISSET(RESTRICTED))
add_to_funcs((void *) dos_format_msg, MWRITEFILE,
- dos_format_msg, nano_dos_msg, FALSE, NOVIEW);
+ dos_format_msg, IFSCHELP(nano_dos_msg), FALSE, NOVIEW);
if (!ISSET(RESTRICTED))
add_to_funcs((void *) mac_format_msg, MWRITEFILE,
- mac_format_msg, nano_mac_msg, FALSE, NOVIEW);
+ mac_format_msg, IFSCHELP(nano_mac_msg), FALSE, NOVIEW);
if (!ISSET(RESTRICTED))
add_to_funcs((void *) append_msg, MWRITEFILE,
- append_msg, nano_append_msg, FALSE, NOVIEW);
+ append_msg, IFSCHELP(nano_append_msg), FALSE, NOVIEW);
if (!ISSET(RESTRICTED))
add_to_funcs((void *) prepend_msg, MWRITEFILE,
- prepend_msg, nano_prepend_msg, FALSE, NOVIEW);
+ prepend_msg, IFSCHELP(nano_prepend_msg), FALSE, NOVIEW);
if (!ISSET(RESTRICTED))
add_to_funcs((void *) backup_file_msg, MWRITEFILE,
- backup_file_msg, nano_backup_msg, FALSE, NOVIEW);
+ backup_file_msg, IFSCHELP(nano_backup_msg), FALSE, NOVIEW);
#endif
#ifndef NANO_TINY
@@ -966,14 +964,14 @@ void shortcut_init(bool unjustify)
* It's useless since inserting files is disabled. */
if (!ISSET(RESTRICTED))
add_to_funcs((void *) ext_cmd_msg, MINSERTFILE,
- ext_cmd_msg, nano_execute_msg, FALSE, NOVIEW);
+ ext_cmd_msg, IFSCHELP(nano_execute_msg), FALSE, NOVIEW);
#ifdef ENABLE_MULTIBUFFER
/* If we're using restricted mode, the multibuffer toggle is
* disabled. It's useless since inserting files is disabled. */
if (!ISSET(RESTRICTED))
add_to_funcs((void *) new_buffer_msg, MINSERTFILE,
- new_buffer_msg, nano_multibuffer_msg, FALSE, NOVIEW);
+ new_buffer_msg, IFSCHELP(nano_multibuffer_msg), FALSE, NOVIEW);
#endif
add_to_funcs((void *) insert_file_msg, MEXTCMD,
@@ -981,7 +979,7 @@ void shortcut_init(bool unjustify)
#ifdef ENABLE_MULTIBUFFER
add_to_funcs((void *) new_buffer_msg, MEXTCMD,
- new_buffer_msg, nano_multibuffer_msg, FALSE, NOVIEW);
+ new_buffer_msg, IFSCHELP(nano_multibuffer_msg), FALSE, NOVIEW);
#endif
#endif
@@ -994,22 +992,20 @@ void shortcut_init(bool unjustify)
add_to_funcs((void *) first_file_msg,
(MBROWSER|MWHEREISFILE),
- first_file_msg, nano_firstfile_msg, FALSE, VIEW);
+ first_file_msg, IFSCHELP(nano_firstfile_msg), FALSE, VIEW);
add_to_funcs((void *) last_file_msg,
(MBROWSER|MWHEREISFILE),
- last_file_msg, nano_lastfile_msg, FALSE, VIEW);
+ last_file_msg, IFSCHELP(nano_lastfile_msg), FALSE, VIEW);
add_to_funcs((void *) goto_dir_msg, MBROWSER,
- goto_dir_msg, nano_gotodir_msg, FALSE, VIEW);
+ goto_dir_msg, IFSCHELP(nano_gotodir_msg), FALSE, VIEW);
#endif
currmenu = MMAIN;
-#ifndef NANO_TINY
add_to_sclist(MALL, "^G", do_help_void, 0, TRUE);
add_to_sclist(MALL, "F1", do_help_void, 0, TRUE);
-#endif
add_to_sclist(MMAIN|MHELP|MBROWSER, "^X", do_exit, 0, TRUE);
add_to_sclist(MMAIN|MHELP|MBROWSER, "F2", do_exit, 0, TRUE);
add_to_sclist(MMAIN, "^_", do_gotolinecolumn_void, 0, TRUE);
diff --git a/src/help.c b/src/help.c
@@ -201,12 +201,6 @@ void do_help(void (*refresh_func)(void))
help_text = NULL;
}
-/* Start the help browser for the edit window. */
-void do_help_void(void)
-{
- do_help(&edit_refresh);
-}
-
#ifndef DISABLE_BROWSER
/* Start the help browser for the file browser. */
void do_browser_help(void)
@@ -552,3 +546,18 @@ size_t help_line_len(const char *ptr)
}
#endif /* !DISABLE_HELP */
+
+/* Start the help browser for the edit window. */
+void do_help_void(void)
+{
+
+#ifndef DISABLE_HELP
+ /* Start the help browser for the edit window. */
+ do_help(&edit_refresh);
+#else
+ if (currmenu == MMAIN)
+ nano_disabled_msg();
+ else
+ beep();
+#endif
+}
diff --git a/src/proto.h b/src/proto.h
@@ -343,12 +343,12 @@ void thanks_for_all_the_fish(void);
#endif
/* All functions in help.c. */
-#ifndef DISABLE_HELP
-void do_help(void (*refresh_func)(void));
-void do_help_void(void);
#ifndef DISABLE_BROWSER
void do_browser_help(void);
#endif
+void do_help_void(void);
+#ifndef DISABLE_HELP
+void do_help(void (*refresh_func)(void));
void help_init(void);
void parse_help_input(int *kbinput, bool *meta_key, bool *func_key);
size_t help_line_len(const char *ptr);
diff --git a/src/winio.c b/src/winio.c
@@ -1697,7 +1697,12 @@ int get_mouseinput(int *mouse_x, int *mouse_y, bool allow_shortcuts)
for (; j > 0; j--) {
if (f->next != NULL)
f = f->next;
- while (f->next != NULL && ((f->menus & currmenu) == 0 || strlen(f->help) == 0))
+
+ while (f->next != NULL && ((f->menus & currmenu) == 0
+#ifndef DISABLE_HELP
+ || strlen(f->help) == 0
+#endif
+ ))
f = f->next;
}