mc startup with single specified path

Egmont Koblinger egmont at gmail.com
Fri Oct 18 13:48:42 UTC 2013


Please start with looking around in the bugtracker or compiling the
development version next time :)  The issue is already fixed for the
forthcoming 4.8.11.


egmont

On Fri, Oct 18, 2013 at 3:44 PM, Mike Smithson <mdooligan at gmail.com> wrote:
> Hello.
>
> I'm having some puzzlement over the initial startup behavior of mc-4.8.10
> when paths are specified on the command line.
>
> To quote the manual:
>
> [quote]
>        If  both  paths  are specified, the first path name is the directory
> to
>        show in the left panel; the second path name is  the  directory  to
> be
>        shown in the right panel.
>
>        If one path is specified, the path name is the directory to show in
> the
>        active panel; current directory is shown in the passive panel.
>
>        If no paths are specified, current directory is  shown  in  the
> active
>        panel;  value  of  "other_dir"  from  panels.ini is the directory to
> be
>        shown in the passive panel.
> [/quote]
>
> Paragraph #1:
> This seems correct and intuitive.
>
> Paragraph #2:
> What I *expect* to happen when I specify only one path on the command line,
> is for that directory to appear in the left panel with the focus on it. As
> it works right now, it appears to be random which panel it shows up in, and
> which panel has focus. I know that it depends on the last time I hit "Save
> Setup" and the setting of current_is_left in panels.ini, but it always seems
> to do the wrong thing. As a matter of fact, the behavior I'm witnessing, is
> that that specified directory appears in the *inactive* panel, and the CWD
> appears in the *active* panel. I think that is counter-intuitive, a bit
> annoying, and exactly *not* what the manual says.
>
> Paragraph #3:
> This also seems correct and intuitive. Resort to default behavior if nothing
> is specified.
>
> ---
>
> I believe the issue is in midnight.c, static void create_panels(), around
> lines 619-624 and 646-651, both bits are identical, and they shouldn't be:
> [code]
>         else                    /* mc_run_param0 != NULL && mc_run_param1 ==
> NULL */
>         {
>             /* one argument */
>             current_dir = NULL; /* assume current dir */
>             other_dir = (char *) mc_run_param0;
>         }
> [/code]
> Is it just me, or does this seem *exactly* backwards?
>
> I've changed these bits like this (the 1st is when the left panel is
> active):
>
> [code]
> --- midnight.c~ 2013-08-02 11:02:40.000000000 -0700
> +++ midnight.c  2013-10-16 13:59:48.541659334 -0700
> @@ -619,8 +619,8 @@ create_panels (void)
>          else                    /* mc_run_param0 != NULL && mc_run_param1
> == NULL */
>          {
>              /* one argument */
> -            current_dir = NULL; /* assume current dir */
> -            other_dir = (char *) mc_run_param0; /* Wrong. */
> +            current_dir = (char *) mc_run_param0; /* Left panel gets the
> path */
> +            other_dir = NULL; /* assume other dir */
>          }
>      }
>      else
> @@ -648,6 +648,7 @@ create_panels (void)
>              /* one argument */
>              current_dir = NULL; /* assume current dir */ ;
>              other_dir = (char *) mc_run_param0; /* Left panel gets the path
> */
> +            boot_current_is_left = TRUE; /* make left panel active (user
> called it, there must be a reason.) */
>          }
>      }
> [/code]
>
> and it now behaves the way I would expect.
>
> After doing a bit more research, it looks as if create_panels() was freshly
> re-written for 4.8.10. In 4.8.9 I see this bit:
> [code]
>         if (mc_run_param0 != NULL)
>         {
>             current_dir = NULL;
>             other_dir = (char *) mc_run_param0;
>         }
>         else
>         {
>             current_dir = NULL;
>             other_dir = mc_run_param1;
>         }
> [/code]
> Hmmm... Is it even possible to have mc_run_param1 *without* mc_run_param0?
> Also, what if both are set? No wonder it got re-written.
>
> --
> Peace and Cheer
> _______________________________________________
> mc-devel mailing list
> https://mail.gnome.org/mailman/listinfo/mc-devel



More information about the mc-devel mailing list