int view_file_at_line (const char *filename, int plain_view, int internal, int start_line) { static const char *viewer = NULL; int move_dir = 0; if (plain_view) { int changed_hex_mode = 0; int changed_nroff_flag = 0; int changed_magic_flag = 0; altered_hex_mode = 0; altered_nroff_flag = 0; altered_magic_flag = 0; if (default_hex_mode) changed_hex_mode = 1; if (default_nroff_flag) changed_nroff_flag = 1; if (default_magic_flag) changed_magic_flag = 1; default_hex_mode = 0; default_nroff_flag = 0; default_magic_flag = 0; mc_internal_viewer (NULL, filename, &move_dir, start_line); if (changed_hex_mode && !altered_hex_mode) default_hex_mode = 1; if (changed_nroff_flag && !altered_nroff_flag) default_nroff_flag = 1; if (changed_magic_flag && !altered_magic_flag) default_magic_flag = 1; repaint_screen (); return move_dir; } if (internal) { char view_entry[BUF_TINY]; if (start_line != 0) g_snprintf (view_entry, sizeof (view_entry), "View:%d", start_line); else strcpy (view_entry, "View"); if (regex_command (filename, view_entry, &move_dir) == 0) { mc_internal_viewer (NULL, filename, &move_dir, start_line); repaint_screen (); } } else { if (!viewer) { viewer = getenv ("VIEWER"); if (!viewer) viewer = getenv ("PAGER"); if (!viewer) viewer = "view"; } execute_with_vfs_arg (viewer, filename); } return move_dir; }
void edit_cmd_force_internal (void) { vfs_path_t *fname; fname = vfs_path_from_str (selection (current_panel)->fname); if (regex_command (fname, "Edit") == 0) edit_file_at_line (fname, TRUE, 1); vfs_path_free (fname); }
void edit_cmd (void) { vfs_path_t *fname; fname = vfs_path_from_str (selection (current_panel)->fname); if (regex_command (fname, "Edit") == 0) do_edit (fname); vfs_path_free (fname); }
gboolean view_file_at_line (const vfs_path_t * filename_vpath, gboolean plain_view, gboolean internal, long start_line) { gboolean ret = TRUE; if (plain_view) { int changed_hex_mode = 0; int changed_nroff_flag = 0; int changed_magic_flag = 0; mcview_altered_hex_mode = 0; mcview_altered_nroff_flag = 0; mcview_altered_magic_flag = 0; if (mcview_default_hex_mode) changed_hex_mode = 1; if (mcview_default_nroff_flag) changed_nroff_flag = 1; if (mcview_default_magic_flag) changed_magic_flag = 1; mcview_default_hex_mode = 0; mcview_default_nroff_flag = 0; mcview_default_magic_flag = 0; ret = mcview_viewer (NULL, filename_vpath, start_line); if (changed_hex_mode && !mcview_altered_hex_mode) mcview_default_hex_mode = 1; if (changed_nroff_flag && !mcview_altered_nroff_flag) mcview_default_nroff_flag = 1; if (changed_magic_flag && !mcview_altered_magic_flag) mcview_default_magic_flag = 1; dialog_switch_process_pending (); } else if (internal) { char view_entry[BUF_TINY]; if (start_line > 0) g_snprintf (view_entry, sizeof (view_entry), "View:%ld", start_line); else strcpy (view_entry, "View"); ret = (regex_command (filename_vpath, view_entry) == 0); if (ret) { ret = mcview_viewer (NULL, filename_vpath, start_line); dialog_switch_process_pending (); } } else { static const char *viewer = NULL; if (viewer == NULL) { viewer = getenv ("VIEWER"); if (viewer == NULL) viewer = getenv ("PAGER"); if (viewer == NULL) viewer = "view"; } execute_external_editor_or_viewer (viewer, filename_vpath, start_line); } return ret; }
void edit_cmd_force_internal (void) { if (regex_command (selection (current_panel)->fname, "Edit", NULL) == 0) do_edit_at_line (selection (current_panel)->fname, TRUE, 0); }
void edit_cmd (void) { if (regex_command (selection (current_panel)->fname, "Edit", NULL) == 0) do_edit (selection (current_panel)->fname); }
int view_file_at_line (const char *filename, int plain_view, int internal, int start_line) { static const char *viewer = NULL; int move_dir = 0; if (plain_view) { int changed_hex_mode = 0; int changed_nroff_flag = 0; int changed_magic_flag = 0; mcview_altered_hex_mode = 0; mcview_altered_nroff_flag = 0; mcview_altered_magic_flag = 0; if (mcview_default_hex_mode) changed_hex_mode = 1; if (mcview_default_nroff_flag) changed_nroff_flag = 1; if (mcview_default_magic_flag) changed_magic_flag = 1; mcview_default_hex_mode = 0; mcview_default_nroff_flag = 0; mcview_default_magic_flag = 0; switch (mcview_viewer (NULL, filename, start_line)) { case MCVIEW_WANT_NEXT: move_dir = 1; break; case MCVIEW_WANT_PREV: move_dir = -1; break; default: move_dir = 0; } if (changed_hex_mode && !mcview_altered_hex_mode) mcview_default_hex_mode = 1; if (changed_nroff_flag && !mcview_altered_nroff_flag) mcview_default_nroff_flag = 1; if (changed_magic_flag && !mcview_altered_magic_flag) mcview_default_magic_flag = 1; dialog_switch_process_pending (); } else if (internal) { char view_entry[BUF_TINY]; if (start_line != 0) g_snprintf (view_entry, sizeof (view_entry), "View:%d", start_line); else strcpy (view_entry, "View"); if (regex_command (filename, view_entry, &move_dir) == 0) { switch (mcview_viewer (NULL, filename, start_line)) { case MCVIEW_WANT_NEXT: move_dir = 1; break; case MCVIEW_WANT_PREV: move_dir = -1; break; default: move_dir = 0; } dialog_switch_process_pending (); } } else { if (viewer == NULL) { viewer = getenv ("VIEWER"); if (viewer == NULL) viewer = getenv ("PAGER"); if (viewer == NULL) viewer = "view"; } execute_with_vfs_arg (viewer, filename); } return move_dir; }