diff --git a/COPYING b/COPYING index 7e2fd1412..836e44d8b 100644 --- a/COPYING +++ b/COPYING @@ -1,4 +1,4 @@ -Copyright 2005-2018. All code is copyrighted by the respective authors. +Copyright 2005-2019. All code is copyrighted by the respective authors. Transmission can be redistributed and/or modified under the terms of the GNU GPLv2 (http://www.gnu.org/licenses/license-list.html#GPLv2), diff --git a/autogen.sh b/autogen.sh index 385f15625..f63e5d7d8 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,31 +1,28 @@ #!/bin/sh -srcdir=`dirname $0` +srcdir=$(dirname "$0") test -z "$srcdir" && srcdir=. -ORIGDIR=`pwd` -cd "$srcdir" +ORIGDIR=$(pwd) +cd "$srcdir" || exit 1 PROJECT=Transmission GETTEXTIZE="glib-gettextize" $GETTEXTIZE --version < /dev/null > /dev/null 2>&1 if test $? -ne 0; then - GETTEXTIZE="" + GETTEXTIZE="" fi LIBTOOLIZE=libtoolize -if libtoolize --help >/dev/null 2>&1 -then +if libtoolize --help > /dev/null 2>&1; then : -elif glibtoolize --help >/dev/null 2>&1 -then +elif glibtoolize --help > /dev/null 2>&1; then LIBTOOLIZE=glibtoolize fi export LIBTOOLIZE ./update-version-h.sh -autoreconf -fi || exit 1; - +autoreconf -fi || exit 1 if test "$GETTEXTIZE"; then echo "Creating aclocal.m4 ..." @@ -41,10 +38,9 @@ fi cd "$ORIGDIR" || exit $? if test -z "$AUTOGEN_SUBDIR_MODE"; then - echo Running $srcdir/configure "$@" - $srcdir/configure "$@" + echo Running $srcdir/configure "$@" + $srcdir/configure "$@" - echo - echo "Now type 'make' to compile $PROJECT." + echo + echo "Now type 'make' to compile $PROJECT." fi - diff --git a/cli/transmission-cli.1 b/cli/transmission-cli.1 index 6138a9670..a071b4325 100644 --- a/cli/transmission-cli.1 +++ b/cli/transmission-cli.1 @@ -50,7 +50,7 @@ The options are as follows: Enable peer blocklists. Transmission understands the bluetack blocklist file format. New blocklists can be added by copying them into the config-dir's "blocklists" subdirectory. .It Fl B Fl -no-blocklist -Disble blocklists. +Disable blocklists. .It Fl d, -downlimit Ar number Set the maximum download speed in KB/s .It Fl D, -no-downlimit diff --git a/cmake/Transmission.rc.in b/cmake/Transmission.rc.in index fdb34d042..ebb7ef8bc 100644 --- a/cmake/Transmission.rc.in +++ b/cmake/Transmission.rc.in @@ -32,7 +32,7 @@ BEGIN VALUE "FileDescription", "${TR_FILE_DESCRIPTION}" VALUE "FileVersion", LONG_VERSION_STRING VALUE "InternalName", "${TR_INTERNAL_NAME}" - VALUE "LegalCopyright", "2005-2016 Transmission Project" + VALUE "LegalCopyright", "2005-2019 Transmission Project" VALUE "OriginalFilename", "${TR_ORIGINAL_FILENAME}" VALUE "ProductName", "Transmission" VALUE "ProductVersion", LONG_VERSION_STRING diff --git a/daemon/my-valgrind.sh b/daemon/my-valgrind.sh index 7db09f934..52c27f4aa 100755 --- a/daemon/my-valgrind.sh +++ b/daemon/my-valgrind.sh @@ -1,4 +1,4 @@ -#/bin/sh +#!/bin/sh export G_SLICE=always-malloc export G_DEBUG=gc-friendly export GLIBCXX_FORCE_NEW=1 diff --git a/daemon/transmission-daemon.service b/daemon/transmission-daemon.service index 8a1d429c7..1009f40a7 100644 --- a/daemon/transmission-daemon.service +++ b/daemon/transmission-daemon.service @@ -7,6 +7,7 @@ User=transmission Type=notify ExecStart=/usr/bin/transmission-daemon -f --log-error ExecReload=/bin/kill -s HUP $MAINPID +NoNewPrivileges=true [Install] WantedBy=multi-user.target diff --git a/extras/send-email-when-torrent-done.sh b/extras/send-email-when-torrent-done.sh index ff4416486..79d6d8fa2 100755 --- a/extras/send-email-when-torrent-done.sh +++ b/extras/send-email-when-torrent-done.sh @@ -47,7 +47,7 @@ SMTP_SERVER=your.smtp.server SUBJECT="Torrent Done!" FROM_ADDR="transmission@localhost.localdomain" -TMPFILE=`mktemp -t transmission.XXXXXXXXXX` -echo "Transmission finished downloading \"$TR_TORRENT_NAME\" on $TR_TIME_LOCALTIME" >$TMPFILE -$NAIL -v -S from="$FROM_ADDR" -S smtp -s "$SUBJECT" -S smtp=$SMTP_SERVER "$TO_ADDR" < $TMPFILE -rm $TMPFILE +TMPFILE=$(mktemp -t transmission.XXXXXXXXXX) +echo "Transmission finished downloading \"$TR_TORRENT_NAME\" on $TR_TIME_LOCALTIME" > "$TMPFILE" +$NAIL -v -S from="$FROM_ADDR" -S smtp -s "$SUBJECT" -S smtp=$SMTP_SERVER "$TO_ADDR" < "$TMPFILE" +rm "$TMPFILE" diff --git a/gtk/main.c b/gtk/main.c index 130821d5a..8b9043a01 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -59,7 +59,7 @@ #define SHOW_LICENSE static char const* LICENSE = - "Copyright 2005-2018. All code is copyrighted by the respective authors.\n" + "Copyright 2005-2019. All code is copyrighted by the respective authors.\n" "\n" "Transmission can be redistributed and/or modified under the terms of the " "GNU GPL versions 2 or 3 or by any future license endorsed by Mnemosyne LLC.\n" diff --git a/gtk/my-valgrind.sh b/gtk/my-valgrind.sh index 87d960b8e..76683ae5b 100755 --- a/gtk/my-valgrind.sh +++ b/gtk/my-valgrind.sh @@ -1,4 +1,4 @@ -#/bin/sh +#!/bin/sh export G_SLICE=always-malloc export G_DEBUG=gc-friendly export GLIBCXX_FORCE_NEW=1 diff --git a/libtransmission/blocklist-test.c b/libtransmission/blocklist-test.c index 4d01c0b65..3f443ec52 100644 --- a/libtransmission/blocklist-test.c +++ b/libtransmission/blocklist-test.c @@ -19,12 +19,14 @@ #include "libtransmission-test.h" static char const* contents1 = + "10.5.6.7/8\n" "Austin Law Firm:216.16.1.144-216.16.1.151\n" "Sargent Controls and Aerospace:216.19.18.0-216.19.18.255\n" "Corel Corporation:216.21.157.192-216.21.157.223\n" "Fox Speed Channel:216.79.131.192-216.79.131.223\n"; static char const* contents2 = + "10.5.6.7/8\n" "Austin Law Firm:216.16.1.144-216.16.1.151\n" "Sargent Controls and Aerospace:216.19.18.0-216.19.18.255\n" "Corel Corporation:216.21.157.192-216.21.157.223\n" @@ -70,7 +72,7 @@ static int test_parsing(void) tr_free(path); tr_sessionReloadBlocklists(session); check(tr_blocklistExists(session)); - check_int(tr_blocklistGetRuleCount(session), ==, 4); + check_int(tr_blocklistGetRuleCount(session), ==, 5); /* enable the blocklist */ check(!tr_blocklistIsEnabled(session)); @@ -78,6 +80,8 @@ static int test_parsing(void) check(tr_blocklistIsEnabled(session)); /* test blocked addresses */ + check(!address_is_blocked(session, "0.0.0.1")); + check(address_is_blocked(session, "10.1.2.3")); check(!address_is_blocked(session, "216.16.1.143")); check(address_is_blocked(session, "216.16.1.144")); check(address_is_blocked(session, "216.16.1.145")); @@ -116,22 +120,22 @@ static int test_updating(void) /* test that updated source files will get loaded */ create_text_file(path, contents1); tr_sessionReloadBlocklists(session); - check_int(tr_blocklistGetRuleCount(session), ==, 4); + check_int(tr_blocklistGetRuleCount(session), ==, 5); /* test that updated source files will get loaded */ create_text_file(path, contents2); tr_sessionReloadBlocklists(session); - check_int(tr_blocklistGetRuleCount(session), ==, 5); + check_int(tr_blocklistGetRuleCount(session), ==, 6); /* test that updated source files will get loaded */ create_text_file(path, contents1); tr_sessionReloadBlocklists(session); - check_int(tr_blocklistGetRuleCount(session), ==, 4); + check_int(tr_blocklistGetRuleCount(session), ==, 5); /* ensure that new files, if bad, get skipped */ create_text_file(path, "# nothing useful\n"); tr_sessionReloadBlocklists(session); - check_int(tr_blocklistGetRuleCount(session), ==, 4); + check_int(tr_blocklistGetRuleCount(session), ==, 5); /* cleanup */ libttest_session_close(session); diff --git a/libtransmission/blocklist.c b/libtransmission/blocklist.c index 434c999db..c6e37ae82 100644 --- a/libtransmission/blocklist.c +++ b/libtransmission/blocklist.c @@ -301,9 +301,38 @@ static bool parseLine2(char const* line, struct tr_ipv4_range* range) return true; } +/* + * CIDR notation: "0.0.0.0/8", IPv4 only + * https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation + */ +static bool parseLine3(char const* line, struct tr_ipv4_range* range) { + unsigned ip[4]; + unsigned pflen; + uint32_t ip_u; + uint32_t mask = 0xffffffff; + + if (sscanf(line, "%u.%u.%u.%u/%u", &ip[0], &ip[1], &ip[2], &ip[3], &pflen) != 5) { + return false; + } + + if (pflen > 32 || ip[0] > 0xff || ip[1] > 0xff || ip[2] > 0xff || ip[3] > 0xff) { + return false; + } + + /* this is host order */ + mask <<= 32 - pflen; + ip_u = ip[0] << 24 | ip[1] << 16 | ip[2] << 8 | ip[3]; + + /* fill the non-prefix bits the way we need it */ + range->begin = ip_u & mask; + range->end = ip_u | (~mask); + + return true; +} + static bool parseLine(char const* line, struct tr_ipv4_range* range) { - return parseLine1(line, range) || parseLine2(line, range); + return parseLine1(line, range) || parseLine2(line, range) || parseLine3(line, range); } static int compareAddressRangesByFirstAddress(void const* va, void const* vb) diff --git a/libtransmission/fail.sh b/libtransmission/fail.sh index 22a6171ec..d0beda970 100755 --- a/libtransmission/fail.sh +++ b/libtransmission/fail.sh @@ -1,7 +1,8 @@ +#!/bin/sh err=0 count=0 while [ $err -eq 0 ]; do - count=$((count+1)) + count=$((count + 1)) echo starting run number $count make check err=$? diff --git a/macosx/Controller.h b/macosx/Controller.h index 43f3f3e69..f35d91fef 100644 --- a/macosx/Controller.h +++ b/macosx/Controller.h @@ -1,5 +1,5 @@ /****************************************************************************** - * Copyright (c) 2005-2012 Transmission authors and contributors + * Copyright (c) 2005-2019 Transmission authors and contributors * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), diff --git a/macosx/Controller.m b/macosx/Controller.m index 6773745db..a80431ab2 100644 --- a/macosx/Controller.m +++ b/macosx/Controller.m @@ -1,5 +1,5 @@ /****************************************************************************** - * Copyright (c) 2005-2012 Transmission authors and contributors + * Copyright (c) 2005-2019 Transmission authors and contributors * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), diff --git a/macosx/Info.plist.in b/macosx/Info.plist.in index 2d2f246f3..705b8304a 100644 --- a/macosx/Info.plist.in +++ b/macosx/Info.plist.in @@ -72,7 +72,7 @@ NSHumanReadableCopyright - Copyright © 2005-2016 The Transmission Project + Copyright © 2005-2019 The Transmission Project NSMainNibFile MainMenu NSPrincipalClass diff --git a/macosx/NSStringAdditions.h b/macosx/NSStringAdditions.h index a1a973e10..e3d931ce0 100644 --- a/macosx/NSStringAdditions.h +++ b/macosx/NSStringAdditions.h @@ -1,5 +1,5 @@ /****************************************************************************** - * Copyright (c) 2005-2012 Transmission authors and contributors + * Copyright (c) 2005-2019 Transmission authors and contributors * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), diff --git a/macosx/NSStringAdditions.m b/macosx/NSStringAdditions.m index 79db9959f..95b5d1118 100644 --- a/macosx/NSStringAdditions.m +++ b/macosx/NSStringAdditions.m @@ -1,5 +1,5 @@ /****************************************************************************** - * Copyright (c) 2005-2012 Transmission authors and contributors + * Copyright (c) 2005-2019 Transmission authors and contributors * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), diff --git a/macosx/PrefsController.h b/macosx/PrefsController.h index e6ec1ecf5..3717e7c2c 100644 --- a/macosx/PrefsController.h +++ b/macosx/PrefsController.h @@ -1,5 +1,5 @@ /****************************************************************************** - * Copyright (c) 2005-2012 Transmission authors and contributors + * Copyright (c) 2005-2019 Transmission authors and contributors * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), diff --git a/macosx/PrefsController.m b/macosx/PrefsController.m index 2418d9931..5be411dd0 100644 --- a/macosx/PrefsController.m +++ b/macosx/PrefsController.m @@ -1,5 +1,5 @@ /****************************************************************************** - * Copyright (c) 2005-2012 Transmission authors and contributors + * Copyright (c) 2005-2019 Transmission authors and contributors * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), diff --git a/macosx/QuickLookPlugin/QuickLookPlugin-Info.plist b/macosx/QuickLookPlugin/QuickLookPlugin-Info.plist index e2cd96cff..8dcf09b12 100644 --- a/macosx/QuickLookPlugin/QuickLookPlugin-Info.plist +++ b/macosx/QuickLookPlugin/QuickLookPlugin-Info.plist @@ -49,7 +49,7 @@ CFPlugInUnloadFunction NSHumanReadableCopyright - Copyright © 2005-2018 The Transmission Project + Copyright © 2005-2019 The Transmission Project QLNeedsToBeRunInMainThread QLPreviewHeight diff --git a/macosx/TorrentTableView.h b/macosx/TorrentTableView.h index 61f492865..0cae5b0e9 100644 --- a/macosx/TorrentTableView.h +++ b/macosx/TorrentTableView.h @@ -1,5 +1,5 @@ /****************************************************************************** - * Copyright (c) 2005-2012 Transmission authors and contributors + * Copyright (c) 2005-2019 Transmission authors and contributors * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), diff --git a/macosx/TorrentTableView.m b/macosx/TorrentTableView.m index 7156a8a95..ad0f5ac41 100644 --- a/macosx/TorrentTableView.m +++ b/macosx/TorrentTableView.m @@ -1,5 +1,5 @@ /****************************************************************************** - * Copyright (c) 2005-2012 Transmission authors and contributors + * Copyright (c) 2005-2019 Transmission authors and contributors * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), diff --git a/macosx/da.lproj/InfoPlist.strings b/macosx/da.lproj/InfoPlist.strings index 282ee2a75..981bea5ff 100644 --- a/macosx/da.lproj/InfoPlist.strings +++ b/macosx/da.lproj/InfoPlist.strings @@ -1,3 +1,3 @@ /* Localized versions of Info.plist keys */ -NSHumanReadableCopyright = "Copyright © 2005-2018 The Transmission Project"; +NSHumanReadableCopyright = "Copyright © 2005-2019 The Transmission Project"; diff --git a/macosx/de.lproj/InfoPlist.strings b/macosx/de.lproj/InfoPlist.strings index cf79110fd..d3953ecbc 100644 --- a/macosx/de.lproj/InfoPlist.strings +++ b/macosx/de.lproj/InfoPlist.strings @@ -1,3 +1,3 @@ /* Localized versions of Info.plist keys */ -NSHumanReadableCopyright = "Copyright © 2005–2018 Transmission-Projekt"; +NSHumanReadableCopyright = "Copyright © 2005–2019 Transmission-Projekt"; diff --git a/macosx/en.lproj/InfoPlist.strings b/macosx/en.lproj/InfoPlist.strings index 282ee2a75..981bea5ff 100644 --- a/macosx/en.lproj/InfoPlist.strings +++ b/macosx/en.lproj/InfoPlist.strings @@ -1,3 +1,3 @@ /* Localized versions of Info.plist keys */ -NSHumanReadableCopyright = "Copyright © 2005-2018 The Transmission Project"; +NSHumanReadableCopyright = "Copyright © 2005-2019 The Transmission Project"; diff --git a/macosx/es.lproj/InfoPlist.strings b/macosx/es.lproj/InfoPlist.strings index 282ee2a75..981bea5ff 100644 --- a/macosx/es.lproj/InfoPlist.strings +++ b/macosx/es.lproj/InfoPlist.strings @@ -1,3 +1,3 @@ /* Localized versions of Info.plist keys */ -NSHumanReadableCopyright = "Copyright © 2005-2018 The Transmission Project"; +NSHumanReadableCopyright = "Copyright © 2005-2019 The Transmission Project"; diff --git a/macosx/fr.lproj/InfoPlist.strings b/macosx/fr.lproj/InfoPlist.strings index 282ee2a75..981bea5ff 100644 --- a/macosx/fr.lproj/InfoPlist.strings +++ b/macosx/fr.lproj/InfoPlist.strings @@ -1,3 +1,3 @@ /* Localized versions of Info.plist keys */ -NSHumanReadableCopyright = "Copyright © 2005-2018 The Transmission Project"; +NSHumanReadableCopyright = "Copyright © 2005-2019 The Transmission Project"; diff --git a/macosx/it.lproj/InfoPlist.strings b/macosx/it.lproj/InfoPlist.strings index 282ee2a75..981bea5ff 100644 --- a/macosx/it.lproj/InfoPlist.strings +++ b/macosx/it.lproj/InfoPlist.strings @@ -1,3 +1,3 @@ /* Localized versions of Info.plist keys */ -NSHumanReadableCopyright = "Copyright © 2005-2018 The Transmission Project"; +NSHumanReadableCopyright = "Copyright © 2005-2019 The Transmission Project"; diff --git a/macosx/main.m b/macosx/main.m index 2b5e5ef2d..d78b13537 100644 --- a/macosx/main.m +++ b/macosx/main.m @@ -1,5 +1,5 @@ /****************************************************************************** - * Copyright (c) 2005-2012 Transmission authors and contributors + * Copyright (c) 2005-2019 Transmission authors and contributors * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), diff --git a/macosx/nl.lproj/InfoPlist.strings b/macosx/nl.lproj/InfoPlist.strings index 04996edd9..e135b9a22 100644 --- a/macosx/nl.lproj/InfoPlist.strings +++ b/macosx/nl.lproj/InfoPlist.strings @@ -1,3 +1,3 @@ /* Localized versions of Info.plist keys */ -NSHumanReadableCopyright = "Copyright © 2005-2018 Het Transmission Project"; +NSHumanReadableCopyright = "Copyright © 2005-2019 Het Transmission Project"; diff --git a/macosx/pt_PT.lproj/InfoPlist.strings b/macosx/pt_PT.lproj/InfoPlist.strings index 282ee2a75..981bea5ff 100644 --- a/macosx/pt_PT.lproj/InfoPlist.strings +++ b/macosx/pt_PT.lproj/InfoPlist.strings @@ -1,3 +1,3 @@ /* Localized versions of Info.plist keys */ -NSHumanReadableCopyright = "Copyright © 2005-2018 The Transmission Project"; +NSHumanReadableCopyright = "Copyright © 2005-2019 The Transmission Project"; diff --git a/macosx/ru.lproj/InfoPlist.strings b/macosx/ru.lproj/InfoPlist.strings index 01ba55626..a04dabcf9 100644 --- a/macosx/ru.lproj/InfoPlist.strings +++ b/macosx/ru.lproj/InfoPlist.strings @@ -1,3 +1,3 @@ /* Localized versions of Info.plist keys */ -NSHumanReadableCopyright = "© 2005-2018 The Transmission Project, все права защищены"; +NSHumanReadableCopyright = "© 2005-2019 The Transmission Project, все права защищены"; diff --git a/macosx/tr.lproj/InfoPlist.strings b/macosx/tr.lproj/InfoPlist.strings index 9e0830ea7..a28238da9 100644 --- a/macosx/tr.lproj/InfoPlist.strings +++ b/macosx/tr.lproj/InfoPlist.strings @@ -1,3 +1,3 @@ /* Localized versions of Info.plist keys */ -NSHumanReadableCopyright = "© 2005-2018 The Transmission Project, tüm hakları saklıdır"; +NSHumanReadableCopyright = "© 2005-2019 The Transmission Project, tüm hakları saklıdır"; diff --git a/qt/LicenseDialog.ui b/qt/LicenseDialog.ui index cacd438e9..843b50a62 100644 --- a/qt/LicenseDialog.ui +++ b/qt/LicenseDialog.ui @@ -20,7 +20,7 @@ true - Copyright 2005-2016. All code is copyrighted by the respective authors. + Copyright 2005-2019. All code is copyrighted by the respective authors. Transmission can be redistributed and/or modified under the terms of the GNU GPL versions 2 or 3 or by any future license endorsed by Mnemosyne LLC. diff --git a/qt/my-valgrind.sh b/qt/my-valgrind.sh index c3e14cd64..79803ee41 100755 --- a/qt/my-valgrind.sh +++ b/qt/my-valgrind.sh @@ -1,4 +1,4 @@ -#/bin/sh +#!/bin/sh #valgrind --tool=cachegrind ./transmission-qt 2>&1 | tee runlog #valgrind --tool=massif --threshold=0.2 ./transmission-qt 2>&1 | tee runlog valgrind --tool=memcheck --leak-check=full --leak-resolution=high --num-callers=16 --log-file=x-valgrind --show-reachable=no ./transmission-qt 2>&1 | tee runlog diff --git a/update-version-h.sh b/update-version-h.sh index b1e326b4f..386e4bbd9 100755 --- a/update-version-h.sh +++ b/update-version-h.sh @@ -2,47 +2,44 @@ # Generate files to be included: only overwrite them if changed so make # won't rebuild everything unless necessary -replace_if_differs () -{ - if cmp $1 $2 > /dev/null 2>&1; then - rm -f $1 - else - mv -f $1 $2 - fi +replace_if_differs() { + if cmp "$1" "$2" > /dev/null 2>&1; then + rm -f "$1" + else + mv -f "$1" "$2" + fi } echo "creating libtransmission/version.h" -user_agent_prefix=`grep m4_define configure.ac | sed "s/[][)(]/,/g" | grep user_agent_prefix | cut -d , -f 6` +user_agent_prefix=$(grep m4_define configure.ac | sed "s/[][)(]/,/g" | grep user_agent_prefix | cut -d , -f 6) -peer_id_prefix=`grep m4_define configure.ac | sed "s/[][)(]/,/g" | grep peer_id_prefix | cut -d , -f 6` +peer_id_prefix=$(grep m4_define configure.ac | sed "s/[][)(]/,/g" | grep peer_id_prefix | cut -d , -f 6) -major_version=`echo ${user_agent_prefix} | awk -F . '{print $1}'` -minor_version=`echo ${user_agent_prefix} | awk -F . '{print $2 + 0}'` +major_version=$(echo "${user_agent_prefix}" | awk -F . '{print $1}') +minor_version=$(echo "${user_agent_prefix}" | awk -F . '{print $2 + 0}') vcs_revision= vcs_revision_file=REVISION -if [ -n "$JENKINS_URL" -a -n "$GIT_COMMIT" ]; then - vcs_revision=$GIT_COMMIT -elif [ -n "$TEAMCITY_PROJECT_NAME" -a -n "$BUILD_VCS_NUMBER" ]; then - vcs_revision=$BUILD_VCS_NUMBER -elif [ -d ".git" ] && type git >/dev/null 2>&1; then - vcs_revision=`git rev-list --max-count=1 HEAD` +if [ -n "$JENKINS_URL" ] && [ -n "$GIT_COMMIT" ]; then + vcs_revision=$GIT_COMMIT +elif [ -n "$TEAMCITY_PROJECT_NAME" ] && [ -n "$BUILD_VCS_NUMBER" ]; then + vcs_revision=$BUILD_VCS_NUMBER +elif [ -d ".git" ] && type git > /dev/null 2>&1; then + vcs_revision=$(git rev-list --max-count=1 HEAD) elif [ -f "$vcs_revision_file" ]; then - vcs_revision=`cat "$vcs_revision_file"` + vcs_revision=$(cat "$vcs_revision_file") fi -vcs_revision=`echo $vcs_revision` - if [ -n "$vcs_revision" ]; then - [ -f "$vcs_revision_file" ] && [ "`cat "$vcs_revision_file"`" = "$vcs_revision" ] || echo "$vcs_revision" > "$vcs_revision_file" + [ -f "$vcs_revision_file" ] && [ "$(cat "$vcs_revision_file")" = "$vcs_revision" ] || echo "$vcs_revision" > "$vcs_revision_file" else - vcs_revision=0 - rm -f "$vcs_revision_file" + vcs_revision=0 + rm -f "$vcs_revision_file" fi -vcs_revision=`echo $vcs_revision | head -c10` +vcs_revision=$(echo $vcs_revision | head -c10) cat > libtransmission/version.h.new << EOF #pragma once @@ -61,9 +58,9 @@ EOF # Add a release definition case "${peer_id_prefix}" in - *X-) echo '#define TR_BETA_RELEASE 1' ;; - *Z-) echo '#define TR_NIGHTLY_RELEASE 1' ;; - *) echo '#define TR_STABLE_RELEASE 1' ;; + *X-) echo '#define TR_BETA_RELEASE 1' ;; + *Z-) echo '#define TR_NIGHTLY_RELEASE 1' ;; + *) echo '#define TR_STABLE_RELEASE 1' ;; esac >> "libtransmission/version.h.new" replace_if_differs libtransmission/version.h.new libtransmission/version.h diff --git a/utils/show.c b/utils/show.c index 78bf661d7..1b667bf17 100644 --- a/utils/show.c +++ b/utils/show.c @@ -32,6 +32,7 @@ static tr_option options[] = { { 'm', "magnet", "Give a magnet link for the specified torrent", "m", 0, NULL }, { 's', "scrape", "Ask the torrent's trackers how many peers are in the torrent's swarm", "s", 0, NULL }, + { 'u', "unsorted", "Do not sort files by name", "u", 0, NULL }, { 'V', "version", "Show version number and exit", "V", 0, NULL }, { 0, NULL, NULL, NULL, 0, NULL } }; @@ -43,6 +44,7 @@ static char const* getUsage(void) static bool magnetFlag = false; static bool scrapeFlag = false; +static bool unsorted = false; static bool showVersion = false; char const* filename = NULL; @@ -63,6 +65,10 @@ static int parseCommandLine(int argc, char const* const* argv) scrapeFlag = true; break; + case 'u': + unsorted = true; + break; + case 'V': showVersion = true; break; @@ -188,8 +194,11 @@ static void showInfo(tr_info const* inf) { files[i] = &inf->files[i]; } - - qsort(files, inf->fileCount, sizeof(tr_file*), compare_files_by_name); + + if (!unsorted) + { + qsort(files, inf->fileCount, sizeof(tr_file*), compare_files_by_name); + } for (unsigned int i = 0; i < inf->fileCount; ++i) {