[GRASS-dev] gis.m patch
Michael Barton
michael.barton at asu.edu
Sat Sep 2 16:06:50 EDT 2006
This is GREAT. Thanks very much. I have a couple questions.
1. Is there a binary version of this available for people to try?
2. Do your changes affect how gism runs on any other platform?
3. Could you give me a brief one-liner of what each change to gism is
intended to do so I can find a way to keep this in the code if it does have
issues on other platforms?
4. Does NVIZ work?
Great news (even though I don't use Windows)
Michael
__________________________________________
Michael Barton, Professor of Anthropology
School of Human Evolution & Social Change
Center for Social Dynamics & Complexity
Arizona State University
phone: 480-965-6213
fax: 480-965-7671
www: http://www.public.asu.edu/~cmbarton
> From: Huidae Cho <grass4u at gmail.com>
> Date: Sat, 2 Sep 2006 01:32:19 -0500
> To: <grass-dev at grass.itc.it>
> Subject: [GRASS-dev] gis.m patch
>
> Hi,
>
> I've patched gis.m so that it can run on Windows natively with the help
> of direct rendering. PDCurses lets the user to start in text mode, but
> since there are no monitors available, gis.m is the only option for now.
>
> http://geni.ath.cx/grass/native_wingrass.png shows gis.m running on
> MS-Windows (not Cygwin).
>
> Huidae
>
> GRASS is now configured for: i686-pc-mingw32
>
> Source directory: /home/song/usr/grass/grass6
> Build directory: /home/song/usr/grass/grass6
> Installation directory: /usr/local/grass-6.3.cvs
> Startup script in directory: ${exec_prefix}/bin
> C compiler: gcc -g -O2 -D__W98__
> C++ compiler: c++ -g -O2
> FORTRAN compiler:
> Building shared libraries: yes
> 64bit support: no
> OpenGL platform: Windows
>
> NVIZ: yes
>
> BLAS support: no
> C++ support: yes
> DWG support: no
> FFMPEG support: no
> FFTW support: yes
> FreeType support: yes
> GDAL support: yes
> GLw support: no
> JPEG support: yes
> LAPACK support: no
> Large File Support (LFS): no
> Motif support: no
> MySQL support: no
> NLS support: no
> ODBC support: no
> OGR support: yes
> OpenGL support: yes
> PNG support: yes
> PostgreSQL support: yes
> Python support: no
> Readline support: yes
> SQLite support: yes
> Tcl/Tk support: yes
> TIFF support: yes
> X11 support: yes
>
>
> Index: gui/tcltk/gis.m/gm.tcl
> ===================================================================
> RCS file: /grassrepository/grass6/gui/tcltk/gis.m/gm.tcl,v
> retrieving revision 1.25
> diff -u -r1.25 gm.tcl
> --- gui/tcltk/gis.m/gm.tcl 24 Aug 2006 18:04:57 -0000 1.25
> +++ gui/tcltk/gis.m/gm.tcl 2 Sep 2006 06:00:41 -0000
> @@ -69,6 +69,12 @@
> set execom "spawn"
> }
>
> +if {[info exists env(MSYSCON)]} {
> + set mingw "1"
> +} {
> + set mingw "0"
> +}
> +
> #fetch GRASS Version number:
> set fp [open $env(GISBASE)/etc/VERSIONNUMBER r]
> set GRASSVERSION [read -nonewline $fp]
> @@ -188,7 +194,13 @@
> # Determine if an element already exists
>
> proc Gm::element_exists {elem name} {
> - set failure [catch {exec [list "|g.findfile" "element=$elem" "file=$name"]
> >& /dev/null}]
> + global mingw
> +
> + if { $mingw == "1" } {
> + set failure [catch {exec [list "|g.findfile" "element=$elem" "file=$name"]
> >& nul}]
> + } {
> + set failure [catch {exec [list "|g.findfile" "element=$elem" "file=$name"]
> >& /dev/null}]
> + }
>
> return [expr {! $failure}]
> }
> Index: gui/tcltk/gis.m/gmmenu.tcl
> ===================================================================
> RCS file: /grassrepository/grass6/gui/tcltk/gis.m/gmmenu.tcl,v
> retrieving revision 1.15
> diff -u -r1.15 gmmenu.tcl
> --- gui/tcltk/gis.m/gmmenu.tcl 20 Jul 2006 17:43:19 -0000 1.15
> +++ gui/tcltk/gis.m/gmmenu.tcl 2 Sep 2006 06:00:41 -0000
> @@ -19,6 +19,7 @@
> global mon
> global filename
> global env
> +global mingw
>
> # Put this at the top of the file menu.
> set GuiMenu::Menu_File_Top [subst {
> @@ -48,10 +49,20 @@
> lappend descmenu all
> lappend descmenu options
> lappend descmenu $tmenu
> -lappend descmenu [subst {
> - {command {[G_msg "GRASS help"]} {} "g.manual" {} -command { exec g.manual -i
> > /dev/null & } }
> - {command {[G_msg "GIS Manager &help"]} {} {[G_msg "GIS Manager help"]} {}
> -command { exec g.manual gis.m > /dev/null & } }
> - {command {[G_msg "About &GRASS"]} {} {[G_msg "About GRASS"]} {} -command {
> source $env(GISBASE)/etc/gm/grassabout.tcl} }
> - {command {[G_msg "About &System"]} {} {[G_msg "About System"]} {} -command {
> exec $env(GRASS_WISH) $env(GISBASE)/etc/gm/tksys.tcl --tcltk & }}
> - }]
>
> +# MinGW
> +if { $mingw == "1" } {
> + lappend descmenu [subst {
> + {command {[G_msg "GRASS help"]} {} "g.manual" {} -command { exec g.manual
> -i >& nul } }
> + {command {[G_msg "GIS Manager &help"]} {} {[G_msg "GIS Manager help"]} {}
> -command { exec g.manual gis.m >& nul } }
> + {command {[G_msg "About &GRASS"]} {} {[G_msg "About GRASS"]} {} -command {
> source $env(GISBASE)/etc/gm/grassabout.tcl} }
> + {command {[G_msg "About &System"]} {} {[G_msg "About System"]} {} -command
> { exec $env(GRASS_WISH) $env(GISBASE)/etc/gm/tksys.tcl --tcltk & }}
> + }]
> +} {
> + lappend descmenu [subst {
> + {command {[G_msg "GRASS help"]} {} "g.manual" {} -command { exec g.manual
> -i > /dev/null & } }
> + {command {[G_msg "GIS Manager &help"]} {} {[G_msg "GIS Manager help"]} {}
> -command { exec g.manual gis.m > /dev/null & } }
> + {command {[G_msg "About &GRASS"]} {} {[G_msg "About GRASS"]} {} -command {
> source $env(GISBASE)/etc/gm/grassabout.tcl} }
> + {command {[G_msg "About &System"]} {} {[G_msg "About System"]} {} -command
> { exec $env(GRASS_WISH) $env(GISBASE)/etc/gm/tksys.tcl --tcltk & }}
> + }]
> +}
> Index: gui/tcltk/gis.m/runandoutput.tcl
> ===================================================================
> RCS file: /grassrepository/grass6/gui/tcltk/gis.m/runandoutput.tcl,v
> retrieving revision 1.12
> diff -u -r1.12 runandoutput.tcl
> --- gui/tcltk/gis.m/runandoutput.tcl 27 Aug 2006 21:19:26 -0000 1.12
> +++ gui/tcltk/gis.m/runandoutput.tcl 2 Sep 2006 06:00:41 -0000
> @@ -169,11 +169,17 @@
>
>
>
##############################################################################>
#
> proc run {cmd args} {
> + global mingw
> +
> # This and runcmd are being used to run command in the background
> # These used to go to stdout and stderr
> # but we don't want to pollute that console.
> # eval exec -- $cmd $args >@ stdout 2>@ stderr
> - eval [list exec -- $cmd] $args >& /dev/null
> + if { $mingw == "1" } {
> + eval [list exec -- $cmd] $args >& nul
> + } {
> + eval [list exec -- $cmd] $args >& /dev/null
> + }
> }
>
>
>
##############################################################################>
#
> Index: lib/gtcltk/gronsole.tcl
> ===================================================================
> RCS file: /grassrepository/grass6/lib/gtcltk/gronsole.tcl,v
> retrieving revision 1.6
> diff -u -r1.6 gronsole.tcl
> --- lib/gtcltk/gronsole.tcl 27 Aug 2006 21:19:26 -0000 1.6
> +++ lib/gtcltk/gronsole.tcl 2 Sep 2006 06:00:43 -0000
> @@ -425,10 +425,16 @@
>
> proc Gronsole::execout {path cmd ci execcmd} {
> global env
> + global mingw
> +
> set mark cmdinsert$ci
>
> # Actually run the program
> - set cmd [concat | $cmd 2>@ stdout]
> + if { $mingw == "1" } {
> + set cmd [concat | $cmd]
> + } {
> + set cmd [concat | $cmd 2>@ stdout]
> + }
>
> set message_env [exec g.gisenv get=GRASS_MESSAGE_FORMAT]
> set env(GRASS_MESSAGE_FORMAT) gui
> Index: lib/gtcltk/options.tcl
> ===================================================================
> RCS file: /grassrepository/grass6/lib/gtcltk/options.tcl,v
> retrieving revision 1.7
> diff -u -r1.7 options.tcl
> --- lib/gtcltk/options.tcl 19 May 2006 21:19:16 -0000 1.7
> +++ lib/gtcltk/options.tcl 2 Sep 2006 06:00:43 -0000
> @@ -98,3 +98,9 @@
> if { $osxaqua == "1"} {
> set keycontrol "Command"
> }
> +
> +if {[info exists env(MSYSCON)]} {
> + set mingw "1"
> +} else {
> + set mingw "0"
> +}
>
>
More information about the grass-dev
mailing list