Bug report #1044
crash when creating new GRASS location on Windows
Status: | Closed | ||
---|---|---|---|
Priority: | Low | ||
Assignee: | Tom Elwertowski | ||
Category: | GRASS | ||
Affected QGIS version: | Regression?: | No | |
Operating System: | All | Easy fix?: | No |
Pull Request or Patch supplied: | Resolution: | fixed | |
Crashes QGIS or corrupts data: | Copied to github as #: | 11104 |
Description
QGIS (Windows version only) crashes if you are trying to create location with almost same name as exist (the only difference is character case).
Steps to reproduce:
1. Create new GRASS location with name "bug"
2. Now try to create another GRASS location with name "Bug"
3. After last wizard step the QGIS crashes
The problem is that Linux is case sensitive (bug and Bug are two different strings) but in Windows there is impossible to create two files named "bug" and "Bug".
History
#1 Updated by Marco Pasetti - over 16 years ago
I think that the only possible solution is to introduce a name check to prevent this error, telling that the location Bug already exists and repromp for a new name.
Marco
#2 Updated by Maciej Sieczka - over 16 years ago
Bug confirmed under WINE 1.0.0 configured to emulate Win XP, on amd64 Debian testing using Marco's "QGIS 0.11.0 for Windows pre-release testing installer".
Indeed it seems the culprit is Windows is not case-sensitive as GNU/Linux is.
#3 Updated by Marco Pasetti - over 16 years ago
Replying to [comment:4 msieczka]:
Bug confirmed under WINE 1.0.0 configured to emulate Win XP, on amd64 Debian testing using Marco's "QGIS 0.11.0 for Windows pre-release testing installer".
Indeed it seems the culprit is Windows is not case-sensitive as GNU/Linux is.
Absolutely! Windows is NOT case sensitive. As I said two months ago, there would be a simple solution: introduce a name check function to prevent this error, checking if the location's name (that is the folder) already exixts and, if yes, telling that the location Bug already exists and reprompt for a new name.
I donn't know if that should be done in GRASS code; actually I think that we could do that in one of the src\\qgis-dev\\src\\plugins\\grass\\ cpp files
Jurgen?
#4 Updated by Tom Elwertowski about 16 years ago
This also happens on a Mac.
There's already a duplicate name check in qgsgrassnewmapset.cpp. It needs to be made case insensitive for Mac and Win.
#5 Updated by Tom Elwertowski about 16 years ago
- Resolution set to fixed
- Status changed from Open to Closed
Fixed by 47dbaf29 (SVN r9288).
#6 Updated by cgsbob - about 16 years ago
- Resolution deleted (
fixed) - Status changed from Closed to Feedback
Replying to [comment:7 telwertowski]:
Fixed by 47dbaf29 (SVN r9288).
I think there is a problem with 47dbaf29 (SVN r9288). I'm running qt4.4 and I get this compile error:
Scanning dependencies of target grassplugin [ 87%] Building CXX object src/plugins/grass/CMakeFiles/grassplugin.dir/qgsgrassplugin.o In file included from /home/bobm/src/gis/qgis_svn/src/plugins/grass/qgsgrassplugin.cpp:18: /home/bobm/src/gis/qgis_svn/src/plugins/grass/qgsgrassplugin.h:99: error: ‘QPainter’ has not been declared /home/bobm/src/gis/qgis_svn/src/plugins/grass/qgsgrassplugin.cpp:523: error: prototype for ‘void [[QgsGrassPlugin]]::postRender(QPainter*)’ does not match any in class ‘QgsGrassPlugin’ /home/bobm/src/gis/qgis_svn/src/plugins/grass/qgsgrassplugin.h:99: error: candidate is: void [[QgsGrassPlugin]]::postRender(int*) maker2: *** [src/plugins/grass/CMakeFiles/grassplugin.dir/qgsgrassplugin.o] Error 1 maker1: *** [src/plugins/grass/CMakeFiles/grassplugin.dir/all] Error 2 make: *** [all] Error 2
The complete compiler output can be found here: [http://rafb.net/p/SAY4QJ37.html]
#7 Updated by Maciej Sieczka - about 16 years ago
And I get a foloowing error in 98c33097 (SVN r9291):
[ 91%] Generating ui_qgsprojectionselectorbase.h /home/shoofi/src/straight/qgis-trunk/src/ui/qgsprojectionselectorbase.ui: An invalid icon property 'windowIcon' was encountered. Scanning dependencies of target grassplugin [ 92%] Building CXX object src/plugins/grass/CMakeFiles/grassplugin.dir/qgsgrassplugin.o In file included from /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassplugin.cpp:18: /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassplugin.h:99: error: 'QPainter' has not been declared /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassplugin.cpp:523: error: prototype for 'void [[QgsGrassPlugin]]::postRender(QPainter*)' does not match any in class 'QgsGrassPlugin' /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassplugin.h:99: error: candidate is: void [[QgsGrassPlugin]]::postRender(int*) maker2: *** [src/plugins/grass/CMakeFiles/grassplugin.dir/qgsgrassplugin.o] Error 1 maker1: *** [src/plugins/grass/CMakeFiles/grassplugin.dir/all] Error 2 make: *** [all] Error 2
#8 Updated by Tom Elwertowski about 16 years ago
- Status changed from Feedback to Open
#9 Updated by Tom Elwertowski about 16 years ago
- Resolution set to fixed
- Status changed from Open to Closed
#10 Updated by Maciej Sieczka - about 16 years ago
- Status changed from Closed to Feedback
- Resolution deleted (
fixed)
Yet another error, in 2624cdea (SVN r9292):
[ 92%] Building CXX object src/plugins/grass/CMakeFiles/grassplugin.dir/qgsgrassmodel.o [ 93%] Building CXX object src/plugins/grass/CMakeFiles/grassplugin.dir/qgsgrassmapcalc.o /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassmapcalc.cpp: In member function 'virtual void [[QgsGrassMapcalc]]::mousePressEvent(QMouseEvent*)': /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassmapcalc.cpp:278: error: must #include <typeinfo> before using typeid /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassmapcalc.cpp:278: error: must #include <typeinfo> before using typeid /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassmapcalc.cpp:288: error: must #include <typeinfo> before using typeid /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassmapcalc.cpp:288: error: must #include <typeinfo> before using typeid /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassmapcalc.cpp: In member function 'virtual QStringList [[QgsGrassMapcalc]]::checkRegion()': /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassmapcalc.cpp:494: error: must #include <typeinfo> before using typeid /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassmapcalc.cpp:494: error: must #include <typeinfo> before using typeid /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassmapcalc.cpp: In member function 'virtual bool [[QgsGrassMapcalc]]::inputRegion(Cell_head*, bool)': /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassmapcalc.cpp:549: error: must #include <typeinfo> before using typeid /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassmapcalc.cpp:549: error: must #include <typeinfo> before using typeid /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassmapcalc.cpp: In member function 'void [[QgsGrassMapcalc]]::growCanvas(int, int, int, int)': /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassmapcalc.cpp:957: error: must #include <typeinfo> before using typeid /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassmapcalc.cpp:957: error: must #include <typeinfo> before using typeid /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassmapcalc.cpp:965: error: must #include <typeinfo> before using typeid /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassmapcalc.cpp:965: error: must #include <typeinfo> before using typeid /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassmapcalc.cpp: In member function 'void [[QgsGrassMapcalc]]::save()': /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassmapcalc.cpp:1124: error: must #include <typeinfo> before using typeid /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassmapcalc.cpp:1124: error: must #include <typeinfo> before using typeid /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassmapcalc.cpp:1175: error: must #include <typeinfo> before using typeid /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassmapcalc.cpp:1175: error: must #include <typeinfo> before using typeid /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassmapcalc.cpp: In member function 'bool [[QgsGrassMapcalcConnector]]::tryConnectEnd(int)': /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassmapcalc.cpp:1990: error: must #include <typeinfo> before using typeid /home/shoofi/src/straight/qgis-trunk/src/plugins/grass/qgsgrassmapcalc.cpp:1990: error: must #include <typeinfo> before using typeid maker2: *** [src/plugins/grass/CMakeFiles/grassplugin.dir/qgsgrassmapcalc.o] Error 1 maker1: *** [src/plugins/grass/CMakeFiles/grassplugin.dir/all] Error 2 make: *** [all] Error 2
#11 Updated by Tom Elwertowski about 16 years ago
- Status changed from Feedback to Open
Add the line
#include <typeinfo>
after #include <math.h> and try compiling again. I will wait for any other issues before updating svn.
What OS are you using? I will also add a comment that this file is needed for a particular OS so it doesn't get removed again.
#12 Updated by Tom Elwertowski about 16 years ago
- Status changed from Open to Closed
- Resolution set to fixed
The last issue is fixed by gcc 4.3 compatibility changes in d0496982 (SVN r9293).
#13 Updated by Maciej Sieczka - about 16 years ago
Buids fine now. I'm on Debian testing amd64, gcc 4.3.1.
#14 Updated by Anonymous over 15 years ago
Milestone Version 1.0.0 deleted