From: Tor Lillqvist Date: Mon, 13 Dec 2004 23:05:16 +0000 (+0000) Subject: Update. X-Git-Tag: GLIB_2_6_0~9 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b17c8523d9ff657f0525ad42853a009f1a7aa8e8;p=platform%2Fupstream%2Fglib.git Update. 2004-12-13 Tor Lillqvist * NEWS: Update. * glib/glib.symbols * glib/gstdio.[ch]: Add g_rmdir(). --- diff --git a/ChangeLog b/ChangeLog index 06a78e7..6636d0f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2004-12-13 Tor Lillqvist + + * NEWS: Update. + + * glib/glib.symbols + * glib/gstdio.[ch]: Add g_rmdir(). + 2004-12-13 Matthias Clasen * NEWS: Updates diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 06a78e7..6636d0f 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,10 @@ +2004-12-13 Tor Lillqvist + + * NEWS: Update. + + * glib/glib.symbols + * glib/gstdio.[ch]: Add g_rmdir(). + 2004-12-13 Matthias Clasen * NEWS: Updates diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index 06a78e7..6636d0f 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,3 +1,10 @@ +2004-12-13 Tor Lillqvist + + * NEWS: Update. + + * glib/glib.symbols + * glib/gstdio.[ch]: Add g_rmdir(). + 2004-12-13 Matthias Clasen * NEWS: Updates diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 06a78e7..6636d0f 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,10 @@ +2004-12-13 Tor Lillqvist + + * NEWS: Update. + + * glib/glib.symbols + * glib/gstdio.[ch]: Add g_rmdir(). + 2004-12-13 Matthias Clasen * NEWS: Updates diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 06a78e7..6636d0f 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,10 @@ +2004-12-13 Tor Lillqvist + + * NEWS: Update. + + * glib/glib.symbols + * glib/gstdio.[ch]: Add g_rmdir(). + 2004-12-13 Matthias Clasen * NEWS: Updates diff --git a/NEWS b/NEWS index 9630ee3..5954409 100644 --- a/NEWS +++ b/NEWS @@ -6,7 +6,7 @@ Overview of Changes from GLib 2.4.x to GLib 2.6.0 - GKeyFile, a parser/editor for the .ini like files - Functions to support the XDG basedir specification - Wrappers for common POSIX pathname functions to handle filename - encodings consistently + encodings consistently. On Windows, these use UTF-8. * Miscellaneous new functions - g_filename_display_name() converts filenames in displayable UTF-8 strings @@ -28,6 +28,8 @@ Overview of Changes from GLib 2.4.x to GLib 2.6.0 - Reduce code size by removing literal strings from g_return_if_fail() * Other changes + - On Windows, GLib functions that take file name arguments now require + those to be in UTF-8. Functions that return file names return UTF-8. - Use higher precision for mathematical constants - Don't convert to/from UTF-8 in g_filename_to_uri/g_filename_from_uri - Support ll as printf format modifier for long long on all platforms diff --git a/glib/glib.symbols b/glib/glib.symbols index cbb2af2..20b7ad6 100644 --- a/glib/glib.symbols +++ b/glib/glib.symbols @@ -621,6 +621,7 @@ g_relation_select g_remove g_rename g_return_if_fail_warning +g_rmdir g_scanner_cur_line g_scanner_cur_position g_scanner_cur_token diff --git a/glib/gstdio.c b/glib/gstdio.c index 2ff8423..31dc350 100644 --- a/glib/gstdio.c +++ b/glib/gstdio.c @@ -338,10 +338,10 @@ g_unlink (const gchar *filename) * on your system. On Unix, remove() removes also directories, as it * calls unlink() for files and rmdir() for directories. On Windows, * although remove() in the C library only works for files, this - * function tries both remove() and rmdir(), and thus works like on - * Unix. Note however, that on Windows, it is in general not possible - * to remove a file that is open to some process, or mapped into - * memory. + * function tries first remove() and then if that fails rmdir(), and + * thus works for both files and directories. Note however, that on + * Windows, it is in general not possible to remove a file that is + * open to some process, or mapped into memory. * * Returns: 0 if the file was successfully removed, -1 if an error * occurred @@ -390,6 +390,52 @@ g_remove (const gchar *filename) } /** + * g_rmdir: + * @filename: a pathname in the GLib file name encoding + * + * A wrapper for the POSIX rmdir() function. The rmdir() function + * deletes a directory from the filesystem. + * + * See your C library manual for more details about how rmdir() works + * on your system. + * + * Returns: 0 if the directory was successfully removed, -1 if an error + * occurred + * + * Since: 2.6 + */ +int +g_rmdir (const gchar *filename) +{ +#ifdef G_OS_WIN32 + if (G_WIN32_HAVE_WIDECHAR_API ()) + { + wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL); + int retval = _wrmdir (wfilename); + int save_errno = errno; + + g_free (wfilename); + + errno = save_errno; + return retval; + } + else + { + gchar *cp_filename = g_locale_from_utf8 (filename, -1, NULL, NULL, NULL); + int retval = rmdir (cp_filename); + int save_errno = errno; + + g_free (cp_filename); + + errno = save_errno; + return retval; + } +#else + return rmdir (filename); +#endif +} + +/** * g_fopen: * @filename: a pathname in the GLib file name encoding * @mode: a string describing the mode in which the file should be diff --git a/glib/gstdio.h b/glib/gstdio.h index 93dea29..82874b4 100644 --- a/glib/gstdio.h +++ b/glib/gstdio.h @@ -55,6 +55,8 @@ int g_unlink (const gchar *filename); int g_remove (const gchar *filename); +int g_rmdir (const gchar *filename); + FILE *g_fopen (const gchar *filename, const gchar *mode);