I just uploaded a fix for FTP_synchronize which comes with the current build of Notepad++ 4.7. A bug caused the plugin to leak icons which in turn can give mayor problems with any GUI in windows (esp. 9x). Please download 0.9.5.1 if you still use 0.9.5.0, it can be found at the following location: http://sourceforge.net/project/showfiles.php?group_id=189927&package_id=245189
A quick test showed no more leaks, but the problem usually occurred after multiple hours of usage so if anyone still has trouble please post :)
Note that the problem occurred when explorer icons were used instead of the built-in ugly icons.
-Harry
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Fixes that error when the Config directory doesnt exist it gives an error at startup that the settingsfile couldn't be created (Explorer ususally prevented the error since it gets loaded before FTP_s and explorer does create the config directory, but if the plugin directory also misses, Explorer doesnt create the directory and so everthing goes wrong).
-Harry
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
It's not a regression, it always has been there. But because I (and probably every other user that used FTP_s) used doLocalConf.xml the Config dir was always accessible since Notepad++ adds it (or Explorer). But if you put it in APPDATA and switch user profile, \plugins\Config doesnt not exist and so CreateFile (used to test for the ini) fails, giving the error. I cannot guarantee the plugin is bugfree for the obvious reasons, but there are no bugs I can think of right now. I do know that all the other plugins suffer from the same problem but they rely less heavily on the ini files (Explorer and such create the Config directory if it doesn't exist, but only if the plugins directory DOES, which isn't always the case, thats why Explorer often prevent FTP_s to fail (Explorer gets loaded first, E comes before F :)).
I intend to add a new feature that should have been in a long time ago, namely per-profile cache. Idk how long its going to take but I hope just today. If it were in in one of the next releases that would be nice.
On a sidenote, NppExport is now 2.6, its has the HTML and RTF export as one function. Unicode seems to be a bit of a problem as I yet have to find a way to extract unicode text (and a direct pointer to the buffer makes it a bit harder to work with the text).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I put 0.9.6 online. I think it fixes a crash too, although it only occured on debug builds afaik.
The strange thing is I've never seen it before, but it's gone now
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have multiple pages open, mostly PHP code. I open FTP_synchronize 0.9.6 using the 'show' dropdown menu. The log window spans the bottom of the screen, and the files window vertically spans the right side of the screen. I'm assuming that is the default configuration. Anyways, I drag the log frame up onto the Files frame so that they are tabbed. I switch back to the Files frame tab. I resize the divider so a majority of the Files frame is the directory listing window. I then close FTP_synchronize 0.9.6 using the 'x' in the top right corner of the Files frame. Notepad++ crashes with a fatal error instantaneously.
That is the full process (so no FTP connection is made), and it is quite repeatable for me. Hopefully it is for you too.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
> I think it fixes a crash too, although it only occured on debug builds afaik.
Jens has the same issue for the plugins Manager in Notepad++ - I'm sure the debug binary has some different codes generated by the compiler besides the debug symbols.
Don
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Yes, often that are bugs with memory handling (memory leaks). Most times I spot a working debug version but a crashing release. In the debug version variables are often initialized with 0 while they have any random value in release. Surely it crashes in the release because you delete a non initialized variable for example. Thats the main difference I know. But I didn´t think to what different behaviours it leads.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
In this case I think its because the debugger warned me of something in the form of an exception. But the wierd thging is, I've used the debug version so many times without having seen it, so I have no clue where it comes from, or I have been using the release version too much. Anyway, its gone. One of those undocumented microsoft common controls quircks I think :) (sending selection messages with random garbage when you delete all items, pfff)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I did some tries to reproduce the bug, and I see the problem more clearly.
Firstly, IMO the ini file should be read when user launch FTP_synchronize, it'll save the Notepad++ launch time.
Secondly, I compare the behaviours between Explorer plugin and FTP_synchronize :
Both plugin try to write their settings in %APPDATA%\Notepad++\plugins\Config\, that's good.
But Explorer acts smarter when writting settings fails - it just uses the hard coded default value.
Don
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Well, FTP_s only falls back to the hardcoded default (which is the same dir as the DLL) when NPPM_GETCONFIGDIR fails for some reason, since I would expect that dir to be valid. FTP_s now creates the dir like explorer tries, although explorer doesnt do that when 2 or more parent directories dont exist (::CreateDirectory fails of the parent doesnt exist, I wrote a routine around it). In the explorer source I do not see any hardcoded value btw.
Most of the ini gets read at launchtime in setInfo (its a few function calls deep), since setInfo gets called at launchtime (part of the loading routine afaik). Saving happens both during runtime and exit, depending on what changed (profiles are runtime).
I think explorer and FTP_s do it exactly at the same time.
-Harry
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Woops, read your first comment wrong, I thought you meant the other way around :).
I could probably do something like that, I'll take a look at it. I dont think it makes too much of a difference though, unless we talk network drive/USB stick. But that makes Notepad hang for a short moment when the user opens FTP_s which I personally would like to avoid.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
> I dont think it makes too much of a difference though, unless we talk network drive/USB stick.
Maybe the time to start up one plugin isn't significants,
but don't forget that Notepad++ contains around 10 plugins in its official release,
and I can imagine that a ordinary user can install his/her need plugins, the number of plugins can go up to 15
- then the Notepad++ launch time will be significant due to plugins.
Just launch Notepad++ with the following command, then you'll see what I mean :
Notepad++ -noPlugin
> But that makes Notepad hang for a short moment when the user opens FTP_s which I personally would like to avoid.
That's exactly what I don't want.
The plugins should not penalize the good functionalities and performance (including the launch time) in Notepad++,
otherwise they won't be included.
Take this exemple, my intention is easy to be understood :
FTP_synchronize does its initialization on Notepad++ launch time instead of its launch time,
in the case of a USB stick present, this problem will be hardly detected - it could be notepad++ or any plugin.
But if FTP_synchronize process its initialization on its launch time,
then source of problem is more obvious for an end user, therefore the problem is reported directly to FTP_synchronize.
And I can tell you that will save us a lot of time.
Don
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Could oyu please describe more how you use this plugin and if the behaviur still occurs if you disable some options?
Specifically, are you connected most of the time and is Keep-Alive enabled? Does it still happen with autosave enabled?
With the explorer icons still enabled?
What fi you disable keep alive?
Also, are you using a dualcore system? 50% CPU on a dualcore usualy means 100% on a single core desktop which means it hangs. Is the plugin/Notepad++ still responsive if the CPU usage goes so high?
Thank you for any input, I have no idea what causes this so any help would be welcome ;).
-Harry
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I don't use a dualcore system.
The Plugin/Notepad++ is still responsive with this high CPU usage but I have to restart Notepad++ to resolve the problems.
I do not have enabled the keep alive feature.
Yes auto-save is enabled (default I believe), I've never changed it.
It is a beautiful feature.
I'm most of the time connected and use it many times to save and auto-upload the changed file.
I use it many times to keep the connection alive and to view immediate the change on the server.
What do you mean with "with the explorer icons still enabled"?
btw I don't use filezilla and totalcommander ftp anymore with this great plugin, thank you :)
Would it be possible to drag and drop new files to the server?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Under General settings you can uncheck "Use explorer icons" or something similar which make the plugin use default icons (rather ugly but more reliable afaik).
See if checking/unchecking makes any difference.
Also please try without keep alive and see if that helps (if you do many operations yourself the server probably wont disconnect too soon).
As for Drag N Drop, thats needs some modifications in Notepad++ itself in order to work. I like to finish some stuff up before attempting to modify Notepad++,
so its not going to happen soon but it's on my list ;).
Also, does the CPU suage drop if you were to hide all the dockable windows?
-Harry
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Harry,
Thank you for this plugin, it's actually much more handy than I expected it to be. I did run into a bug when downloading from an IIS FTP site... when FTP_synchronize goes to cache the path information, it cannot. I assume this is because the root on this Windows machine I'm connecting to is D:\, and I'm guessing that's causing the problem. Works great on Linux FTPs though ;) Anyway, no big rush on my part, but I thought you might like to know. Thanks again, & keep up the good work!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I just uploaded a fix for FTP_synchronize which comes with the current build of Notepad++ 4.7. A bug caused the plugin to leak icons which in turn can give mayor problems with any GUI in windows (esp. 9x). Please download 0.9.5.1 if you still use 0.9.5.0, it can be found at the following location:
http://sourceforge.net/project/showfiles.php?group_id=189927&package_id=245189
A quick test showed no more leaks, but the problem usually occurred after multiple hours of usage so if anyone still has trouble please post :)
Note that the problem occurred when explorer icons were used instead of the built-in ugly icons.
-Harry
Released 0.9.5.2, which should fix the settingsfile error.
It can be found here:
http://sourceforge.net/project/showfiles.php?group_id=189927&package_id=245189
May I know the difference between these 2 release?
Don
Fixes that error when the Config directory doesnt exist it gives an error at startup that the settingsfile couldn't be created (Explorer ususally prevented the error since it gets loaded before FTP_s and explorer does create the config directory, but if the plugin directory also misses, Explorer doesnt create the directory and so everthing goes wrong).
-Harry
If I do understand, the same bug existed since v0.9.5.0 ?
Or it is just a regression?
Could you test v0.9.5.2 entirely to make sure it's a bug free?
With your confirmation, I'll do another release this weekend.
Don
It's not a regression, it always has been there. But because I (and probably every other user that used FTP_s) used doLocalConf.xml the Config dir was always accessible since Notepad++ adds it (or Explorer). But if you put it in APPDATA and switch user profile, \plugins\Config doesnt not exist and so CreateFile (used to test for the ini) fails, giving the error. I cannot guarantee the plugin is bugfree for the obvious reasons, but there are no bugs I can think of right now. I do know that all the other plugins suffer from the same problem but they rely less heavily on the ini files (Explorer and such create the Config directory if it doesn't exist, but only if the plugins directory DOES, which isn't always the case, thats why Explorer often prevent FTP_s to fail (Explorer gets loaded first, E comes before F :)).
I intend to add a new feature that should have been in a long time ago, namely per-profile cache. Idk how long its going to take but I hope just today. If it were in in one of the next releases that would be nice.
On a sidenote, NppExport is now 2.6, its has the HTML and RTF export as one function. Unicode seems to be a bit of a problem as I yet have to find a way to extract unicode text (and a direct pointer to the buffer makes it a bit harder to work with the text).
I put 0.9.6 online. I think it fixes a crash too, although it only occured on debug builds afaik.
The strange thing is I've never seen it before, but it's gone now
I just wanted to report an error for 0.9.6.
I have multiple pages open, mostly PHP code. I open FTP_synchronize 0.9.6 using the 'show' dropdown menu. The log window spans the bottom of the screen, and the files window vertically spans the right side of the screen. I'm assuming that is the default configuration. Anyways, I drag the log frame up onto the Files frame so that they are tabbed. I switch back to the Files frame tab. I resize the divider so a majority of the Files frame is the directory listing window. I then close FTP_synchronize 0.9.6 using the 'x' in the top right corner of the Files frame. Notepad++ crashes with a fatal error instantaneously.
That is the full process (so no FTP connection is made), and it is quite repeatable for me. Hopefully it is for you too.
> I think it fixes a crash too, although it only occured on debug builds afaik.
Jens has the same issue for the plugins Manager in Notepad++ - I'm sure the debug binary has some different codes generated by the compiler besides the debug symbols.
Don
Yes, often that are bugs with memory handling (memory leaks). Most times I spot a working debug version but a crashing release. In the debug version variables are often initialized with 0 while they have any random value in release. Surely it crashes in the release because you delete a non initialized variable for example. Thats the main difference I know. But I didn´t think to what different behaviours it leads.
In this case I think its because the debugger warned me of something in the form of an exception. But the wierd thging is, I've used the debug version so many times without having seen it, so I have no clue where it comes from, or I have been using the release version too much. Anyway, its gone. One of those undocumented microsoft common controls quircks I think :) (sending selection messages with random garbage when you delete all items, pfff)
I did some tries to reproduce the bug, and I see the problem more clearly.
Firstly, IMO the ini file should be read when user launch FTP_synchronize, it'll save the Notepad++ launch time.
Secondly, I compare the behaviours between Explorer plugin and FTP_synchronize :
Both plugin try to write their settings in %APPDATA%\Notepad++\plugins\Config\, that's good.
But Explorer acts smarter when writting settings fails - it just uses the hard coded default value.
Don
Well, FTP_s only falls back to the hardcoded default (which is the same dir as the DLL) when NPPM_GETCONFIGDIR fails for some reason, since I would expect that dir to be valid. FTP_s now creates the dir like explorer tries, although explorer doesnt do that when 2 or more parent directories dont exist (::CreateDirectory fails of the parent doesnt exist, I wrote a routine around it). In the explorer source I do not see any hardcoded value btw.
Most of the ini gets read at launchtime in setInfo (its a few function calls deep), since setInfo gets called at launchtime (part of the loading routine afaik). Saving happens both during runtime and exit, depending on what changed (profiles are runtime).
I think explorer and FTP_s do it exactly at the same time.
-Harry
Woops, read your first comment wrong, I thought you meant the other way around :).
I could probably do something like that, I'll take a look at it. I dont think it makes too much of a difference though, unless we talk network drive/USB stick. But that makes Notepad hang for a short moment when the user opens FTP_s which I personally would like to avoid.
> I dont think it makes too much of a difference though, unless we talk network drive/USB stick.
Maybe the time to start up one plugin isn't significants,
but don't forget that Notepad++ contains around 10 plugins in its official release,
and I can imagine that a ordinary user can install his/her need plugins, the number of plugins can go up to 15
- then the Notepad++ launch time will be significant due to plugins.
Just launch Notepad++ with the following command, then you'll see what I mean :
Notepad++ -noPlugin
> But that makes Notepad hang for a short moment when the user opens FTP_s which I personally would like to avoid.
That's exactly what I don't want.
The plugins should not penalize the good functionalities and performance (including the launch time) in Notepad++,
otherwise they won't be included.
Take this exemple, my intention is easy to be understood :
FTP_synchronize does its initialization on Notepad++ launch time instead of its launch time,
in the case of a USB stick present, this problem will be hardly detected - it could be notepad++ or any plugin.
But if FTP_synchronize process its initialization on its launch time,
then source of problem is more obvious for an end user, therefore the problem is reported directly to FTP_synchronize.
And I can tell you that will save us a lot of time.
Don
Great. Thanks for the great plugin. Can I know why the AINSI version is included with N++ not the unicode?
Probably for compatibility with old windows versions like 95 and 98.
That and Notepad++ itself is ANSI, so it matches closer (?)
-Harry
hi, will you be supporting secure ftp in the future??
Maybe, but it's probably going to take a while.
-Harry
The best plugin in Notepad++
but it is consuming all my CPU.
First around 10%
then using it for 30 minutes or more it is using 40-50% of CPU.
I noted this with the last release of notepad
Could oyu please describe more how you use this plugin and if the behaviur still occurs if you disable some options?
Specifically, are you connected most of the time and is Keep-Alive enabled? Does it still happen with autosave enabled?
With the explorer icons still enabled?
What fi you disable keep alive?
Also, are you using a dualcore system? 50% CPU on a dualcore usualy means 100% on a single core desktop which means it hangs. Is the plugin/Notepad++ still responsive if the CPU usage goes so high?
Thank you for any input, I have no idea what causes this so any help would be welcome ;).
-Harry
Dear Harry,
I don't use a dualcore system.
The Plugin/Notepad++ is still responsive with this high CPU usage but I have to restart Notepad++ to resolve the problems.
I do not have enabled the keep alive feature.
Yes auto-save is enabled (default I believe), I've never changed it.
It is a beautiful feature.
I'm most of the time connected and use it many times to save and auto-upload the changed file.
I use it many times to keep the connection alive and to view immediate the change on the server.
What do you mean with "with the explorer icons still enabled"?
btw I don't use filezilla and totalcommander ftp anymore with this great plugin, thank you :)
Would it be possible to drag and drop new files to the server?
Under General settings you can uncheck "Use explorer icons" or something similar which make the plugin use default icons (rather ugly but more reliable afaik).
See if checking/unchecking makes any difference.
Also please try without keep alive and see if that helps (if you do many operations yourself the server probably wont disconnect too soon).
As for Drag N Drop, thats needs some modifications in Notepad++ itself in order to work. I like to finish some stuff up before attempting to modify Notepad++,
so its not going to happen soon but it's on my list ;).
Also, does the CPU suage drop if you were to hide all the dockable windows?
-Harry
Thank you Harry.
BTW I had not keep alive enabled.
I disabled "use explorer icons" now.
Hope Drag N drop will be soon there.
The problem is that I have to switch a few times to my ftp client to add files.
I will keep you informed about CPU usage.
Thank you very much for this great plugin.
Harry,
Thank you for this plugin, it's actually much more handy than I expected it to be. I did run into a bug when downloading from an IIS FTP site... when FTP_synchronize goes to cache the path information, it cannot. I assume this is because the root on this Windows machine I'm connecting to is D:\, and I'm guessing that's causing the problem. Works great on Linux FTPs though ;) Anyway, no big rush on my part, but I thought you might like to know. Thanks again, & keep up the good work!