From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Newsgroups: gmane.emacs.help Subject: Re: Is there something like `file-name-concat', but for urls? Date: Tue, 25 Jul 2023 19:24:54 +0200 Message-ID: References: <87edkxnb68.fsf@mbork.pl> <877cqoynaa.fsf@dataswamp.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="dLxS2n2rii7OgfUx" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="10846"; mail-complaints-to="usenet@ciao.gmane.io" To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Tue Jul 25 19:25:38 2023 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qOLmz-0002ZP-Hh for geh-help-gnu-emacs@m.gmane-mx.org; Tue, 25 Jul 2023 19:25:37 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qOLmQ-0001wQ-4J; Tue, 25 Jul 2023 13:25:02 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qOLmO-0001wD-Na for help-gnu-emacs@gnu.org; Tue, 25 Jul 2023 13:25:00 -0400 Original-Received: from mail.tuxteam.de ([5.199.139.25]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qOLmM-0000N4-PY for help-gnu-emacs@gnu.org; Tue, 25 Jul 2023 13:25:00 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tuxteam.de; s=mail; h=From:In-Reply-To:Content-Type:MIME-Version:References:Message-ID: Subject:To:Date:Sender:Reply-To:Cc:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=AqFxgezlF9nquFoSorS+EsmTI5SwMl2Xdw5plnrHWAg=; b=s5ZOn+TBcO5odZ8u8jTgSAd/Ay pX2KEwteY3WipOHI8C60IBXceruMTqzFyv29ogSCMsD3+nq4LSal44omu2+mRpwuVzkFpK7ej4GdQ RRKfiHvyDxHtPlAHKl6EcEA8mxMDgGR7kJamRo+1+kGtnFwLa67xfu66G4EaRAJY2n7dsdxDfms09 1nCmm8NWfphd4o9+Vvz9/LPbsHtbfHFePGx302RhDpUWyJhbw5Mvy7VKJptIJltjg52KaNNBkUIPp dehOypaayC4Syu4BtNYxmGeX2UkOdqTTZQ0VAavWj35xcmu94ktTHdRAzPabyalA1dOFWms8p2R+X rpNqDVRg==; Original-Received: from tomas by mail.tuxteam.de with local (Exim 4.94.2) (envelope-from ) id 1qOLmI-0007rG-Ih for help-gnu-emacs@gnu.org; Tue, 25 Jul 2023 19:24:54 +0200 Content-Disposition: inline In-Reply-To: <877cqoynaa.fsf@dataswamp.org> Received-SPF: pass client-ip=5.199.139.25; envelope-from=tomas@tuxteam.de; helo=mail.tuxteam.de X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.help:144441 Archived-At: --dLxS2n2rii7OgfUx Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Jul 25, 2023 at 06:21:49PM +0200, Emanuel Berg wrote: > Marcin Borkowski wrote: >=20 > > given e.g. "https", "example.com" (or "example.com/") and > > "page", I want to get "https://example.com/page". Is there > > a built-in Elisp function to do that? >=20 > Do it yourself Marcin :) Even more so because you already did > something like that, with the filename normalizer, I remember! >=20 > If so, you can use the correct URL terminology, which is >=20 > 1. scheme: > 2. //server > 3. [:port] > 4. [/path] > 5. [/program?q=3Dargument] > 6. [#fragment] >=20 > See this page, >=20 > https://dataswamp.org/~incal/distsys/url.html >=20 > BTW thanks for letting me realize I should modernize that, it > is so old https isn't even included :$ Plus URL encoding. Plus deciding in fringe cases whether encoding is in order or not (and perhaps avoiding those cases where it would be in order but there are botched implementations around so better don't (ISTR there was a security hole where the reverse proxy charged with securing access had a different idea than the server behind it). So RFC 3986 plus perhaps RFC 8820 plus a couple plus "Real Life" (TM). I mean: it sure is fun, and I've caught myself doing this too, but some working library with the most egregious botches already fixed and where new fixes can go to seems to be a good idea, in general :) That doesn't mean one shouldn't try: you sure understand better how that lib works once you have. Cheers --=20 t --dLxS2n2rii7OgfUx Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iF0EABECAB0WIQRp53liolZD6iXhAoIFyCz1etHaRgUCZMAFYAAKCRAFyCz1etHa RhLuAJ46UC5xvJs0fMWSsuO0fzasAmcCNwCfcaI63lW+niK1z9j9LHtlZIR7t4Q= =K/Uv -----END PGP SIGNATURE----- --dLxS2n2rii7OgfUx--