Ticket #119: mc-ru-fork-autoattrs.patch

File mc-ru-fork-autoattrs.patch, 1.4 KB (added by slavazanko, 11 years ago)

autotoggle 'preserve attrs' checkbox

  • mc/src/filegui.c

     
    5050 
    5151#include <sys/types.h> 
    5252#include <sys/stat.h> 
     53#include <sys/statfs.h> 
    5354#include <unistd.h> 
    5455 
    5556#include "global.h" 
     
    6768#include "util.h"               /* strip_password() */ 
    6869#include "tty.h" 
    6970 
     71#ifndef MSDOS_SUPER_MAGIC 
     72#define MSDOS_SUPER_MAGIC 0x4d44 
     73#endif //MSDOS_SUPER_MAGIC 
     74 
     75#ifndef NTFS_SB_MAGIC 
     76#define NTFS_SB_MAGIC 0x5346544e 
     77#endif //NTFS_SB_MAGIC 
     78 
     79#ifndef PROC_SUPER_MAGIC 
     80#define PROC_SUPER_MAGIC 0x9fa0 
     81#endif //PROC_SUPER_MAGIC 
     82 
     83#ifndef SMB_SUPER_MAGIC 
     84#define SMB_SUPER_MAGIC 0x517B 
     85#endif //SMB_SUPER_MAGIC 
     86 
     87#ifndef NCP_SUPER_MAGIC 
     88#define NCP_SUPER_MAGIC 0x564c 
     89#endif //NCP_SUPER_MAGIC 
     90 
     91 
    7092/* }}} */ 
    7193 
    7294/* Hack: the vfs code should not rely on this */ 
     
    865887    struct stat buf; 
    866888    int val; 
    867889    QuickDialog Quick_input; 
     890    static struct statfs stfs; 
    868891    char *def_text; 
    869892    g_return_val_if_fail (ctx != NULL, NULL); 
    870893 
    871894    def_text = g_strdup(def_text_orig); 
    872895 
     896    if (statfs(def_text, &stfs)==0) { 
     897      if (stfs.f_type==MSDOS_SUPER_MAGIC || 
     898          stfs.f_type==NTFS_SB_MAGIC || 
     899          stfs.f_type==SMB_SUPER_MAGIC || 
     900          stfs.f_type==NCP_SUPER_MAGIC 
     901          ) { 
     902        ctx->op_preserve=0; 
     903      } 
     904    } 
     905 
    873906#if 0 
    874907    message (1, __FUNCTION__, "text = `%s' \n def_text = `%s'", text, 
    875908                def_text);