Gauche > Archives > 2012/04/02

2012/04/02 08:53:31 UTCshiro
#
今日いろんな店でクレジットカード処理がひっかかってたのはこれか http://online.wsj.com/article/SB10001424052702304750404577318083097652936.html
2012/04/02 12:30:26 UTCkenhys
#
Gauche-gtk2なんですが、ヘッダと整合性がとれてなくてコンパイルエラーになっていました。
#
diff --git a/src/gtk-lib.hints b/src/gtk-lib.hints
index 28677da..9900a6e 100644
--- a/src/gtk-lib.hints
+++ b/src/gtk-lib.hints
@@ -1536,7 +1536,7 @@ return SCM_MAKE_STR_COPYING((char*)string);"))
 
 (define-cproc-fix gtk-tree-model-get-column-type
   (fix-body!
-   "SCM_RETURN(SCM_OBJ(Scm_GtkTypeToScmClass(gtk_tree_model_get_column_type(tree_model, index))));"))
+   "SCM_RETURN(SCM_OBJ(Scm_GtkTypeToScmClass(gtk_tree_model_get_column_type(tree_model, index_))));"))
 
 (define-cproc-fix gtk-tree-model-get-iter 
   (fix-arguments! '(model::<gtk-tree-model> path::<gtk-tree-path>))
2012/04/02 12:34:45 UTCshiro
#
む、うちの環境ではエラー出てないな、なぜだろう
2012/04/02 12:40:34 UTCshiro
#
ああ、char *index() というライブラリ関数だと思ってるわけだ。そんでもってうちのgccは「型が違うよ」ってwarningは出すけどコンパイルは通してた。
2012/04/02 12:42:43 UTCkenhys
#
手元の環境だとなぜかuintがunknownに。
#
pkg-config --cflags gtk+-2.0`   -c -o gtkuimanager.o gtkuimanager.c
gtkuimanager.c: In function 'gtkuimanager_gtk_ui_manager_add_ui_from_file':
gtkuimanager.c:246:21: error: unknown type name 'uint'
make: *** [gtkuimanager.o] Error 1
2012/04/02 12:49:31 UTCshiro
#
u_intだと通ります?
#
ついでだからwarningが出てるところ潰しとくかな
2012/04/02 12:52:47 UTCkenhys
#
gtkuimanager.stubでuintとして生成されているのがまずいっぽいですね。
#
--- gtkuimanager.stub	2012-04-02 21:51:24 +0900
+++ gtkuimanager.stub.rev	2012-04-02 21:49:31 +0900
@@ -66,7 +66,7 @@
 ;; (define-cproc gtk-ui-manager-add-ui-from-string (self::<gtk-ui-manager> buffer::<const-gchar*> length::(UNKNOWN . gssize) error::(UNKNOWN . GError**)) (call <uint> gtk_ui_manager_add_ui_from_string))
 
 ;; gtk_ui_manager_add_ui_from_file
-(define-cproc gtk-ui-manager-add-ui-from-file (self::<gtk-ui-manager> filename::<const-gchar*>) "GError* err = NULL; uint r;\n  r = gtk_ui_manager_add_ui_from_file(self, filename, &err);\n  if (!r) {\n    Scm_Error(\"gtk-ui-manager-add-ui-from-file: %s\", err->message);\n  }\n  SCM_RETURN(SCM_TRUE);")
+(define-cproc gtk-ui-manager-add-ui-from-file (self::<gtk-ui-manager> filename::<const-gchar*>) "GError* err = NULL; u_int r;\n  r = gtk_ui_manager_add_ui_from_file(self, filename, &err);\n  if (!r) {\n    Scm_Error(\"gtk-ui-manager-add-ui-from-file: %s\", err->message);\n  }\n  SCM_RETURN(SCM_TRUE);")
 
 ;; gtk_ui_manager_add_ui
 (define-cproc gtk-ui-manager-add-ui (self::<gtk-ui-manager> merge_id::<uint> path::<const-gchar*> name::<const-gchar*> action::<const-gchar*> type::<int> top::<boolean>) (call <void> "gtk_ui_manager_add_ui"))
#
uintをu_intにしたら通りました。
2012/04/02 13:28:20 UTCshiro
#
pushしときました。
2012/04/02 14:04:22 UTCkenhys
#
これが抜けている気がします。
#
diff --git a/src/gtk-lib.hints b/src/gtk-lib.hints
index 1024b7f..86c326d 100644
--- a/src/gtk-lib.hints
+++ b/src/gtk-lib.hints
@@ -2232,7 +2232,7 @@ SCM_RETURN(SCM_UNDEFINED);"))
 
 (define-cproc-fix gtk-ui-manager-add-ui-from-file
   (fix-arguments! '(self::<gtk-ui-manager> filename::<const-gchar*>))
-  (fix-body! "GError* err = NULL; uint r;
+  (fix-body! "GError* err = NULL; u_int r;
   r = gtk_ui_manager_add_ui_from_file(self, filename, &err);
   if (!r) {
     Scm_Error(\"gtk-ui-manager-add-ui-from-file: %s\", err->message);
2012/04/02 14:06:49 UTCshiro
#
あれ、直したつもりだったのに。
#
pushed. さっきはstubファイルの方を直してたかもしれない。
2012/04/02 14:31:23 UTCkenhys
#
ありがとうございます。
2012/04/02 14:54:56 UTCkenhys
#
MinGWだとglgdでHUGEが未定義になりました。
#
diff --git a/glgd/glgdGraph.c b/glgd/glgdGraph.c
index 8af37f1..2a44107 100644
--- a/glgd/glgdGraph.c
+++ b/glgd/glgdGraph.c
@@ -19,7 +19,11 @@
 #define GLGDGRAPH_CAMORBIT              (0)
 #define GLGDGRAPH_NODENAME              (1)
 #define GLGDGRAPH_LINKNAME              (2)
+#ifdef __MINGW32__
+#define _MAXFLT                         (HUGE_VAL)
+#else
 #define _MAXFLT                         (HUGE)
+#endif
 #define _PANGO_DPI                      (72)
 #define _PANGO_SCALE                    (3)
 #define _TEXW                           (1024)
2012/04/02 14:59:25 UTCshiro
#
お、MinGWでGauche-gtk2はコンパイルしたことなかったです。
2012/04/02 15:05:59 UTCkenhys
#
あと、ヘッダのインクルードが必要っぽいです。
#
diff --git a/glgd/glgdCam.c b/glgd/glgdCam.c
index 1a0b057..bf2e6e1 100644
--- a/glgd/glgdCam.c
+++ b/glgd/glgdCam.c
@@ -10,6 +10,7 @@
 #include <gtk/gtk.h>
 #include <gdk/gdkkeysyms.h>
 #include <GL/gl.h>
+#include <GL/glu.h>
 #include "glgd.h"
 
 /*