Compare commits

..

1 Commits
v14.2 ... v14.0

Author SHA1 Message Date
Andrey Prygunkov
d53e3c113f version 14.0 2014-11-09 15:10:06 +00:00
21 changed files with 71 additions and 120 deletions

View File

@@ -1,23 +1,3 @@
nzbget-14.2:
- fixed: the program could crash during download when article cache was
active (more likely on very high download speeds);
- fixed: unlike to all other scripts the update-script should not be
automatically terminated when the program quits;
- fixed: XML-RPC method "history" returned invalid xml when used with
parameter "hidden=true" (JSON-RPC was fine).
nzbget-14.1:
- fixed: program could crash during unpack (Posix) or unpack failure
was reported (Windows);
- fixed: quick par-check could hang on certain nzb-files containing multiple
par-sets (occured only in 64 bit mode);
- fixed: menubar icon was not visible on OSX in dark mode;
- system sleep on idle state is now prevented during download and
post-processing (Mac OSX only);
- fixed: unrar may sometimes fail with message "no files to extract"
(certain Linux systems);
- fixed false memory leak warning when compiled in debug mode (Windows only);
nzbget-14.0:
- added article cache:
- new option "ArticleCache" defines memory limit to use for cache;

View File

@@ -219,6 +219,8 @@ osx_FILES = \
osx/Resources/Images/mainicon.icns \
osx/Resources/Images/statusicon.png \
osx/Resources/Images/statusicon@2x.png \
osx/Resources/Images/statusicon-inv.png \
osx/Resources/Images/statusicon-inv@2x.png \
osx/Resources/licenses/license-bootstrap.txt \
osx/Resources/licenses/license-jquery-GPL.txt \
osx/Resources/licenses/license-jquery-MIT.txt \

View File

@@ -489,6 +489,8 @@ osx_FILES = \
osx/Resources/Images/mainicon.icns \
osx/Resources/Images/statusicon.png \
osx/Resources/Images/statusicon@2x.png \
osx/Resources/Images/statusicon-inv.png \
osx/Resources/Images/statusicon-inv@2x.png \
osx/Resources/licenses/license-bootstrap.txt \
osx/Resources/licenses/license-jquery-GPL.txt \
osx/Resources/licenses/license-jquery-MIT.txt \

20
configure vendored
View File

@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.61 for nzbget 14.2.
# Generated by GNU Autoconf 2.61 for nzbget 14.0.
#
# Report bugs to <hugbug@users.sourceforge.net>.
#
@@ -574,8 +574,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='nzbget'
PACKAGE_TARNAME='nzbget'
PACKAGE_VERSION='14.2'
PACKAGE_STRING='nzbget 14.2'
PACKAGE_VERSION='14.0'
PACKAGE_STRING='nzbget 14.0'
PACKAGE_BUGREPORT='hugbug@users.sourceforge.net'
ac_unique_file="daemon/main/nzbget.cpp"
@@ -1233,7 +1233,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures nzbget 14.2 to adapt to many kinds of systems.
\`configure' configures nzbget 14.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1304,7 +1304,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of nzbget 14.2:";;
short | recursive ) echo "Configuration of nzbget 14.0:";;
esac
cat <<\_ACEOF
@@ -1435,7 +1435,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
nzbget configure 14.2
nzbget configure 14.0
generated by GNU Autoconf 2.61
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1449,7 +1449,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by nzbget $as_me 14.2, which was
It was created by nzbget $as_me 14.0, which was
generated by GNU Autoconf 2.61. Invocation command line was
$ $0 $@
@@ -2245,7 +2245,7 @@ fi
# Define the identity of the package.
PACKAGE=nzbget
VERSION=14.2
VERSION=14.0
cat >>confdefs.h <<_ACEOF
@@ -10756,7 +10756,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by nzbget $as_me 14.2, which was
This file was extended by nzbget $as_me 14.0, which was
generated by GNU Autoconf 2.61. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -10809,7 +10809,7 @@ Report bugs to <bug-autoconf@gnu.org>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
nzbget config.status 14.2
nzbget config.status 14.0
configured by $0, generated by GNU Autoconf 2.61,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"

View File

@@ -23,9 +23,9 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
AC_INIT(nzbget, 14.2, hugbug@users.sourceforge.net)
AC_INIT(nzbget, 14.0, hugbug@users.sourceforge.net)
AC_CANONICAL_SYSTEM
AM_INIT_AUTOMAKE(nzbget, 14.2)
AM_INIT_AUTOMAKE(nzbget, 14.0)
AC_CONFIG_SRCDIR([daemon/main/nzbget.cpp])
AC_CONFIG_HEADERS([config.h])

View File

@@ -1,7 +1,7 @@
/*
* This file is part of nzbget
*
* Copyright (C) 2013-2015 Andrey Prygunkov <hugbug@users.sourceforge.net>
* Copyright (C) 2013-2014 Andrey Prygunkov <hugbug@users.sourceforge.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -229,9 +229,6 @@ bool Maintenance::ReadPackageInfoStr(const char* szKey, char** pValue)
void UpdateScriptController::Run()
{
// the update-script should not be automatically terminated when the program quits
UnregisterRunningScript();
m_iPrefixLen = 0;
PrintMessage(Message::mkInfo, "Executing update-script %s", GetScript());

View File

@@ -130,7 +130,7 @@ int main(int argc, char *argv[], char *argp[])
#ifdef _DEBUG
_CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG);
_CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF
#ifdef DEBUG_CRTMEMLEAKS
| _CRTDBG_CHECK_CRT_DF | _CRTDBG_CHECK_ALWAYS_DF
#endif
@@ -167,6 +167,12 @@ int main(int argc, char *argv[], char *argp[])
RunMain();
#ifdef WIN32
#ifdef _DEBUG
_CrtDumpMemoryLeaks();
#endif
#endif
return 0;
}

View File

@@ -627,7 +627,14 @@ void ArticleWriter::CompleteFileParts()
void ArticleWriter::FlushCache()
{
detail("Flushing cache for %s", m_szInfoName);
char szInfoFilename[1024];
// the locking is needed for accessing the members of NZBInfo
DownloadQueue::Lock();
snprintf(szInfoFilename, 1024, "%s%c%s", m_pFileInfo->GetNZBInfo()->GetName(), (int)PATH_SEPARATOR, m_pFileInfo->GetFilename());
szInfoFilename[1024-1] = '\0';
DownloadQueue::Unlock();
detail("Flushing cache for %s", szInfoFilename);
bool bDirectWrite = g_pOptions->GetDirectWrite() && m_pFileInfo->GetOutputInitialized();
FILE* outfile = NULL;
@@ -729,7 +736,7 @@ void ArticleWriter::FlushCache()
g_pArticleCache->UnlockFlush();
detail("Saved %i articles (%.2f MB) from cache into disk for %s", iFlushedArticles, (float)(iFlushedSize / 1024.0 / 1024.0), m_szInfoName);
detail("Saved %i articles (%.2f MB) from cache into disk for %s", iFlushedArticles, (float)(iFlushedSize / 1024.0 / 1024.0), szInfoFilename);
}
bool ArticleWriter::MoveCompletedFiles(NZBInfo* pNZBInfo, const char* szOldDestDir)
@@ -962,8 +969,6 @@ bool ArticleCache::CheckFlush(bool bFlushEverything)
{
debug("Checking cache, Allocated: %i, FlushEverything: %i", m_iAllocated, (int)bFlushEverything);
char szInfoName[1024];
DownloadQueue* pDownloadQueue = DownloadQueue::Lock();
for (NZBList::iterator it = pDownloadQueue->GetQueue()->begin(); it != pDownloadQueue->GetQueue()->end() && !m_pFileInfo; it++)
{
@@ -974,8 +979,6 @@ bool ArticleCache::CheckFlush(bool bFlushEverything)
if (pFileInfo->GetCachedArticles() > 0 && (pFileInfo->GetActiveDownloads() == 0 || bFlushEverything))
{
m_pFileInfo = pFileInfo;
snprintf(szInfoName, 1024, "%s%c%s", m_pFileInfo->GetNZBInfo()->GetName(), (int)PATH_SEPARATOR, m_pFileInfo->GetFilename());
szInfoName[1024-1] = '\0';
break;
}
}
@@ -986,7 +989,6 @@ bool ArticleCache::CheckFlush(bool bFlushEverything)
{
ArticleWriter* pArticleWriter = new ArticleWriter();
pArticleWriter->SetFileInfo(m_pFileInfo);
pArticleWriter->SetInfoName(szInfoName);
pArticleWriter->FlushCache();
delete pArticleWriter;
m_pFileInfo = NULL;

View File

@@ -1396,9 +1396,7 @@ bool ParChecker::VerifySuccessDataFile(void* pDiskfile, void* pSourcefile, unsig
// extend lDownloadCrc to block size
lDownloadCrc = CRCUpdateBlock(lDownloadCrc ^ 0xFFFFFFFF,
(size_t)(blocksize * packet->BlockCount() > pSourceFile->GetTargetFile()->FileSize() ?
blocksize * packet->BlockCount() - pSourceFile->GetTargetFile()->FileSize() : 0)
) ^ 0xFFFFFFFF;
(size_t)(blocksize * packet->BlockCount() - pSourceFile->GetTargetFile()->FileSize())) ^ 0xFFFFFFFF;
debug("Download-CRC: %.8x", lDownloadCrc);
// compute file CRC using CRCs of blocks

View File

@@ -100,7 +100,7 @@ void UnpackController::Run()
m_szPassword[0] = '\0';
m_szFinalDir[0] = '\0';
m_bFinalDirCreated = false;
NZBParameter* pParameter = m_pPostInfo->GetNZBInfo()->GetParameters()->Find("*Unpack:", false);
bool bUnpack = !(pParameter && !strcasecmp(pParameter->GetValue(), "no"));
@@ -136,6 +136,10 @@ void UnpackController::Run()
if (bUnpack && bHasFiles)
{
PrintMessage(Message::mkInfo, "Unpacking %s", m_szName);
CreateUnpackDir();
m_bUnpackOK = true;
m_bUnpackStartError = false;
m_bUnpackSpaceError = false;
@@ -143,10 +147,6 @@ void UnpackController::Run()
m_bUnpackPasswordError5 = false;
m_bAutoTerminated = false;
PrintMessage(Message::mkInfo, "Unpacking %s", m_szName);
CreateUnpackDir();
if (m_bHasRarFiles || m_bHasNonStdRarFiles)
{
ExecuteUnrar();
@@ -209,17 +209,11 @@ void UnpackController::ExecuteUnrar()
if (strlen(m_szPassword) > 0)
{
snprintf(szPasswordParam, 1024, "-p%s", m_szPassword);
szPasswordParam[1024-1] = '\0';
szArgs[3] = szPasswordParam;
}
szArgs[4] = "-o+";
szArgs[5] = m_bHasNonStdRarFiles ? "*.*" : "*.rar";
char szUnpackDirParam[1024];
snprintf(szUnpackDirParam, 1024, "%s%c", m_szUnpackDir, PATH_SEPARATOR);
szUnpackDirParam[1024-1] = '\0';
szArgs[6] = szUnpackDirParam;
szArgs[6] = m_szUnpackDir;
szArgs[7] = NULL;
SetArgs(szArgs, false);
@@ -262,13 +256,11 @@ void UnpackController::ExecuteSevenZip(bool bMultiVolumes)
if (strlen(m_szPassword) > 0)
{
snprintf(szPasswordParam, 1024, "-p%s", m_szPassword);
szPasswordParam[1024-1] = '\0';
szArgs[3] = szPasswordParam;
}
char szUnpackDirParam[1024];
snprintf(szUnpackDirParam, 1024, "-o%s", m_szUnpackDir);
szUnpackDirParam[1024-1] = '\0';
szArgs[4] = szUnpackDirParam;
szArgs[5] = bMultiVolumes ? "*.7z.001" : "*.7z";

View File

@@ -782,11 +782,6 @@ void QueueCoordinator::StatFileInfo(FileInfo* pFileInfo, bool bCompleted)
void QueueCoordinator::DeleteFileInfo(DownloadQueue* pDownloadQueue, FileInfo* pFileInfo, bool bCompleted)
{
while (g_pArticleCache->FileBusy(pFileInfo))
{
usleep(5*1000);
}
bool fileDeleted = pFileInfo->GetDeleted();
pFileInfo->SetDeleted(true);
@@ -990,6 +985,11 @@ bool QueueCoordinator::DeleteQueueEntry(DownloadQueue* pDownloadQueue, FileInfo*
}
}
while (g_pArticleCache->FileBusy(pFileInfo))
{
usleep(20*1000);
}
if (!bDownloading)
{
DeleteFileInfo(pDownloadQueue, pFileInfo, false);

View File

@@ -2539,7 +2539,8 @@ void HistoryXmlCommand::Execute()
"<member><name>DupeScore</name><value><i4>%i</i4></value></member>\n"
"<member><name>DupeMode</name><value><string>%s</string></value></member>\n"
"<member><name>DupStatus</name><value><string>%s</string></value></member>\n"
"<member><name>Status</name><value><string>%s</string></value></member>\n";
"<member><name>Status</name><value><string>%s</string></value></member>\n"
"</struct></value>\n";
const char* JSON_HISTORY_DUP_ITEM =
"{\n"

View File

@@ -220,11 +220,6 @@ ScriptController::~ScriptController()
free(m_szArgs);
}
UnregisterRunningScript();
}
void ScriptController::UnregisterRunningScript()
{
m_mutexRunning.Lock();
m_RunningScripts.erase(std::find(m_RunningScripts.begin(), m_RunningScripts.end(), this));
m_mutexRunning.Unlock();
@@ -644,7 +639,7 @@ void ScriptController::Terminate()
// if the child process has its own group (setsid() was successful), kill the whole group
hKillProcess = -hKillProcess;
}
bool bOK = hKillProcess && kill(hKillProcess, SIGKILL) == 0;
bool bOK = kill(hKillProcess, SIGKILL) == 0;
#endif
if (bOK)

View File

@@ -85,7 +85,6 @@ protected:
void ResetEnv();
void PrepareEnvOptions(const char* szStripPrefix);
void PrepareArgs();
void UnregisterRunningScript();
public:
ScriptController();

View File

@@ -71,7 +71,7 @@
/* Define to 1 if spinlocks are supported */
#define HAVE_SPINLOCK
#define VERSION "14.2"
#define VERSION "14.0"
/* Suppress warnings */
#define _CRT_SECURE_NO_DEPRECATE

View File

@@ -1,7 +1,7 @@
/*
* This file is part of nzbget
*
* Copyright (C) 2007-2014 Andrey Prygunkov <hugbug@users.sourceforge.net>
* Copyright (C) 2007-2013 Andrey Prygunkov <hugbug@users.sourceforge.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -23,7 +23,6 @@
*/
#import <Cocoa/Cocoa.h>
#import <IOKit/pwr_mgt/IOPMLib.h>
#import "DaemonController.h"
@interface MainApp : NSObject <NSMenuDelegate, DaemonControllerDelegate> {
@@ -50,8 +49,6 @@
int connectionAttempts;
BOOL restarting;
BOOL resetting;
BOOL preventingSleep;
IOPMAssertionID sleepID;
NSTimer* restartTimer;
NSMutableArray* categoryItems;
NSMutableArray* categoryDirs;
@@ -81,6 +78,4 @@
- (IBAction)showInFinderClicked:(id)sender;
- (void)updateSleepState:(BOOL)preventSleep;
@end

View File

@@ -1,7 +1,7 @@
/*
* This file is part of nzbget
*
* Copyright (C) 2007-2014 Andrey Prygunkov <hugbug@users.sourceforge.net>
* Copyright (C) 2007-2013 Andrey Prygunkov <hugbug@users.sourceforge.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -149,9 +149,8 @@ void InstallSignalHandlers()
statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSSquareStatusItemLength];
[statusItem setHighlightMode:YES];
[statusItem setMenu:statusMenu];
NSImage* icon = [NSImage imageNamed:@"statusicon.png"];
[icon setTemplate:YES];
[statusItem setImage:icon];
[statusItem setImage:[NSImage imageNamed:@"statusicon.png"]];
[statusItem setAlternateImage:[NSImage imageNamed:@"statusicon-inv.png"]];
}
else {
statusItem = nil;
@@ -452,8 +451,7 @@ void InstallSignalHandlers()
NSString* info1 = @"";
NSString* info2 = nil;
BOOL preventSleep = NO;
NSDictionary* status = [daemonController status];
if (restarting || daemonController.restarting) {
info1 = NSLocalizedString(@"Status.Restarting", nil);
@@ -462,7 +460,6 @@ void InstallSignalHandlers()
} else if ([(NSNumber*)[status objectForKey:@"ServerStandBy"] integerValue] == 1) {
if ([(NSNumber*)[status objectForKey:@"PostJobCount"] integerValue] > 0) {
info1 = NSLocalizedString(@"Status.Post-Processing", nil);
preventSleep = YES;
}
else if ([(NSNumber*)[status objectForKey:@"UrlCount"] integerValue] > 0) {
info1 = NSLocalizedString(@"Status.Fetching NZBs", nil);
@@ -479,19 +476,14 @@ void InstallSignalHandlers()
} else {
int speed = [(NSNumber*)[status objectForKey:@"DownloadRate"] integerValue];
info1 = [NSString stringWithFormat:NSLocalizedString(@"Status.Downloading", nil), speed / 1024];
preventSleep = YES;
if (speed > 0) {
long long remaining = ([(NSNumber*)[status objectForKey:@"RemainingSizeHi"] integerValue] << 32) + [(NSNumber*)[status objectForKey:@"RemainingSizeLo"] integerValue];
int secondsLeft = remaining / speed;
info2 = [NSString stringWithFormat:NSLocalizedString(@"Status.Left", nil), [self formatTimeLeft:secondsLeft]];
}
if (speed > 0) {
long long remaining = ([(NSNumber*)[status objectForKey:@"RemainingSizeHi"] integerValue] << 32) + [(NSNumber*)[status objectForKey:@"RemainingSizeLo"] integerValue];
int secondsLeft = remaining / speed;
info2 = [NSString stringWithFormat:NSLocalizedString(@"Status.Left", nil), [self formatTimeLeft:secondsLeft]];
}
}
if (preventSleep != preventingSleep) {
[self updateSleepState:preventSleep];
}
[info1Item setTitle:info1];
[info2Item setHidden:info2 == nil];
@@ -500,19 +492,6 @@ void InstallSignalHandlers()
}
}
- (void)updateSleepState:(BOOL)preventSleep {
if (preventSleep) {
sleepID = 0;
NSString* reason = NSLocalizedString(@"Status.PreventSleep", nil);
IOPMAssertionCreateWithName(kIOPMAssertionTypePreventUserIdleSystemSleep,
kIOPMAssertionLevelOn, (__bridge CFStringRef)reason, &sleepID);
}
else if (sleepID != 0) {
IOPMAssertionRelease(sleepID);
}
preventingSleep = preventSleep;
}
- (NSString*)formatTimeLeft:(int)sec {
int days = floor(sec / 86400);
int hours = floor((sec % 86400) / 3600);

View File

@@ -22,15 +22,16 @@
F29ABB2C17C00E190023A423 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97325FDCFA39411CA2CEA /* Foundation.framework */; };
F2A55D3717C4CA9000D6FFE1 /* daemon in Resources */ = {isa = PBXBuildFile; fileRef = F2A55D3617C4CA9000D6FFE1 /* daemon */; };
F2A55D3B17C4CAF800D6FFE1 /* tools in Resources */ = {isa = PBXBuildFile; fileRef = F2A55D3A17C4CAF800D6FFE1 /* tools */; };
F2A6E11017C8E42300D910CB /* statusicon-inv@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F2A6E10E17C8E42300D910CB /* statusicon-inv@2x.png */; };
F2A6E11117C8E42300D910CB /* statusicon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F2A6E10F17C8E42300D910CB /* statusicon@2x.png */; };
F2BBD9C613E083160037473A /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = F2FC0F8B13BF595700D834E3 /* Credits.rtf */; };
F2C040481A18E946003EAB32 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F2C040471A18E946003EAB32 /* IOKit.framework */; };
F2CD856817C282080019D2CA /* RPC.m in Sources */ = {isa = PBXBuildFile; fileRef = F2CD856517C254A90019D2CA /* RPC.m */; };
F2CD856B17C282820019D2CA /* WebClient.m in Sources */ = {isa = PBXBuildFile; fileRef = F2CD856A17C282800019D2CA /* WebClient.m */; };
F2D2A2F113CBA680000824B4 /* WelcomeDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = F2D2A2EF13CBA680000824B4 /* WelcomeDialog.m */; };
F2F9804A17C9081D004623D6 /* licenses in Resources */ = {isa = PBXBuildFile; fileRef = F2F9804917C9081D004623D6 /* licenses */; };
F2FCD73B13BB9CE900FC81F5 /* mainicon.icns in Resources */ = {isa = PBXBuildFile; fileRef = F2FCD73A13BB9CE900FC81F5 /* mainicon.icns */; };
F2FCD7D913BBDAED00FC81F5 /* statusicon.png in Resources */ = {isa = PBXBuildFile; fileRef = F2FCD7D813BBDAED00FC81F5 /* statusicon.png */; };
F2FCD84D13BCFD0900FC81F5 /* statusicon-inv.png in Resources */ = {isa = PBXBuildFile; fileRef = F2FCD84C13BCFD0900FC81F5 /* statusicon-inv.png */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
@@ -56,8 +57,8 @@
F29ABB2417BFC03D0023A423 /* DaemonController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DaemonController.m; sourceTree = "<group>"; };
F2A55D3617C4CA9000D6FFE1 /* daemon */ = {isa = PBXFileReference; lastKnownFileType = folder; name = daemon; path = Resources/daemon; sourceTree = "<group>"; };
F2A55D3A17C4CAF800D6FFE1 /* tools */ = {isa = PBXFileReference; lastKnownFileType = folder; name = tools; path = Resources/tools; sourceTree = "<group>"; };
F2A6E10E17C8E42300D910CB /* statusicon-inv@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "statusicon-inv@2x.png"; path = "Images/statusicon-inv@2x.png"; sourceTree = "<group>"; };
F2A6E10F17C8E42300D910CB /* statusicon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "statusicon@2x.png"; path = "Images/statusicon@2x.png"; sourceTree = "<group>"; };
F2C040471A18E946003EAB32 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/IOKit.framework; sourceTree = DEVELOPER_DIR; };
F2CD856417C254A90019D2CA /* RPC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RPC.h; sourceTree = "<group>"; };
F2CD856517C254A90019D2CA /* RPC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RPC.m; sourceTree = "<group>"; };
F2CD856917C282800019D2CA /* WebClient.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebClient.h; sourceTree = "<group>"; };
@@ -68,6 +69,7 @@
F2FC0F8B13BF595700D834E3 /* Credits.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = Credits.rtf; path = Resources/Credits.rtf; sourceTree = "<group>"; };
F2FCD73A13BB9CE900FC81F5 /* mainicon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = mainicon.icns; path = Images/mainicon.icns; sourceTree = "<group>"; };
F2FCD7D813BBDAED00FC81F5 /* statusicon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = statusicon.png; path = Images/statusicon.png; sourceTree = "<group>"; };
F2FCD84C13BCFD0900FC81F5 /* statusicon-inv.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "statusicon-inv.png"; path = "Images/statusicon-inv.png"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -75,7 +77,6 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
F2C040481A18E946003EAB32 /* IOKit.framework in Frameworks */,
F20FC6E417C6BC8D00C392AC /* Security.framework in Frameworks */,
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
F29ABB2B17C00E150023A423 /* AppKit.framework in Frameworks */,
@@ -107,7 +108,7 @@
29B97323FDCFA39411CA2CEA /* Frameworks */,
19C28FACFE9D520D11CA2CBB /* Products */,
);
name = NZBGet;
name = "NZBGet";
sourceTree = "<group>";
};
29B97315FDCFA39411CA2CEA /* Other Sources */ = {
@@ -136,7 +137,6 @@
29B97323FDCFA39411CA2CEA /* Frameworks */ = {
isa = PBXGroup;
children = (
F2C040471A18E946003EAB32 /* IOKit.framework */,
29B97324FDCFA39411CA2CEA /* AppKit.framework */,
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
29B97325FDCFA39411CA2CEA /* Foundation.framework */,
@@ -201,7 +201,9 @@
isa = PBXGroup;
children = (
F2FCD73A13BB9CE900FC81F5 /* mainicon.icns */,
F2A6E10E17C8E42300D910CB /* statusicon-inv@2x.png */,
F2A6E10F17C8E42300D910CB /* statusicon@2x.png */,
F2FCD84C13BCFD0900FC81F5 /* statusicon-inv.png */,
F2FCD7D813BBDAED00FC81F5 /* statusicon.png */,
);
name = Images;
@@ -225,7 +227,7 @@
);
name = NZBGet;
productInstallPath = "$(HOME)/Applications";
productName = NZBGet;
productName = "NZBGet";
productReference = 8D1107320486CEB800E47090 /* NZBGet.app */;
productType = "com.apple.product-type.application";
};
@@ -267,6 +269,7 @@
files = (
F2FCD73B13BB9CE900FC81F5 /* mainicon.icns in Resources */,
F2FCD7D913BBDAED00FC81F5 /* statusicon.png in Resources */,
F2FCD84D13BCFD0900FC81F5 /* statusicon-inv.png in Resources */,
F2BBD9C613E083160037473A /* Credits.rtf in Resources */,
F26D959317C0E81800E58E5D /* Welcome.rtf in Resources */,
F26D959517C0E86300E58E5D /* MainApp.xib in Resources */,
@@ -275,6 +278,7 @@
F26D959B17C0E89D00E58E5D /* Localizable.strings in Resources */,
F2A55D3717C4CA9000D6FFE1 /* daemon in Resources */,
F2A55D3B17C4CAF800D6FFE1 /* tools in Resources */,
F2A6E11017C8E42300D910CB /* statusicon-inv@2x.png in Resources */,
F2A6E11117C8E42300D910CB /* statusicon@2x.png in Resources */,
F2F9804A17C9081D004623D6 /* licenses in Resources */,
);

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 480 B

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 820 B

View File

@@ -31,7 +31,6 @@
"Status.Left"="%@ left";
"Status.NoConnection"="Downloader Not Responding";
"Status.Restarting"="Restarting";
"Status.PreventSleep"="NZBGet is downloading or post-processing";
"Left.Days"="%i days";
"Left.Days.Hours"="%id %ih";