From: <the...@us...> - 2006-11-06 00:14:39
|
Revision: 17677 http://svn.sourceforge.net/gaim/?rev=17677&view=rev Author: thekingant Date: 2006-11-05 16:14:30 -0800 (Sun, 05 Nov 2006) Log Message: ----------- sf patch #1588433, from Ka-Hing Cheung "prompt again if non-writable dir selected for FT" Modified Paths: -------------- trunk/libgaim/ft.c Modified: trunk/libgaim/ft.c =================================================================== --- trunk/libgaim/ft.c 2006-11-06 00:08:00 UTC (rev 17676) +++ trunk/libgaim/ft.c 2006-11-06 00:14:30 UTC (rev 17677) @@ -33,6 +33,8 @@ static GaimXferUiOps *xfer_ui_ops = NULL; +static int gaim_xfer_choose_file(GaimXfer *xfer); + GaimXfer * gaim_xfer_new(GaimAccount *account, GaimXferType type, const char *who) { @@ -210,13 +212,26 @@ { GaimXfer *xfer; struct stat st; + gchar *dir; xfer = (GaimXfer *)user_data; if (g_stat(filename, &st) != 0) { /* File not found. */ if (gaim_xfer_get_type(xfer) == GAIM_XFER_RECEIVE) { - gaim_xfer_request_accepted(xfer, filename); + dir = g_path_get_dirname(filename); + + if (g_access(dir, W_OK) == 0) { + gaim_xfer_request_accepted(xfer, filename); + } else { + gaim_xfer_ref(xfer); + gaim_notify_message( + NULL, GAIM_NOTIFY_MSG_ERROR, NULL, + _("Directory is not writable."), NULL, + (GaimNotifyCloseCallback)gaim_xfer_choose_file, xfer); + } + + g_free(dir); } else { gaim_xfer_show_file_error(xfer, filename); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |