Git Product home page Git Product logo

Comments (3)

jasonm23 avatar jasonm23 commented on September 28, 2024

@syohex any ideas on this one? (Error tested and reproduced.)

from s.el.

syohex avatar syohex commented on September 28, 2024

Sorry I don't remember anything about this. How about using CASE-FOLD argument of assoc-string as below ?

diff --git a/s.el b/s.el
index ba6c1ed..f1dfe9c 100644
--- a/s.el
+++ b/s.el
@@ -400,7 +400,7 @@ This is a simple wrapper around the built-in `string-match-p'."
 
 (defun s--aget (alist key)
   (declare (pure t) (side-effect-free t))
-  (cdr (assoc-string key alist)))
+  (cdr (assoc-string key alist case-fold-search)))
 
 (defun s-replace-all (replacements s)
   "REPLACEMENTS is a list of cons-cells. Each `car` is replaced with `cdr` in S."

from s.el.

jasonm23 avatar jasonm23 commented on September 28, 2024

@syohex @magnars turns out it's a silly error, if the replacement lamba comes up with nil it's going to send that back to replace-regexp-in-string

So I've added a condition to avert the problem...

(defun s-replace-all (replacements s)
  "REPLACEMENTS is a list of cons-cells. Each `car` is replaced with `cdr` in S."
  (declare (pure t) (side-effect-free t))
  (replace-regexp-in-string
   (regexp-opt (mapcar 'car replacements))
   (lambda (it)
     (let ((replacement (s--aget replacements it)))
       (if (null replacement)
           it
         replacement)))
   s t t))

I'll push a PR tomorrow. Comments welcome.

from s.el.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.