GNU logs - #58626, boring messages


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#58626: Proposed changes to implement opening URLs on macOS
Resent-From: Perry Smith <pedzsan@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 19 Oct 2022 11:07:01 +0000
Resent-Message-ID: <handler.58626.B.166617757627626 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 58626
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: 58626 <at> debbugs.gnu.org
X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.166617757627626
          (code B ref -1); Wed, 19 Oct 2022 11:07:01 +0000
Received: (at submit) by debbugs.gnu.org; 19 Oct 2022 11:06:16 +0000
Received: from localhost ([127.0.0.1]:55965 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ol6tf-0007BJ-Tf
	for submit <at> debbugs.gnu.org; Wed, 19 Oct 2022 07:06:15 -0400
Received: from lists.gnu.org ([209.51.188.17]:49216)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pedzsan@HIDDEN>) id 1okvSl-0008PV-NK
 for submit <at> debbugs.gnu.org; Tue, 18 Oct 2022 18:53:34 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:48420)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <pedzsan@HIDDEN>)
 id 1okvSl-0006Y9-GI
 for bug-gnu-emacs@HIDDEN; Tue, 18 Oct 2022 18:53:31 -0400
Received: from ms11p00im-qufo17282101.me.com ([17.58.38.58]:35818)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <pedzsan@HIDDEN>)
 id 1okvSj-0002TT-CR
 for bug-gnu-emacs@HIDDEN; Tue, 18 Oct 2022 18:53:31 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=icloud.com;
 s=1a1hai; t=1666133604;
 bh=4iJyBA0fHbLie/9jzR/hBivemUs1FCdp1h9d/zpbOe0=;
 h=From:Content-Type:Mime-Version:Subject:Message-Id:Date:To;
 b=i1m+Siattg4q2vuVPM4edQrKrM7LzYKGsXHioqQ3hmJYZI9upjlx+U78Lncz1O72P
 xSQ6MKOUSzbW25ifnLIabLOqt90UsLazSofRpfqdBWqBWn2mcQER8mVKCWqpYYySf1
 vVQ1Gk9Un+ZpqQ8/paXgvJaOK1GYUh9QsvwDOUWTXw7XzePObj8Ad3f5UDi3F5jHbB
 Y1fXQN5lCuVK/h2wmm4HSk83+FREAvusoFxYBRb0I5aJFFcjfay9cnOAc+tdOaVSGj
 sMa82bZy5XQiWetcfXo8ospMj92fKu8kSbTVoY34KuwM2gd/eLNj+DMegpqVM1/uF1
 6bG37/1M7eCUA==
Received: from smtpclient.apple (ms11p00im-dlb-asmtpmailmevip.me.com
 [17.57.154.19])
 by ms11p00im-qufo17282101.me.com (Postfix) with ESMTPSA id 8CD438C05BB
 for <bug-gnu-emacs@HIDDEN>; Tue, 18 Oct 2022 22:53:24 +0000 (UTC)
From: Perry Smith <pedzsan@HIDDEN>
Content-Type: multipart/mixed;
 boundary="Apple-Mail=_6571DF02-165E-4CDC-B35F-070E0D216D4A"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\))
Message-Id: <378CF744-E39E-490C-9CFF-E65CB325BE25@HIDDEN>
Date: Tue, 18 Oct 2022 17:53:22 -0500
X-Mailer: Apple Mail (2.3696.120.41.1.1)
X-Proofpoint-GUID: CpnejG2E8fLsOkePXtZUp7mGzcyn1_6O
X-Proofpoint-ORIG-GUID: CpnejG2E8fLsOkePXtZUp7mGzcyn1_6O
X-Proofpoint-Virus-Version: vendor=fsecure engine=1.1.170-22c6f66c430a71ce266a39bfe25bc2903e8d5c8f:6.0.138,18.0.572,17.11.62.513.0000000 definitions=2020-02-14_11:2020-02-14_02,2020-02-14_11,2021-12-02_01 signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0
 suspectscore=0
 malwarescore=0 mlxlogscore=893 clxscore=1011 adultscore=0 spamscore=0
 mlxscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2209130000 definitions=main-2210180129
Received-SPF: pass client-ip=17.58.38.58; envelope-from=pedzsan@HIDDEN;
 helo=ms11p00im-qufo17282101.me.com
X-Spam_score_int: -27
X-Spam_score: -2.8
X-Spam_bar: --
X-Spam_report: (-2.8 / 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, FREEMAIL_FROM=0.001,
 RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.3 (-)
X-Mailman-Approved-At: Wed, 19 Oct 2022 07:06:02 -0400
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)


--Apple-Mail=_6571DF02-165E-4CDC-B35F-070E0D216D4A
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

NOTE: I am subscribed to this list but I do not receive emails from
the list.  Please CC me on replies and updates.  I will also check in
the archive every few days.

My email to the developers list explains better why I did this.[1] The
short version is an exception thrown by my Ruby on Rails app displays
a stack trace with file names and line numbers.  In the past, it was
possible to click on the line and it would pop into Emacs.  This was
after adding in Mitsuharu Yamamoto mods and other effort.  I wanted to
recreate that facility but in such a way that it might be accepted
into the main Emacs development.

It appears macOS uses the scheme in URLs a lot so these changes seem
to fit in with their general designs.

Attached is my patch file based upon the emacs-28.2 tar ball.  With
these changes, I can do:

    open emacs:///some/path/to/file.txt#25,40

and the file opens in Emacs with lines 25-40 highlighted.  Clicking a
link in a browser page with the same href as above causes the same
action.  The fragment can be omitted entirely or can be just a single
line.  The comma can also be a dash or a colon.

(I=E2=80=99m also going to submit a feature request to RoR to leverage =
this
feature.)

I don=E2=80=99t claim to be a lisp programmer so feel free to clean up =
what
I=E2=80=99ve done.

Note that the documentation says:

    If your delegate implements this method, AppKit does not call the
    application:openFile: or application:openFiles: methods.

I left the code for openFile and openFiles under an **assumption**
that on macOS before 10.13, openURLs will not be called and the system
will fall back to the openFile and openFiles entry points but I'm not
a macOS programmer either.

Thank you to Daniel Martin.  His reply to my email helped a lot.

Thank you for your time,
Perry
[1] =
https://lists.gnu.org/archive/html/emacs-devel/2022-10/msg01271.htmlf



--Apple-Mail=_6571DF02-165E-4CDC-B35F-070E0D216D4A
Content-Disposition: attachment;
	filename=open-url.diff.gz
Content-Type: application/x-gzip;
	x-unix-mode=0644;
	name="open-url.diff.gz"
Content-Transfer-Encoding: base64

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
--Apple-Mail=_6571DF02-165E-4CDC-B35F-070E0D216D4A--




Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: Perry Smith <pedzsan@HIDDEN>
Subject: bug#58626: Acknowledgement (Proposed changes to implement opening
 URLs on macOS)
Message-ID: <handler.58626.B.166617757627626.ack <at> debbugs.gnu.org>
References: <378CF744-E39E-490C-9CFF-E65CB325BE25@HIDDEN>
X-Gnu-PR-Message: ack 58626
X-Gnu-PR-Package: emacs
Reply-To: 58626 <at> debbugs.gnu.org
Date: Wed, 19 Oct 2022 11:07:02 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 bug-gnu-emacs@HIDDEN

If you wish to submit further information on this problem, please
send it to 58626 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
58626: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D58626
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#58626: Proposed changes to implement opening URLs on macOS
Resent-From: Stefan Kangas <stefankangas@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sat, 12 Nov 2022 20:58:02 +0000
Resent-Message-ID: <handler.58626.B58626.166828666629911 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 58626
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Perry Smith <pedzsan@HIDDEN>
Cc: 58626 <at> debbugs.gnu.org
Received: via spool by 58626-submit <at> debbugs.gnu.org id=B58626.166828666629911
          (code B ref 58626); Sat, 12 Nov 2022 20:58:02 +0000
Received: (at 58626) by debbugs.gnu.org; 12 Nov 2022 20:57:46 +0000
Received: from localhost ([127.0.0.1]:49320 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1otxZS-0007mM-6S
	for submit <at> debbugs.gnu.org; Sat, 12 Nov 2022 15:57:46 -0500
Received: from mail-oa1-f48.google.com ([209.85.160.48]:41947)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <stefankangas@HIDDEN>) id 1otxZR-0007lb-4N
 for 58626 <at> debbugs.gnu.org; Sat, 12 Nov 2022 15:57:45 -0500
Received: by mail-oa1-f48.google.com with SMTP id
 586e51a60fabf-13b23e29e36so8820466fac.8
 for <58626 <at> debbugs.gnu.org>; Sat, 12 Nov 2022 12:57:45 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=cc:to:subject:message-id:date:mime-version:references:in-reply-to
 :from:from:to:cc:subject:date:message-id:reply-to;
 bh=YhYo18/cYs6KdghtGSRWORbX3iPuwJcFReHs/jd6kZM=;
 b=bGi+mjRB7CAMcLIKv6cN/5kb5rzTdr5nOexJfmm4YDKJ8A7AQdOVoCdxiezQYMf1QE
 sm1usirsPaGPLA1lqucTiaHMNxJTfy2D8/M3x9W5bD5/Pb+TiDX07U/balpgB59JgwUn
 pP4OfQACBA2KMYCGE1nfDOAgyw0oWXY5e00oX+zbYvTH2J9pNb/+6PUOkl/tcoAyGBZo
 dtZdW00PhPDClPEveqplZY/XAWmQNRwcTIxu0t+Hy8XaQ0vzY3Rga/9nfeGeJ/e+PTw6
 QQeSpcz90l4ivv2UFEtTIXkN/eXuGSRCIMJ3Rfn61edDGYZB0d94JlwgOwHbHuzsHF//
 wbjQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=cc:to:subject:message-id:date:mime-version:references:in-reply-to
 :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=YhYo18/cYs6KdghtGSRWORbX3iPuwJcFReHs/jd6kZM=;
 b=Tje5ntx5VFoxPYejI3sCGfP748QaXsBZENzft58Piaz6rhQqHN8dHGBKAxGABaNsJx
 ERUg16q6TySI4Mh6DJxq6LXvG9Zy4qWwtdRPfi+7ihO12iXQpzECnOW7+8MnJ3f9r1HY
 PiFwGjjdaYKQf2wnCJSG/bxogjxtPPRr6DVMf92x4P1rFK2n/NJVMmqlsAbGI0mENiiD
 TZD0LfHbJet6G1Ggy1xrUjBjXLq5Ri9cvaoPIadlTQJZUxNzYpB0yle0xypcHZu2g+kJ
 RuArZN/TxOviA39vTFP36WP07cV+Aj32P9CTllUZHxHXFqND4UIj5IWcFDZQQ+2Fk94i
 Jr5w==
X-Gm-Message-State: ANoB5pkk7D6ZzQIXwcQ+H3UiOioIPnfc6dT7nymp/cTfk+MygwDIvgzY
 T13iqMrbcoeoPvVur1zXYJGAnEW6ey+tCExHuUnzttps
X-Google-Smtp-Source: AA0mqf4WH7VKsIZ+piTcwDgyXnnvOnoNswGWoniuHqzE+oElKm1+MI5g2yWH1EqN5IN3Q9Y980yr67gcTHSYh3rGsLk=
X-Received: by 2002:a05:6870:6c15:b0:13b:8a07:2a1f with SMTP id
 na21-20020a0568706c1500b0013b8a072a1fmr3986031oab.199.1668286664888; Sat, 12
 Nov 2022 12:57:44 -0800 (PST)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Sat, 12 Nov 2022 12:57:44 -0800
From: Stefan Kangas <stefankangas@HIDDEN>
In-Reply-To: <378CF744-E39E-490C-9CFF-E65CB325BE25@HIDDEN> (Perry Smith's
 message of "Tue, 18 Oct 2022 17:53:22 -0500")
References: <378CF744-E39E-490C-9CFF-E65CB325BE25@HIDDEN>
X-Hashcash: 1:20:221112:58626 <at> debbugs.gnu.org::gjFH50u6c6396rcW:1HPe
MIME-Version: 1.0
Date: Sat, 12 Nov 2022 12:57:44 -0800
Message-ID: <CADwFkmmiQ5Guy1gzXQ+QNOVn8o6uq7vQWV55Vx36GZHgv7o2fA@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Perry Smith <pedzsan@HIDDEN> writes:

> Attached is my patch file based upon the emacs-28.2 tar ball.  With
> these changes, I can do:
>
>     open emacs:///some/path/to/file.txt#25,40

Could you send the patch in uncompressed instead?  That will simplify
reviewing it.

Thanks.




Message received at control <at> debbugs.gnu.org:


Received: (at control) by debbugs.gnu.org; 12 Nov 2022 20:58:04 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Nov 12 15:58:04 2022
Received: from localhost ([127.0.0.1]:49333 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1otxZk-0007nq-0o
	for submit <at> debbugs.gnu.org; Sat, 12 Nov 2022 15:58:04 -0500
Received: from mail-oa1-f48.google.com ([209.85.160.48]:46019)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <stefankangas@HIDDEN>) id 1otxZi-0007ms-FB
 for control <at> debbugs.gnu.org; Sat, 12 Nov 2022 15:58:02 -0500
Received: by mail-oa1-f48.google.com with SMTP id
 586e51a60fabf-13be3ef361dso8782552fac.12
 for <control <at> debbugs.gnu.org>; Sat, 12 Nov 2022 12:58:02 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=to:subject:message-id:date:mime-version:from:from:to:cc:subject
 :date:message-id:reply-to;
 bh=NAk+j5+BwrHKCdjHZu3Z/C0039cBMGy8mHknzywhWMo=;
 b=QOybvGEoqg33f4LgtDXTOXx5M1YUeSSxYicnS3GVv85o/blnVBaH9lP/JN7BtDWg0f
 fF82zXqZJfBPcF1Df4CinCm/4oQB321T9j3iZKh8btGcluswxS8V8dGNurIo3zfco53A
 qqfL6hyqQPwcaOkMoXVWkaTwKchO65LLKyQx3TOnRqLG4nDgE6F7LT9MzdRMMoAZb9wY
 NSpSNwF6FF7RD+9/5NMjJSbMNI8ekFAsBdOHiRoRCFlQE7P6UcSxRsdUUd1bJroI51eD
 V74PjF9qPzNMy1kWXYOfSf2qvszqb5JHivwkv2UGyy8AKdE/D09rgWHIaAerdkRjcX/x
 HikA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=to:subject:message-id:date:mime-version:from:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=NAk+j5+BwrHKCdjHZu3Z/C0039cBMGy8mHknzywhWMo=;
 b=7u+6E0+SJ0eNFEnlJuHrN2bIEKLy92ZsiWspCM2TCiJKdz2ZukY/JpznVAreraAAoL
 1S/UUnPD+iseancS0JWoO/0hOSSAx/W+HDHNpKx+3dytoMrAlAnXR0KV09JWulDqjR0e
 3eFRvWtAEGnArzPhmT4wcrIoxqbZHL/pdn5QckV1IdEMjfE6ZGmv56wtQWNH2rwHlpi3
 r9i+hkbILRqWrWqhE1Ih+2MZqH17jcm71hnnFlRSCTz842DhihrO7pyzH0s2uxn1Dbrf
 LssEUMtVwk410gDDJ00LUCezZs6VBpUxoxq4Qp/u5GaZ6lcbVBDEJdXP9ZB2H9dzLiue
 VVEw==
X-Gm-Message-State: ANoB5pn1uTDcEg02MEAYc+KcHpnWhS3XA04AbUSJvgJtyUvAdwPV/c6m
 JbTtbBX2Fq9DsC5XjPNBTjx7OMp3qPKaZiD2nV2cy7ksy5U=
X-Google-Smtp-Source: AA0mqf4ucSy1L+JdywjEBUt/2+TLrHw5I653nR69Q61dAW1f2S2Upv4yzm8pyovtb5vHkDd/q9A+aT/ydMrVmbbw7Ro=
X-Received: by 2002:a05:6871:480a:b0:12b:fbe7:b793 with SMTP id
 qc10-20020a056871480a00b0012bfbe7b793mr3763015oab.92.1668286677135; Sat, 12
 Nov 2022 12:57:57 -0800 (PST)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Sat, 12 Nov 2022 12:57:56 -0800
From: Stefan Kangas <stefankangas@HIDDEN>
X-Hashcash: 1:20:221112:control <at> debbugs.gnu.org::DrwUhgjMnm1wKMw8:1rWP
MIME-Version: 1.0
Date: Sat, 12 Nov 2022 12:57:56 -0800
Message-ID: <CADwFkm=4EybkyM15pVNQb_anaus5oyeyW=SQ4B4bGNfp8PogQw@HIDDEN>
Subject: control message for bug #58626
To: control <at> debbugs.gnu.org
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: control
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

tags 58626 + patch
quit




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#58626: Proposed changes to implement opening URLs on macOS
Resent-From: Perry Smith <pedzsan@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 13 Nov 2022 08:29:06 +0000
Resent-Message-ID: <handler.58626.B58626.16683281099798 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 58626
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: Stefan Kangas <stefankangas@HIDDEN>
Cc: 58626 <at> debbugs.gnu.org
Received: via spool by 58626-submit <at> debbugs.gnu.org id=B58626.16683281099798
          (code B ref 58626); Sun, 13 Nov 2022 08:29:06 +0000
Received: (at 58626) by debbugs.gnu.org; 13 Nov 2022 08:28:29 +0000
Received: from localhost ([127.0.0.1]:50000 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ou8Lr-0002Xx-W6
	for submit <at> debbugs.gnu.org; Sun, 13 Nov 2022 03:28:28 -0500
Received: from ms11p00im-qufo17281301.me.com ([17.58.38.50]:57926)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pedzsan@HIDDEN>) id 1ou031-0001Ue-Oo
 for 58626 <at> debbugs.gnu.org; Sat, 12 Nov 2022 18:36:28 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=icloud.com;
 s=1a1hai; t=1668296181;
 bh=4ZTGhhtrXAL1A1MC6dbZ+r8jt13XDJdX3fx8MWE8jS0=;
 h=Content-Type:Mime-Version:Subject:From:Date:Message-Id:To;
 b=C9VSrernR/5kuvzxvTBLu1bVGmWQgjb4yttEThYHqL/5/rgBisVp3ryFYLygovVtV
 3QVACGYjnG+MMfxnn6rjh4IAj7LZK+vzyacQQGcDFz2lNpAlYn2VzsCas768R99OYi
 f9CydrqesQaNBoawE8qoNaIxy3LzzBnoD5hwAPZZwUzXUa857egyTzD0v0InEIs/DL
 Ka9CpoGHaznEh2Hd1PkXlaK4wirr0wTUUIbQrLmshqq0/30HaR+Pw593Rl0ewlMfOw
 qNv45KDRsPH2sCsgyqsSuU0QTf6OFMvnUQvKD6/ax4m18H75QfzaWHWBlkmI56rNpL
 HCY+3AG7jCbOg==
Received: from smtpclient.apple (ms11p00im-dlb-asmtpmailmevip.me.com
 [17.57.154.19])
 by ms11p00im-qufo17281301.me.com (Postfix) with ESMTPSA id 963D7CC01A3;
 Sat, 12 Nov 2022 23:36:20 +0000 (UTC)
Content-Type: text/plain;
	charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.200.110.1.12\))
From: Perry Smith <pedzsan@HIDDEN>
In-Reply-To: <CADwFkmmiQ5Guy1gzXQ+QNOVn8o6uq7vQWV55Vx36GZHgv7o2fA@HIDDEN>
Date: Sat, 12 Nov 2022 17:36:07 -0600
Content-Transfer-Encoding: quoted-printable
Message-Id: <0633A467-B560-456E-A096-81CCDA89B1BF@HIDDEN>
References: <378CF744-E39E-490C-9CFF-E65CB325BE25@HIDDEN>
 <CADwFkmmiQ5Guy1gzXQ+QNOVn8o6uq7vQWV55Vx36GZHgv7o2fA@HIDDEN>
X-Mailer: Apple Mail (2.3731.200.110.1.12)
X-Proofpoint-GUID: G7JTHRE4n6JZ3O24darzd8S2pAruOl5G
X-Proofpoint-ORIG-GUID: G7JTHRE4n6JZ3O24darzd8S2pAruOl5G
X-Proofpoint-Virus-Version: vendor=fsecure engine=1.1.170-22c6f66c430a71ce266a39bfe25bc2903e8d5c8f:6.0.138,18.0.572,17.0.605.474.0000000 definitions=2020-02-14_11:2020-02-14_02,2020-02-14_11,2020-01-23_02 signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0
 mlxscore=0 adultscore=0
 phishscore=0 malwarescore=0 bulkscore=0 mlxlogscore=999 clxscore=1011
 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2209130000 definitions=main-2211120168
X-Spam-Score: -0.7 (/)
X-Mailman-Approved-At: Sun, 13 Nov 2022 03:28:26 -0500
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)



> On Nov 12, 2022, at 14:57, Stefan Kangas <stefankangas@HIDDEN> =
wrote:
>=20
> Perry Smith <pedzsan@HIDDEN> writes:
>=20
>> Attached is my patch file based upon the emacs-28.2 tar ball.  With
>> these changes, I can do:
>>=20
>>    open emacs:///some/path/to/file.txt#25,40
>=20
> Could you send the patch in uncompressed instead?  That will simplify
> reviewing it.

Please let me know if this doesn=E2=80=99t work...

Only in emacs-28.2-new: .DS_Store
Only in emacs-28.2-new: What-I-Did.txt
Only in emacs-28.2/admin/unidata: unidata-gen.elc
Only in emacs-28.2/admin/unidata: unidata.txt
Only in emacs-28.2/admin/unidata: uvs.elc
Only in emacs-28.2-new/lib: sys
Only in emacs-28.2-new/lib-src: ctags.dSYM
Only in emacs-28.2-new/lib-src: ebrowse.dSYM
Only in emacs-28.2-new/lib-src: emacsclient.dSYM
Only in emacs-28.2-new/lib-src: etags.dSYM
Only in emacs-28.2-new/lib-src: hexl.dSYM
Only in emacs-28.2-new/lib-src: make-docfile.dSYM
Only in emacs-28.2-new/lib-src: make-fingerprint.dSYM
Only in emacs-28.2-new/lib-src: movemail.dSYM
Only in emacs-28.2/lisp: loaddefs.el
Only in emacs-28.2-new/lisp: loaddefs.el~
diff -rc emacs-28.2/lisp/term/common-win.el =
emacs-28.2-new/lisp/term/common-win.el
*** emacs-28.2/lisp/term/common-win.el 2022-09-06 16:31:54.000000000 =
-0500
--- emacs-28.2-new/lisp/term/common-win.el 2022-10-16 07:53:34.000000000 =
-0500
***************
*** 73,78 ****
--- 73,79 ----
        (cons 12 'ns-new-frame)
        (cons 13 'ns-toggle-toolbar)
        (cons 14 'ns-show-prefs)
+       (cons 15 'ns-open-url)
        ))))
      (set-terminal-parameter frame 'x-setup-function-keys t)))
  Binary files emacs-28.2/lisp/term/common-win.elc and =
emacs-28.2-new/lisp/term/common-win.elc differ
diff -rc emacs-28.2/lisp/term/ns-win.el =
emacs-28.2-new/lisp/term/ns-win.el
*** emacs-28.2/lisp/term/ns-win.el 2022-09-06 16:31:54.000000000 -0500
--- emacs-28.2-new/lisp/term/ns-win.el 2022-10-18 11:36:44.000000000 =
-0500
***************
*** 182,187 ****
--- 182,188 ----
  (define-key global-map [ns-new-frame] 'make-frame)
  (define-key global-map [ns-toggle-toolbar] 'ns-toggle-toolbar)
  (define-key global-map [ns-show-prefs] 'customize)
+ (define-key global-map [ns-open-url] 'ns-open-url)
      ;; Set up a number of aliases and other layers to pretend we're =
using
***************
*** 530,535 ****
--- 531,578 ----
    (global-set-key [drag-n-drop] 'ns-drag-n-drop)
  + (defvar ns-input-url-scheme)            ; nsterm.m
+ (defvar ns-input-url-user)              ; nsterm.m
+ (defvar ns-input-url-password)          ; nsterm.m
+ (defvar ns-input-url-host)              ; nsterm.m
+ (defvar ns-input-url-port)              ; nsterm.m
+ (defvar ns-input-url-path)              ; nsterm.m
+ (defvar ns-input-url-query)             ; nsterm.m
+ (defvar ns-input-url-fragment)          ; nsterm.m
+=20
+ (defun ns-open-url ()
+   "Open a buffer as directed by the URL which has been broken down
+   into components:
+     `ns-input-url-scheme'   - the URL's scheme   (string)
+     `ns-input-url-user'     - the URL's user     (string)
+     `ns-input-url-password' - the URL's password (string)
+     `ns-input-url-host'     - the URL's host     (string)
+     `ns-input-url-port'     - the URL's port     (integer)
+     `ns-input-url-path'     - the URL's path     (string)
+     `ns-input-url-query'    - the URL's query    (string)
+     `ns-input-url-fragment' - the URL's fragment (string)
+ "
+   (interactive)
+   (cond
+    ((equal ns-input-url-scheme "file")
+     (progn (setq ns-input-file (append (list ns-input-url-path)))
+            (setq ns-input-line nil)     ; My testing on macOS 12.6 =
shows the fragment is never passed
+            (ns-open-file-select-line)))
+    ((equal ns-input-url-scheme "emacs")
+     (progn (setq ns-input-file (append (list ns-input-url-path)))
+            (setq ns-input-line
+                  (and ns-input-url-fragment
+                       (let ((seq (mapcar #'string-to-number =
(split-string ns-input-url-fragment "[-,:]" t))))
+                         (cond
+                          ((=3D (length seq) 1) (car seq))
+                          ((=3D (length seq) 2) (cons (car seq) (car =
(cdr seq))))))))
+            (ns-open-file-select-line)))
+    (t (message (format "scheme: %s; user: %s; password: %s; host: %s; =
port: %d; path: %s; query: %s; fragment: %s"
+                        ns-input-url-scheme ns-input-url-user
+                        ns-input-url-password ns-input-url-host
+                        ns-input-url-port ns-input-url-path
+                        ns-input-url-query ns-input-url-fragment)))))
+=20
  ;;;; Frame-related functions.
    ;; nsterm.m
Binary files emacs-28.2/lisp/term/ns-win.elc and =
emacs-28.2-new/lisp/term/ns-win.elc differ
Only in emacs-28.2-new/nextstep: .DS_Store
Only in emacs-28.2-new/nextstep/Cocoa/Emacs.base/Contents/Resources: =
English.lproj
diff -rc emacs-28.2/nextstep/templates/Info.plist.in =
emacs-28.2-new/nextstep/templates/Info.plist.in
*** emacs-28.2/nextstep/templates/Info.plist.in 2022-09-06 =
16:31:54.000000000 -0500
--- emacs-28.2-new/nextstep/templates/Info.plist.in 2022-10-15 =
11:31:41.000000000 -0500
***************
*** 672,677 ****
--- 672,687 ----
  <string>mailto</string>
  </array>
  </dict>
+ <dict>
+ <key>CFBundleTypeRole</key>
+ <string>Editor</string>
+ <key>CFBundleURLName</key>
+ <string>Emacs Local Address URL</string>
+ <key>CFBundleURLSchemes</key>
+ <array>
+ <string>emacs</string>
+ </array>
+ </dict>
  </array>
  <key>NSAppleScriptEnabled</key>
  <string>YES</string>
Only in emacs-28.2-new/nextstep/templates: Info.plist.in-orig
diff -rc emacs-28.2/src/nsterm.m emacs-28.2-new/src/nsterm.m
*** emacs-28.2/src/nsterm.m 2022-09-06 16:31:54.000000000 -0500
--- emacs-28.2-new/src/nsterm.m 2022-10-16 12:13:33.000000000 -0500
***************
*** 292,298 ****
  static struct input_event *q_event_ptr =3D NULL;
  static int n_emacs_events_pending =3D 0;
  static NSMutableArray *ns_pending_files, *ns_pending_service_names,
!   *ns_pending_service_args;
  static BOOL ns_do_open_file =3D NO;
  static BOOL ns_last_use_native_fullscreen;
  --- 292,298 ----
  static struct input_event *q_event_ptr =3D NULL;
  static int n_emacs_events_pending =3D 0;
  static NSMutableArray *ns_pending_files, *ns_pending_service_names,
!   *ns_pending_service_args, *ns_pending_urls;
  static BOOL ns_do_open_file =3D NO;
  static BOOL ns_last_use_native_fullscreen;
  ***************
*** 4361,4366 ****
--- 4361,4372 ----
            [ns_pending_service_names removeObjectAtIndex: 0];
            [ns_pending_service_args removeObjectAtIndex: 0];
          }
+       /* Process the open URL requests */
+       else if (ns_pending_urls && [ns_pending_urls count] !=3D 0
+                && [(EmacsApp *) NSApp openURL: [ns_pending_urls =
objectAtIndex: 0]])
+         {
+             [ns_pending_urls removeObjectAtIndex: 0];
+         }
        else
          {
            /* Run and wait for events.  We must always send one =
NX_APPDEFINED event
***************
*** 5123,5128 ****
--- 5129,5135 ----
    ns_pending_files =3D [[NSMutableArray alloc] init];
    ns_pending_service_names =3D [[NSMutableArray alloc] init];
    ns_pending_service_args =3D [[NSMutableArray alloc] init];
+   ns_pending_urls =3D [[NSMutableArray alloc] init];
      /* Start app and create the main menu, window, view.
       Needs to be here because ns_initialize_display_info () uses =
AppKit classes.
***************
*** 5938,5943 ****
--- 5945,6004 ----
    /* =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
  +     Open URL
+=20
+    =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =
*/
+=20
+ /* Open a URL after going into queue read by ns_read_socket.  */
+ - (BOOL) openURL: (NSURL *)url
+ {
+   NSTRACE ("[EmacsApp openURL:]");
+=20
+   struct frame *emacsframe =3D SELECTED_FRAME ();
+   NSEvent *theEvent =3D [NSApp currentEvent];
+=20
+   if (!emacs_event)
+     return NO;
+=20
+   emacs_event->kind =3D NS_NONKEY_EVENT;
+   emacs_event->code =3D KEY_NS_OPEN_URL;
+   ns_input_url_scheme   =3D [[url scheme]   lispString];
+   ns_input_url_user     =3D [[url user]     lispString];
+   ns_input_url_password =3D [[url password] lispString];
+   ns_input_url_host     =3D [[url host]     lispString];
+   ns_input_url_port     =3D make_int([[url port] intValue]);
+   ns_input_url_path     =3D [[url path]     lispString];
+   ns_input_url_query    =3D [[url query]    lispString];
+   ns_input_url_fragment =3D [[url fragment] lispString];
+   EV_TRAILER (theEvent);
+=20
+   return YES;
+ }
+=20
+ /* Notification from the Workspace to open a URL.  */
+ - (void)application: sender openURLs: (NSArray<NSURL *> *)urlList
+ {
+   NSEnumerator *urls =3D [urlList objectEnumerator];
+   NSURL *url;
+=20
+   NSTRACE ("[EmacsApp openURLs:]");
+   while ((url =3D [urls nextObject]) !=3D nil)
+     if (ns_do_open_file || not_in_argv ([url path])) {
+       [ns_pending_urls addObject: url];
+     }
+=20
+   /* The documentation says to do this for openFiles but it is not
+    * mentioned in the openURLs doc so I'm going to leave it out for
+    * now.
+   =20
+   [self replyToOpenOrPrint: NSApplicationDelegateReplySuccess];
+    */
+=20
+ }
+=20
+=20
+ /* =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+=20
      Service provision
       =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =
*/
***************
*** 7004,7010 ****
    height =3D (int)NSHeight (frame);
      NSTRACE_SIZE ("New size", NSMakeSize (width, height));
!   NSTRACE_SIZE ("Original size", size);
      /* Reset the frame size to match the bounds of the superview (the
       NSWindow's contentView).  We need to do this as sometimes the
--- 7065,7071 ----
    height =3D (int)NSHeight (frame);
      NSTRACE_SIZE ("New size", NSMakeSize (width, height));
!   NSTRACE_SIZE ("Original size", oldSize);
      /* Reset the frame size to match the bounds of the superview (the
       NSWindow's contentView).  We need to do this as sometimes the
***************
*** 9845,9850 ****
--- 9906,9947 ----
                "The file specified in the last NS event.");
    ns_input_file =3DQnil;
  +   /* -- URL components */
+=20
+   DEFVAR_LISP ("ns-input-url-scheme", ns_input_url_scheme,
+                "The scheme component of the URL specified in the last =
NS event.");
+   ns_input_url_scheme =3DQnil;
+=20
+   DEFVAR_LISP ("ns-input-url-user", ns_input_url_user,
+                "The user component of the URL specified in the last NS =
event.");
+   ns_input_url_user =3DQnil;
+=20
+   DEFVAR_LISP ("ns-input-url-password", ns_input_url_password,
+                "The password component of the URL specified in the =
last NS event.");
+   ns_input_url_password =3DQnil;
+=20
+   DEFVAR_LISP ("ns-input-url-host", ns_input_url_host,
+                "The host component of the URL specified in the last NS =
event.");
+   ns_input_url_host =3DQnil;
+=20
+   DEFVAR_LISP ("ns-input-url-port", ns_input_url_port,
+                "The port component of the URL specified in the last NS =
event.");
+   ns_input_url_port =3DQnil;
+=20
+   DEFVAR_LISP ("ns-input-url-path", ns_input_url_path,
+                "The path component of the URL specified in the last NS =
event.");
+   ns_input_url_path =3DQnil;
+=20
+   DEFVAR_LISP ("ns-input-url-query", ns_input_url_query,
+                "The query component of the URL specified in the last =
NS event.");
+   ns_input_url_query =3DQnil;
+=20
+   DEFVAR_LISP ("ns-input-url-fragment", ns_input_url_fragment,
+                "The fragment component of the URL specified in the =
last NS event.");
+   ns_input_url_fragment =3DQnil;
+=20
+   /* -- */
+=20
    DEFVAR_LISP ("ns-working-text", ns_working_text,
                "String for visualizing working composition sequence.");
    ns_working_text =3DQnil;
Only in emacs-28.2-new: trace






Message received at control <at> debbugs.gnu.org:


Received: (at control) by debbugs.gnu.org; 12 Feb 2025 08:46:26 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Feb 12 03:46:26 2025
Received: from localhost ([127.0.0.1]:60798 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ti8O2-0002ev-BB
	for submit <at> debbugs.gnu.org; Wed, 12 Feb 2025 03:46:26 -0500
Received: from mail-ed1-x52c.google.com ([2a00:1450:4864:20::52c]:47146)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <stefankangas@HIDDEN>)
 id 1ti8Nz-0002Tx-Um
 for control <at> debbugs.gnu.org; Wed, 12 Feb 2025 03:46:24 -0500
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5de4a8b4f86so7813127a12.2
 for <control <at> debbugs.gnu.org>; Wed, 12 Feb 2025 00:46:23 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1739349978; x=1739954778; darn=debbugs.gnu.org;
 h=to:subject:message-id:date:mime-version:from:from:to:cc:subject
 :date:message-id:reply-to;
 bh=ME9SnTdQ8RC8Brr7+GOXujmpJtuoJDNL8PPUXkGWEMA=;
 b=Q+hF5dIkRj7EGVLAtf6EetOyl0Y2bd1X63PmE7Sl7bpscheE10LMX03gvis5J5afT2
 a4bCu6AwvTVtfzlmS1m0HYgo5IqMFjwsK6jzK0pi0tEx1/YaSqMz5xp78EVVChi32t5B
 r41vuqrWOsp/yAp4cb/tzRCVTD/cATRa7NV1VN5ndzw7logCZl3uiFg/+Dvl1Qnf9OI5
 dkLLBUkXpmZTuTQKehhxivcaYMK/u0qlObgvLSOXk8suG8DPYD7FCMY6EGMcsfs58cLL
 y8UeoJry+LKdMd8+PYfDw2JhorNBQ9f17wpfGmqwHV/Mg4IOZHct0yw2mHIpo4NfDrQm
 HrQw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1739349978; x=1739954778;
 h=to:subject:message-id:date:mime-version:from:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=ME9SnTdQ8RC8Brr7+GOXujmpJtuoJDNL8PPUXkGWEMA=;
 b=RyT7D4h5l/xKofCdXovBeCGemeTP+qcmjvACrlSe5elnoJlZ45bFAWUaYg8TbiX41N
 EZUcG2wxsX6RqVnacpsBxiKNCOeuu/2NCeuXTucQtJee8jKPkpZm7EOAiDeSnTSo05f+
 G/4WiAVAiNAYJRNnj+YV02FFOrG9o0nT8YTP28phDKW4xRq7fIx+luHbH9O74u98oTrq
 0FI5vu/N8knmnIle9/a1HdCAJtBHJMiB2hQLD3qJrx9F4Su/yWEdiMqkPY5ACmDo5Nwy
 xjDcR1p32fu8W87hwstIOlsuq/MSewG2rc39TyDWfrjWm/Mk6FCctw9IHq5a1E63EnsF
 0MYA==
X-Gm-Message-State: AOJu0YycV+ecbtA7c3U4P2kKo+ajCeOPyl7peKVFU0rzIV+EZdMnHeFL
 15hqA1uuk+GJ0G1eqg9bjshF6qykF2v4BxXuN7De4j0SO3SlZRQFmcU+D+C4Rby1IOA0O+Texuy
 2ewZnzZmM2H1q3uFFHKPuKrcHODZmBP91Et7n2A==
X-Gm-Gg: ASbGncu2zAb+PVrsTvkXRHH8WACcgJdwFW9X95Z1g7bIpDFmTZOBrltgiC3FwrhfMKh
 11Jyr16uVvusOl8k1s8gS7MOjyLD0bs/dH3WamZotLgkl/3ZPKlS4CEw94nYBYywKZwANdy144g
 ==
X-Google-Smtp-Source: AGHT+IFjvDAbzAvqySPrJRWVRuuhEDto+bVIPo8d6Z31JnFFAPX9DTR7jk6zcjK7IVtULiuQfkr53SdbzKqxPMBEwbY=
X-Received: by 2002:a05:6402:5250:b0:5db:f423:19b9 with SMTP id
 4fb4d7f45d1cf-5deadda8aa8mr1968648a12.16.1739349977494; Wed, 12 Feb 2025
 00:46:17 -0800 (PST)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Wed, 12 Feb 2025 00:46:16 -0800
From: Stefan Kangas <stefankangas@HIDDEN>
MIME-Version: 1.0
Date: Wed, 12 Feb 2025 00:46:16 -0800
X-Gm-Features: AWEUYZlrndLEAXSd7UMTMPx6A25XxivZ8R0EtppGBGRUtF6lPfJ3WgUtQKOLdx0
Message-ID: <CADwFkm=8h2aeniw7HWPCsFkHzFLpbs6RrSF-cFdcbWt+WCyHPg@HIDDEN>
Subject: control message for bug #58626
To: control <at> debbugs.gnu.org
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: control
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

severity 58626 wishlist
quit




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#58626: Proposed changes to implement opening URLs on macOS
Resent-From: Stefan Kangas <stefankangas@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 23 Feb 2025 01:34:02 +0000
Resent-Message-ID: <handler.58626.B58626.174027443712580 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 58626
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: Perry Smith <pedzsan@HIDDEN>
Cc: 58626 <at> debbugs.gnu.org
Received: via spool by 58626-submit <at> debbugs.gnu.org id=B58626.174027443712580
          (code B ref 58626); Sun, 23 Feb 2025 01:34:02 +0000
Received: (at 58626) by debbugs.gnu.org; 23 Feb 2025 01:33:57 +0000
Received: from localhost ([127.0.0.1]:58224 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tm0sW-0003Gq-08
	for submit <at> debbugs.gnu.org; Sat, 22 Feb 2025 20:33:56 -0500
Received: from mail-ed1-x534.google.com ([2a00:1450:4864:20::534]:50428)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <stefankangas@HIDDEN>)
 id 1tm0sT-0003GX-B8
 for 58626 <at> debbugs.gnu.org; Sat, 22 Feb 2025 20:33:54 -0500
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-5e04064af07so4593738a12.0
 for <58626 <at> debbugs.gnu.org>; Sat, 22 Feb 2025 17:33:53 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1740274427; x=1740879227; darn=debbugs.gnu.org;
 h=content-transfer-encoding:cc:to:subject:message-id:date
 :mime-version:references:in-reply-to:from:from:to:cc:subject:date
 :message-id:reply-to;
 bh=NY7Cj4AzdJD32C1C/1TZm2eyxZ4vaK0knnDe6ZrQmbw=;
 b=L1lyuK3z0Qa2cBU9vrYzVvtOu0RwWE3n+p+SetM7G+ys/Ld6JbX1GxB0kaVTWDjE2A
 nkfHgOnBc4+U85QZHKf/o7JmZ35JcUOQIAe2jqUWeCs7O9OMUn3ziNuaqsEU6VfqIdTO
 gb/cePcB43pluXUrBXdbVf9oxByndX8SgAiD52lEUuNa29P8JM56/+IKTmU2T45Ao5o+
 2q5NrlX3UhpZWt7JVK2dvYEBvU1fYBqIBCh6XGTzwDiJiuBBzH7BzR/3exwTENrp8kiw
 jsZg8wjWoj2Ww3eHuOVUW4Lcz2FOb3aJ1hwAPh98BVVcbmsB3dvwp+bPS1Yu+dJL4/X9
 Oh9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1740274427; x=1740879227;
 h=content-transfer-encoding:cc:to:subject:message-id:date
 :mime-version:references:in-reply-to:from:x-gm-message-state:from:to
 :cc:subject:date:message-id:reply-to;
 bh=NY7Cj4AzdJD32C1C/1TZm2eyxZ4vaK0knnDe6ZrQmbw=;
 b=DhC5G6cy9vHUNy6N5JQEKD/wm+wHIcwQT6YmXjaBGDwGXv3WCVesf2rLbv6tYiYqsa
 d8y9KqK6jqsCFHrkLBzHvrPQzng8jXo6NP3BRyHWuajh6A5jcaCgTSjw97Xn1ImC1NSS
 z5jMzDYicsI9cLrAtkZiQKYruBSJ7QvjurhGJUffm/YbIxXQrkoO5ro4IgNxnE9AFdIs
 0QBznA9TLG/2Vv1QoKM9nNEFge1k1vjnCMh6TYRCGo+NaqnpNSnrcnRQrwoU1qpfyxoW
 +S4R2yzZMzJWOhjW18IIebZiSoEAaVrcnE1NjNitekDIXR5pvp73kOtc/o7KUMqwBMAF
 5RMw==
X-Gm-Message-State: AOJu0YyjgPPVgvAcGEP8xdnnP2Amlx6v+vRblXn9Jkg81XfXwkY+K/ig
 K8QZokCsoTiy+hy2ZA5t0XiUd1q4Um10uS36xczdl8eyCjl3pzTmu8neqa7z+UcwJyP6n9g37P7
 RYj0e97AqgYQ/MuTY30IO6kW62/4=
X-Gm-Gg: ASbGnctNlQHjPZQDJ8y53Mplz9PDFRjAlJO/C7oFpit/4bmW+L6mY/C1wp8RtmfzdQZ
 arj00iy0nrwF+GgY0UmcAUz1LD5vxadsO9LnLm/u5sSrf4aW8nVdJjUYcgb/Gv5+b6seBb+OQ/g
 eYjL/sXo+H
X-Google-Smtp-Source: AGHT+IE2TnduXV+V3LiLYSYiBYVbipPKFSZPV4mzq3EPHUMGB1C1wWN+CjSM0wtx9iryeHDhWZ8CLjpGOAqVVQlduGk=
X-Received: by 2002:a05:6402:1d4b:b0:5e0:36c0:7b00 with SMTP id
 4fb4d7f45d1cf-5e0b7257b92mr8335416a12.31.1740274426922; Sat, 22 Feb 2025
 17:33:46 -0800 (PST)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Sun, 23 Feb 2025 01:33:46 +0000
From: Stefan Kangas <stefankangas@HIDDEN>
In-Reply-To: <0633A467-B560-456E-A096-81CCDA89B1BF@HIDDEN>
References: <378CF744-E39E-490C-9CFF-E65CB325BE25@HIDDEN>
 <CADwFkmmiQ5Guy1gzXQ+QNOVn8o6uq7vQWV55Vx36GZHgv7o2fA@HIDDEN>
 <0633A467-B560-456E-A096-81CCDA89B1BF@HIDDEN>
MIME-Version: 1.0
Date: Sun, 23 Feb 2025 01:33:46 +0000
X-Gm-Features: AWEUYZmXA2yp3Q3RyFCoV2KMZkzDGVTuETtWZk-_ZEJqgf-Q5LBTEX2DlzWCGVw
Message-ID: <CADwFkmk9SmfTrUqQXtT+NCtbNsEkp-OwvPN3v6Z9R_M-9+tJig@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Perry Smith <pedzsan@HIDDEN> writes:

>> On Nov 12, 2022, at 14:57, Stefan Kangas <stefankangas@HIDDEN> wrote:
>>
>> Perry Smith <pedzsan@HIDDEN> writes:
>>
>>> Attached is my patch file based upon the emacs-28.2 tar ball.  With
>>> these changes, I can do:
>>>
>>>    open emacs:///some/path/to/file.txt#25,40
>>
>> Could you send the patch in uncompressed instead?  That will simplify
>> reviewing it.
>
> Please let me know if this doesn=E2=80=99t work...
>
> Only in emacs-28.2-new: .DS_Store
> Only in emacs-28.2-new: What-I-Did.txt
> Only in emacs-28.2/admin/unidata: unidata-gen.elc
> Only in emacs-28.2/admin/unidata: unidata.txt
> Only in emacs-28.2/admin/unidata: uvs.elc
> Only in emacs-28.2-new/lib: sys
> Only in emacs-28.2-new/lib-src: ctags.dSYM
> Only in emacs-28.2-new/lib-src: ebrowse.dSYM
> Only in emacs-28.2-new/lib-src: emacsclient.dSYM
> Only in emacs-28.2-new/lib-src: etags.dSYM
> Only in emacs-28.2-new/lib-src: hexl.dSYM
> Only in emacs-28.2-new/lib-src: make-docfile.dSYM
> Only in emacs-28.2-new/lib-src: make-fingerprint.dSYM
> Only in emacs-28.2-new/lib-src: movemail.dSYM
> Only in emacs-28.2/lisp: loaddefs.el
> Only in emacs-28.2-new/lisp: loaddefs.el~
> diff -rc emacs-28.2/lisp/term/common-win.el emacs-28.2-new/lisp/term/comm=
on-win.el
> *** emacs-28.2/lisp/term/common-win.el 2022-09-06 16:31:54.000000000 -050=
0
> --- emacs-28.2-new/lisp/term/common-win.el 2022-10-16 07:53:34.000000000 =
-0500
> ***************
> *** 73,78 ****
> --- 73,79 ----
>         (cons 12 'ns-new-frame)
>         (cons 13 'ns-toggle-toolbar)
>         (cons 14 'ns-show-prefs)
> +       (cons 15 'ns-open-url)
>         ))))
>       (set-terminal-parameter frame 'x-setup-function-keys t)))
>   Binary files emacs-28.2/lisp/term/common-win.elc and emacs-28.2-new/lis=
p/term/common-win.elc differ
> diff -rc emacs-28.2/lisp/term/ns-win.el emacs-28.2-new/lisp/term/ns-win.e=
l
> *** emacs-28.2/lisp/term/ns-win.el 2022-09-06 16:31:54.000000000 -0500
> --- emacs-28.2-new/lisp/term/ns-win.el 2022-10-18 11:36:44.000000000 -050=
0
> ***************
> *** 182,187 ****
> --- 182,188 ----
>   (define-key global-map [ns-new-frame] 'make-frame)
>   (define-key global-map [ns-toggle-toolbar] 'ns-toggle-toolbar)
>   (define-key global-map [ns-show-prefs] 'customize)
> + (define-key global-map [ns-open-url] 'ns-open-url)
>       ;; Set up a number of aliases and other layers to pretend we're usi=
ng
> ***************
> *** 530,535 ****
> --- 531,578 ----
>     (global-set-key [drag-n-drop] 'ns-drag-n-drop)
>   + (defvar ns-input-url-scheme)            ; nsterm.m
> + (defvar ns-input-url-user)              ; nsterm.m
> + (defvar ns-input-url-password)          ; nsterm.m
> + (defvar ns-input-url-host)              ; nsterm.m
> + (defvar ns-input-url-port)              ; nsterm.m
> + (defvar ns-input-url-path)              ; nsterm.m
> + (defvar ns-input-url-query)             ; nsterm.m
> + (defvar ns-input-url-fragment)          ; nsterm.m
> +
> + (defun ns-open-url ()
> +   "Open a buffer as directed by the URL which has been broken down
> +   into components:
> +     `ns-input-url-scheme'   - the URL's scheme   (string)
> +     `ns-input-url-user'     - the URL's user     (string)
> +     `ns-input-url-password' - the URL's password (string)
> +     `ns-input-url-host'     - the URL's host     (string)
> +     `ns-input-url-port'     - the URL's port     (integer)
> +     `ns-input-url-path'     - the URL's path     (string)
> +     `ns-input-url-query'    - the URL's query    (string)
> +     `ns-input-url-fragment' - the URL's fragment (string)
> + "
> +   (interactive)
> +   (cond
> +    ((equal ns-input-url-scheme "file")
> +     (progn (setq ns-input-file (append (list ns-input-url-path)))
> +            (setq ns-input-line nil)     ; My testing on macOS 12.6 show=
s the fragment is never passed
> +            (ns-open-file-select-line)))
> +    ((equal ns-input-url-scheme "emacs")
> +     (progn (setq ns-input-file (append (list ns-input-url-path)))
> +            (setq ns-input-line
> +                  (and ns-input-url-fragment
> +                       (let ((seq (mapcar #'string-to-number (split-stri=
ng ns-input-url-fragment "[-,:]" t))))
> +                         (cond
> +                          ((=3D (length seq) 1) (car seq))
> +                          ((=3D (length seq) 2) (cons (car seq) (car (cd=
r seq))))))))
> +            (ns-open-file-select-line)))
> +    (t (message (format "scheme: %s; user: %s; password: %s; host: %s; p=
ort: %d; path: %s; query: %s; fragment: %s"
> +                        ns-input-url-scheme ns-input-url-user
> +                        ns-input-url-password ns-input-url-host
> +                        ns-input-url-port ns-input-url-path
> +                        ns-input-url-query ns-input-url-fragment)))))
> +
>   ;;;; Frame-related functions.
>     ;; nsterm.m
> Binary files emacs-28.2/lisp/term/ns-win.elc and emacs-28.2-new/lisp/term=
/ns-win.elc differ
> Only in emacs-28.2-new/nextstep: .DS_Store
> Only in emacs-28.2-new/nextstep/Cocoa/Emacs.base/Contents/Resources: Engl=
ish.lproj
> diff -rc emacs-28.2/nextstep/templates/Info.plist.in emacs-28.2-new/nexts=
tep/templates/Info.plist.in
> *** emacs-28.2/nextstep/templates/Info.plist.in 2022-09-06 16:31:54.00000=
0000 -0500
> --- emacs-28.2-new/nextstep/templates/Info.plist.in 2022-10-15 11:31:41.0=
00000000 -0500
> ***************
> *** 672,677 ****
> --- 672,687 ----
>   <string>mailto</string>
>   </array>
>   </dict>
> + <dict>
> + <key>CFBundleTypeRole</key>
> + <string>Editor</string>
> + <key>CFBundleURLName</key>
> + <string>Emacs Local Address URL</string>
> + <key>CFBundleURLSchemes</key>
> + <array>
> + <string>emacs</string>
> + </array>
> + </dict>
>   </array>
>   <key>NSAppleScriptEnabled</key>
>   <string>YES</string>
> Only in emacs-28.2-new/nextstep/templates: Info.plist.in-orig
> diff -rc emacs-28.2/src/nsterm.m emacs-28.2-new/src/nsterm.m
> *** emacs-28.2/src/nsterm.m 2022-09-06 16:31:54.000000000 -0500
> --- emacs-28.2-new/src/nsterm.m 2022-10-16 12:13:33.000000000 -0500
> ***************
> *** 292,298 ****
>   static struct input_event *q_event_ptr =3D NULL;
>   static int n_emacs_events_pending =3D 0;
>   static NSMutableArray *ns_pending_files, *ns_pending_service_names,
> !   *ns_pending_service_args;
>   static BOOL ns_do_open_file =3D NO;
>   static BOOL ns_last_use_native_fullscreen;
>   --- 292,298 ----
>   static struct input_event *q_event_ptr =3D NULL;
>   static int n_emacs_events_pending =3D 0;
>   static NSMutableArray *ns_pending_files, *ns_pending_service_names,
> !   *ns_pending_service_args, *ns_pending_urls;
>   static BOOL ns_do_open_file =3D NO;
>   static BOOL ns_last_use_native_fullscreen;
>   ***************
> *** 4361,4366 ****
> --- 4361,4372 ----
>             [ns_pending_service_names removeObjectAtIndex: 0];
>             [ns_pending_service_args removeObjectAtIndex: 0];
>           }
> +       /* Process the open URL requests */
> +       else if (ns_pending_urls && [ns_pending_urls count] !=3D 0
> +                && [(EmacsApp *) NSApp openURL: [ns_pending_urls objectA=
tIndex: 0]])
> +         {
> +             [ns_pending_urls removeObjectAtIndex: 0];
> +         }
>         else
>           {
>             /* Run and wait for events.  We must always send one NX_APPDE=
FINED event
> ***************
> *** 5123,5128 ****
> --- 5129,5135 ----
>     ns_pending_files =3D [[NSMutableArray alloc] init];
>     ns_pending_service_names =3D [[NSMutableArray alloc] init];
>     ns_pending_service_args =3D [[NSMutableArray alloc] init];
> +   ns_pending_urls =3D [[NSMutableArray alloc] init];
>       /* Start app and create the main menu, window, view.
>        Needs to be here because ns_initialize_display_info () uses AppKit=
 classes.
> ***************
> *** 5938,5943 ****
> --- 5945,6004 ----
>     /* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D
>   +     Open URL
> +
> +    =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D */
> +
> + /* Open a URL after going into queue read by ns_read_socket.  */
> + - (BOOL) openURL: (NSURL *)url
> + {
> +   NSTRACE ("[EmacsApp openURL:]");
> +
> +   struct frame *emacsframe =3D SELECTED_FRAME ();
> +   NSEvent *theEvent =3D [NSApp currentEvent];
> +
> +   if (!emacs_event)
> +     return NO;
> +
> +   emacs_event->kind =3D NS_NONKEY_EVENT;
> +   emacs_event->code =3D KEY_NS_OPEN_URL;
> +   ns_input_url_scheme   =3D [[url scheme]   lispString];
> +   ns_input_url_user     =3D [[url user]     lispString];
> +   ns_input_url_password =3D [[url password] lispString];
> +   ns_input_url_host     =3D [[url host]     lispString];
> +   ns_input_url_port     =3D make_int([[url port] intValue]);
> +   ns_input_url_path     =3D [[url path]     lispString];
> +   ns_input_url_query    =3D [[url query]    lispString];
> +   ns_input_url_fragment =3D [[url fragment] lispString];
> +   EV_TRAILER (theEvent);
> +
> +   return YES;
> + }
> +
> + /* Notification from the Workspace to open a URL.  */
> + - (void)application: sender openURLs: (NSArray<NSURL *> *)urlList
> + {
> +   NSEnumerator *urls =3D [urlList objectEnumerator];
> +   NSURL *url;
> +
> +   NSTRACE ("[EmacsApp openURLs:]");
> +   while ((url =3D [urls nextObject]) !=3D nil)
> +     if (ns_do_open_file || not_in_argv ([url path])) {
> +       [ns_pending_urls addObject: url];
> +     }
> +
> +   /* The documentation says to do this for openFiles but it is not
> +    * mentioned in the openURLs doc so I'm going to leave it out for
> +    * now.
> +
> +   [self replyToOpenOrPrint: NSApplicationDelegateReplySuccess];
> +    */
> +
> + }
> +
> +
> + /* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D
> +
>       Service provision
>        =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D */
> ***************
> *** 7004,7010 ****
>     height =3D (int)NSHeight (frame);
>       NSTRACE_SIZE ("New size", NSMakeSize (width, height));
> !   NSTRACE_SIZE ("Original size", size);
>       /* Reset the frame size to match the bounds of the superview (the
>        NSWindow's contentView).  We need to do this as sometimes the
> --- 7065,7071 ----
>     height =3D (int)NSHeight (frame);
>       NSTRACE_SIZE ("New size", NSMakeSize (width, height));
> !   NSTRACE_SIZE ("Original size", oldSize);
>       /* Reset the frame size to match the bounds of the superview (the
>        NSWindow's contentView).  We need to do this as sometimes the
> ***************
> *** 9845,9850 ****
> --- 9906,9947 ----
>                 "The file specified in the last NS event.");
>     ns_input_file =3DQnil;
>   +   /* -- URL components */
> +
> +   DEFVAR_LISP ("ns-input-url-scheme", ns_input_url_scheme,
> +                "The scheme component of the URL specified in the last N=
S event.");
> +   ns_input_url_scheme =3DQnil;
> +
> +   DEFVAR_LISP ("ns-input-url-user", ns_input_url_user,
> +                "The user component of the URL specified in the last NS =
event.");
> +   ns_input_url_user =3DQnil;
> +
> +   DEFVAR_LISP ("ns-input-url-password", ns_input_url_password,
> +                "The password component of the URL specified in the last=
 NS event.");
> +   ns_input_url_password =3DQnil;
> +
> +   DEFVAR_LISP ("ns-input-url-host", ns_input_url_host,
> +                "The host component of the URL specified in the last NS =
event.");
> +   ns_input_url_host =3DQnil;
> +
> +   DEFVAR_LISP ("ns-input-url-port", ns_input_url_port,
> +                "The port component of the URL specified in the last NS =
event.");
> +   ns_input_url_port =3DQnil;
> +
> +   DEFVAR_LISP ("ns-input-url-path", ns_input_url_path,
> +                "The path component of the URL specified in the last NS =
event.");
> +   ns_input_url_path =3DQnil;
> +
> +   DEFVAR_LISP ("ns-input-url-query", ns_input_url_query,
> +                "The query component of the URL specified in the last NS=
 event.");
> +   ns_input_url_query =3DQnil;
> +
> +   DEFVAR_LISP ("ns-input-url-fragment", ns_input_url_fragment,
> +                "The fragment component of the URL specified in the last=
 NS event.");
> +   ns_input_url_fragment =3DQnil;
> +
> +   /* -- */
> +
>     DEFVAR_LISP ("ns-working-text", ns_working_text,
>                 "String for visualizing working composition sequence.");
>     ns_working_text =3DQnil;
> Only in emacs-28.2-new: trace

Sorry, but could you please resend this as formatted by

    git format-patch -1

?





Last modified: Sun, 23 Feb 2025 01:45:01 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.