Skip to content

Conversation

idleberg
Copy link
Contributor

@idleberg idleberg commented Dec 3, 2021

Updates pattern for NSIS defines to allow !-characters. This example from the NSIS wiki has an example that uses this.

Changes

Allow ! in defines regex pattern

Checklist

  • Added markup tests, or they don't apply here because...
  • Updated the changelog at CHANGES.md

@joshgoebel
Copy link
Member

I see a lot of ! there (following your link), can you point me to exactly which part we're talking about?

@idleberg
Copy link
Contributor Author

idleberg commented Dec 3, 2021

I see a lot of ! there (following your link), can you point me to exactly which part we're talking about?

This is the relevant line:

!define !defineifexist "!insertmacro !defineifexist"

It's basically a shortcut that assigns the !insertmacro instruction to a definition. The following two do the same:

# Default !insertmacro syntax
!insertmacro !defineexists [params]

# Shortcut for !insertmacro
${!defineexist} [params]

PS: Unlike variables, defines can begin with any allowed characters – including ! and .

@idleberg
Copy link
Contributor Author

idleberg commented Dec 3, 2021

Since I think the syntax in the linked example is kind of terrible, here's a version that only uses ! where necessary:

!macro DefineIfExist _VAR_NAME _FILE_NAME
	# macro code omitted for brevity
!macroend
!define !defineifexist "!insertmacro DefineIfExist"

In NSIS, all compile-time commands begin with a !. I guess the author's intention to name the definition as !defineifexists was to reflect that his macro does compile-time operations. It could be named anything.

CHANGES.md Outdated
- enh(clojure) Add `regex` mode to regex literal
- fix(clojure) Remove inconsistent/broken highlighting for metadata
- enh(clojure) Add `punctuation` mode for commas.
- enh(nsis) Update defines pattern to allow `!` (#3417) [idleberg][]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add your name around line ~30 also. Each version needs the name repeated, even if you've contributed in the past.

Copy link
Member

@joshgoebel joshgoebel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs name attribution for changelog.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants