Il giorno Fri, 12 Feb 2010 16:20:33 +0100
alessio <le.gau...@fastwebnet.it> ha scritto:

> un saluto a tutta la lista :)
> 
> ho un piccolo problema che vorrei esporvi che riguarda la funzione
> move/rename di midnight commander.
> 
> ho notato che nella maschera di questo comando (F6), di default, non
> viene mantenuto il nome del file di origine, questo naturalmente non
> crea problemi qualora si voglia spostare il file tuttavia quando è
> necessario solo rinominarlo diventa un po' macchinoso essere costretti
> a inserire daccapo il nome + estensione, magari dovendo modificare un
> solo carattere (penso principalmente a caratteri accentati che UTF-8
non > gradisce o al semplice inserimento di un underscore)
> 
> tuttavia ho notato che la maschera della funzione crea directory (F7),
> mkdir mantiene, stranamente mi vien da aggiungere, il nome del
> file/dir in quel momento evidenziata...mi sono documentato al riguardo
> e scaricati i sorgenti di mc 4.7.0.1 attualmente presente nei
> repository testing, ho scorto nel file cmd.c alcune linee che credo
> siano interessanti:
> 
> -------------
> /* Automatically fills name with current selected item name on mkdir
*/ > int auto_fill_mkdir_name = 1;
> 
> -------------
> void
> mkdir_cmd (void)
> {
>     char *dir, *absdir;
>     const char *name = "";
> 
>     /* If 'on' then automatically fills name with current selected
item >     name */ if (auto_fill_mkdir_name)
>         name = selection (current_panel)->fname;
> 
>     dir =
>       input_expand_dialog (_("Create a new Directory"),
>                            _(" Enter directory name:"),
>                            MC_HISTORY_FM_MKDIR,
>                            name);
> -------------
> 
> insomma avrete notato come il nome venga mantenuto qualora l'opzione
> auto_fill_mkdir_name sia attiva, mentre invece la funzione di rename
> non prevede questa possibilità:
> 
> /* Invoked by F6.  Move/rename, default to the other panel, ignore
marks.  */ > void rename_cmd (void)
> {
>     save_cwds_stat ();
>     if (panel_operate (current_panel, OP_MOVE, 0)){
>       update_panels (UP_OPTIMIZE, UP_KEEPSEL);
>       repaint_screen ();
>     }
> }
> 
> ------------
> 
> sfortunatamente non ho le competenze per mettere mano, in prima
> persona, ai sorgenti di un software complesso quanto mc, però ho
> la sfacciataggine di chiedervi innanzitutto se ho scritto cretinate,
> nel caso così non fosse un aiuto per cercare di scrivere una patch che
> risolva il "problema".
> 
> scusate per le lungaggini e grazie anticipatamente per ogni eventuale
> suggerimento :)
> 
> alessio.
> 
> 

mi rispondo da solo nel caso qualcuno incappi nella mia stessa
situazione, dunque in pratica esiste un modo per rinominare un file
mantenendo nella maschera il suo nome senza necessariamente doverlo
reinserire in toto.

questa funzione viene invocata mediante il tasto F16 realizzabile con
la combinazione shift + F6, sempre da cmd.c riporto quanto segue

/* Invoked by F16.  Move/rename, default to the same panel.  */
void rename_cmd_local (void)
{
    save_cwds_stat ();
    if (panel_operate (current_panel, OP_MOVE, 1)){
        update_panels (UP_OPTIMIZE, UP_KEEPSEL);
        repaint_screen ();
    }
}

l'unica differenza con la normale funzione di move/rename invocata con
F6 è quel OP_MOVE, 1

alessio.


--
Per REVOCARE l'iscrizione alla lista, inviare un email a
debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per
problemi inviare un email in INGLESE a listmas...@lists.debian.org

To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100224052857.68d37...@testing.fastwebnet.it

Reply via email to