Ticket #4514: open_marked_in_editor-2.diff

File open_marked_in_editor-2.diff, 2.2 KB (added by jonn, 5 months ago)
  • src/args.c

    diff --git a/src/args.c b/src/args.c
    index a66777e2e..a1ace3f7a 100644
    a b mcedit_arg_vpath_new (vfs_path_t * file_vpath, long line_number) 
    500500 * @return mcedit_arg_t object 
    501501 */ 
    502502 
    503 static mcedit_arg_t * 
     503mcedit_arg_t * 
    504504mcedit_arg_new (const char *file_name, long line_number) 
    505505{ 
    506506    return mcedit_arg_vpath_new (vfs_path_from_str (file_name), line_number); 
  • src/args.h

    diff --git a/src/args.h b/src/args.h
    index 19099ddf3..d8beb0999 100644
    a b gboolean mc_args_show_info (void); 
    4949gboolean mc_setup_by_args (int argc, char **argv, GError ** mcerror); 
    5050 
    5151void mcedit_arg_free (mcedit_arg_t * arg); 
    52  
     52mcedit_arg_t * mcedit_arg_new (const char *file_name, long line_number); 
    5353/*** inline functions ****************************************************************************/ 
    5454 
    5555#endif /* MC__ARGS_H */ 
  • src/filemanager/cmd.c

    diff --git a/src/filemanager/cmd.c b/src/filemanager/cmd.c
    index 76f21acdb..5cbc84c8c 100644
    a b  
    6969#include "src/history.h" 
    7070#include "src/usermenu.h"       /* MC_GLOBAL_MENU */ 
    7171#include "src/util.h"           /* check_for_default() */ 
     72#include "src/args.h"           /* mcedit_arg_t */ 
    7273 
    7374#include "src/viewer/mcviewer.h" 
    7475 
    void 
    699700edit_cmd (const WPanel * panel) 
    700701{ 
    701702    vfs_path_t *fname; 
     703    if (panel->marked != 0) 
     704    { 
     705        int i; 
     706        GList *files = NULL; 
     707        for (i = 0; i < panel->dir.len; i++) 
     708            if (panel->dir.list[i].f.marked != 0) 
     709                files = g_list_prepend (files, mcedit_arg_new(panel->dir.list[i].fname->str, 0)); 
    702710 
    703     fname = vfs_path_from_str (panel_current_entry (panel)->fname->str); 
    704     if (regex_command (fname, "Edit") == 0) 
    705         do_edit (fname); 
    706     vfs_path_free (fname, TRUE); 
     711        edit_files (files); 
     712        g_list_free_full (files, mcedit_arg_free); 
     713    } 
     714    else 
     715    { 
     716        fname = vfs_path_from_str (panel_current_entry (panel)->fname->str); 
     717        if (regex_command (fname, "Edit") == 0) 
     718            do_edit (fname); 
     719        vfs_path_free (fname, TRUE); 
     720    } 
    707721} 
    708722 
    709723/* --------------------------------------------------------------------------------------------- */