From unknown Tue Jun 17 20:18:28 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#72831 <72831@debbugs.gnu.org> To: bug#72831 <72831@debbugs.gnu.org> Subject: Status: [PATCH] gnus-icalendar: Allow comments in event replies Reply-To: bug#72831 <72831@debbugs.gnu.org> Date: Wed, 18 Jun 2025 03:18:28 +0000 retitle 72831 [PATCH] gnus-icalendar: Allow comments in event replies reassign 72831 emacs submitter 72831 Ferdinand Pieper severity 72831 normal tag 72831 fixed patch thanks From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 27 09:51:43 2024 Received: (at submit) by debbugs.gnu.org; 27 Aug 2024 13:51:43 +0000 Received: from localhost ([127.0.0.1]:46271 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1siwbm-0004xX-Q7 for submit@debbugs.gnu.org; Tue, 27 Aug 2024 09:51:43 -0400 Received: from lists.gnu.org ([209.51.188.17]:49564) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1siszD-00068n-7D for submit@debbugs.gnu.org; Tue, 27 Aug 2024 05:59:39 -0400 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 1sisyM-00065q-DD for bug-gnu-emacs@gnu.org; Tue, 27 Aug 2024 05:58:46 -0400 Received: from pie.tf ([5.45.99.52]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sisyK-0000Zz-C2 for bug-gnu-emacs@gnu.org; Tue, 27 Aug 2024 05:58:46 -0400 Received: from [45.12.203.65] (helo=localhost) by pie.tf with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1sisy9-0000CV-HU; Tue, 27 Aug 2024 09:58:33 +0000 From: Ferdinand Pieper To: bug-gnu-emacs@gnu.org Subject: [PATCH] gnus-icalendar: Allow comments in event replies Date: Tue, 27 Aug 2024 11:58:32 +0200 Message-ID: <875xrml22f.fsf@pie.tf> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=5.45.99.52; envelope-from=list_gnu@pie.tf; helo=pie.tf X-Spam_score_int: 14 X-Spam_score: 1.4 X-Spam_bar: + X-Spam_report: (1.4 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_SBL_CSS=3.335, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: 2.2 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Tags: patch The iCalendar RFC allows comments in an event reply to e.g. indicate a reason for declining. This patch implements sending an additional comment if the usual functions `gnus-icalendar-reply-[accept, de [...] Content analysis details: (2.2 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 3.6 RCVD_IN_SBL_CSS RBL: Received via a relay in Spamhaus SBL-CSS [45.12.203.65 listed in zen.spamhaus.org] -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [209.51.188.17 listed in list.dnswl.org] 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) -0.0 SPF_HELO_PASS SPF: HELO matches SPF record X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Tue, 27 Aug 2024 09:51:41 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.2 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Tags: patch The iCalendar RFC allows comments in an event reply to e.g. indicate a reason for declining. This patch implements sending an additional comment if the usual functions `gnus-icalendar-reply-[accept,de [...] Content analysis details: (1.2 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [209.51.188.17 listed in list.dnswl.org] 3.6 RCVD_IN_SBL_CSS RBL: Received via a relay in Spamhaus SBL-CSS [45.12.203.65 listed in zen.spamhaus.org] -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager --=-=-= Content-Type: text/plain Tags: patch The iCalendar RFC allows comments in an event reply to e.g. indicate a reason for declining. This patch implements sending an additional comment if the usual functions `gnus-icalendar-reply-[accept,decline,tentative]` (bound to `i a`, `i d`, `i t`) are called with a prefix argument. Please let me know any feedback regarding the patch and commit message formatting. Notably this only implements the comment functionality for the functions mentioned above and does not include the buttons defined in `gnus-icalendar-event:inline-reply-buttons`, as I am not sure how the `read-string` for the user's comment should be implemented for them. Best, --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Allow-comments-to-organizer-in-ical-event-replies.patch >From 8ff07723b407d56de72ddfea98b8931951bb7ad8 Mon Sep 17 00:00:00 2001 From: fpi Date: Mon, 19 Aug 2024 17:18:11 +0200 Subject: [PATCH] Allow comments to organizer in ical event replies * lisp/gnus/gnus-icalendar.el (gnus-icalendar-event--build-reply-event-body): Add optional COMMENT argument to be inserted into the reply. (gnus-icalendar-event-reply-from-buffer): Add COMMENT argument to be passed through to gnus-icalendar-event--build-reply-event-body (gnus-icalendar-reply-accept): (gnus-icalendar-reply-tentative): (gnus-icalendar-reply-decline): If interactively called with a prefix argument ask user for a COMMENT to add to the reply. --- lisp/gnus/gnus-icalendar.el | 52 ++++++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 15 deletions(-) diff --git a/lisp/gnus/gnus-icalendar.el b/lisp/gnus/gnus-icalendar.el index af7284b88e8..7a295fb9ed2 100644 --- a/lisp/gnus/gnus-icalendar.el +++ b/lisp/gnus/gnus-icalendar.el @@ -309,7 +309,7 @@ gnus-icalendar-event-from-buffer ;;; gnus-icalendar-event-reply ;;; -(defun gnus-icalendar-event--build-reply-event-body (ical-request status identities) +(defun gnus-icalendar-event--build-reply-event-body (ical-request status identities &optional comment) (let ((summary-status (capitalize (symbol-name status))) (attendee-status (upcase (symbol-name status))) reply-event-lines) @@ -319,6 +319,10 @@ gnus-icalendar-event--build-reply-event-body (if (string-match "^[^:]+:" line) (replace-match (format "\\&%s: " summary-status) t nil line) line)) + (update-comment + (line) + (if comment (format "COMMENT:%s" comment) + line)) (update-dtstamp () (format-time-string "DTSTAMP:%Y%m%dT%H%M%SZ" nil t)) (attendee-matches-identity @@ -341,6 +345,7 @@ gnus-icalendar-event--build-reply-event-body (cond ((string= key "ATTENDEE") (update-attendee-status line)) ((string= key "SUMMARY") (update-summary line)) + ((string= key "COMMENT") (update-comment line)) ((string= key "DTSTAMP") (update-dtstamp)) ((member key '("ORGANIZER" "DTSTART" "DTEND" "LOCATION" "DURATION" "SEQUENCE" @@ -363,12 +368,17 @@ gnus-icalendar-event--build-reply-event-body attendee-status user-full-name user-mail-address) reply-event-lines)) + ;; add comment line if not existing + (when (and comment (not (gnus-icalendar-find-if (lambda (x) (string-match "^COMMENT" x)) + reply-event-lines))) + (push (format "COMMENT:%s" comment) reply-event-lines)) + (mapconcat #'identity `("BEGIN:VEVENT" ,@(nreverse reply-event-lines) "END:VEVENT") "\n")))) -(defun gnus-icalendar-event-reply-from-buffer (buf status identities) +(defun gnus-icalendar-event-reply-from-buffer (buf status identities &optional comment) "Build a calendar event reply for request contained in BUF. The reply will have STATUS (`accepted', `tentative' or `declined'). The reply will be composed for attendees matching any entry @@ -396,7 +406,7 @@ gnus-icalendar-event-reply-from-buffer "PRODID:Gnus" "VERSION:2.0" zone - (gnus-icalendar-event--build-reply-event-body event status identities) + (gnus-icalendar-event--build-reply-event-body event status identities comment) "END:VCALENDAR"))) (mapconcat #'identity (delq nil contents) "\n")))))) @@ -878,13 +888,13 @@ gnus-icalendar-send-buffer-by-mail (insert "Subject: " subject) (message-send-and-exit)))) -(defun gnus-icalendar-reply (data) +(defun gnus-icalendar-reply (data &optional comment) (let* ((handle (car data)) (status (cadr data)) (event (caddr data)) (reply (gnus-icalendar-with-decoded-handle handle (gnus-icalendar-event-reply-from-buffer - (current-buffer) status (gnus-icalendar-identities)))) + (current-buffer) status (gnus-icalendar-identities) comment))) (organizer (gnus-icalendar-event:organizer event))) (when reply @@ -1009,25 +1019,37 @@ gnus-icalendar-save-event (when data (gnus-icalendar-save-part data)))) -(defun gnus-icalendar-reply-accept () - "Accept invitation in the current article." +(defun gnus-icalendar-reply-accept (&optional comment-p) + "Accept invitation in the current article. + +With a prefix `\\[universal-argument]' prompt for a comment to include +in the reply." (interactive nil gnus-article-mode gnus-summary-mode) (with-current-buffer gnus-article-buffer - (gnus-icalendar-reply (list gnus-icalendar-handle 'accepted gnus-icalendar-event)) + (gnus-icalendar-reply (list gnus-icalendar-handle 'accepted gnus-icalendar-event) + (when comment-p (read-string "Comment: "))) (setq-local gnus-icalendar-reply-status 'accepted))) -(defun gnus-icalendar-reply-tentative () - "Send tentative response to invitation in the current article." +(defun gnus-icalendar-reply-tentative (&optional comment-p) + "Send tentative response to invitation in the current article. + +With a prefix `\\[universal-argument]' prompt for a comment to include +in the reply." (interactive nil gnus-article-mode gnus-summary-mode) (with-current-buffer gnus-article-buffer - (gnus-icalendar-reply (list gnus-icalendar-handle 'tentative gnus-icalendar-event)) + (gnus-icalendar-reply (list gnus-icalendar-handle 'tentative gnus-icalendar-event) + (when comment-p (read-string "Comment: "))) (setq-local gnus-icalendar-reply-status 'tentative))) -(defun gnus-icalendar-reply-decline () - "Decline invitation in the current article." - (interactive nil gnus-article-mode gnus-summary-mode) +(defun gnus-icalendar-reply-decline (&optional comment-p) + "Decline invitation in the current article. + +With a prefix `\\[universal-argument]' prompt for a comment to include +in the reply." + (interactive "P" gnus-article-mode gnus-summary-mode) (with-current-buffer gnus-article-buffer - (gnus-icalendar-reply (list gnus-icalendar-handle 'declined gnus-icalendar-event)) + (gnus-icalendar-reply (list gnus-icalendar-handle 'declined gnus-icalendar-event) + (when comment-p (read-string "Comment: "))) (setq-local gnus-icalendar-reply-status 'declined))) (defun gnus-icalendar-event-export () -- 2.30.2 --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 28 07:06:03 2024 Received: (at 72831) by debbugs.gnu.org; 28 Aug 2024 11:06:03 +0000 Received: from localhost ([127.0.0.1]:48247 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sjGV0-0000A2-AG for submit@debbugs.gnu.org; Wed, 28 Aug 2024 07:06:02 -0400 Received: from eggs.gnu.org ([209.51.188.92]:39538) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sjGUw-00009V-LK for 72831@debbugs.gnu.org; Wed, 28 Aug 2024 07:06:00 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sjGRr-0000dY-CM; Wed, 28 Aug 2024 07:02:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=Plk50LuV9PSjn2OG5H90P0O3nlk1iE+vhPzt7J0e7eo=; b=SG9C9qmOuGeZ Xbu02BX7UcbuV6nUkpne8jZVW2jEWX/m0NBwkQbrqe1ci5vkxD5EJz8RWNdbDY2NwTApOkaa+Yqmr rYOlafdVcGfqjVjn+2j/tKq2iPpFf1sH14UQ0zf5ZKqHktQ5R6OtrYqEEA7Nnj8BrOa80crzjU2Rb FCrw4ZmxeDLuilsEBknpnZYiODNDjftUqBvEOkX3AZ0u/LvWaWvF6079rjbFauJY0lGXIcWwTR+oZ +vpqXEQljrJt5txiVWljVA2S9gAiiE0Djf3vIKM+ntRf4YGm4lZCFA2vJOuy/nJ+VGywEHr6Yi5k1 3waF+GQC+4WjUk50vmyjVQ==; Date: Wed, 28 Aug 2024 14:02:42 +0300 Message-Id: <868qwgj4fh.fsf@gnu.org> From: Eli Zaretskii To: Ferdinand Pieper , Robert Pluim , Andrew G Cohen , Alexandre Duret-Lutz In-Reply-To: <875xrml22f.fsf@pie.tf> (message from Ferdinand Pieper on Tue, 27 Aug 2024 11:58:32 +0200) Subject: Re: bug#72831: [PATCH] gnus-icalendar: Allow comments in event replies References: <875xrml22f.fsf@pie.tf> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 72831 Cc: 72831@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Ferdinand Pieper > Date: Tue, 27 Aug 2024 11:58:32 +0200 > > Tags: patch > > The iCalendar RFC allows comments in an event reply to e.g. indicate a reason for declining. This patch implements sending an additional comment if the usual functions `gnus-icalendar-reply-[accept,decline,tentative]` (bound to `i a`, `i d`, `i t`) are called with a prefix argument. > > Please let me know any feedback regarding the patch and commit message formatting. > > Notably this only implements the comment functionality for the functions mentioned above and does not include the buttons defined in `gnus-icalendar-event:inline-reply-buttons`, as I am not sure how the `read-string` for the user's comment should be implemented for them. Thanks. Robert, Andrew, and Alexandre: would you please review the proposed changes below and comment? > >From 8ff07723b407d56de72ddfea98b8931951bb7ad8 Mon Sep 17 00:00:00 2001 > From: fpi > Date: Mon, 19 Aug 2024 17:18:11 +0200 > Subject: [PATCH] Allow comments to organizer in ical event replies > > * lisp/gnus/gnus-icalendar.el > (gnus-icalendar-event--build-reply-event-body): Add optional COMMENT > argument to be inserted into the reply. > (gnus-icalendar-event-reply-from-buffer): Add COMMENT argument to be > passed through to gnus-icalendar-event--build-reply-event-body > (gnus-icalendar-reply-accept): > (gnus-icalendar-reply-tentative): > (gnus-icalendar-reply-decline): If interactively called with a prefix > argument ask user for a COMMENT to add to the reply. > --- > lisp/gnus/gnus-icalendar.el | 52 ++++++++++++++++++++++++++----------- > 1 file changed, 37 insertions(+), 15 deletions(-) > > diff --git a/lisp/gnus/gnus-icalendar.el b/lisp/gnus/gnus-icalendar.el > index af7284b88e8..7a295fb9ed2 100644 > --- a/lisp/gnus/gnus-icalendar.el > +++ b/lisp/gnus/gnus-icalendar.el > @@ -309,7 +309,7 @@ gnus-icalendar-event-from-buffer > ;;; gnus-icalendar-event-reply > ;;; > > -(defun gnus-icalendar-event--build-reply-event-body (ical-request status identities) > +(defun gnus-icalendar-event--build-reply-event-body (ical-request status identities &optional comment) > (let ((summary-status (capitalize (symbol-name status))) > (attendee-status (upcase (symbol-name status))) > reply-event-lines) > @@ -319,6 +319,10 @@ gnus-icalendar-event--build-reply-event-body > (if (string-match "^[^:]+:" line) > (replace-match (format "\\&%s: " summary-status) t nil line) > line)) > + (update-comment > + (line) > + (if comment (format "COMMENT:%s" comment) > + line)) > (update-dtstamp () > (format-time-string "DTSTAMP:%Y%m%dT%H%M%SZ" nil t)) > (attendee-matches-identity > @@ -341,6 +345,7 @@ gnus-icalendar-event--build-reply-event-body > (cond > ((string= key "ATTENDEE") (update-attendee-status line)) > ((string= key "SUMMARY") (update-summary line)) > + ((string= key "COMMENT") (update-comment line)) > ((string= key "DTSTAMP") (update-dtstamp)) > ((member key '("ORGANIZER" "DTSTART" "DTEND" > "LOCATION" "DURATION" "SEQUENCE" > @@ -363,12 +368,17 @@ gnus-icalendar-event--build-reply-event-body > attendee-status user-full-name user-mail-address) > reply-event-lines)) > > + ;; add comment line if not existing > + (when (and comment (not (gnus-icalendar-find-if (lambda (x) (string-match "^COMMENT" x)) > + reply-event-lines))) > + (push (format "COMMENT:%s" comment) reply-event-lines)) > + > (mapconcat #'identity `("BEGIN:VEVENT" > ,@(nreverse reply-event-lines) > "END:VEVENT") > "\n")))) > > -(defun gnus-icalendar-event-reply-from-buffer (buf status identities) > +(defun gnus-icalendar-event-reply-from-buffer (buf status identities &optional comment) > "Build a calendar event reply for request contained in BUF. > The reply will have STATUS (`accepted', `tentative' or `declined'). > The reply will be composed for attendees matching any entry > @@ -396,7 +406,7 @@ gnus-icalendar-event-reply-from-buffer > "PRODID:Gnus" > "VERSION:2.0" > zone > - (gnus-icalendar-event--build-reply-event-body event status identities) > + (gnus-icalendar-event--build-reply-event-body event status identities comment) > "END:VCALENDAR"))) > > (mapconcat #'identity (delq nil contents) "\n")))))) > @@ -878,13 +888,13 @@ gnus-icalendar-send-buffer-by-mail > (insert "Subject: " subject) > (message-send-and-exit)))) > > -(defun gnus-icalendar-reply (data) > +(defun gnus-icalendar-reply (data &optional comment) > (let* ((handle (car data)) > (status (cadr data)) > (event (caddr data)) > (reply (gnus-icalendar-with-decoded-handle handle > (gnus-icalendar-event-reply-from-buffer > - (current-buffer) status (gnus-icalendar-identities)))) > + (current-buffer) status (gnus-icalendar-identities) comment))) > (organizer (gnus-icalendar-event:organizer event))) > > (when reply > @@ -1009,25 +1019,37 @@ gnus-icalendar-save-event > (when data > (gnus-icalendar-save-part data)))) > > -(defun gnus-icalendar-reply-accept () > - "Accept invitation in the current article." > +(defun gnus-icalendar-reply-accept (&optional comment-p) > + "Accept invitation in the current article. > + > +With a prefix `\\[universal-argument]' prompt for a comment to include > +in the reply." > (interactive nil gnus-article-mode gnus-summary-mode) > (with-current-buffer gnus-article-buffer > - (gnus-icalendar-reply (list gnus-icalendar-handle 'accepted gnus-icalendar-event)) > + (gnus-icalendar-reply (list gnus-icalendar-handle 'accepted gnus-icalendar-event) > + (when comment-p (read-string "Comment: "))) > (setq-local gnus-icalendar-reply-status 'accepted))) > > -(defun gnus-icalendar-reply-tentative () > - "Send tentative response to invitation in the current article." > +(defun gnus-icalendar-reply-tentative (&optional comment-p) > + "Send tentative response to invitation in the current article. > + > +With a prefix `\\[universal-argument]' prompt for a comment to include > +in the reply." > (interactive nil gnus-article-mode gnus-summary-mode) > (with-current-buffer gnus-article-buffer > - (gnus-icalendar-reply (list gnus-icalendar-handle 'tentative gnus-icalendar-event)) > + (gnus-icalendar-reply (list gnus-icalendar-handle 'tentative gnus-icalendar-event) > + (when comment-p (read-string "Comment: "))) > (setq-local gnus-icalendar-reply-status 'tentative))) > > -(defun gnus-icalendar-reply-decline () > - "Decline invitation in the current article." > - (interactive nil gnus-article-mode gnus-summary-mode) > +(defun gnus-icalendar-reply-decline (&optional comment-p) > + "Decline invitation in the current article. > + > +With a prefix `\\[universal-argument]' prompt for a comment to include > +in the reply." > + (interactive "P" gnus-article-mode gnus-summary-mode) > (with-current-buffer gnus-article-buffer > - (gnus-icalendar-reply (list gnus-icalendar-handle 'declined gnus-icalendar-event)) > + (gnus-icalendar-reply (list gnus-icalendar-handle 'declined gnus-icalendar-event) > + (when comment-p (read-string "Comment: "))) > (setq-local gnus-icalendar-reply-status 'declined))) > > (defun gnus-icalendar-event-export () > -- > 2.30.2 > From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 28 09:47:20 2024 Received: (at 72831) by debbugs.gnu.org; 28 Aug 2024 13:47:20 +0000 Received: from localhost ([127.0.0.1]:48496 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sjJ15-0004t4-Qr for submit@debbugs.gnu.org; Wed, 28 Aug 2024 09:47:20 -0400 Received: from mail-wr1-f52.google.com ([209.85.221.52]:49250) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sjJ12-0004sl-1K for 72831@debbugs.gnu.org; Wed, 28 Aug 2024 09:47:18 -0400 Received: by mail-wr1-f52.google.com with SMTP id ffacd0b85a97d-3719753d365so3825134f8f.2 for <72831@debbugs.gnu.org>; Wed, 28 Aug 2024 06:46:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1724852714; x=1725457514; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:references :in-reply-to:subject:cc:to:from:from:to:cc:subject:date:message-id :reply-to; bh=INbcTQlbRATzkOuStvBQUzM4fjjPTmtb4ZPEjtFKzt0=; b=Hz61D4RMWE5RFJ2AWBviPDUfVlZik3n6gMXl3gxw61D67LUwWE+pK4VfHhTabbuoOQ miJxYA1R8NKrF7CKhF7u/FOmZCy5agUdtkin3GQ3ijnkCLv6J3cEX2EPABY8ZjZwrRSb yFhYsYiYvlzwR8JTl2N5hUma8I/fEck1511MtORbRE+YslrU4rDvs97+ONnmdFCz5RuI iGlWgFCitlRY2GxvcisU4y21gVU5zrLmL62cVUU9n8tiwyVJPN/U9KmR+fDAdj9khS8C 49d+PpGyq6jrzPV1OXohu6mJJZNOcCuDwe3taBEjJUIzrVp/6jwvaVHRr/kMPJePlH2X H0GA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724852714; x=1725457514; h=content-transfer-encoding:mime-version:message-id:date:references :in-reply-to:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=INbcTQlbRATzkOuStvBQUzM4fjjPTmtb4ZPEjtFKzt0=; b=goKkqW8RCWB09OFPp2K4XQ7fXMk1cua0hfnIky6OfTtJOc4CHSwSMStYAtEWe6EPgc kIAyPIHh/O3Qk2srb7bukWHMOqJuqPb2FDNukwLg09i5+78S16Ait0/yJFuRIQG3mevN 9KMsMOk/MKEpmvB9XwRcaBGt+q6UUejmZCbJieIX4B61oVOcHkj7t6xp5yiNkb19RQwk 9Gy19/jGL9boP2BkE7RrC07334sZCGwsI/qdBSOshTM26B/tAc8dGy+xcgeg8jq2/aX1 5rDNsovo7SDoyoYXuEfFo4i64liZgmRQbM8sHWWVvg6//d+vB23oP9s5pFQbWdqqzX2H n2Yg== X-Forwarded-Encrypted: i=1; AJvYcCW1WfTpp+3LHOweJySsC+VvG45L2NE5ZmiIXEfrVWa0BpG9/rIKzJwY6F8/lOgkUaYDzB3d8Q==@debbugs.gnu.org X-Gm-Message-State: AOJu0YwvDfTvvi0BZsApI7M32ZqxiNIerwH7hrQDXA8/FPbMjmw3QxmI hqzIfIlDkhDp4cy3J5oljgFz2Y7qGvtQuJNm3rltLL1JuftUC2iPeDxcFw== X-Google-Smtp-Source: AGHT+IHWvRxevE/KLY4wJm6tnPiwhW93lWl1DommB16uAddCVRnbDpiUyCcvQBjxmNQVhthxAQGj2Q== X-Received: by 2002:a5d:400c:0:b0:371:8c79:73c1 with SMTP id ffacd0b85a97d-3731187e96dmr11795547f8f.2.1724852714143; Wed, 28 Aug 2024 06:45:14 -0700 (PDT) Received: from rltb ([2a01:e0a:3f3:fb51:a1f0:1387:9567:d5c]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-42ba63a679esm21746115e9.14.2024.08.28.06.45.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Aug 2024 06:45:12 -0700 (PDT) From: Robert Pluim To: Ferdinand Pieper Subject: Re: bug#72831: [PATCH] gnus-icalendar: Allow comments in event replies In-Reply-To: <868qwgj4fh.fsf@gnu.org> (Eli Zaretskii's message of "Wed, 28 Aug 2024 14:02:42 +0300") References: <875xrml22f.fsf@pie.tf> <868qwgj4fh.fsf@gnu.org> Date: Wed, 28 Aug 2024 15:45:10 +0200 Message-ID: <87wmk0vk0p.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 72831 Cc: Eli Zaretskii , Andrew G Cohen , Alexandre Duret-Lutz , 72831@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) >>>>> On Wed, 28 Aug 2024 14:02:42 +0300, Eli Zaretskii said: >> From: Ferdinand Pieper >> Date: Tue, 27 Aug 2024 11:58:32 +0200 >>=20 >> Tags: patch >>=20 >> The iCalendar RFC allows comments in an event reply to e.g. indicate >> a reason for declining. This patch implements sending an additional >> comment if the usual functions >> `gnus-icalendar-reply-[accept,decline,tentative]` (bound to `i a`, >> `i d`, `i t`) are called with a prefix argument. >>=20 >> Please let me know any feedback regarding the patch and commit >> message formatting. Now that you have the bug number, please put (Bug#72831) somewhere in the commit message. >>=20 >> Notably this only implements the comment functionality for the >> functions mentioned above and does not include the buttons defined >> in `gnus-icalendar-event:inline-reply-buttons`, as I am not sure how >> the `read-string` for the user's comment should be implemented for >> them. You can pass prefix args to commands bound to mouse clicks as well as keys pressed inside the button, but getting the pieces to work would take some experimentation. I don=CA=BCt think that=CA=BCs necessary for an initial implementation though. Eli> Thanks. Eli> Robert, Andrew, and Alexandre: would you please review the proposed Eli> changes below and comment? I think a change this size requires copyright assigment, which I don=CA=BCt know if you=CA=BCve done. >> >From 8ff07723b407d56de72ddfea98b8931951bb7ad8 Mon Sep 17 00:00:00 2= 001 >> From: fpi >> Date: Mon, 19 Aug 2024 17:18:11 +0200 >> Subject: [PATCH] Allow comments to organizer in ical event replies >>=20 >> * lisp/gnus/gnus-icalendar.el >> (gnus-icalendar-event--build-reply-event-body): Add optional COMMENT >> argument to be inserted into the reply. >> (gnus-icalendar-event-reply-from-buffer): Add COMMENT argument to be >> passed through to gnus-icalendar-event--build-reply-event-body >> (gnus-icalendar-reply-accept): >> (gnus-icalendar-reply-tentative): >> (gnus-icalendar-reply-decline): If interactively called with a prefix >> argument ask user for a COMMENT to add to the reply. I think that if you=CA=BCre making the same comment for the three functions you can put all three in one set of (), separated by commas. >> --- >> lisp/gnus/gnus-icalendar.el | 52 ++++++++++++++++++++++++++---------= -- >> 1 file changed, 37 insertions(+), 15 deletions(-) >>=20 >> diff --git a/lisp/gnus/gnus-icalendar.el b/lisp/gnus/gnus-icalendar.= el >> index af7284b88e8..7a295fb9ed2 100644 >> --- a/lisp/gnus/gnus-icalendar.el >> +++ b/lisp/gnus/gnus-icalendar.el >> @@ -309,7 +309,7 @@ gnus-icalendar-event-from-buffer >> ;;; gnus-icalendar-event-reply >> ;;; >>=20 >> -(defun gnus-icalendar-event--build-reply-event-body (ical-request s= tatus identities) >> +(defun gnus-icalendar-event--build-reply-event-body (ical-request s= tatus identities &optional comment) >> (let ((summary-status (capitalize (symbol-name status))) >> (attendee-status (upcase (symbol-name status))) >> reply-event-lines) >> @@ -319,6 +319,10 @@ gnus-icalendar-event--build-reply-event-body >> (if (string-match "^[^:]+:" line) >> (replace-match (format "\\&%s: " summary-status) t nil line) >> line)) >> + (update-comment >> + (line) >> + (if comment (format "COMMENT:%s" comment) >> + line)) >> (update-dtstamp () >> (format-time-string "DTSTAMP:%Y%m%dT%H%M%SZ" nil t)) >> (attendee-matches-identity >> @@ -341,6 +345,7 @@ gnus-icalendar-event--build-reply-event-body >> (cond >> ((string=3D key "ATTENDEE") (update-attendee-status line)) >> ((string=3D key "SUMMARY") (update-summary line)) >> + ((string=3D key "COMMENT") (update-comment line)) >> ((string=3D key "DTSTAMP") (update-dtstamp)) >> ((member key '("ORGANIZER" "DTSTART" "DTEND" >> "LOCATION" "DURATION" "SEQUENCE" >> @@ -363,12 +368,17 @@ gnus-icalendar-event--build-reply-event-body >> attendee-status user-full-name user-mail-address) >> reply-event-lines)) >>=20 >> + ;; add comment line if not existing >> + (when (and comment (not (gnus-icalendar-find-if (lambda (x) (= string-match "^COMMENT" x)) >> + reply-event-l= ines))) >> + (push (format "COMMENT:%s" comment) reply-event-lines)) >> + So if the event was sent with a COMMENT the receiver can=CA=BCt add their own? That doesn=CA=BCt match my conception of 'reply with comment'. I=CA=BCm hazy on what=CA=BCs exactly allowed in ical, can you have more than one COMMENT line? Or we could combine the comments? >> (mapconcat #'identity `("BEGIN:VEVENT" >> ,@(nreverse reply-event-lines) >> "END:VEVENT") >> "\n")))) >>=20 >> -(defun gnus-icalendar-event-reply-from-buffer (buf status identitie= s) >> +(defun gnus-icalendar-event-reply-from-buffer (buf status identitie= s &optional comment) >> "Build a calendar event reply for request contained in BUF. >> The reply will have STATUS (`accepted', `tentative' or `declined'). >> The reply will be composed for attendees matching any entry Could you describe the COMMENT arg in the docstring? >> @@ -396,7 +406,7 @@ gnus-icalendar-event-reply-from-buffer >> "PRODID:Gnus" >> "VERSION:2.0" >> zone >> - (gnus-icalendar-event--build-reply-ev= ent-body event status identities) >> + (gnus-icalendar-event--build-reply-ev= ent-body event status identities comment) >> "END:VCALENDAR"))) >>=20 >> (mapconcat #'identity (delq nil contents) "\n")))))) >> @@ -878,13 +888,13 @@ gnus-icalendar-send-buffer-by-mail >> (insert "Subject: " subject) >> (message-send-and-exit)))) >>=20 >> -(defun gnus-icalendar-reply (data) >> +(defun gnus-icalendar-reply (data &optional comment) >> (let* ((handle (car data)) >> (status (cadr data)) >> (event (caddr data)) >> (reply (gnus-icalendar-with-decoded-handle handle >> (gnus-icalendar-event-reply-from-buffer >> - (current-buffer) status (gnus-icalendar-identiti= es)))) >> + (current-buffer) status (gnus-icalendar-identiti= es) comment))) >> (organizer (gnus-icalendar-event:organizer event))) >>=20 >> (when reply >> @@ -1009,25 +1019,37 @@ gnus-icalendar-save-event >> (when data >> (gnus-icalendar-save-part data)))) >>=20 >> -(defun gnus-icalendar-reply-accept () >> - "Accept invitation in the current article." >> +(defun gnus-icalendar-reply-accept (&optional comment-p) >> + "Accept invitation in the current article. >> + >> +With a prefix `\\[universal-argument]' prompt for a comment to incl= ude >> +in the reply." I think we tend to word this as "Optional argument COMMENT-P (interactively the prefix argument) means prompt for a comment to include in the reply." >> (interactive nil gnus-article-mode gnus-summary-mode) >> (with-current-buffer gnus-article-buffer >> - (gnus-icalendar-reply (list gnus-icalendar-handle 'accepted gnu= s-icalendar-event)) >> + (gnus-icalendar-reply (list gnus-icalendar-handle 'accepted gnu= s-icalendar-event) >> + (when comment-p (read-string "Comment: ")= )) >> (setq-local gnus-icalendar-reply-status 'accepted))) >>=20 >> -(defun gnus-icalendar-reply-tentative () >> - "Send tentative response to invitation in the current article." >> +(defun gnus-icalendar-reply-tentative (&optional comment-p) >> + "Send tentative response to invitation in the current article. >> + >> +With a prefix `\\[universal-argument]' prompt for a comment to incl= ude >> +in the reply." >> (interactive nil gnus-article-mode gnus-summary-mode) >> (with-current-buffer gnus-article-buffer >> - (gnus-icalendar-reply (list gnus-icalendar-handle 'tentative gn= us-icalendar-event)) >> + (gnus-icalendar-reply (list gnus-icalendar-handle 'tentative gn= us-icalendar-event) >> + (when comment-p (read-string "Comment: ")= )) >> (setq-local gnus-icalendar-reply-status 'tentative))) >>=20 >> -(defun gnus-icalendar-reply-decline () >> - "Decline invitation in the current article." >> - (interactive nil gnus-article-mode gnus-summary-mode) >> +(defun gnus-icalendar-reply-decline (&optional comment-p) >> + "Decline invitation in the current article. >> + >> +With a prefix `\\[universal-argument]' prompt for a comment to incl= ude >> +in the reply." >> + (interactive "P" gnus-article-mode gnus-summary-mode) >> (with-current-buffer gnus-article-buffer >> - (gnus-icalendar-reply (list gnus-icalendar-handle 'declined gnu= s-icalendar-event)) >> + (gnus-icalendar-reply (list gnus-icalendar-handle 'declined gnu= s-icalendar-event) >> + (when comment-p (read-string "Comment: ")= )) >> (setq-local gnus-icalendar-reply-status 'declined))) >>=20 >> (defun gnus-icalendar-event-export () >> --=20 >> 2.30.2 >>=20 Ideally you=CA=BCd add test cases for this to "test/lisp/gnus/gnus-icalendar-tests.el". But that=CA=BCs not mandatory. Robert --=20 From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 28 11:48:20 2024 Received: (at 72831) by debbugs.gnu.org; 28 Aug 2024 15:48:20 +0000 Received: from localhost ([127.0.0.1]:49591 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sjKuB-0008RH-Tr for submit@debbugs.gnu.org; Wed, 28 Aug 2024 11:48:20 -0400 Received: from eggs.gnu.org ([209.51.188.92]:42342) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sjKu8-0008Qy-3e for 72831@debbugs.gnu.org; Wed, 28 Aug 2024 11:48:18 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sjKt8-0007s9-Og; Wed, 28 Aug 2024 11:47:14 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=1TUL54bFQioaY2QiseGGods7K+9skCWXkWSi3M5AtyQ=; b=aXgFUW8Vorr0D0n4lVq8 PDXw9VahAn6ImZOz2uv3K5td1wpblICN6RtLC8SnCA8JAsXMF6lPv0rIHDU8UickOcHHEWRHJRH3V nftRgdrSjrjeqRhkIkCRHgTgBwCsrPOWUr7pEQ1V/PwAAcfbBWj8uVZ7uTa0o831ofo5+HkQtOj31 TZvPkS4wgX6p4ygvAh6lGkq/+qoc0u8PEUiuPuVuVyyuT8rXpSw4wQonQuw2A7X+ChJEBzB+E+dmz QDpGlvjRPTbZoIwZyNdM9KmSLx4Sn4Otd/eTgaCsNlmoRfHUSp61KJ3ZCauKhvBu8w+4Xd/i8+PgZ LZ4/d4QAWESB0A==; Date: Wed, 28 Aug 2024 18:47:10 +0300 Message-Id: <86r0a8hcox.fsf@gnu.org> From: Eli Zaretskii To: Robert Pluim In-Reply-To: <87wmk0vk0p.fsf@gmail.com> (message from Robert Pluim on Wed, 28 Aug 2024 15:45:10 +0200) Subject: Re: bug#72831: [PATCH] gnus-icalendar: Allow comments in event replies References: <875xrml22f.fsf@pie.tf> <868qwgj4fh.fsf@gnu.org> <87wmk0vk0p.fsf@gmail.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 72831 Cc: 72831@debbugs.gnu.org, cohen@andy.bu.edu, list_gnu@pie.tf, adl@lrde.epita.fr X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Robert Pluim > Cc: Eli Zaretskii , Andrew G Cohen , > Alexandre Duret-Lutz , 72831@debbugs.gnu.org > Date: Wed, 28 Aug 2024 15:45:10 +0200 > > I think a change this size requires copyright assigment, which I donʼt > know if youʼve done. He did, his assignment is on file. From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 28 12:41:31 2024 Received: (at 72831) by debbugs.gnu.org; 28 Aug 2024 16:41:31 +0000 Received: from localhost ([127.0.0.1]:49646 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sjLje-0001Wq-N9 for submit@debbugs.gnu.org; Wed, 28 Aug 2024 12:41:31 -0400 Received: from pie.tf ([5.45.99.52]:38254) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sjLfQ-0001Pm-Ku for 72831@debbugs.gnu.org; Wed, 28 Aug 2024 12:37:09 -0400 Received: from i577b13c1.versanet.de ([87.123.19.193] helo=localhost) by pie.tf with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1sjLeL-00020S-Oc; Wed, 28 Aug 2024 16:36:01 +0000 From: Ferdinand Pieper To: Robert Pluim Subject: Re: bug#72831: [PATCH] gnus-icalendar: Allow comments in event replies In-Reply-To: <87wmk0vk0p.fsf@gmail.com> (Robert Pluim's message of "Wed, 28 Aug 2024 15:45:10 +0200") References: <875xrml22f.fsf@pie.tf> <868qwgj4fh.fsf@gnu.org> <87wmk0vk0p.fsf@gmail.com> Date: Wed, 28 Aug 2024 18:35:55 +0200 Message-ID: <878qwgtxjo.fsf@pie.tf> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 72831 X-Mailman-Approved-At: Wed, 28 Aug 2024 12:41:29 -0400 Cc: Eli Zaretskii , Andrew G Cohen , Alexandre Duret-Lutz , 72831@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Thanks for the review. Robert Pluim writes: > Now that you have the bug number, please put (Bug#72831) somewhere in > the commit message. Updated in the patch attached.=20 > I think a change this size requires copyright assigment, which I don=CA= =BCt > know if you=CA=BCve done. Copyright assignment is done. I wrote some prior contributions to org-mode. > I think that if you=CA=BCre making the same comment for the three functio= ns > you can put all three in one set of (), separated by commas. Updated. > >> @@ -319,6 +319,10 @@ gnus-icalendar-event--build-reply-event-body > >> (if (string-match "^[^:]+:" line) > >> (replace-match (format "\\&%s: " summary-status) t nil line) > >> line)) > >> + (update-comment > >> + (line) > >> + (if comment (format "COMMENT:%s" comment) > >> + line)) > >> (update-dtstamp () > >> (format-time-string "DTSTAMP:%Y%m%dT%H%M%SZ" nil t)) > >> (attendee-matches-identity > >> @@ -341,6 +345,7 @@ gnus-icalendar-event--build-reply-event-body > >> (cond > >> ((string=3D key "ATTENDEE") (update-attendee-status line)) > >> ((string=3D key "SUMMARY") (update-summary line)) > >> + ((string=3D key "COMMENT") (update-comment line)) > >> ((string=3D key "DTSTAMP") (update-dtstamp)) > >> ((member key '("ORGANIZER" "DTSTART" "DTEND" > >> "LOCATION" "DURATION" "SEQUENCE" > >> @@ -363,12 +368,17 @@ gnus-icalendar-event--build-reply-event-body > >> attendee-status user-full-name user-mail-address) > >> reply-event-lines)) > >>=20 > >> + ;; add comment line if not existing > >> + (when (and comment (not (gnus-icalendar-find-if (lambda (x) > >> (string-match "^COMMENT" x)) > >> + reply-event-lines))) > >> + (push (format "COMMENT:%s" comment) reply-event-lines)) > >> + > > So if the event was sent with a COMMENT the receiver can=CA=BCt add their > own? That doesn=CA=BCt match my conception of 'reply with comment'. I=CA= =BCm > hazy on what=CA=BCs exactly allowed in ical, can you have more than one > COMMENT line? Or we could combine the comments? If it already exists it is replaced by the prior > >> ((string=3D key "COMMENT") (update-comment line)) Just if it does not exist the `(string=3D key "COMMENT")` never matches and= we have to add the field. > >> -(defun gnus-icalendar-event-reply-from-buffer (buf status identit= ies) > >> +(defun gnus-icalendar-event-reply-from-buffer (buf status > >> identities &optional comment) > >> "Build a calendar event reply for request contained in BUF. > >> The reply will have STATUS (`accepted', `tentative' or `declined'= ). > >> The reply will be composed for attendees matching any entry > > Could you describe the COMMENT arg in the docstring? Updated. > >> @@ -1009,25 +1019,37 @@ gnus-icalendar-save-event > >> (when data > >> (gnus-icalendar-save-part data)))) > >>=20 > >> -(defun gnus-icalendar-reply-accept () > >> - "Accept invitation in the current article." > >> +(defun gnus-icalendar-reply-accept (&optional comment-p) > >> + "Accept invitation in the current article. > >> + > >> +With a prefix `\\[universal-argument]' prompt for a comment to in= clude > >> +in the reply." > > I think we tend to word this as > > "Optional argument COMMENT-P (interactively the prefix argument) means > prompt for a comment to include in the reply." Updated using `\\[universal-argument]'. Or does that not matter here and ju= st "prefix argument" would be fine? > Ideally you=CA=BCd add test cases for this to > "test/lisp/gnus/gnus-icalendar-tests.el". But that=CA=BCs not mandatory. I looked into it and will add a few tests for accepting/declining events wi= th and without comments. I will followup on this in a couple days. It might also make sense to extend the parsing of events to recognize comme= nts (and potentially display them inside emacs. I also missed to update the interactive argument for `gnus-icalendar-reply-= accept` and `gnus-icalendar-reply-tentative`, which is now fixed in the upd= ated patch. Best, --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Allow-comments-to-organizer-in-event-replies-bug-728.patch >From 35dab0bb7131cf64873298cbe9a418f82d2a2508 Mon Sep 17 00:00:00 2001 From: fpi Date: Wed, 28 Aug 2024 18:33:20 +0200 Subject: [PATCH] Allow comments to organizer in event replies (bug#72831) * lisp/gnus/gnus-icalendar.el (gnus-icalendar-event--build-reply-event-body): Add optional COMMENT argument to be inserted into the reply. (gnus-icalendar-event-reply-from-buffer): Add COMMENT argument to be passed through to gnus-icalendar-event--build-reply-event-body (gnus-icalendar-reply-accept, gnus-icalendar-reply-tentative, gnus-icalendar-reply-decline): If interactively called with a prefix argument ask user for a COMMENT to add to the reply. --- lisp/gnus/gnus-icalendar.el | 61 ++++++++++++++++++++++++++----------- 1 file changed, 43 insertions(+), 18 deletions(-) diff --git a/lisp/gnus/gnus-icalendar.el b/lisp/gnus/gnus-icalendar.el index af7284b88e8..85f1aa09a56 100644 --- a/lisp/gnus/gnus-icalendar.el +++ b/lisp/gnus/gnus-icalendar.el @@ -309,7 +309,7 @@ gnus-icalendar-event-from-buffer ;;; gnus-icalendar-event-reply ;;; -(defun gnus-icalendar-event--build-reply-event-body (ical-request status identities) +(defun gnus-icalendar-event--build-reply-event-body (ical-request status identities &optional comment) (let ((summary-status (capitalize (symbol-name status))) (attendee-status (upcase (symbol-name status))) reply-event-lines) @@ -319,6 +319,10 @@ gnus-icalendar-event--build-reply-event-body (if (string-match "^[^:]+:" line) (replace-match (format "\\&%s: " summary-status) t nil line) line)) + (update-comment + (line) + (if comment (format "COMMENT:%s" comment) + line)) (update-dtstamp () (format-time-string "DTSTAMP:%Y%m%dT%H%M%SZ" nil t)) (attendee-matches-identity @@ -341,6 +345,7 @@ gnus-icalendar-event--build-reply-event-body (cond ((string= key "ATTENDEE") (update-attendee-status line)) ((string= key "SUMMARY") (update-summary line)) + ((string= key "COMMENT") (update-comment line)) ((string= key "DTSTAMP") (update-dtstamp)) ((member key '("ORGANIZER" "DTSTART" "DTEND" "LOCATION" "DURATION" "SEQUENCE" @@ -363,16 +368,24 @@ gnus-icalendar-event--build-reply-event-body attendee-status user-full-name user-mail-address) reply-event-lines)) + ;; add comment line if not existing + (when (and comment (not (gnus-icalendar-find-if (lambda (x) (string-match "^COMMENT" x)) + reply-event-lines))) + (push (format "COMMENT:%s" comment) reply-event-lines)) + (mapconcat #'identity `("BEGIN:VEVENT" ,@(nreverse reply-event-lines) "END:VEVENT") "\n")))) -(defun gnus-icalendar-event-reply-from-buffer (buf status identities) +(defun gnus-icalendar-event-reply-from-buffer (buf status identities &optional comment) "Build a calendar event reply for request contained in BUF. The reply will have STATUS (`accepted', `tentative' or `declined'). The reply will be composed for attendees matching any entry -on the IDENTITIES list." +on the IDENTITIES list. +Optional argument COMMENT will be placed in the comment field of the +reply. +" (cl-labels ((extract-block (blockname) @@ -396,7 +409,7 @@ gnus-icalendar-event-reply-from-buffer "PRODID:Gnus" "VERSION:2.0" zone - (gnus-icalendar-event--build-reply-event-body event status identities) + (gnus-icalendar-event--build-reply-event-body event status identities comment) "END:VCALENDAR"))) (mapconcat #'identity (delq nil contents) "\n")))))) @@ -878,13 +891,13 @@ gnus-icalendar-send-buffer-by-mail (insert "Subject: " subject) (message-send-and-exit)))) -(defun gnus-icalendar-reply (data) +(defun gnus-icalendar-reply (data &optional comment) (let* ((handle (car data)) (status (cadr data)) (event (caddr data)) (reply (gnus-icalendar-with-decoded-handle handle (gnus-icalendar-event-reply-from-buffer - (current-buffer) status (gnus-icalendar-identities)))) + (current-buffer) status (gnus-icalendar-identities) comment))) (organizer (gnus-icalendar-event:organizer event))) (when reply @@ -1009,25 +1022,37 @@ gnus-icalendar-save-event (when data (gnus-icalendar-save-part data)))) -(defun gnus-icalendar-reply-accept () - "Accept invitation in the current article." - (interactive nil gnus-article-mode gnus-summary-mode) +(defun gnus-icalendar-reply-accept (&optional comment-p) + "Accept invitation in the current article. + +Optional argument COMMENT-P (interactively the `\\[universal-argument]') +means prompt for a comment to include in the reply." + (interactive "P" gnus-article-mode gnus-summary-mode) (with-current-buffer gnus-article-buffer - (gnus-icalendar-reply (list gnus-icalendar-handle 'accepted gnus-icalendar-event)) + (gnus-icalendar-reply (list gnus-icalendar-handle 'accepted gnus-icalendar-event) + (when comment-p (read-string "Comment: "))) (setq-local gnus-icalendar-reply-status 'accepted))) -(defun gnus-icalendar-reply-tentative () - "Send tentative response to invitation in the current article." - (interactive nil gnus-article-mode gnus-summary-mode) +(defun gnus-icalendar-reply-tentative (&optional comment-p) + "Send tentative response to invitation in the current article. + +Optional argument COMMENT-P (interactively the `\\[universal-argument]') +means prompt for a comment to include in the reply." + (interactive "P" gnus-article-mode gnus-summary-mode) (with-current-buffer gnus-article-buffer - (gnus-icalendar-reply (list gnus-icalendar-handle 'tentative gnus-icalendar-event)) + (gnus-icalendar-reply (list gnus-icalendar-handle 'tentative gnus-icalendar-event) + (when comment-p (read-string "Comment: "))) (setq-local gnus-icalendar-reply-status 'tentative))) -(defun gnus-icalendar-reply-decline () - "Decline invitation in the current article." - (interactive nil gnus-article-mode gnus-summary-mode) +(defun gnus-icalendar-reply-decline (&optional comment-p) + "Decline invitation in the current article. + +Optional argument COMMENT-P (interactively the `\\[universal-argument]') +means prompt for a comment to include in the reply." + (interactive "P" gnus-article-mode gnus-summary-mode) (with-current-buffer gnus-article-buffer - (gnus-icalendar-reply (list gnus-icalendar-handle 'declined gnus-icalendar-event)) + (gnus-icalendar-reply (list gnus-icalendar-handle 'declined gnus-icalendar-event) + (when comment-p (read-string "Comment: "))) (setq-local gnus-icalendar-reply-status 'declined))) (defun gnus-icalendar-event-export () -- 2.44.1 --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 29 03:54:44 2024 Received: (at 72831) by debbugs.gnu.org; 29 Aug 2024 07:54:44 +0000 Received: from localhost ([127.0.0.1]:50304 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sjZzP-0005zy-LP for submit@debbugs.gnu.org; Thu, 29 Aug 2024 03:54:43 -0400 Received: from mail-wr1-f44.google.com ([209.85.221.44]:50511) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sjZzN-0005zi-9Y for 72831@debbugs.gnu.org; Thu, 29 Aug 2024 03:54:43 -0400 Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-3719398eafcso239613f8f.1 for <72831@debbugs.gnu.org>; Thu, 29 Aug 2024 00:53:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1724917960; x=1725522760; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:references :in-reply-to:subject:cc:to:from:from:to:cc:subject:date:message-id :reply-to; bh=cXCZtZAt/tporCYmQ7k54VK7GW8IG1kiuvvVcRNAHU8=; b=gf89FxqLYCues0E6kpHpf0bdEUqmOJVhDOY8mmWElX6LxoFfsCZC+wAEoQ7Xz5jTdh 7+WMK1nIb8yA7lIzvukoLVC1883+3p/CcvEn01H/Xi2DEGgiTbse+F6nJnpCUaydaeUV gdI6lpSxw+D/QV0SjPjOXgC/cx+Mjm+3+cystPOBlA0zR6Af6i5Upk7JcT4ZxGgAlDAh i5Z6iTyUB44u2kh0M2PTQyMfg7/6oqmEXA+WHBKVOfkOU3YaG4y3bOH2anF1/brllnO6 zsrn1JPcT2KJ7pppe2N1U5Vyk+8nM3oE19jLz8pKkwZNHkpg8gxncFktwkB248fZm5CL xdZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724917960; x=1725522760; h=content-transfer-encoding:mime-version:message-id:date:references :in-reply-to:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cXCZtZAt/tporCYmQ7k54VK7GW8IG1kiuvvVcRNAHU8=; b=BHlkMGgf3Wb7zuFzs1xPLUt8ozpSyQ3urB6QO9GfGOdwzMLo/HPpBLfYx3Ki3jKbmG tHlABMfsvr7w+zvRujfCrJbLboLI3JOezZKa4EptMsZgmTDfouGbRpwA5klanVY90PfF BmK0IloK8YUkTnn4cuIYEb56QUsTVJUPI/QcMHGCk+99on+1Ad1Ss+o+/roN2AP3n8KN 8zCqFMlBJEqsNHQ5WRHOjM98jLFi2WHcfZ4jOVvx34KoIZWGZGz+OasWccPWkXsnJXie LmE39UeRHj81raZfNpNAwsuJ+yzvWIdoUTK8k3kCVBQ1RH0EeRRkQpTtveM8hDkILLeV W+YQ== X-Forwarded-Encrypted: i=1; AJvYcCWiTv6z4OMZx16qDdhi6pLdr7piV/XnMOQg8YXz5FRwO1EV2e0JMzRgsdJpWwfALWHRxo9JkQ==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yx8YQFhZU+M9yVoeN8uywnbtAQOpiPeAe29m/Qt7px8/nKAmUnt fHzhfvuX3Qx5jEz6VX2ffp1bWgnQveP5RwSgOcAwgm15YmNqH+LBq5OKgQ== X-Google-Smtp-Source: AGHT+IGiWjfsJPg8VfCEuNU4rh56uJfxl2Rv+xAScO3fCCYJFUSpEZZSOFToofV0xTF8U0ZHd2hZdQ== X-Received: by 2002:adf:f2cc:0:b0:371:8c9c:d97f with SMTP id ffacd0b85a97d-3749b55004amr1323178f8f.10.1724917959404; Thu, 29 Aug 2024 00:52:39 -0700 (PDT) Received: from rltb ([2a01:e0a:3f3:fb51:bbad:a24b:6515:8016]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3749ee9c188sm727670f8f.55.2024.08.29.00.52.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Aug 2024 00:52:38 -0700 (PDT) From: Robert Pluim To: Ferdinand Pieper Subject: Re: bug#72831: [PATCH] gnus-icalendar: Allow comments in event replies In-Reply-To: <878qwgtxjo.fsf@pie.tf> (Ferdinand Pieper's message of "Wed, 28 Aug 2024 18:35:55 +0200") References: <875xrml22f.fsf@pie.tf> <868qwgj4fh.fsf@gnu.org> <87wmk0vk0p.fsf@gmail.com> <878qwgtxjo.fsf@pie.tf> Date: Thu, 29 Aug 2024 09:52:37 +0200 Message-ID: <87o75bvk8q.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 72831 Cc: Eli Zaretskii , Andrew G Cohen , Alexandre Duret-Lutz , 72831@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) >>>>> On Wed, 28 Aug 2024 18:35:55 +0200, Ferdinand Pieper said: >> So if the event was sent with a COMMENT the receiver can=CA=BCt add = their >> own? That doesn=CA=BCt match my conception of 'reply with comment'. = I=CA=BCm >> hazy on what=CA=BCs exactly allowed in ical, can you have more than = one >> COMMENT line? Or we could combine the comments? Ferdinand> If it already exists it is replaced by the prior >> >> ((string=3D key "COMMENT") (update-comment line)) Ferdinand> Just if it does not exist the `(string=3D key "COMMENT")` ne= ver matches and we have to add the field. Sorry, I missed that bit. >> I think we tend to word this as >>=20 >> "Optional argument COMMENT-P (interactively the prefix argument) mea= ns >> prompt for a comment to include in the reply." Ferdinand> Updated using `\\[universal-argument]'. Or does that not mat= ter here and just "prefix argument" would be fine? Either one is fine I think. >> Ideally you=CA=BCd add test cases for this to >> "test/lisp/gnus/gnus-icalendar-tests.el". But that=CA=BCs not mandat= ory. Ferdinand> I looked into it and will add a few tests for accepting/decl= ining events with and without comments. I will followup on this in a couple= days. Ferdinand> It might also make sense to extend the parsing of events to = recognize comments (and potentially display them inside emacs. That would be good as a followup patch. Robert --=20 From debbugs-submit-bounces@debbugs.gnu.org Sat Aug 31 10:41:10 2024 Received: (at 72831) by debbugs.gnu.org; 31 Aug 2024 14:41:10 +0000 Received: from localhost ([127.0.0.1]:55369 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1skPHp-0001KQ-AH for submit@debbugs.gnu.org; Sat, 31 Aug 2024 10:41:10 -0400 Received: from pie.tf ([5.45.99.52]:40536) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1skP9f-00015q-Ob for 72831@debbugs.gnu.org; Sat, 31 Aug 2024 10:32:44 -0400 Received: from [87.123.19.255] (helo=localhost) by pie.tf with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1skP8U-0009Pq-TA; Sat, 31 Aug 2024 14:31:30 +0000 From: Ferdinand Pieper To: Robert Pluim Subject: Re: bug#72831: [PATCH] gnus-icalendar: Allow comments in event replies In-Reply-To: <87o75bvk8q.fsf@gmail.com> (Robert Pluim's message of "Thu, 29 Aug 2024 09:52:37 +0200") References: <875xrml22f.fsf@pie.tf> <868qwgj4fh.fsf@gnu.org> <87wmk0vk0p.fsf@gmail.com> <878qwgtxjo.fsf@pie.tf> <87o75bvk8q.fsf@gmail.com> Date: Sat, 31 Aug 2024 16:31:24 +0200 Message-ID: <87zfossr0j.fsf@pie.tf> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 72831 X-Mailman-Approved-At: Sat, 31 Aug 2024 10:41:08 -0400 Cc: Eli Zaretskii , Andrew G Cohen , Alexandre Duret-Lutz , 72831@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain The updated patch contains two tests to check replies with and without a comment. Let me know any feedback on these as I have never contributed tests so far and if you prefer to have code and tests split into two commits instead. Otherwise the patch should be good to be applied? Thanks! --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-Allow-comments-to-organizer-in-event-replies-bug-728.patch >From 5f75ab29fd0f0fbed5238ffff63c6ce13ce1f8de Mon Sep 17 00:00:00 2001 From: fpi Date: Wed, 28 Aug 2024 18:33:20 +0200 Subject: [PATCH] Allow comments to organizer in event replies (bug#72831) * lisp/gnus/gnus-icalendar.el (gnus-icalendar-event--build-reply-event-body): Add optional COMMENT argument to be inserted into the reply. (gnus-icalendar-event-reply-from-buffer): Add COMMENT argument to be passed through to gnus-icalendar-event--build-reply-event-body (gnus-icalendar-reply-accept, gnus-icalendar-reply-tentative, gnus-icalendar-reply-decline): If interactively called with a prefix argument ask user for a COMMENT to add to the reply. * test/lisp/gnus/gnus-icalendar-tests.el (gnus-icalendar-accept-with-comment, gnus-icalendar-decline-withouth-changing-comment): New tests. --- lisp/gnus/gnus-icalendar.el | 61 +++++++++++++++------- test/lisp/gnus/gnus-icalendar-tests.el | 72 ++++++++++++++++++++++++++ 2 files changed, 115 insertions(+), 18 deletions(-) diff --git a/lisp/gnus/gnus-icalendar.el b/lisp/gnus/gnus-icalendar.el index af7284b88e8..85f1aa09a56 100644 --- a/lisp/gnus/gnus-icalendar.el +++ b/lisp/gnus/gnus-icalendar.el @@ -309,7 +309,7 @@ gnus-icalendar-event-from-buffer ;;; gnus-icalendar-event-reply ;;; -(defun gnus-icalendar-event--build-reply-event-body (ical-request status identities) +(defun gnus-icalendar-event--build-reply-event-body (ical-request status identities &optional comment) (let ((summary-status (capitalize (symbol-name status))) (attendee-status (upcase (symbol-name status))) reply-event-lines) @@ -319,6 +319,10 @@ gnus-icalendar-event--build-reply-event-body (if (string-match "^[^:]+:" line) (replace-match (format "\\&%s: " summary-status) t nil line) line)) + (update-comment + (line) + (if comment (format "COMMENT:%s" comment) + line)) (update-dtstamp () (format-time-string "DTSTAMP:%Y%m%dT%H%M%SZ" nil t)) (attendee-matches-identity @@ -341,6 +345,7 @@ gnus-icalendar-event--build-reply-event-body (cond ((string= key "ATTENDEE") (update-attendee-status line)) ((string= key "SUMMARY") (update-summary line)) + ((string= key "COMMENT") (update-comment line)) ((string= key "DTSTAMP") (update-dtstamp)) ((member key '("ORGANIZER" "DTSTART" "DTEND" "LOCATION" "DURATION" "SEQUENCE" @@ -363,16 +368,24 @@ gnus-icalendar-event--build-reply-event-body attendee-status user-full-name user-mail-address) reply-event-lines)) + ;; add comment line if not existing + (when (and comment (not (gnus-icalendar-find-if (lambda (x) (string-match "^COMMENT" x)) + reply-event-lines))) + (push (format "COMMENT:%s" comment) reply-event-lines)) + (mapconcat #'identity `("BEGIN:VEVENT" ,@(nreverse reply-event-lines) "END:VEVENT") "\n")))) -(defun gnus-icalendar-event-reply-from-buffer (buf status identities) +(defun gnus-icalendar-event-reply-from-buffer (buf status identities &optional comment) "Build a calendar event reply for request contained in BUF. The reply will have STATUS (`accepted', `tentative' or `declined'). The reply will be composed for attendees matching any entry -on the IDENTITIES list." +on the IDENTITIES list. +Optional argument COMMENT will be placed in the comment field of the +reply. +" (cl-labels ((extract-block (blockname) @@ -396,7 +409,7 @@ gnus-icalendar-event-reply-from-buffer "PRODID:Gnus" "VERSION:2.0" zone - (gnus-icalendar-event--build-reply-event-body event status identities) + (gnus-icalendar-event--build-reply-event-body event status identities comment) "END:VCALENDAR"))) (mapconcat #'identity (delq nil contents) "\n")))))) @@ -878,13 +891,13 @@ gnus-icalendar-send-buffer-by-mail (insert "Subject: " subject) (message-send-and-exit)))) -(defun gnus-icalendar-reply (data) +(defun gnus-icalendar-reply (data &optional comment) (let* ((handle (car data)) (status (cadr data)) (event (caddr data)) (reply (gnus-icalendar-with-decoded-handle handle (gnus-icalendar-event-reply-from-buffer - (current-buffer) status (gnus-icalendar-identities)))) + (current-buffer) status (gnus-icalendar-identities) comment))) (organizer (gnus-icalendar-event:organizer event))) (when reply @@ -1009,25 +1022,37 @@ gnus-icalendar-save-event (when data (gnus-icalendar-save-part data)))) -(defun gnus-icalendar-reply-accept () - "Accept invitation in the current article." - (interactive nil gnus-article-mode gnus-summary-mode) +(defun gnus-icalendar-reply-accept (&optional comment-p) + "Accept invitation in the current article. + +Optional argument COMMENT-P (interactively the `\\[universal-argument]') +means prompt for a comment to include in the reply." + (interactive "P" gnus-article-mode gnus-summary-mode) (with-current-buffer gnus-article-buffer - (gnus-icalendar-reply (list gnus-icalendar-handle 'accepted gnus-icalendar-event)) + (gnus-icalendar-reply (list gnus-icalendar-handle 'accepted gnus-icalendar-event) + (when comment-p (read-string "Comment: "))) (setq-local gnus-icalendar-reply-status 'accepted))) -(defun gnus-icalendar-reply-tentative () - "Send tentative response to invitation in the current article." - (interactive nil gnus-article-mode gnus-summary-mode) +(defun gnus-icalendar-reply-tentative (&optional comment-p) + "Send tentative response to invitation in the current article. + +Optional argument COMMENT-P (interactively the `\\[universal-argument]') +means prompt for a comment to include in the reply." + (interactive "P" gnus-article-mode gnus-summary-mode) (with-current-buffer gnus-article-buffer - (gnus-icalendar-reply (list gnus-icalendar-handle 'tentative gnus-icalendar-event)) + (gnus-icalendar-reply (list gnus-icalendar-handle 'tentative gnus-icalendar-event) + (when comment-p (read-string "Comment: "))) (setq-local gnus-icalendar-reply-status 'tentative))) -(defun gnus-icalendar-reply-decline () - "Decline invitation in the current article." - (interactive nil gnus-article-mode gnus-summary-mode) +(defun gnus-icalendar-reply-decline (&optional comment-p) + "Decline invitation in the current article. + +Optional argument COMMENT-P (interactively the `\\[universal-argument]') +means prompt for a comment to include in the reply." + (interactive "P" gnus-article-mode gnus-summary-mode) (with-current-buffer gnus-article-buffer - (gnus-icalendar-reply (list gnus-icalendar-handle 'declined gnus-icalendar-event)) + (gnus-icalendar-reply (list gnus-icalendar-handle 'declined gnus-icalendar-event) + (when comment-p (read-string "Comment: "))) (setq-local gnus-icalendar-reply-status 'declined))) (defun gnus-icalendar-event-export () diff --git a/test/lisp/gnus/gnus-icalendar-tests.el b/test/lisp/gnus/gnus-icalendar-tests.el index 08c85013d17..9b4ba383d5a 100644 --- a/test/lisp/gnus/gnus-icalendar-tests.el +++ b/test/lisp/gnus/gnus-icalendar-tests.el @@ -255,5 +255,77 @@ gnus-icalendary-weekly-byday <2020-09-21 14:00-14:30 +1w>"))) (setenv "TZ" tz)))) +(ert-deftest gnus-icalendar-accept-with-comment () + "" + (let ((event "BEGIN:VEVENT +DTSTART;TZID=Europe/Berlin:20200915T140000 +DTEND;TZID=Europe/Berlin:20200915T143000 +RRULE:FREQ=WEEKLY;BYDAY=FR,MO,TH,TU,WE +DTSTAMP:20200915T120627Z +ORGANIZER;CN=anon@anoncompany.com:mailto:anon@anoncompany.com +UID:7b6g3m7iftuo90ei4ul00feqn_R20200915T120000@google.com +ATTENDEE;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;RSVP=TRUE + ;CN=participant@anoncompany.com;X-NUM-GUESTS=0:mailto:participant@anoncompany.com +CREATED:20200325T095723Z +DESCRIPTION:Coffee talk +LAST-MODIFIED:20200915T120623Z +LOCATION: +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Casual coffee talk +TRANSP:OPAQUE +END:VEVENT") + (icalendar-identities '("participant@anoncompany.com"))) + (unwind-protect + (progn + (let* ((reply (with-temp-buffer + (insert event) + (gnus-icalendar-event-reply-from-buffer + (current-buffer) + 'accepted + icalendar-identities + "Can not stay long.")))) + (should (string-match "^ATTENDEE;.*?\\(PARTSTAT=[^;]+\\)" reply)) + (should (string-equal (match-string 1 reply) "PARTSTAT=ACCEPTED")) + (should (string-match "^COMMENT:\\(.*\\)$" reply)) + (should (string-equal (match-string 1 reply) "Can not stay long."))))))) + +(ert-deftest gnus-icalendar-decline-withouth-changing-comment () + "" + (let ((event "BEGIN:VEVENT +DTSTART;TZID=Europe/Berlin:20200915T140000 +DTEND;TZID=Europe/Berlin:20200915T143000 +RRULE:FREQ=WEEKLY;BYDAY=FR,MO,TH,TU,WE +DTSTAMP:20200915T120627Z +ORGANIZER;CN=anon@anoncompany.com:mailto:anon@anoncompany.com +UID:7b6g3m7iftuo90ei4ul00feqn_R20200915T120000@google.com +ATTENDEE;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;RSVP=TRUE + ;CN=participant@anoncompany.com;X-NUM-GUESTS=0:mailto:participant@anoncompany.com +CREATED:20200325T095723Z +DESCRIPTION:Coffee talk +LAST-MODIFIED:20200915T120623Z +COMMENT:Only available at 2pm +LOCATION: +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Casual coffee talk +TRANSP:OPAQUE +END:VEVENT") + (icalendar-identities '("participant@anoncompany.com"))) + (unwind-protect + (progn + (let* ((reply (with-temp-buffer + (insert event) + (gnus-icalendar-event-reply-from-buffer + (current-buffer) + 'declined + icalendar-identities + nil)))) + (should (string-match "^ATTENDEE;.*?\\(PARTSTAT=[^;]+\\)" reply)) + (should (string-equal (match-string 1 reply) "PARTSTAT=DECLINED")) + (should (string-match "^COMMENT:\\(.*\\)$" reply)) + (should (string-equal (match-string 1 reply) "Only available at 2pm")) + ))))) + (provide 'gnus-icalendar-tests) ;;; gnus-icalendar-tests.el ends here -- 2.44.1 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Robert Pluim writes: >>>>>> On Wed, 28 Aug 2024 18:35:55 +0200, Ferdinand Pieper > said: > >> So if the event was sent with a COMMENT the receiver can=CA=BCt ad= d their > >> own? That doesn=CA=BCt match my conception of 'reply with comment'= . I=CA=BCm > >> hazy on what=CA=BCs exactly allowed in ical, can you have more tha= n one > >> COMMENT line? Or we could combine the comments? > > Ferdinand> If it already exists it is replaced by the prior > >> >> ((string=3D key "COMMENT") (update-comment line)) > Ferdinand> Just if it does not exist the `(string=3D key "COMMENT")` > Ferdinand> never matches and we have to add the field. > > Sorry, I missed that bit. > > >> I think we tend to word this as > >>=20 > >> "Optional argument COMMENT-P (interactively the prefix argument) m= eans > >> prompt for a comment to include in the reply." > > Ferdinand> Updated using `\\[universal-argument]'. Or does that > Ferdinand> not matter here and just "prefix argument" would be > Ferdinand> fine? > > Either one is fine I think. > > >> Ideally you=CA=BCd add test cases for this to > >> "test/lisp/gnus/gnus-icalendar-tests.el". But that=CA=BCs not mand= atory. > > Ferdinand> I looked into it and will add a few tests for > Ferdinand> accepting/declining events with and without comments. I > Ferdinand> will followup on this in a couple days. > Ferdinand> It might also make sense to extend the parsing of > Ferdinand> events to recognize comments (and potentially display > Ferdinand> them inside emacs. > > That would be good as a followup patch. > > Robert --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sat Sep 07 10:43:38 2024 Received: (at 72831) by debbugs.gnu.org; 7 Sep 2024 14:43:38 +0000 Received: from localhost ([127.0.0.1]:57167 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1smwf3-0000So-3X for submit@debbugs.gnu.org; Sat, 07 Sep 2024 10:43:38 -0400 Received: from pie.tf ([5.45.99.52]:39638) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1smuSj-0000Jw-IH for 72831@debbugs.gnu.org; Sat, 07 Sep 2024 08:22:46 -0400 Received: from [45.12.203.65] (helo=localhost) by pie.tf with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1smuSf-000Mh2-Lo; Sat, 07 Sep 2024 12:22:41 +0000 From: Ferdinand Pieper To: 72831@debbugs.gnu.org Subject: Re: bug#72831: [PATCH] gnus-icalendar: Allow comments in event replies In-Reply-To: <87zfossr0j.fsf@pie.tf> (Ferdinand Pieper's message of "Sat, 31 Aug 2024 16:31:24 +0200") References: <875xrml22f.fsf@pie.tf> <868qwgj4fh.fsf@gnu.org> <87wmk0vk0p.fsf@gmail.com> <878qwgtxjo.fsf@pie.tf> <87o75bvk8q.fsf@gmail.com> <87zfossr0j.fsf@pie.tf> Date: Sat, 07 Sep 2024 14:22:41 +0200 Message-ID: <87h6ard566.fsf@pie.tf> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 72831 X-Mailman-Approved-At: Sat, 07 Sep 2024 10:43:33 -0400 Cc: Robert Pluim , Eli Zaretskii , Alexandre Duret-Lutz , Andrew G Cohen X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Any further feedback on the patch or could someone please apply the patch? = Thanks! Patch once again below, this time as attachment instead of inline=E2=80=A6 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Allow-comments-to-organizer-in-event-replies-bug-728.patch >From 5f75ab29fd0f0fbed5238ffff63c6ce13ce1f8de Mon Sep 17 00:00:00 2001 From: fpi Date: Wed, 28 Aug 2024 18:33:20 +0200 Subject: [PATCH] Allow comments to organizer in event replies (bug#72831) * lisp/gnus/gnus-icalendar.el (gnus-icalendar-event--build-reply-event-body): Add optional COMMENT argument to be inserted into the reply. (gnus-icalendar-event-reply-from-buffer): Add COMMENT argument to be passed through to gnus-icalendar-event--build-reply-event-body (gnus-icalendar-reply-accept, gnus-icalendar-reply-tentative, gnus-icalendar-reply-decline): If interactively called with a prefix argument ask user for a COMMENT to add to the reply. * test/lisp/gnus/gnus-icalendar-tests.el (gnus-icalendar-accept-with-comment, gnus-icalendar-decline-withouth-changing-comment): New tests. --- lisp/gnus/gnus-icalendar.el | 61 +++++++++++++++------- test/lisp/gnus/gnus-icalendar-tests.el | 72 ++++++++++++++++++++++++++ 2 files changed, 115 insertions(+), 18 deletions(-) diff --git a/lisp/gnus/gnus-icalendar.el b/lisp/gnus/gnus-icalendar.el index af7284b88e8..85f1aa09a56 100644 --- a/lisp/gnus/gnus-icalendar.el +++ b/lisp/gnus/gnus-icalendar.el @@ -309,7 +309,7 @@ gnus-icalendar-event-from-buffer ;;; gnus-icalendar-event-reply ;;; -(defun gnus-icalendar-event--build-reply-event-body (ical-request status identities) +(defun gnus-icalendar-event--build-reply-event-body (ical-request status identities &optional comment) (let ((summary-status (capitalize (symbol-name status))) (attendee-status (upcase (symbol-name status))) reply-event-lines) @@ -319,6 +319,10 @@ gnus-icalendar-event--build-reply-event-body (if (string-match "^[^:]+:" line) (replace-match (format "\\&%s: " summary-status) t nil line) line)) + (update-comment + (line) + (if comment (format "COMMENT:%s" comment) + line)) (update-dtstamp () (format-time-string "DTSTAMP:%Y%m%dT%H%M%SZ" nil t)) (attendee-matches-identity @@ -341,6 +345,7 @@ gnus-icalendar-event--build-reply-event-body (cond ((string= key "ATTENDEE") (update-attendee-status line)) ((string= key "SUMMARY") (update-summary line)) + ((string= key "COMMENT") (update-comment line)) ((string= key "DTSTAMP") (update-dtstamp)) ((member key '("ORGANIZER" "DTSTART" "DTEND" "LOCATION" "DURATION" "SEQUENCE" @@ -363,16 +368,24 @@ gnus-icalendar-event--build-reply-event-body attendee-status user-full-name user-mail-address) reply-event-lines)) + ;; add comment line if not existing + (when (and comment (not (gnus-icalendar-find-if (lambda (x) (string-match "^COMMENT" x)) + reply-event-lines))) + (push (format "COMMENT:%s" comment) reply-event-lines)) + (mapconcat #'identity `("BEGIN:VEVENT" ,@(nreverse reply-event-lines) "END:VEVENT") "\n")))) -(defun gnus-icalendar-event-reply-from-buffer (buf status identities) +(defun gnus-icalendar-event-reply-from-buffer (buf status identities &optional comment) "Build a calendar event reply for request contained in BUF. The reply will have STATUS (`accepted', `tentative' or `declined'). The reply will be composed for attendees matching any entry -on the IDENTITIES list." +on the IDENTITIES list. +Optional argument COMMENT will be placed in the comment field of the +reply. +" (cl-labels ((extract-block (blockname) @@ -396,7 +409,7 @@ gnus-icalendar-event-reply-from-buffer "PRODID:Gnus" "VERSION:2.0" zone - (gnus-icalendar-event--build-reply-event-body event status identities) + (gnus-icalendar-event--build-reply-event-body event status identities comment) "END:VCALENDAR"))) (mapconcat #'identity (delq nil contents) "\n")))))) @@ -878,13 +891,13 @@ gnus-icalendar-send-buffer-by-mail (insert "Subject: " subject) (message-send-and-exit)))) -(defun gnus-icalendar-reply (data) +(defun gnus-icalendar-reply (data &optional comment) (let* ((handle (car data)) (status (cadr data)) (event (caddr data)) (reply (gnus-icalendar-with-decoded-handle handle (gnus-icalendar-event-reply-from-buffer - (current-buffer) status (gnus-icalendar-identities)))) + (current-buffer) status (gnus-icalendar-identities) comment))) (organizer (gnus-icalendar-event:organizer event))) (when reply @@ -1009,25 +1022,37 @@ gnus-icalendar-save-event (when data (gnus-icalendar-save-part data)))) -(defun gnus-icalendar-reply-accept () - "Accept invitation in the current article." - (interactive nil gnus-article-mode gnus-summary-mode) +(defun gnus-icalendar-reply-accept (&optional comment-p) + "Accept invitation in the current article. + +Optional argument COMMENT-P (interactively the `\\[universal-argument]') +means prompt for a comment to include in the reply." + (interactive "P" gnus-article-mode gnus-summary-mode) (with-current-buffer gnus-article-buffer - (gnus-icalendar-reply (list gnus-icalendar-handle 'accepted gnus-icalendar-event)) + (gnus-icalendar-reply (list gnus-icalendar-handle 'accepted gnus-icalendar-event) + (when comment-p (read-string "Comment: "))) (setq-local gnus-icalendar-reply-status 'accepted))) -(defun gnus-icalendar-reply-tentative () - "Send tentative response to invitation in the current article." - (interactive nil gnus-article-mode gnus-summary-mode) +(defun gnus-icalendar-reply-tentative (&optional comment-p) + "Send tentative response to invitation in the current article. + +Optional argument COMMENT-P (interactively the `\\[universal-argument]') +means prompt for a comment to include in the reply." + (interactive "P" gnus-article-mode gnus-summary-mode) (with-current-buffer gnus-article-buffer - (gnus-icalendar-reply (list gnus-icalendar-handle 'tentative gnus-icalendar-event)) + (gnus-icalendar-reply (list gnus-icalendar-handle 'tentative gnus-icalendar-event) + (when comment-p (read-string "Comment: "))) (setq-local gnus-icalendar-reply-status 'tentative))) -(defun gnus-icalendar-reply-decline () - "Decline invitation in the current article." - (interactive nil gnus-article-mode gnus-summary-mode) +(defun gnus-icalendar-reply-decline (&optional comment-p) + "Decline invitation in the current article. + +Optional argument COMMENT-P (interactively the `\\[universal-argument]') +means prompt for a comment to include in the reply." + (interactive "P" gnus-article-mode gnus-summary-mode) (with-current-buffer gnus-article-buffer - (gnus-icalendar-reply (list gnus-icalendar-handle 'declined gnus-icalendar-event)) + (gnus-icalendar-reply (list gnus-icalendar-handle 'declined gnus-icalendar-event) + (when comment-p (read-string "Comment: "))) (setq-local gnus-icalendar-reply-status 'declined))) (defun gnus-icalendar-event-export () diff --git a/test/lisp/gnus/gnus-icalendar-tests.el b/test/lisp/gnus/gnus-icalendar-tests.el index 08c85013d17..9b4ba383d5a 100644 --- a/test/lisp/gnus/gnus-icalendar-tests.el +++ b/test/lisp/gnus/gnus-icalendar-tests.el @@ -255,5 +255,77 @@ gnus-icalendary-weekly-byday <2020-09-21 14:00-14:30 +1w>"))) (setenv "TZ" tz)))) +(ert-deftest gnus-icalendar-accept-with-comment () + "" + (let ((event "BEGIN:VEVENT +DTSTART;TZID=Europe/Berlin:20200915T140000 +DTEND;TZID=Europe/Berlin:20200915T143000 +RRULE:FREQ=WEEKLY;BYDAY=FR,MO,TH,TU,WE +DTSTAMP:20200915T120627Z +ORGANIZER;CN=anon@anoncompany.com:mailto:anon@anoncompany.com +UID:7b6g3m7iftuo90ei4ul00feqn_R20200915T120000@google.com +ATTENDEE;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;RSVP=TRUE + ;CN=participant@anoncompany.com;X-NUM-GUESTS=0:mailto:participant@anoncompany.com +CREATED:20200325T095723Z +DESCRIPTION:Coffee talk +LAST-MODIFIED:20200915T120623Z +LOCATION: +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Casual coffee talk +TRANSP:OPAQUE +END:VEVENT") + (icalendar-identities '("participant@anoncompany.com"))) + (unwind-protect + (progn + (let* ((reply (with-temp-buffer + (insert event) + (gnus-icalendar-event-reply-from-buffer + (current-buffer) + 'accepted + icalendar-identities + "Can not stay long.")))) + (should (string-match "^ATTENDEE;.*?\\(PARTSTAT=[^;]+\\)" reply)) + (should (string-equal (match-string 1 reply) "PARTSTAT=ACCEPTED")) + (should (string-match "^COMMENT:\\(.*\\)$" reply)) + (should (string-equal (match-string 1 reply) "Can not stay long."))))))) + +(ert-deftest gnus-icalendar-decline-withouth-changing-comment () + "" + (let ((event "BEGIN:VEVENT +DTSTART;TZID=Europe/Berlin:20200915T140000 +DTEND;TZID=Europe/Berlin:20200915T143000 +RRULE:FREQ=WEEKLY;BYDAY=FR,MO,TH,TU,WE +DTSTAMP:20200915T120627Z +ORGANIZER;CN=anon@anoncompany.com:mailto:anon@anoncompany.com +UID:7b6g3m7iftuo90ei4ul00feqn_R20200915T120000@google.com +ATTENDEE;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;RSVP=TRUE + ;CN=participant@anoncompany.com;X-NUM-GUESTS=0:mailto:participant@anoncompany.com +CREATED:20200325T095723Z +DESCRIPTION:Coffee talk +LAST-MODIFIED:20200915T120623Z +COMMENT:Only available at 2pm +LOCATION: +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Casual coffee talk +TRANSP:OPAQUE +END:VEVENT") + (icalendar-identities '("participant@anoncompany.com"))) + (unwind-protect + (progn + (let* ((reply (with-temp-buffer + (insert event) + (gnus-icalendar-event-reply-from-buffer + (current-buffer) + 'declined + icalendar-identities + nil)))) + (should (string-match "^ATTENDEE;.*?\\(PARTSTAT=[^;]+\\)" reply)) + (should (string-equal (match-string 1 reply) "PARTSTAT=DECLINED")) + (should (string-match "^COMMENT:\\(.*\\)$" reply)) + (should (string-equal (match-string 1 reply) "Only available at 2pm")) + ))))) + (provide 'gnus-icalendar-tests) ;;; gnus-icalendar-tests.el ends here -- 2.44.1 --=-=-= Content-Type: text/plain Ferdinand Pieper writes: > The updated patch contains two tests to check replies with and without > a comment. Let me know any feedback on these as I have never > contributed tests so far and if you prefer to have code and tests > split into two commits instead. > > Otherwise the patch should be good to be applied? > > Thanks! --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sat Sep 07 10:57:59 2024 Received: (at 72831) by debbugs.gnu.org; 7 Sep 2024 14:58:00 +0000 Received: from localhost ([127.0.0.1]:57200 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1smwsx-0001H5-Gj for submit@debbugs.gnu.org; Sat, 07 Sep 2024 10:57:59 -0400 Received: from eggs.gnu.org ([209.51.188.92]:56432) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1smwsv-0001Gr-4S for 72831@debbugs.gnu.org; Sat, 07 Sep 2024 10:57:58 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1smwqi-0004z3-B5; Sat, 07 Sep 2024 10:55:40 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=htCmbZ6kSLFkSrVUMzrccGjWmsCTm0YKv+UFwm9UkTw=; b=qCjBlNotLvVIefL3aCj0 zlWeWDB5y+gj/VHxTciTA9nvGpaTRQRhImEHr0iS9eOU9F/0oBxB/IGzR636P9LP7gTnp1iaEcbUJ Q2fIoXf9asSCyfvLIgM8gsvfFMKMY+cDIdyrxzsMq230HNB+9XgkNrYf2V3+B67+kk1BqAH2eYJ8W UqSpDebHAPOZ6qACbsTalhDV/jR8wGgvwlaUmulevAo22wWzzlvumvcKw5ZhtmU0fDoNyy3zuCWPl gKocQQweNbP1uUgYEDLg35ZG0/pjbUrQD8Ncr45GProeGiyHzAaNj+/91ADCGFrUGF7xcPmeoZolt ouAEfdT0s/7/1A==; Date: Sat, 07 Sep 2024 17:55:06 +0300 Message-Id: <86bk0zy0mt.fsf@gnu.org> From: Eli Zaretskii To: Ferdinand Pieper In-Reply-To: <87h6ard566.fsf@pie.tf> (message from Ferdinand Pieper on Sat, 07 Sep 2024 14:22:41 +0200) Subject: Re: bug#72831: [PATCH] gnus-icalendar: Allow comments in event replies References: <875xrml22f.fsf@pie.tf> <868qwgj4fh.fsf@gnu.org> <87wmk0vk0p.fsf@gmail.com> <878qwgtxjo.fsf@pie.tf> <87o75bvk8q.fsf@gmail.com> <87zfossr0j.fsf@pie.tf> <87h6ard566.fsf@pie.tf> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 72831 Cc: 72831@debbugs.gnu.org, rpluim@gmail.com, adl@lrde.epita.fr, cohen@andy.bu.edu X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Ferdinand Pieper > Cc: Robert Pluim , Eli Zaretskii , Andrew > G Cohen , Alexandre Duret-Lutz > Date: Sat, 07 Sep 2024 14:22:41 +0200 > > Any further feedback on the patch or could someone please apply the patch? Thanks! > > Patch once again below, this time as attachment instead of inline… Thanks, I'd like to wait for a few days, to let people comment if they want. From debbugs-submit-bounces@debbugs.gnu.org Sat Sep 07 14:21:55 2024 Received: (at 72831) by debbugs.gnu.org; 7 Sep 2024 18:21:55 +0000 Received: from localhost ([127.0.0.1]:57592 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sn04I-0004FM-81 for submit@debbugs.gnu.org; Sat, 07 Sep 2024 14:21:55 -0400 Received: from pie.tf ([5.45.99.52]:50254) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1smx0L-0001ly-T2 for 72831@debbugs.gnu.org; Sat, 07 Sep 2024 11:05:39 -0400 Received: from [45.12.203.65] (helo=localhost) by pie.tf with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1smx0I-000Mix-Oh; Sat, 07 Sep 2024 15:05:34 +0000 From: Ferdinand Pieper To: Eli Zaretskii Subject: bug#72831: [PATCH] gnus-icalendar: Allow comments in event replies In-Reply-To: <86bk0zy0mt.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 07 Sep 2024 17:55:06 +0300") References: <875xrml22f.fsf@pie.tf> <868qwgj4fh.fsf@gnu.org> <87wmk0vk0p.fsf@gmail.com> <878qwgtxjo.fsf@pie.tf> <87o75bvk8q.fsf@gmail.com> <87zfossr0j.fsf@pie.tf> <87h6ard566.fsf@pie.tf> <86bk0zy0mt.fsf@gnu.org> Date: Sat, 07 Sep 2024 17:05:34 +0200 Message-ID: <87plpfo669.fsf@pie.tf> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 72831 X-Mailman-Approved-At: Sat, 07 Sep 2024 14:21:52 -0400 Cc: 72831@debbugs.gnu.org, rpluim@gmail.com, adl@lrde.epita.fr, cohen@andy.bu.edu X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: > Thanks, I'd like to wait for a few days, to let people comment if they > want. Sounds good, thanks for handling it. From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 11 04:14:44 2024 Received: (at 72831) by debbugs.gnu.org; 11 Sep 2024 08:14:44 +0000 Received: from localhost ([127.0.0.1]:37758 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1soIUt-00030E-NM for submit@debbugs.gnu.org; Wed, 11 Sep 2024 04:14:44 -0400 Received: from mail-wm1-f53.google.com ([209.85.128.53]:47590) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1soIUq-0002zu-EL; Wed, 11 Sep 2024 04:14:41 -0400 Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-42cbb08a1a5so16606495e9.3; Wed, 11 Sep 2024 01:14:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726042408; x=1726647208; darn=debbugs.gnu.org; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=RJ8AQGdQBX15iQGcEKWKstbpzip1IM5GQIELPTjmU2M=; b=HYGkXOmBrHfMKo8AufxAzomNayzG5meSJOMF5hdFLlJErdKnOzm/wCUkrAlQhFJykS /SNdOg62zeMWLP9A8T3IEGzq64XiKml4NoDUdyuB0sV4j2BOzDFVYuSx4sOVvLEkBNCD 0RHfYDxT4B0rw98sUyxFIj/2BERgQe62yB7IckykMKflJFuf+YG+MUPj0hX8Hh4DOxcp FVBZiWAhTM1UMmtdcg/qEhh8+aRiJv1fIEPVJ+R4POBRIB9FGk5ABP2CyDvBWFYMtuhr 1fkylD5ZJy8OaVu5MYR+P50DSOPLHAEMoKB72jhAWcClF0QTpwUQjnlcmkcjNbH8ep4Y ERFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726042408; x=1726647208; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=RJ8AQGdQBX15iQGcEKWKstbpzip1IM5GQIELPTjmU2M=; b=U4vb7J5xI9s97qHxpy0QmprJ2lpUqUvRLbLaf4N7tyYuamTgyh89cZlzAtJH+Gyo4U SM5sZ8gBiqVjSWQFK9q5F/Sz157w2YYVOX2IOHxQUivqIeU+nBTmLGlramjo8CvW5npU P5L7UoitYdLPJe4F3sLvcQ3ULm8Ude9KAITXyMnw2eD7zllYis6PD7vFRX7+bX+OXRF+ wiw4EPcAmVg7NN6I0YLSRqYsJhtxnWVzSiq913BbJL+q2tYC9GmpSh+qE2ToEgEORNda HRs59UFEs4GOjaZx9/AbuccgnqzbcBjKAjN5N8bdRHbhEbJI9t72Cu6WEHp4+7bFtB4J 3k2Q== X-Forwarded-Encrypted: i=1; AJvYcCVIa3sXVvPqApo/FkSOmTWJlXbWpXVRp7Dx+KzvyjONpMRSfoY9r2J0x3/j/PIUuTc6lceBgg==@debbugs.gnu.org, AJvYcCWhMgJ0rkgmLLhlD1OdaEFaGi3uYO1EHYbQoncpHP+x8q8HUI/eiS3tmIvsQJ4rk87LLHJ5PSEfsQ==@debbugs.gnu.org X-Gm-Message-State: AOJu0YwM0LWRUz2VqMByR6DdYx1ubNvH25w1alc6s7on6uALGPXAmUA0 d2fKRJL7H3hduKu8Apw/mR1HEazVE6IXs9b+kA8GACqiTgIS8f970SXG9w== X-Google-Smtp-Source: AGHT+IFu0U2+gIxYoF6e7VKUFg+XKtLxSbV+oKBvu9ZPVazl+L/ip9zg4Cv+3jMDDU/KROa/VTaYEQ== X-Received: by 2002:a05:600c:548f:b0:42c:b74c:d8c3 with SMTP id 5b1f17b1804b1-42ccd360a18mr15607355e9.32.1726042407862; Wed, 11 Sep 2024 01:13:27 -0700 (PDT) Received: from rltb ([2a01:e0a:3f3:fb51:8061:cf5c:603f:ba35]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3789566550asm10840035f8f.35.2024.09.11.01.13.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Sep 2024 01:13:27 -0700 (PDT) From: Robert Pluim To: Ferdinand Pieper Subject: Re: bug#72831: [PATCH] gnus-icalendar: Allow comments in event replies In-Reply-To: <87plpfo669.fsf@pie.tf> (Ferdinand Pieper's message of "Sat, 07 Sep 2024 17:05:34 +0200") References: <875xrml22f.fsf@pie.tf> <868qwgj4fh.fsf@gnu.org> <87wmk0vk0p.fsf@gmail.com> <878qwgtxjo.fsf@pie.tf> <87o75bvk8q.fsf@gmail.com> <87zfossr0j.fsf@pie.tf> <87h6ard566.fsf@pie.tf> <86bk0zy0mt.fsf@gnu.org> <87plpfo669.fsf@pie.tf> Date: Wed, 11 Sep 2024 10:13:26 +0200 Message-ID: <878qvymwux.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 72831 Cc: Eli Zaretskii , 72831@debbugs.gnu.org, adl@lrde.epita.fr, cohen@andy.bu.edu X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) tags 72831 fixed close 72831 31.1 quit >>>>> On Sat, 07 Sep 2024 17:05:34 +0200, Ferdinand Pieper said: Ferdinand> Eli Zaretskii writes: >> Thanks, I'd like to wait for a few days, to let people comment if they >> want. Ferdinand> Sounds good, thanks for handling it. I wrote a NEWS entry for this and made a few minor style and typo edits. Sorry about the delay. Closing. Committed as 8332b4dd07a Robert -- From unknown Tue Jun 17 20:18:28 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Wed, 09 Oct 2024 11:24:08 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator