@@ -496,10 +496,19 @@ @"%[prog]: -q / --quiet and -v / --verbose are mutually " @"exclusive!", @"prog", [OFApplication programName])]; [OFApplication terminateWithStatus: 1]; } + + if (_outputPath != nil && _detectFileName) { + [of_stderr writeLine: OF_LOCALIZED( + @"output_xor_detect_filename", + @"%[prog]: -o / --output and -O / --detect-filename are " + @"mutually exclusive!", + @"prog", [OFApplication programName])]; + [OFApplication terminateWithStatus: 1]; + } if (_outputPath != nil && _URLs.count > 1) { [of_stderr writeLine: OF_LOCALIZED(@"output_only_with_one_url", @"%[prog]: Cannot use -o / --output when more than one URL " @@ -930,18 +939,17 @@ _detectFileNameRequest = true; [_HTTPClient asyncPerformRequest: request]; return; } - [_currentFileName release]; - _currentFileName = nil; - _detectedFileName = false; - - if (!_quiet) - [of_stdout writeFormat: @"⇣ %@", URL.string]; - - if (_outputPath != nil) + if (!_detectedFileName) { + [_currentFileName release]; + _currentFileName = nil; + } else + _detectedFileName = false; + + if (_currentFileName == nil) _currentFileName = [_outputPath copy]; if (_currentFileName == nil) _currentFileName = [URL.path.lastPathComponent copy]; @@ -962,10 +970,13 @@ forKey: @"Range"]; } @catch (OFRetrieveItemAttributesFailedException *e) { } } + if (!_quiet) + [of_stdout writeFormat: @"⇣ %@", URL.string]; + request = [OFHTTPRequest requestWithURL: URL]; request.headers = clientHeaders; request.method = _method; _detectFileNameRequest = false;