1.22 as of this post. Another buffer overflow bug fixed 😎
If anyone still has crashes with MakeNSISw please come to the IRC channel, I am waiting there 😁
NSIS 2 - Beta 0 is out!
202 posts
The new homepage for NSIS development is at:
Please use this url when posting bugs and/or features. The latest file release will be posted on the new project site soon.
Please use this url when posting bugs and/or features. The latest file release will be posted on the new project site soon.
File releases are up at the new project page. I have updated the links at the first post in this thread for your convenience.
Nasty bug alert:
Using .onInitDialog may cause some issues. As long as you don't use it, you should be OK.
The problem is caused due to .onInitDialog running parallel to other NSIS code sections, which causes problems due to static variables used in both.
This will be fixed ASAP.
Using .onInitDialog may cause some issues. As long as you don't use it, you should be OK.
The problem is caused due to .onInitDialog running parallel to other NSIS code sections, which causes problems due to static variables used in both.
This will be fixed ASAP.
Nasty bug fixed.
bzip2 installers now start up a lot faster.
Installers with plugins should now load faster too.
All in the latest CVS version, which is copied every night to the nightly snapshot (have a look at the FAQ).
All in the latest CVS version, which is copied every night to the nightly snapshot (have a look at the FAQ).
A snapshot of all NSIS files (including the new Modern UI) is available at http://nsis.sourceforge.net/nsis-snapshot-sep22.exe.
This snapshot has an installer and the files have Windows line breaks, but snapshots with installer will not be made every day.
This snapshot has an installer and the files have Windows line breaks, but snapshots with installer will not be made every day.
Latest CVS version now has user multilingual strings.
Example taken from languages.nsi:
You will need to recompile makensis.exe for it to work.
To use in the uninstaller just add the un. prefix to the string name. Use it using it's name alone, without un.
These multilingual strings can't be used inside other strings. You can't write "bla bla $(mlstr) bla bla" only $(mlstr).
Example taken from languages.nsi:
LangString Sec1Name ${LANG_ENGLISH} "!English section #1"
LangString Sec1Name ${LANG_DUTCH} "!Dutch section #1"
LangString Sec1Name ${LANG_FRENCH} "!French section #1"
LangString Sec1Name ${LANG_GERMAN} "!German section #1"
LangString Sec1Name ${LANG_KOREAN} "!Korean section #1"
LangString Sec1Name ${LANG_RUSSIAN} "!Russian section #1"
LangString Sec1Name ${LANG_SPANISH} "!Spanish section #1"
LangString Sec1Name ${LANG_SWEDISH} "!Swedish section #1"
LangString Sec1Name ${LANG_SLOVAK} "!Slovak section #1"
LangString Message ${LANG_ENGLISH} "English message"
LangString Message ${LANG_DUTCH} "Dutch message"
LangString Message ${LANG_FRENCH} "French message"
LangString Message ${LANG_GERMAN} "German message"
LangString Message ${LANG_KOREAN} "Korean message"
LangString Message ${LANG_RUSSIAN} "Russian message"
LangString Message ${LANG_SPANISH} "Spanish message"
LangString Message ${LANG_SWEDISH} "Swedish message"
LangString Message ${LANG_SLOVAK} "Slovak message"
Section $(Sec1Name)
MessageBox MB_OK $(Message)
SectionEnd Notes:You will need to recompile makensis.exe for it to work.
To use in the uninstaller just add the un. prefix to the string name. Use it using it's name alone, without un.
These multilingual strings can't be used inside other strings. You can't write "bla bla $(mlstr) bla bla" only $(mlstr).
it doesn't work on subsection? or am i doing anything wrong?
No, you are not doing anything wrong. I have fixed this in the latest CVS version.
btw, have you changed the behaviour of SectionGetFlags? Now it returns 1 instead of 0x80000000 when a section is selected.
It took me some time to figure out why my script did no longer work and you've not said anything about this in the changelog.
It took me some time to figure out why my script did no longer work and you've not said anything about this in the changelog.
Yes, you are right... I forgot to mention it, I am sorry about that.
Here are the new defines for the section flags:
Here are the new defines for the section flags:
!define SF_SELECTED 1
!define SF_SUBSEC 2
!define SF_SUBSECEND 4
!define SF_BOLD 8
!define SF_RO 16
!define SF_EXPAND 32 I have added an option for unprocessed user multilingual strings (LangStringUP). Use it if you see weird squares before any special character in your LangString.
Added support for !ifdef/!ifndef/!else in macros too.
how about supporting right to left languages?
In the progress.
the arabic work with the ltr system too, so it is ok to leave the arabic language even without rtl support 🙂.
thank you
thank you
Yes, but it doesn't look good just like the Hebrew translation. RTL is already partially implemented in ChangeUI. Use ChangeUI /RTL "ui file.exe" and you will see. It isn't perfect yet but it's on the todo list so I hope it will be soon 😉
Big change in the latest CVS version
The latest CVS version contains a new advanced paging system. It will break old scripts, but believe me when I say it is worth it. The new paging system allows you to set the order of the pages (including custom pages!) in NSIS very easily. For example:
What is it good for?
All of the examples have been updated so you can look at them for more information. A new section in the documents about the new paging system was also created.
The latest CVS version contains a new advanced paging system. It will break old scripts, but believe me when I say it is worth it. The new paging system allows you to set the order of the pages (including custom pages!) in NSIS very easily. For example:
Page license
Page custom customPage
Page components
Page directory
Page instfiles Each page has two callback functions, pre-function and post-function. The pre-function is called just before the page is created and allows you to skip it using Abort. The post-function is called right after the page is created and before it is shown allowing you to tweak its UI using CreateFont and friends. Custom pages have only one callback function but it is mandatory. This function should create the page, and use Abort if it wants to go to the previous page.What is it good for?
- Modern UI way easier
- Button names/enabled/disabled/shown/hidden are set automatically, custom pages no longer need to know where they are.
- No need to follow the page number
- You can add the same page twice
- You can change the order of the pages
- It's much easier to skip pages
- It's much easier to add custom pages
- No more keeping track on the direction of pages
- No more complicated scripts such as MultIni4 or the Modern UI InstallOptions macros
- EXE header is even smaller. 404 bytes shaved off 😁
zlib header is 34KB and bzip2 is 33.5KB.
All of the examples have been updated so you can look at them for more information. A new section in the documents about the new paging system was also created.
Wow!
That sounds great, can't wait to test this.
I only hate it to modify my scripts so often 😉
That sounds great, can't wait to test this.
I only hate it to modify my scripts so often 😉
Works Fine in 2.07a
The code snippet appears to work fine in 2.07a
The code snippet appears to work fine in 2.07a
What code snippest?
A bit Off Topic
I was just wondering, if Justin has given his blessing on NSIS 2.*, and if so, when an 'official' release would be.
I was just wondering, if Justin has given his blessing on NSIS 2.*, and if so, when an 'official' release would be.
Yes, just look a few posts above and you will see it.
Here is a little quote from there:
Here is a little quote from there:
But basically, it looks like when kichik and everybody is ready, we'll just make it the official 2.0 beta which we put on nullsoft.com for a week or two.. Then we fix any small or glaring bugs, and go to final. Or something. This sound good to people?
yeah i saw that. But that post is nearly 2 months old. And wasn't sure if anything changed or not.
So basically, it'll be official when you feel it is ready?
So basically, it'll be official when you feel it is ready?
Yep. Beta 0 will be released soon. Justin will put it on the nullsoft page (if we can find him 😁).
There is an empty folder MagicLime in NSIS\Contrib. What is going on with it?
Fixed, next snapshot will not have it.
More changes
The paging system is now even easier than before. I have made it so NSIS will handle all of the buttons input while using a custom page, which means you don't need to compare IO's output to cancel, success or back and call Abort or Quit accordingly, just let NSIS do it. You won't even need to use IO and StartPage's cancel confirm message boxes because NSIS will call .onUserAbort, and the plug-in dialog won't disapear until .onUserAbort is executed without an Abort.
The paging system is now even easier than before. I have made it so NSIS will handle all of the buttons input while using a custom page, which means you don't need to compare IO's output to cancel, success or back and call Abort or Quit accordingly, just let NSIS do it. You won't even need to use IO and StartPage's cancel confirm message boxes because NSIS will call .onUserAbort, and the plug-in dialog won't disapear until .onUserAbort is executed without an Abort.