all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Theodor Thornhill via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: Stefan Kangas <stefankangas@gmail.com>, 59602@debbugs.gnu.org
Cc: "Jostein Kjønigsen" <jostein@kjonigsen.net>
Subject: bug#59602: 29.0.50; csharp-mode should either be a package, or compat code could be removed
Date: Sat, 26 Nov 2022 20:12:58 +0100	[thread overview]
Message-ID: <87o7st4jid.fsf@thornhill.no> (raw)
In-Reply-To: <CADwFkmnbedAd-Lps8pkDE9uyOtU1JDNBWoq2BsPwLbHTmKTnMQ@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 613 bytes --]

Stefan Kangas <stefankangas@gmail.com> writes:

> Severity: wishlist
>
> Is csharp-mode.el intended to be a :core package or should people just
> use the version that comes with Emacs?
>
> If the former, I guess some Version and Package-Requires headers
> are needed.
>
> If the latter, the compat code starting on line 512 could probably be
> removed.

I agree.  The compat code should be removed.  I don't thing we have much
to gain by maintaining this as a :core package, so here's a patch doing
what you suggest.  I don't think that code should be part of Emacs at
all, if not absolutely necessary :-)

Theo


[-- Attachment #2: 0001-Remove-compatibility-code-in-csharp-mode.patch --]
[-- Type: text/x-diff, Size: 4466 bytes --]

From 44189f78889e22f3e9321d8b089ed452bfa3c87a Mon Sep 17 00:00:00 2001
From: Theodor Thornhill <theo@thornhill.no>
Date: Sat, 26 Nov 2022 20:10:58 +0100
Subject: [PATCH] Remove compatibility code in csharp-mode

* lisp/progmodes/csharp-mode.el (c-basic-matchers-before): Remove
invalid string check for Emacs 27.
(version=): Remove compatibility hack for string handling in CC Mode
in Emacs 27.1.
---
 lisp/progmodes/csharp-mode.el | 75 +----------------------------------
 1 file changed, 2 insertions(+), 73 deletions(-)

diff --git a/lisp/progmodes/csharp-mode.el b/lisp/progmodes/csharp-mode.el
index a544a4b5cb..354aacf9bc 100644
--- a/lisp/progmodes/csharp-mode.el
+++ b/lisp/progmodes/csharp-mode.el
@@ -319,12 +319,7 @@ csharp--color-forwards
 (c-lang-defconst c-basic-matchers-before
   csharp `(
            ;; Warning face on unclosed strings
-           ,@(if (version< emacs-version "27.0")
-                 ;; Taken from 26.1 branch
-                 `(,(c-make-font-lock-search-function
-                     (concat ".\\(" c-string-limit-regexp "\\)")
-                     '((c-font-lock-invalid-string))))
-               `(("\\s|" 0 font-lock-warning-face t nil)))
+           ("\\s|" 0 font-lock-warning-face t nil)
 
            ;; Invalid single quotes
            c-font-lock-invalid-single-quotes
@@ -346,7 +341,6 @@ c-basic-matchers-before
                   nil
                   (goto-char (match-end 0)))))
 
-
            ;; Negation character
            (eval . (list "\\(!\\)[^=]" 1 c-negation-char-face-name))
 
@@ -375,8 +369,7 @@ c-basic-matchers-before
            (eval . (list (concat "\\<catch\\> *( *"
                                  csharp--regex-type-name-matcher
                                  " *) *")
-                         1 font-lock-type-face))
-           ))
+                         1 font-lock-type-face))))
 
 (c-lang-defconst c-basic-matchers-after
   csharp (append
@@ -505,70 +498,6 @@ csharp-guess-basic-syntax
 
 ;;; End of new syntax constructs
 
-
-
-;;; Fix for strings on version 27.1
-
-(when (version= emacs-version "27.1")
-  ;; See:
-  ;; https://github.com/emacs-csharp/csharp-mode/issues/175
-  ;; https://github.com/emacs-csharp/csharp-mode/issues/151
-  ;; for the full story.
-  (defun c-pps-to-string-delim (end)
-    (let* ((start (point))
-           (no-st-s `(0 nil nil ?\" nil nil 0 nil ,start nil nil))
-           (st-s `(0 nil nil t nil nil 0 nil ,start nil nil))
-           no-st-pos st-pos
-           )
-      (parse-partial-sexp start end nil nil no-st-s 'syntax-table)
-      (setq no-st-pos (point))
-      (goto-char start)
-      (while (progn
-               (parse-partial-sexp (point) end nil nil st-s 'syntax-table)
-               (unless (bobp)
-                 (c-clear-syn-tab (1- (point))))
-               (setq st-pos (point))
-               (and (< (point) end)
-                    (not (eq (char-before) ?\")))))
-      (goto-char (min no-st-pos st-pos))
-      nil))
-
-  (defun c-multiline-string-check-final-quote ()
-    (let (pos-ll pos-lt)
-      (save-excursion
-        (goto-char (point-max))
-        (skip-chars-backward "^\"")
-        (while
-            (and
-             (not (bobp))
-             (cond
-              ((progn
-                 (setq pos-ll (c-literal-limits)
-                       pos-lt (c-literal-type pos-ll))
-                 (memq pos-lt '(c c++)))
-               ;; In a comment.
-               (goto-char (car pos-ll)))
-              ((save-excursion
-                 (backward-char)        ; over "
-                 (c-is-escaped (point)))
-               ;; At an escaped string.
-               (backward-char)
-               t)
-              (t
-               ;; At a significant "
-               (c-clear-syn-tab (1- (point)))
-               (setq pos-ll (c-literal-limits)
-                     pos-lt (c-literal-type pos-ll))
-               nil)))
-          (skip-chars-backward "^\""))
-        (cond
-         ((bobp))
-         ((eq pos-lt 'string)
-          (c-put-syn-tab (1- (point)) '(15)))
-         (t nil))))))
-
-;;; End of fix for strings on version 27.1
-
 ;; When invoked by MSBuild, csc’s errors look like this:
 ;; subfolder\file.cs(6,18): error CS1006: Name of constructor must
 ;; match name of class [c:\Users\user\project.csproj]
-- 
2.34.1


  reply	other threads:[~2022-11-26 19:12 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-26  8:14 bug#59602: 29.0.50; csharp-mode should either be a package, or compat code could be removed Stefan Kangas
2022-11-26 19:12 ` Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
2022-11-26 20:58   ` Jostein Kjønigsen
2022-11-27  6:04     ` Eli Zaretskii
2022-11-27  9:38   ` Stefan Kangas
2022-11-27  9:58     ` Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife of text editors

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87o7st4jid.fsf@thornhill.no \
    --to=bug-gnu-emacs@gnu.org \
    --cc=59602@debbugs.gnu.org \
    --cc=jostein@kjonigsen.net \
    --cc=stefankangas@gmail.com \
    --cc=theo@thornhill.no \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.