diff options
Diffstat (limited to 'src/plugins/fs/download.c')
-rw-r--r-- | src/plugins/fs/download.c | 36 |
1 files changed, 26 insertions, 10 deletions
diff --git a/src/plugins/fs/download.c b/src/plugins/fs/download.c index 7d1ab986..9fc0fe95 100644 --- a/src/plugins/fs/download.c +++ b/src/plugins/fs/download.c | |||
@@ -115,6 +115,7 @@ static void initiateDownload(GtkTreeModel * model, | |||
115 | char * pfx; | 115 | char * pfx; |
116 | char * lnk; | 116 | char * lnk; |
117 | char * fn; | 117 | char * fn; |
118 | char * inc; | ||
118 | DownloadList * list; | 119 | DownloadList * list; |
119 | GtkTreeIter iiter; | 120 | GtkTreeIter iiter; |
120 | GtkWidget * spin; | 121 | GtkWidget * spin; |
@@ -183,6 +184,27 @@ static void initiateDownload(GtkTreeModel * model, | |||
183 | if (name == NULL) | 184 | if (name == NULL) |
184 | name = filename; | 185 | name = filename; |
185 | 186 | ||
187 | fn = getFileName("FS", | ||
188 | "DOWNLOADDIR", | ||
189 | _("You must specify a directory in the configuration" | ||
190 | " in section `%s' under `%s'.")); | ||
191 | inc = getFileName("FS", | ||
192 | "INCOMINGDIR", | ||
193 | _("You must specify a directory in the configuration" | ||
194 | " in section `%s' under `%s'.")); | ||
195 | |||
196 | if (strcmp(fn, inc) == 0) { | ||
197 | LOG(LOG_ERROR, _("You must specify different directories in the " | ||
198 | "configuration in section `%s' under `%s' and `%s'."), | ||
199 | "FS", "DOWNLOADDIR", "INCOMINGDIR"); | ||
200 | |||
201 | FREE(filename); | ||
202 | FREENONNULL(fn); | ||
203 | FREENONNULL(inc); | ||
204 | |||
205 | return; | ||
206 | } | ||
207 | |||
186 | addLogEntry(_("Downloading `%s'"), name); | 208 | addLogEntry(_("Downloading `%s'"), name); |
187 | 209 | ||
188 | list = MALLOC(sizeof(DownloadList)); | 210 | list = MALLOC(sizeof(DownloadList)); |
@@ -194,10 +216,7 @@ static void initiateDownload(GtkTreeModel * model, | |||
194 | list->model = model; | 216 | list->model = model; |
195 | } | 217 | } |
196 | list->uri = ECRS_dupUri(uri); | 218 | list->uri = ECRS_dupUri(uri); |
197 | fn = getFileName("FS", | 219 | |
198 | "DOWNLOADDIR", | ||
199 | _("You must specify a directory in the configuration" | ||
200 | " in section `%s' under `%s'.")); | ||
201 | #ifdef WINDOWS | 220 | #ifdef WINDOWS |
202 | downDirLen = strlen(fn); | 221 | downDirLen = strlen(fn); |
203 | #endif | 222 | #endif |
@@ -243,17 +262,11 @@ static void initiateDownload(GtkTreeModel * model, | |||
243 | We truncate the hash here accordingly. */ | 262 | We truncate the hash here accordingly. */ |
244 | 263 | ||
245 | int diff; /* How much is INCOMINGDIR larger than DOWNLOADDIR */ | 264 | int diff; /* How much is INCOMINGDIR larger than DOWNLOADDIR */ |
246 | char *inc = getFileName("FS", | ||
247 | "INCOMINGDIR", | ||
248 | _("You must specify a directory in the configuration" | ||
249 | " in section `%s' under `%s'.")); | ||
250 | 265 | ||
251 | diff = downDirLen - strlen(inc); | 266 | diff = downDirLen - strlen(inc); |
252 | if (diff < 0) | 267 | if (diff < 0) |
253 | diff = 0; | 268 | diff = 0; |
254 | 269 | ||
255 | FREE(inc); | ||
256 | |||
257 | char *end = lnk + MAX_PATH - 5 - diff; /* 4 = ".lnk" */ | 270 | char *end = lnk + MAX_PATH - 5 - diff; /* 4 = ".lnk" */ |
258 | 271 | ||
259 | *end = 0; | 272 | *end = 0; |
@@ -264,6 +277,9 @@ static void initiateDownload(GtkTreeModel * model, | |||
264 | } | 277 | } |
265 | } | 278 | } |
266 | #endif | 279 | #endif |
280 | |||
281 | FREENONNULL(inc); | ||
282 | |||
267 | if (0 != STAT(pfx, | 283 | if (0 != STAT(pfx, |
268 | &sbuf)) { | 284 | &sbuf)) { |
269 | if (0 != SYMLINK(lnk, pfx)) | 285 | if (0 != SYMLINK(lnk, pfx)) |