bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #59752] feature request: quote/expand function


From: Aleksey Victor Trevelin Covacevi
Subject: [bug #59752] feature request: quote/expand function
Date: Tue, 22 Dec 2020 14:00:10 -0500 (EST)
User-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36

URL:
  <https://savannah.gnu.org/bugs/?59752>

                 Summary: feature request: quote/expand function
                 Project: make
            Submitted by: alecov
            Submitted on: Tue 22 Dec 2020 07:00:07 PM UTC
                Severity: 3 - Normal
              Item Group: Enhancement
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
       Component Version: None
        Operating System: None
           Fixed Release: None
           Triage Status: None

    _______________________________________________________

Details:

It would be nice to have a $(quote) function which escapes a string for safe
use within $(eval) contexts:

That is:

    define y
    1 # x
    z = 2
    endef

    $(eval x = $y)          # x = 1, and introduces z = 2
    $(eval x = $(quote $y)) # x = 1 # x\nz = 2


Also, the $(value) function is inconsistent with regards to $'s between simple
and recursive variables:

    a1  = $x $$y \# z
    a2 := $x $$y \# z
    $(info $(value a1)) # Prints '$x $$y # z'
    $(info $(value a2)) # Prints ' $y # z'

This also might give problems in $(eval) contexts eg:

    $(eval b1 = $(value a1)) # b1 = $x $$y
    $(eval b2 = $(value a2)) # b2 = $y

    # $(quote $(value)) doesn't fit:
    $(eval b1 = $(quote $(value a1))) # b1 = $$x $$$$y \# z
    $(eval b2 = $(quote $(value a2))) # b2 = $$y \# z

Hence, I'd suggest also introducing $(expand) which is similar to $(quote)
above, but for variables:

    $(eval b1 = $(expand a1))) # b1 = $x $$y \# z
    $(eval b2 = $(expand a2))) # b2 = $$y \# z




    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?59752>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]