Announcement

Collapse
No announcement yet.

Correct usage of $(AndIfNot)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Correct usage of $(AndIfNot)

    I tried in vain this:

    code:
    1 ${IfNot} ${SectionIsSelected} ${Section2}
    2 ${AndIfNot} ${SelectionIsSelected} ${Section4}
    3 Abort
    4 ${EndIf}

    What I want is I want to exit a function if both section 2 and section 4 are unselected. But the above code doesnt compile saying there is an error in line 2 required 4 parameters, passed 3. How to do this logic correctly?

  • #2
    First of all, you cannot use abort to break out of a functioncall. You'll have to use a goto functionend instead.

    Second, ${AndIfNot} ${SelectionIsSelected} ${Section4} is correct, assuming ${Section4} is defined. Do you get a warning about non-existing defines? But the error in "line 2" does not make sense. Did you mean in [i]macroline[i] 2? What is the exact error from the compiler?

    Comment


    • #3
      1. I got the Abort call from Show custom page when a section has been selected link. I am using it in the function to display my custom IO page (by writing Abort I am not displaying the page). And it is working too (like returning from a function, not actually aborting the installation itself). What is abort meant for then?


      2. The error I am getting is below:

      Function: "Hi"
      !insertmacro: _If
      !insertmacro: end of _If
      !insertmacro: _And
      !insertmacro: macro "_And" requires 4 parameter(s), passed 3!
      Error in script "D:\Project\CTVI\CTVI\Setup\New Text Document.nsi" on line 33 -- aborting creation process
      No, section 4 is properly defined. I get the function executed if I am not using AndIfNot. I am attaching a simple installer code that will reproduce the error I posted above.
      Attached Files

      Comment


      • #4
        You've written "SelectionIsSelected" instead of "SectionIsSelected".

        Stu

        Comment


        • #5
          omGGGGGGGG....... Ooops, I copy pasted from somewhere!

          Infact turned out to be your own post

          Comment


          • #6
            Originally Posted by MSG View Post
            First of all, you cannot use abort to break out of a functioncall. You'll have to use a goto functionend instead.
            You can use Return, or if you want to set the abort flag you can use Abort...
            IntOp $PostCount $PostCount + 1

            Comment


            • #7
              Originally Posted by Anders View Post
              or if you want to set the abort flag you can use Abort...
              Unless you're in an nsDialogs callback function, of course. >__<

              Comment


              • #8
                See section 4.5.3 in the manual, Abort call can be used to not show a custom page..

                Comment


                • #9
                  Err oops, sorry my bad. The 'quit' command doesn't work in nsDialogs callbacks (like onClick etc). Not sure about abort.

                  Comment


                  • #10
                    Yes calling Abort in the custom page show function has the same effect as not showing the page (thereby skipping it).

                    Edited my post

                    Stu

                    Comment


                    • #11
                      Originally Posted by Afrow UK View Post
                      Edited my post

                      Stu
                      Rewriting history, Stu?

                      The post you fixed is one of four that had 'SelectionIsSelected'. Posts # 31, 33, and 36 on that old thread still have that slip.

                      Don

                      Comment

                      Working...
                      X
                      😀
                      🥰
                      🤢
                      😎
                      😡
                      👍
                      👎