Commit d867b9a8 authored by Tor Lillqvist's avatar Tor Lillqvist Committed by Tor Lillqvist

Merge from stable:

2003-01-19  Tor Lillqvist  <tml@iki.fi>

	Merge from stable:

	Fix for #103614 and some other problems with GtkFileSelection on
	Windows:

	* gtk/fnmatch.c (get_char): Need to use g_unichar_tolower(), not
	g_ascii_tolower(). Windows file names are case-insensitive for all
	Unicode letters.

	* gtk/gtkfilesel.c: Instead of checking for G_OS_WIN32 or
	G_WITH_CYGWIN, check G_PLATFORM_WIN32. Move inclusion of gtkintl.h
	earlier, as it includes config.h unconditionally, and gtkprivate.h
	redefines GTK_LOCALEDIR.
	(struct _CompletionDirSent): Ifdef out the fields not used on
	Windows.
	(compare_utf8_filenames, compare_sys_filenames): Need different
	comparison implementation for UTF-8 file names and system locale
	file names on Win32. Cannot simply use g_ascii_strcasecmp(), but
	need to casefold all Unicode letters.
	(cmpl_completion_matches, open_dir, correct_parent): Ifdef out
	variables not used on Win32 to avoid warnings about unused
	variables.
	(open_ref_dir): Use g_path_skip_root() to skip past potential
	drive letter in front of the leading (back)slash.
	(open_new_dir): Ifdef out use of CompletionDirSent fields not
	there on Win32.
	(correct_parent): Bypass inode check also on Cygwin.

	Fix bug noticed by Alex Shaduri: Tooltips and other
	GDK_WINDOW_TEMP windows were activated. This looked very odd, and
	was a regression from earlier versions.

	* gdk/win32/gdkwindow-win32.c (show_window_internal): Fine-tune
	behaviour. Don't ever activate GDK_WINDOW_TEMP windows.
	(gdk_window_move, gdk_window_resize): Add debug logging.

	* gdk/win32/gdkevents-win32.c (gdk_event_translate): When we get a
	WM_SIZE message for a non-visible (withdrawn) window, don't clear
	the GDK_WINDOW_STATE_WITHDRAWN bit. The window is still withdrawn
	even if its size changes.
parent baa46a10
2003-01-19 Tor Lillqvist <tml@iki.fi>
Merge from stable:
Fix for #103614 and some other problems with GtkFileSelection on
Windows:
* gtk/fnmatch.c (get_char): Need to use g_unichar_tolower(), not
g_ascii_tolower(). Windows file names are case-insensitive for all
Unicode letters.
* gtk/gtkfilesel.c: Instead of checking for G_OS_WIN32 or
G_WITH_CYGWIN, check G_PLATFORM_WIN32. Move inclusion of gtkintl.h
earlier, as it includes config.h unconditionally, and gtkprivate.h
redefines GTK_LOCALEDIR.
(struct _CompletionDirSent): Ifdef out the fields not used on
Windows.
(compare_utf8_filenames, compare_sys_filenames): Need different
comparison implementation for UTF-8 file names and system locale
file names on Win32. Cannot simply use g_ascii_strcasecmp(), but
need to casefold all Unicode letters.
(cmpl_completion_matches, open_dir, correct_parent): Ifdef out
variables not used on Win32 to avoid warnings about unused
variables.
(open_ref_dir): Use g_path_skip_root() to skip past potential
drive letter in front of the leading (back)slash.
(open_new_dir): Ifdef out use of CompletionDirSent fields not
there on Win32.
(correct_parent): Bypass inode check also on Cygwin.
Fix bug noticed by Alex Shaduri: Tooltips and other
GDK_WINDOW_TEMP windows were activated. This looked very odd, and
was a regression from earlier versions.
* gdk/win32/gdkwindow-win32.c (show_window_internal): Fine-tune
behaviour. Don't ever activate GDK_WINDOW_TEMP windows.
(gdk_window_move, gdk_window_resize): Add debug logging.
* gdk/win32/gdkevents-win32.c (gdk_event_translate): When we get a
WM_SIZE message for a non-visible (withdrawn) window, don't clear
the GDK_WINDOW_STATE_WITHDRAWN bit. The window is still withdrawn
even if its size changes.
2003-01-16 Matthias Clasen <maclas@gmx.de>
* gtk/gtktextlayout.c (gtk_text_layout_get_cursor_locations): Typo fixes.
......
2003-01-19 Tor Lillqvist <tml@iki.fi>
Merge from stable:
Fix for #103614 and some other problems with GtkFileSelection on
Windows:
* gtk/fnmatch.c (get_char): Need to use g_unichar_tolower(), not
g_ascii_tolower(). Windows file names are case-insensitive for all
Unicode letters.
* gtk/gtkfilesel.c: Instead of checking for G_OS_WIN32 or
G_WITH_CYGWIN, check G_PLATFORM_WIN32. Move inclusion of gtkintl.h
earlier, as it includes config.h unconditionally, and gtkprivate.h
redefines GTK_LOCALEDIR.
(struct _CompletionDirSent): Ifdef out the fields not used on
Windows.
(compare_utf8_filenames, compare_sys_filenames): Need different
comparison implementation for UTF-8 file names and system locale
file names on Win32. Cannot simply use g_ascii_strcasecmp(), but
need to casefold all Unicode letters.
(cmpl_completion_matches, open_dir, correct_parent): Ifdef out
variables not used on Win32 to avoid warnings about unused
variables.
(open_ref_dir): Use g_path_skip_root() to skip past potential
drive letter in front of the leading (back)slash.
(open_new_dir): Ifdef out use of CompletionDirSent fields not
there on Win32.
(correct_parent): Bypass inode check also on Cygwin.
Fix bug noticed by Alex Shaduri: Tooltips and other
GDK_WINDOW_TEMP windows were activated. This looked very odd, and
was a regression from earlier versions.
* gdk/win32/gdkwindow-win32.c (show_window_internal): Fine-tune
behaviour. Don't ever activate GDK_WINDOW_TEMP windows.
(gdk_window_move, gdk_window_resize): Add debug logging.
* gdk/win32/gdkevents-win32.c (gdk_event_translate): When we get a
WM_SIZE message for a non-visible (withdrawn) window, don't clear
the GDK_WINDOW_STATE_WITHDRAWN bit. The window is still withdrawn
even if its size changes.
2003-01-16 Matthias Clasen <maclas@gmx.de>
* gtk/gtktextlayout.c (gtk_text_layout_get_cursor_locations): Typo fixes.
......
2003-01-19 Tor Lillqvist <tml@iki.fi>
Merge from stable:
Fix for #103614 and some other problems with GtkFileSelection on
Windows:
* gtk/fnmatch.c (get_char): Need to use g_unichar_tolower(), not
g_ascii_tolower(). Windows file names are case-insensitive for all
Unicode letters.
* gtk/gtkfilesel.c: Instead of checking for G_OS_WIN32 or
G_WITH_CYGWIN, check G_PLATFORM_WIN32. Move inclusion of gtkintl.h
earlier, as it includes config.h unconditionally, and gtkprivate.h
redefines GTK_LOCALEDIR.
(struct _CompletionDirSent): Ifdef out the fields not used on
Windows.
(compare_utf8_filenames, compare_sys_filenames): Need different
comparison implementation for UTF-8 file names and system locale
file names on Win32. Cannot simply use g_ascii_strcasecmp(), but
need to casefold all Unicode letters.
(cmpl_completion_matches, open_dir, correct_parent): Ifdef out
variables not used on Win32 to avoid warnings about unused
variables.
(open_ref_dir): Use g_path_skip_root() to skip past potential
drive letter in front of the leading (back)slash.
(open_new_dir): Ifdef out use of CompletionDirSent fields not
there on Win32.
(correct_parent): Bypass inode check also on Cygwin.
Fix bug noticed by Alex Shaduri: Tooltips and other
GDK_WINDOW_TEMP windows were activated. This looked very odd, and
was a regression from earlier versions.
* gdk/win32/gdkwindow-win32.c (show_window_internal): Fine-tune
behaviour. Don't ever activate GDK_WINDOW_TEMP windows.
(gdk_window_move, gdk_window_resize): Add debug logging.
* gdk/win32/gdkevents-win32.c (gdk_event_translate): When we get a
WM_SIZE message for a non-visible (withdrawn) window, don't clear
the GDK_WINDOW_STATE_WITHDRAWN bit. The window is still withdrawn
even if its size changes.
2003-01-16 Matthias Clasen <maclas@gmx.de>
* gtk/gtktextlayout.c (gtk_text_layout_get_cursor_locations): Typo fixes.
......
2003-01-19 Tor Lillqvist <tml@iki.fi>
Merge from stable:
Fix for #103614 and some other problems with GtkFileSelection on
Windows:
* gtk/fnmatch.c (get_char): Need to use g_unichar_tolower(), not
g_ascii_tolower(). Windows file names are case-insensitive for all
Unicode letters.
* gtk/gtkfilesel.c: Instead of checking for G_OS_WIN32 or
G_WITH_CYGWIN, check G_PLATFORM_WIN32. Move inclusion of gtkintl.h
earlier, as it includes config.h unconditionally, and gtkprivate.h
redefines GTK_LOCALEDIR.
(struct _CompletionDirSent): Ifdef out the fields not used on
Windows.
(compare_utf8_filenames, compare_sys_filenames): Need different
comparison implementation for UTF-8 file names and system locale
file names on Win32. Cannot simply use g_ascii_strcasecmp(), but
need to casefold all Unicode letters.
(cmpl_completion_matches, open_dir, correct_parent): Ifdef out
variables not used on Win32 to avoid warnings about unused
variables.
(open_ref_dir): Use g_path_skip_root() to skip past potential
drive letter in front of the leading (back)slash.
(open_new_dir): Ifdef out use of CompletionDirSent fields not
there on Win32.
(correct_parent): Bypass inode check also on Cygwin.
Fix bug noticed by Alex Shaduri: Tooltips and other
GDK_WINDOW_TEMP windows were activated. This looked very odd, and
was a regression from earlier versions.
* gdk/win32/gdkwindow-win32.c (show_window_internal): Fine-tune
behaviour. Don't ever activate GDK_WINDOW_TEMP windows.
(gdk_window_move, gdk_window_resize): Add debug logging.
* gdk/win32/gdkevents-win32.c (gdk_event_translate): When we get a
WM_SIZE message for a non-visible (withdrawn) window, don't clear
the GDK_WINDOW_STATE_WITHDRAWN bit. The window is still withdrawn
even if its size changes.
2003-01-16 Matthias Clasen <maclas@gmx.de>
* gtk/gtktextlayout.c (gtk_text_layout_get_cursor_locations): Typo fixes.
......
2003-01-19 Tor Lillqvist <tml@iki.fi>
Merge from stable:
Fix for #103614 and some other problems with GtkFileSelection on
Windows:
* gtk/fnmatch.c (get_char): Need to use g_unichar_tolower(), not
g_ascii_tolower(). Windows file names are case-insensitive for all
Unicode letters.
* gtk/gtkfilesel.c: Instead of checking for G_OS_WIN32 or
G_WITH_CYGWIN, check G_PLATFORM_WIN32. Move inclusion of gtkintl.h
earlier, as it includes config.h unconditionally, and gtkprivate.h
redefines GTK_LOCALEDIR.
(struct _CompletionDirSent): Ifdef out the fields not used on
Windows.
(compare_utf8_filenames, compare_sys_filenames): Need different
comparison implementation for UTF-8 file names and system locale
file names on Win32. Cannot simply use g_ascii_strcasecmp(), but
need to casefold all Unicode letters.
(cmpl_completion_matches, open_dir, correct_parent): Ifdef out
variables not used on Win32 to avoid warnings about unused
variables.
(open_ref_dir): Use g_path_skip_root() to skip past potential
drive letter in front of the leading (back)slash.
(open_new_dir): Ifdef out use of CompletionDirSent fields not
there on Win32.
(correct_parent): Bypass inode check also on Cygwin.
Fix bug noticed by Alex Shaduri: Tooltips and other
GDK_WINDOW_TEMP windows were activated. This looked very odd, and
was a regression from earlier versions.
* gdk/win32/gdkwindow-win32.c (show_window_internal): Fine-tune
behaviour. Don't ever activate GDK_WINDOW_TEMP windows.
(gdk_window_move, gdk_window_resize): Add debug logging.
* gdk/win32/gdkevents-win32.c (gdk_event_translate): When we get a
WM_SIZE message for a non-visible (withdrawn) window, don't clear
the GDK_WINDOW_STATE_WITHDRAWN bit. The window is still withdrawn
even if its size changes.
2003-01-16 Matthias Clasen <maclas@gmx.de>
* gtk/gtktextlayout.c (gtk_text_layout_get_cursor_locations): Typo fixes.
......
......@@ -2998,6 +2998,9 @@ gdk_event_translate (GdkDisplay *display,
#endif
)
{
GdkWindowState withdrawn_bit =
IsWindowVisible (msg->hwnd) ? GDK_WINDOW_STATE_WITHDRAWN : 0;
if (!(private->event_mask & GDK_STRUCTURE_MASK))
break;
......@@ -3019,12 +3022,12 @@ gdk_event_translate (GdkDisplay *display,
gdk_synthesize_window_state (window,
GDK_WINDOW_STATE_ICONIFIED |
GDK_WINDOW_STATE_MAXIMIZED |
GDK_WINDOW_STATE_WITHDRAWN,
withdrawn_bit,
0);
else if (msg->wParam == SIZE_MAXIMIZED)
gdk_synthesize_window_state (window,
GDK_WINDOW_STATE_ICONIFIED |
GDK_WINDOW_STATE_WITHDRAWN,
withdrawn_bit,
GDK_WINDOW_STATE_MAXIMIZED);
if (private->resize_count > 1)
......
......@@ -867,11 +867,17 @@ show_window_internal (GdkWindow *window,
ShowWindow (GDK_WINDOW_HWND (window), SW_MAXIMIZE);
else if (private->state & GDK_WINDOW_STATE_ICONIFIED)
ShowWindow (GDK_WINDOW_HWND (window), SW_RESTORE);
else if (GDK_WINDOW_TYPE (window) == GDK_WINDOW_TEMP)
ShowWindow (GDK_WINDOW_HWND (window), SW_SHOWNOACTIVATE);
else
ShowWindow (GDK_WINDOW_HWND (window), SW_SHOWNORMAL);
if (raise)
BringWindowToTop (GDK_WINDOW_HWND (window));
if (GDK_WINDOW_TYPE (window) == GDK_WINDOW_TEMP)
SetWindowPos (GDK_WINDOW_HWND (window), HWND_TOPMOST, 0, 0, 0, 0,
SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE);
else
BringWindowToTop (GDK_WINDOW_HWND (window));
else if (old_active_window != GDK_WINDOW_HWND (window))
SetActiveWindow (old_active_window);
}
......@@ -959,6 +965,9 @@ gdk_window_move (GdkWindow *window,
g_return_if_fail (window != NULL);
g_return_if_fail (GDK_IS_WINDOW (window));
GDK_NOTE (MISC, g_print ("gdk_window_move: %p +%d+%d\n",
GDK_WINDOW_HWND (window), x, y));
impl = GDK_WINDOW_IMPL_WIN32 (private->impl);
if (!GDK_WINDOW_DESTROYED (window))
......@@ -1001,6 +1010,9 @@ gdk_window_resize (GdkWindow *window,
if (height < 1)
height = 1;
GDK_NOTE (MISC, g_print ("gdk_window_resize: %p %dx%d\n",
GDK_WINDOW_HWND (window), width, height));
impl = GDK_WINDOW_IMPL_WIN32 (private->impl);
if (!GDK_WINDOW_DESTROYED (window))
......
......@@ -46,9 +46,8 @@ get_char (const char **str)
gunichar c = g_utf8_get_char (*str);
*str = g_utf8_next_char (*str);
#if defined(G_OS_WIN32) || defined(G_WITH_CYGWIN)
if (c <= 0xff)
c = g_ascii_tolower (c);
#ifdef G_PLATFORM_WIN32
c = g_unichar_tolower (c);
#endif
return c;
......
......@@ -42,15 +42,14 @@
#include <pwd.h>
#endif
#include <glib.h> /* Include early to get G_OS_WIN32 and
* G_WITH_CYGWIN */
#include <glib.h> /* Include early to get G_OS_WIN32 etc */
#if defined(G_OS_WIN32) || defined(G_WITH_CYGWIN)
#if defined(G_PLATFORM_WIN32)
#include <ctype.h>
#define STRICT
#include <windows.h>
#undef STRICT
#endif /* G_OS_WIN32 || G_WITH_CYGWIN */
#endif /* G_PLATFORM_WIN32 */
#ifdef G_OS_WIN32
#include <winsock.h> /* For gethostname */
#endif
......@@ -62,6 +61,7 @@
#include "gtkfilesel.h"
#include "gtkhbox.h"
#include "gtkhbbox.h"
#include "gtkintl.h"
#include "gtklabel.h"
#include "gtkliststore.h"
#include "gtkmain.h"
......@@ -76,7 +76,6 @@
#include "gtkoptionmenu.h"
#include "gtkdialog.h"
#include "gtkmessagedialog.h"
#include "gtkintl.h"
#include "gtkdnd.h"
#include "gtkeventbox.h"
......@@ -150,9 +149,11 @@ typedef struct _PossibleCompletion PossibleCompletion;
*/
struct _CompletionDirSent
{
#ifndef G_PLATFORM_WIN32
ino_t inode;
time_t mtime;
dev_t device;
#endif
gint entry_count;
struct _CompletionDirEntry *entries;
......@@ -315,7 +316,7 @@ static const gchar* cmpl_completion_fullname (const gchar*, CompletionSta
static CompletionDir* open_ref_dir (gchar* text_to_complete,
gchar** remaining_text,
CompletionState* cmpl_state);
#if !defined(G_OS_WIN32) && !defined(G_WITH_CYGWIN)
#ifndef G_PLATFORM_WIN32
static gboolean check_dir (gchar *dir_name,
struct stat *result,
gboolean *stat_subdirs);
......@@ -334,7 +335,7 @@ static CompletionDirSent* open_new_dir (gchar* dir_name,
static gint correct_dir_fullname (CompletionDir* cmpl_dir);
static gint correct_parent (CompletionDir* cmpl_dir,
struct stat *sbuf);
#ifndef G_OS_WIN32
#ifndef G_PLATFORM_WIN32
static gchar* find_parent_dir_fullname (gchar* dirname);
#endif
static CompletionDir* attach_dir (CompletionDirSent* sent,
......@@ -413,12 +414,50 @@ static void gtk_file_selection_rename_file (GtkWidget *widget, gpointer data);
static void free_selected_names (GPtrArray *names);
#if !defined(G_OS_WIN32) && !defined(G_WITH_CYGWIN)
#define compare_filenames(a, b) strcmp(a, b)
#ifndef G_PLATFORM_WIN32
#define compare_utf8_filenames(a, b) strcmp(a, b)
#define compare_sys_filenames(a, b) strcmp(a, b)
#else
#define compare_filenames(a, b) g_ascii_strcasecmp(a, b)
#endif
static gint
compare_utf8_filenames (const gchar *a,
const gchar *b)
{
gchar *a_folded, *b_folded;
gint retval;
a_folded = g_utf8_strdown (a, -1);
b_folded = g_utf8_strdown (b, -1);
retval = strcmp (a_folded, b_folded);
g_free (a_folded);
g_free (b_folded);
return retval;
}
static gint
compare_sys_filenames (const gchar *a,
const gchar *b)
{
gchar *a_utf8, *b_utf8;
gint retval;
a_utf8 = g_filename_to_utf8 (a, -1, NULL, NULL, NULL);
b_utf8 = g_filename_to_utf8 (b, -1, NULL, NULL, NULL);
retval = compare_utf8_filenames (a_utf8, b_utf8);
g_free (a_utf8);
g_free (b_utf8);
return retval;
}
#endif
static GtkWindowClass *parent_class = NULL;
......@@ -429,7 +468,7 @@ static gint cmpl_errno;
/*
* Take the path currently in the file selection
* entry field and translate as necessary from
* a WIN32 style to CYGWIN32 style path. For
* a Win32 style to Cygwin style path. For
* instance translate:
* x:\somepath\file.jpg
* to:
......@@ -2002,7 +2041,7 @@ gtk_file_selection_dir_activate (GtkTreeView *tree_view,
g_free (filename);
}
#if defined(G_OS_WIN32) || defined(G_WITH_CYGWIN)
#ifdef G_PLATFORM_WIN32
static void
win32_gtk_add_drives_to_dir_list (GtkListStore *model)
......@@ -2121,7 +2160,7 @@ gtk_file_selection_populate (GtkFileSelection *fs,
poss = cmpl_next_completion (cmpl_state);
}
#if defined(G_OS_WIN32) || defined(G_WITH_CYGWIN)
#ifdef G_PLATFORM_WIN32
/* For Windows, add drives as potential selections */
win32_gtk_add_drives_to_dir_list (dir_model);
#endif
......@@ -2324,8 +2363,8 @@ gtk_file_selection_file_changed (GtkTreeSelection *selection,
/* A common case is selecting a range of files from top to bottom,
* so quickly check for that to avoid looping over the entire list
*/
if (compare_filenames (g_ptr_array_index (old_names, old_names->len - 1),
g_ptr_array_index (new_names, new_names->len - 1)) != 0)
if (compare_utf8_filenames (g_ptr_array_index (old_names, old_names->len - 1),
g_ptr_array_index (new_names, new_names->len - 1)) != 0)
index = new_names->len - 1;
else
{
......@@ -2336,8 +2375,8 @@ gtk_file_selection_file_changed (GtkTreeSelection *selection,
*/
while (i < old_names->len && j < new_names->len)
{
cmp = compare_filenames (g_ptr_array_index (old_names, i),
g_ptr_array_index (new_names, j));
cmp = compare_utf8_filenames (g_ptr_array_index (old_names, i),
g_ptr_array_index (new_names, j));
if (cmp < 0)
{
i++;
......@@ -2366,8 +2405,8 @@ gtk_file_selection_file_changed (GtkTreeSelection *selection,
* So search up from there.
*/
if (fs->last_selected &&
compare_filenames (fs->last_selected,
g_ptr_array_index (new_names, 0)) == 0)
compare_utf8_filenames (fs->last_selected,
g_ptr_array_index (new_names, 0)) == 0)
index = new_names->len - 1;
else
index = 0;
......@@ -2401,7 +2440,7 @@ maybe_clear_entry:
entry = gtk_entry_get_text (GTK_ENTRY (fs->selection_entry));
if ((entry != NULL) && (fs->last_selected != NULL) &&
(compare_filenames (entry, fs->last_selected) == 0))
(compare_utf8_filenames (entry, fs->last_selected) == 0))
gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), "");
}
......@@ -2464,7 +2503,7 @@ gtk_file_selection_get_selections (GtkFileSelection *filesel)
selections[count++] = current;
if (unselected_entry && compare_filenames (current, filename) == 0)
if (unselected_entry && compare_sys_filenames (current, filename) == 0)
unselected_entry = FALSE;
}
......@@ -2736,7 +2775,9 @@ cmpl_completion_matches (gchar *text_to_complete,
gchar **remaining_text,
CompletionState *cmpl_state)
{
#ifdef HAVE_PWD_H
gchar* first_slash;
#endif
PossibleCompletion *poss;
prune_memory_usage (cmpl_state);
......@@ -2878,16 +2919,15 @@ open_ref_dir (gchar *text_to_complete,
p = strrchr (tmp, G_DIR_SEPARATOR);
if (p)
{
if (p == tmp)
if (p + 1 == g_path_skip_root (tmp))
p++;
*p = '\0';
new_dir = open_dir (tmp, cmpl_state);
if (new_dir)
*remaining_text = text_to_complete +
((p == tmp + 1) ? (p - tmp) : (p + 1 - tmp));
((p == g_path_skip_root (tmp)) ? (p - tmp) : (p + 1 - tmp));
}
else
{
......@@ -3023,10 +3063,11 @@ open_new_dir (gchar *dir_name,
gchar *sys_dir_name;
sent = g_new (CompletionDirSent, 1);
#ifndef G_PLATFORM_WIN32
sent->mtime = sbuf->st_mtime;
sent->inode = sbuf->st_ino;
sent->device = sbuf->st_dev;
#endif
path = g_string_sized_new (2*MAXPATHLEN + 10);
sys_dir_name = g_filename_from_utf8 (dir_name, -1, NULL, NULL, NULL);
......@@ -3046,7 +3087,6 @@ open_new_dir (gchar *dir_name,
while ((dirent = g_dir_read_name (directory)) != NULL)
entry_count++;
entry_count += 2; /* For ".",".." */
sent->entries = g_new (CompletionDirEntry, entry_count);
......@@ -3119,7 +3159,7 @@ open_new_dir (gchar *dir_name,
return sent;
}
#if !defined(G_OS_WIN32) && !defined(G_WITH_CYGWIN)
#ifndef G_PLATFORM_WIN32
static gboolean
check_dir (gchar *dir_name,
......@@ -3192,12 +3232,14 @@ static CompletionDir*
open_dir (gchar *dir_name,
CompletionState *cmpl_state)
{
#ifndef G_PLATFORM_WIN32
struct stat sbuf;
gboolean stat_subdirs;
CompletionDirSent *sent;
GList* cdsl;
#endif
CompletionDirSent *sent;
#if !defined(G_OS_WIN32) && !defined(G_WITH_CYGWIN)
#ifndef G_PLATFORM_WIN32
if (!check_dir (dir_name, &sbuf, &stat_subdirs))
return NULL;
......@@ -3214,11 +3256,11 @@ open_dir (gchar *dir_name,
cdsl = cdsl->next;
}
#else
stat_subdirs = TRUE;
#endif
sent = open_new_dir (dir_name, &sbuf, stat_subdirs);
#else
sent = open_new_dir (dir_name, NULL, TRUE);
#endif
if (sent)
{
......@@ -3362,7 +3404,9 @@ correct_parent (CompletionDir *cmpl_dir,
struct stat parbuf;
gchar *last_slash;
gchar *first_slash;
#ifndef G_PLATFORM_WIN32
gchar *new_name;
#endif
gchar *sys_filename;
gchar c = 0;
......@@ -3402,7 +3446,7 @@ correct_parent (CompletionDir *cmpl_dir,
}
g_free (sys_filename);
#ifndef G_OS_WIN32 /* No inode numbers on Win32 */
#ifndef G_PLATFORM_WIN32 /* No inode numbers on Win32 */
if (parbuf.st_ino == sbuf->st_ino && parbuf.st_dev == sbuf->st_dev)
/* it wasn't a link */
return TRUE;
......@@ -3427,7 +3471,7 @@ correct_parent (CompletionDir *cmpl_dir,
return TRUE;
}
#ifndef G_OS_WIN32
#ifndef G_PLATFORM_WIN32
static gchar*
find_parent_dir_fullname (gchar* dirname)
......@@ -3539,7 +3583,12 @@ attempt_homedir_completion (gchar *text_to_complete,
#endif
#if defined(G_OS_WIN32) || defined(G_WITH_CYGWIN)
#ifdef G_PLATFORM_WIN32
/* FIXME: determine whether we should casefold all Unicode letters
* here, too (and in in first_diff_index() walk through the strings with
* g_utf8_next_char()), or if this folding isn't actually needed at
* all.
*/
#define FOLD(c) (tolower(c))
#else
#define FOLD(c) (c)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment