forked from AuroraMiddleware/gtk
Argh, decided not to return a string that must be freed from
gtk_file_selection_get_filename after all, as that would cause memory leaks in all apps that use it unless they specifically checked fot the GTk+ version. gtk_file_selection_get_filename returns the filename in the C runtime encoding. It calls g_filename_from_utf8, but copies the returned string to a static buffer, which is returned. I think this is better than returning the result from g_filename_from_utf8 directly, which would mean all apps that use it would have to free the return value. Or should this function care about this issue at all? Maybe a new function with clearly defined semantics.
This commit is contained in:
parent
e57b1afa2b
commit
a30c4b9e94
@ -27,6 +27,14 @@ Wed Feb 2 11:58:05 2000 Owen Taylor <otaylor@redhat.com>
|
||||
GLib). Some cleanups: Use gbooleans. Use GStrings instead of fixed
|
||||
size buffers.
|
||||
|
||||
gtk_file_selection_get_filename returns the filename in the C
|
||||
runtime encoding. It calls g_filename_from_utf8, but copies the
|
||||
returned string to a static buffer, which is returned. I think
|
||||
this is better than returning the result from g_filename_from_utf8
|
||||
directly, which would mean all apps that use it would have to free
|
||||
the return value. Or should this function care about this issue at
|
||||
all? Maybe a new function with clearly defined semantics.
|
||||
|
||||
* gtk/gtkfilesel.h: Add comment about
|
||||
gtk_file_selection_get_filename returning the filename in the C
|
||||
runtime's encoding.
|
||||
|
@ -27,6 +27,14 @@ Wed Feb 2 11:58:05 2000 Owen Taylor <otaylor@redhat.com>
|
||||
GLib). Some cleanups: Use gbooleans. Use GStrings instead of fixed
|
||||
size buffers.
|
||||
|
||||
gtk_file_selection_get_filename returns the filename in the C
|
||||
runtime encoding. It calls g_filename_from_utf8, but copies the
|
||||
returned string to a static buffer, which is returned. I think
|
||||
this is better than returning the result from g_filename_from_utf8
|
||||
directly, which would mean all apps that use it would have to free
|
||||
the return value. Or should this function care about this issue at
|
||||
all? Maybe a new function with clearly defined semantics.
|
||||
|
||||
* gtk/gtkfilesel.h: Add comment about
|
||||
gtk_file_selection_get_filename returning the filename in the C
|
||||
runtime's encoding.
|
||||
|
@ -27,6 +27,14 @@ Wed Feb 2 11:58:05 2000 Owen Taylor <otaylor@redhat.com>
|
||||
GLib). Some cleanups: Use gbooleans. Use GStrings instead of fixed
|
||||
size buffers.
|
||||
|
||||
gtk_file_selection_get_filename returns the filename in the C
|
||||
runtime encoding. It calls g_filename_from_utf8, but copies the
|
||||
returned string to a static buffer, which is returned. I think
|
||||
this is better than returning the result from g_filename_from_utf8
|
||||
directly, which would mean all apps that use it would have to free
|
||||
the return value. Or should this function care about this issue at
|
||||
all? Maybe a new function with clearly defined semantics.
|
||||
|
||||
* gtk/gtkfilesel.h: Add comment about
|
||||
gtk_file_selection_get_filename returning the filename in the C
|
||||
runtime's encoding.
|
||||
|
@ -27,6 +27,14 @@ Wed Feb 2 11:58:05 2000 Owen Taylor <otaylor@redhat.com>
|
||||
GLib). Some cleanups: Use gbooleans. Use GStrings instead of fixed
|
||||
size buffers.
|
||||
|
||||
gtk_file_selection_get_filename returns the filename in the C
|
||||
runtime encoding. It calls g_filename_from_utf8, but copies the
|
||||
returned string to a static buffer, which is returned. I think
|
||||
this is better than returning the result from g_filename_from_utf8
|
||||
directly, which would mean all apps that use it would have to free
|
||||
the return value. Or should this function care about this issue at
|
||||
all? Maybe a new function with clearly defined semantics.
|
||||
|
||||
* gtk/gtkfilesel.h: Add comment about
|
||||
gtk_file_selection_get_filename returning the filename in the C
|
||||
runtime's encoding.
|
||||
|
@ -27,6 +27,14 @@ Wed Feb 2 11:58:05 2000 Owen Taylor <otaylor@redhat.com>
|
||||
GLib). Some cleanups: Use gbooleans. Use GStrings instead of fixed
|
||||
size buffers.
|
||||
|
||||
gtk_file_selection_get_filename returns the filename in the C
|
||||
runtime encoding. It calls g_filename_from_utf8, but copies the
|
||||
returned string to a static buffer, which is returned. I think
|
||||
this is better than returning the result from g_filename_from_utf8
|
||||
directly, which would mean all apps that use it would have to free
|
||||
the return value. Or should this function care about this issue at
|
||||
all? Maybe a new function with clearly defined semantics.
|
||||
|
||||
* gtk/gtkfilesel.h: Add comment about
|
||||
gtk_file_selection_get_filename returning the filename in the C
|
||||
runtime's encoding.
|
||||
|
@ -27,6 +27,14 @@ Wed Feb 2 11:58:05 2000 Owen Taylor <otaylor@redhat.com>
|
||||
GLib). Some cleanups: Use gbooleans. Use GStrings instead of fixed
|
||||
size buffers.
|
||||
|
||||
gtk_file_selection_get_filename returns the filename in the C
|
||||
runtime encoding. It calls g_filename_from_utf8, but copies the
|
||||
returned string to a static buffer, which is returned. I think
|
||||
this is better than returning the result from g_filename_from_utf8
|
||||
directly, which would mean all apps that use it would have to free
|
||||
the return value. Or should this function care about this issue at
|
||||
all? Maybe a new function with clearly defined semantics.
|
||||
|
||||
* gtk/gtkfilesel.h: Add comment about
|
||||
gtk_file_selection_get_filename returning the filename in the C
|
||||
runtime's encoding.
|
||||
|
@ -27,6 +27,14 @@ Wed Feb 2 11:58:05 2000 Owen Taylor <otaylor@redhat.com>
|
||||
GLib). Some cleanups: Use gbooleans. Use GStrings instead of fixed
|
||||
size buffers.
|
||||
|
||||
gtk_file_selection_get_filename returns the filename in the C
|
||||
runtime encoding. It calls g_filename_from_utf8, but copies the
|
||||
returned string to a static buffer, which is returned. I think
|
||||
this is better than returning the result from g_filename_from_utf8
|
||||
directly, which would mean all apps that use it would have to free
|
||||
the return value. Or should this function care about this issue at
|
||||
all? Maybe a new function with clearly defined semantics.
|
||||
|
||||
* gtk/gtkfilesel.h: Add comment about
|
||||
gtk_file_selection_get_filename returning the filename in the C
|
||||
runtime's encoding.
|
||||
|
@ -728,9 +728,10 @@ gtk_file_selection_set_filename (GtkFileSelection *filesel,
|
||||
gchar*
|
||||
gtk_file_selection_get_filename (GtkFileSelection *filesel)
|
||||
{
|
||||
static char nothing[2] = "";
|
||||
char *text;
|
||||
static gchar nothing[2] = "";
|
||||
static gchar something[MAXPATHLEN*2];
|
||||
char *filename;
|
||||
char *text;
|
||||
|
||||
g_return_val_if_fail (filesel != NULL, nothing);
|
||||
g_return_val_if_fail (GTK_IS_FILE_SELECTION (filesel), nothing);
|
||||
@ -741,8 +742,10 @@ gtk_file_selection_get_filename (GtkFileSelection *filesel)
|
||||
text = gtk_entry_get_text (GTK_ENTRY (filesel->selection_entry));
|
||||
if (text)
|
||||
{
|
||||
filename = cmpl_completion_fullname (text, filesel->cmpl_state);
|
||||
return g_filename_from_utf8 (filename);
|
||||
filename = g_filename_from_utf8 (cmpl_completion_fullname (text, filesel->cmpl_state));
|
||||
strncpy (something, filename, sizeof (something));
|
||||
g_free (filename);
|
||||
return something;
|
||||
}
|
||||
|
||||
return nothing;
|
||||
|
@ -89,7 +89,8 @@ void gtk_file_selection_set_filename (GtkFileSelection *filesel,
|
||||
/* This function returns the selected filename in the C runtime's
|
||||
* multibyte string encoding, which may or may not be the same as that
|
||||
* used by GDK (UTF-8). To convert to UTF-8, call g_filename_to_utf8().
|
||||
* The returned string should be deallocated with g_free().
|
||||
* The returned string points to a statically allocated buffer and
|
||||
* should be copied away.
|
||||
*/
|
||||
gchar* gtk_file_selection_get_filename (GtkFileSelection *filesel);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user