bug#51258: [PATCH] gnu: emacs: Handle pdump filenames that contain a fingerprint

2021-10-19 Thread Liliana Marie Prikler
Hi,

Am Montag, den 18.10.2021, 19:50 -0400 schrieb
morgan.j.sm...@outlook.com:
> From: Morgan Smith 
> 
> * gnu/packages/emacs.scm (emacs) [restore-emacs-pdmp]: Add regex to
> handle
> filenames that have a fingerprint in them
> ---
> 
> Fixed your problem.  Well it was also my problem.  The regex is
> pretty simple but probably a little intimidating if you've never done
> it before.  I highly recommend reading up on ERE's and BRE's from the
> POSIX specification if you have time.  I still don't exactly know how
> guile does regex but knowing POSIX regex has served me quite well.
> 
> I've tested this patch and it works great for me on the latest emacs
> commit.  It should also be backwards compatible so that's nice.
> 
> 
>  gnu/packages/emacs.scm | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
> index 6d9950d068..6ebcfecbc7 100644
> --- a/gnu/packages/emacs.scm
> +++ b/gnu/packages/emacs.scm
> @@ -183,9 +183,10 @@ (define* (emacs-byte-compile-directory dir)
>   (let* ((libexec (string-append (assoc-ref outputs
> "out")
>  "/libexec"))
>  ;; each of these find-files should return one
> file
> -(pdmp (find-files libexec "^emacs\\.pdmp$"))
> +;; there might be a fingerprint in the name
> +(pdmp (find-files libexec "^emacs(-
> [[:xdigit:]]+)?\\.pdmp$"))
>  (pdmp-real (find-files libexec
> -   "^\\.emacs\\.pdmp-
> real$")))
> +   "^\\.emacs(-
> [[:xdigit:]]+)?\\.pdmp-real$")))
> (for-each (lambda (wrapper real)
> (delete-file wrapper)
> (rename-file real wrapper))
Hi, this might sound somewhat odd, but I think this solution could be a
little over-engineered (also it does not match the case where the
version is an actual version rather than a git hash).  Perhaps instead
we ought to simply look for the .pdmp-real suffix, construct the old
file name and move the file back.  WDYT?






bug#51258: [PATCH] gnu: emacs: Handle pdump filenames that contain a fingerprint

2021-10-18 Thread Morgan . J . Smith
From: Morgan Smith 

* gnu/packages/emacs.scm (emacs) [restore-emacs-pdmp]: Add regex to handle
filenames that have a fingerprint in them
---

Fixed your problem.  Well it was also my problem.  The regex is pretty simple 
but probably a little intimidating if you've never done it before.  I highly 
recommend reading up on ERE's and BRE's from the POSIX specification if you 
have time.  I still don't exactly know how guile does regex but knowing POSIX 
regex has served me quite well.

I've tested this patch and it works great for me on the latest emacs commit.  
It should also be backwards compatible so that's nice.


 gnu/packages/emacs.scm | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 6d9950d068..6ebcfecbc7 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -183,9 +183,10 @@ (define* (emacs-byte-compile-directory dir)
  (let* ((libexec (string-append (assoc-ref outputs "out")
 "/libexec"))
 ;; each of these find-files should return one file
-(pdmp (find-files libexec "^emacs\\.pdmp$"))
+;; there might be a fingerprint in the name
+(pdmp (find-files libexec 
"^emacs(-[[:xdigit:]]+)?\\.pdmp$"))
 (pdmp-real (find-files libexec
-   "^\\.emacs\\.pdmp-real$")))
+   
"^\\.emacs(-[[:xdigit:]]+)?\\.pdmp-real$")))
(for-each (lambda (wrapper real)
(delete-file wrapper)
(rename-file real wrapper))
-- 
2.33.0