Hi, Pavel! This patch makes "Filtered view" (M-!) feature work again and fixes memory leak. It was broken recently with file type checks.
P.S. Some days ago I mailed --enable-largefile vs smbfs is fixed. It is not so. sizeof (off_t) == 8 in MC but 4 in samba. ChangeLog: * view.c (do_view_init): Make sure _file is not an empty string before mc_stat and mc_open. Memory leak fixed. --- view.c-orig Thu Nov 8 09:36:43 2001 +++ view.c Thu Nov 8 10:23:01 2001 @@ -539,34 +539,34 @@ do_view_init (WView *view, char *_comman view->start_col = 0; } - /* Make sure we are working with a regular file */ - if (mc_stat (view->filename, &view->s) == -1) { - g_snprintf (tmp, sizeof (tmp), _(" Cannot stat \"%s\"\n %s "), - _file, unix_error_string (errno)); - error = set_view_init_error (view, tmp); - goto finish; - } + if (_file[0]) { + /* Make sure we are working with a regular file */ + if (mc_stat (view->filename, &view->s) == -1) { + g_snprintf (tmp, sizeof (tmp), _(" Cannot stat \"%s\"\n %s "), + _file, unix_error_string (errno)); + error = set_view_init_error (view, tmp); + goto finish; + } - if (!S_ISREG (view->s.st_mode)) { - g_snprintf (tmp, sizeof (tmp), - _(" Cannot view: not a regular file ")); - error = set_view_init_error (view, tmp); - goto finish; - } + if (!S_ISREG (view->s.st_mode)) { + g_snprintf (tmp, sizeof (tmp), + _(" Cannot view: not a regular file ")); + error = set_view_init_error (view, tmp); + goto finish; + } - /* Actually open the file */ - if ((fd = mc_open(_file, O_RDONLY)) == -1) { - g_snprintf (tmp, sizeof (tmp), _(" Cannot open \"%s\"\n %s "), - _file, unix_error_string (errno)); - error = set_view_init_error (view, tmp); - goto finish; - } + /* Actually open the file */ + if ((fd = mc_open(_file, O_RDONLY)) == -1) { + g_snprintf (tmp, sizeof (tmp), _(" Cannot open \"%s\"\n %s "), + _file, unix_error_string (errno)); + error = set_view_init_error (view, tmp); + goto finish; + } - if (_file[0] && view->viewer_magic_flag && (is_gunzipable (fd, &type)) != 0) { - g_free (view->filename); - view->filename = g_strconcat (_file, decompress_extension(type), NULL); - } else { - view->filename = g_strdup (_file); + if (view->viewer_magic_flag && (is_gunzipable (fd, &type)) != 0) { + g_free (view->filename); + view->filename = g_strconcat (_file, decompress_extension(type), NULL); + } } if (_command && (view->viewer_magic_flag || _file[0] == '\0')) _______________________________________________ Mc-devel mailing list [EMAIL PROTECTED] http://mail.gnome.org/mailman/listinfo/mc-devel