From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Craven Subject: [PATCH] utils: file-extension should work with urls. Date: Wed, 14 Dec 2016 16:25:07 +0100 Message-ID: <20161214152507.17677-1-david@craven.ch> Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:33100) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cHBRK-0002uQ-60 for guix-devel@gnu.org; Wed, 14 Dec 2016 10:25:55 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cHBRF-0000KF-9b for guix-devel@gnu.org; Wed, 14 Dec 2016 10:25:54 -0500 Received: from so254-10.mailgun.net ([198.61.254.10]:37187) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cHBRF-0000Db-4j for guix-devel@gnu.org; Wed, 14 Dec 2016 10:25:49 -0500 List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org * guix/utils.scm (file-extension): Detect the lack of file extensions in urls. --- guix/utils.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/guix/utils.scm b/guix/utils.scm index 06f49daca..2bae2eb60 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -24,6 +24,7 @@ (define-module (guix utils) #:use-module (guix config) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-2) #:use-module (srfi srfi-9) #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) @@ -559,8 +560,11 @@ minor version numbers from version-string." (define (file-extension file) "Return the extension of FILE or #f if there is none." - (let ((dot (string-rindex file #\.))) - (and dot (substring file (+ 1 dot) (string-length file))))) + (and-let* ((dot (string-rindex file #\.)) + (ext (substring file (+ 1 dot) (string-length file)))) + ;; Make sure that a file-extension does not contain forward + ;; slashes incase file is a URL. + (and (not (string-rindex file #\/)) ext))) (define (file-sans-extension file) "Return the substring of FILE without its extension, if any." -- 2.11.0