improved opneing files under Win32
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@207 ea778897-0a13-0410-b9d1-a72fbfd435f5
This commit is contained in:
parent
ac2d1e20e1
commit
899f660195
@ -372,7 +372,7 @@ void document_open_file(gint idx, const gchar *filename, gint pos, gboolean read
|
|||||||
gchar *utf8_filename = NULL;
|
gchar *utf8_filename = NULL;
|
||||||
gchar *locale_filename = NULL;
|
gchar *locale_filename = NULL;
|
||||||
GError *err = NULL;
|
GError *err = NULL;
|
||||||
#if defined(HAVE_MMAP) && defined(HAVE_MUNMAP)
|
#if defined(HAVE_MMAP) && defined(HAVE_MUNMAP) && defined(HAVE_FCNTL_H)
|
||||||
gint fd;
|
gint fd;
|
||||||
void *map;
|
void *map;
|
||||||
#else
|
#else
|
||||||
@ -419,7 +419,7 @@ void document_open_file(gint idx, const gchar *filename, gint pos, gboolean read
|
|||||||
g_free(locale_filename);
|
g_free(locale_filename);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#if defined(HAVE_MMAP) && defined(HAVE_MUNMAP)
|
#if defined(HAVE_MMAP) && defined(HAVE_MUNMAP) && defined(HAVE_FCNTL_H)
|
||||||
if ((fd = open(locale_filename, O_RDONLY)) < 0)
|
if ((fd = open(locale_filename, O_RDONLY)) < 0)
|
||||||
{
|
{
|
||||||
msgwin_status_add(_("Could not open file %s (%s)"), utf8_filename, g_strerror(errno));
|
msgwin_status_add(_("Could not open file %s (%s)"), utf8_filename, g_strerror(errno));
|
||||||
@ -427,7 +427,7 @@ void document_open_file(gint idx, const gchar *filename, gint pos, gboolean read
|
|||||||
g_free(locale_filename);
|
g_free(locale_filename);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if ((map = mmap (0, st.st_size, PROT_READ, MAP_SHARED, fd, 0)) == MAP_FAILED)
|
if ((map = mmap(0, st.st_size, PROT_READ, MAP_SHARED, fd, 0)) == MAP_FAILED)
|
||||||
{
|
{
|
||||||
msgwin_status_add(_("Could not open file %s (%s)"), utf8_filename, g_strerror(errno));
|
msgwin_status_add(_("Could not open file %s (%s)"), utf8_filename, g_strerror(errno));
|
||||||
g_free(utf8_filename);
|
g_free(utf8_filename);
|
||||||
@ -437,7 +437,8 @@ void document_open_file(gint idx, const gchar *filename, gint pos, gboolean read
|
|||||||
size = (gint)st.st_size;
|
size = (gint)st.st_size;
|
||||||
#else
|
#else
|
||||||
// use GLib function to load file on Win32 systems and those w/o mmap()
|
// use GLib function to load file on Win32 systems and those w/o mmap()
|
||||||
if (! g_file_get_contents(utf8_filename, &map, NULL, &err) ){
|
if (! g_file_get_contents(utf8_filename, &map, NULL, &err))
|
||||||
|
{
|
||||||
msgwin_status_add(_("Could not open file %s (%s)"), utf8_filename, err->message);
|
msgwin_status_add(_("Could not open file %s (%s)"), utf8_filename, err->message);
|
||||||
g_free(utf8_filename);
|
g_free(utf8_filename);
|
||||||
g_free(locale_filename);
|
g_free(locale_filename);
|
||||||
@ -461,7 +462,7 @@ void document_open_file(gint idx, const gchar *filename, gint pos, gboolean read
|
|||||||
{
|
{
|
||||||
msgwin_status_add(_("The file does not look like a text file or the file encoding is not supported."));
|
msgwin_status_add(_("The file does not look like a text file or the file encoding is not supported."));
|
||||||
utils_beep();
|
utils_beep();
|
||||||
#if defined(HAVE_MMAP) && defined(HAVE_MUNMAP)
|
#if defined(HAVE_MMAP) && defined(HAVE_MUNMAP) && defined(HAVE_FCNTL_H)
|
||||||
close(fd);
|
close(fd);
|
||||||
munmap(map, st.st_size);
|
munmap(map, st.st_size);
|
||||||
#else
|
#else
|
||||||
@ -507,17 +508,16 @@ void document_open_file(gint idx, const gchar *filename, gint pos, gboolean read
|
|||||||
doc_list[idx].readonly = readonly;
|
doc_list[idx].readonly = readonly;
|
||||||
sci_set_readonly(doc_list[idx].sci, readonly);
|
sci_set_readonly(doc_list[idx].sci, readonly);
|
||||||
|
|
||||||
|
|
||||||
document_set_filetype(idx, use_ft);
|
document_set_filetype(idx, use_ft);
|
||||||
utils_build_show_hide(idx);
|
utils_build_show_hide(idx);
|
||||||
msgwin_status_add(_("File %s opened(%d%s)."),
|
msgwin_status_add(_("File %s opened(%d%s)."),
|
||||||
utf8_filename, gtk_notebook_get_n_pages(GTK_NOTEBOOK(app->notebook)),
|
utf8_filename, gtk_notebook_get_n_pages(GTK_NOTEBOOK(app->notebook)),
|
||||||
(readonly) ? _(", read-only") : "");
|
(readonly) ? _(", read-only") : "");
|
||||||
}
|
}
|
||||||
//utils_update_tag_list(idx, TRUE);
|
utils_update_tag_list(idx, TRUE);
|
||||||
document_set_text_changed(idx);
|
document_set_text_changed(idx);
|
||||||
|
|
||||||
#if defined(HAVE_MMAP) && defined(HAVE_MUNMAP)
|
#if defined(HAVE_MMAP) && defined(HAVE_MUNMAP) && defined(HAVE_FCNTL_H)
|
||||||
close(fd);
|
close(fd);
|
||||||
munmap(map, st.st_size);
|
munmap(map, st.st_size);
|
||||||
#else
|
#else
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user