summaryrefslogtreecommitdiff
path: root/dev-scheme/gauche-gtk/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /dev-scheme/gauche-gtk/files
reinit the tree, so we can have metadata
Diffstat (limited to 'dev-scheme/gauche-gtk/files')
-rw-r--r--dev-scheme/gauche-gtk/files/gauche-gtk-gtk-lib.hints.diff71
-rw-r--r--dev-scheme/gauche-gtk/files/gauche-gtk-h2s-cpp.diff11
-rw-r--r--dev-scheme/gauche-gtk/files/gauche-gtk-h2s-gdk-pixbuf.diff23
3 files changed, 105 insertions, 0 deletions
diff --git a/dev-scheme/gauche-gtk/files/gauche-gtk-gtk-lib.hints.diff b/dev-scheme/gauche-gtk/files/gauche-gtk-gtk-lib.hints.diff
new file mode 100644
index 000000000000..be54ee550ba7
--- /dev/null
+++ b/dev-scheme/gauche-gtk/files/gauche-gtk-gtk-lib.hints.diff
@@ -0,0 +1,71 @@
+--- a/src/gtk-lib.hints
++++ b/src/gtk-lib.hints
+@@ -527,8 +527,10 @@ SCM_RETURN(Scm_Values2(Scm_MakeInteger(n_properties), h));"
+ (add-mixin! "Scm_GtkEditableClass" "Scm_GtkCellEditableClass"))
+
+ ;; we can't free the return value of gtk_entry_get_text.
+-(define-cproc gtk-entry-get-text (entry::<gtk-entry>)
+- "SCM_RETURN(SCM_MAKE_STR_COPYING(gtk_entry_get_text(entry)));")
++(define-cproc-fix gtk-entry-get-text
++ (fix-arguments! '(entry::<gtk-entry>))
++ (fix-body!
++ "SCM_RETURN(SCM_MAKE_STR_COPYING(gtk_entry_get_text(entry)));"))
+
+ ;;==================================================================
+ ;; gtkfilesel.h
+@@ -539,8 +541,10 @@ SCM_RETURN(Scm_Values2(Scm_MakeInteger(n_properties), h));"
+ ;; gtk_file_selection_get_filename returns mbstr encoded by the current
+ ;; locale. We canonicalize it to utf8. The Scheme glue code converts
+ ;; it to Gauche's internal encoding.
+-(define-cproc gtk-file-selection-get-filename (sel::<gtk-file-selection>)
+- "const gchar *fn_mb = gtk_file_selection_get_filename(sel);
++(define-cproc-fix gtk-file-selection-get-filename
++ (fix-arguments! '(sel::<gtk-file-selection>))
++ (fix-body!
++ "const gchar *fn_mb = gtk_file_selection_get_filename(sel);
+ gchar *fn_utf8 = g_filename_to_utf8(fn_mb, -1, NULL, NULL, NULL);
+ if (fn_utf8 == NULL) {
+ Scm_Error(\"got a filename including multibyte chars which can't be converted to UTF8: %s\", fn_mb);
+@@ -549,7 +553,7 @@ SCM_RETURN(Scm_Values2(Scm_MakeInteger(n_properties), h));"
+ SCM_RETURN(SCM_MAKE_STR_COPYING(fn_utf8));
+ #else
+ SCM_RETURN(Scm_MakeString(fn_utf8, -1, -1, SCM_MAKSTR_COPYING|SCM_MAKSTR_INCOMPLETE));
+-#endif")
++#endif"))
+
+ (define-cproc gtk-file-selection-get-selections (sel::<gtk-file-selection>)
+ "gchar **fns_mb = gtk_file_selection_get_selections(sel);
+@@ -609,10 +613,14 @@ SCM_RETURN(Scm_Values2(Scm_MakeInteger(n_properties), h));"
+ (input-file "gtklabel.h")
+
+ ;; Memory is owned by the widget so we don't need to free them.
+-(define-cproc gtk-label-get-text (label::<gtk-label>)
+- "SCM_RETURN(SCM_MAKE_STR_COPYING(gtk_label_get_text(label)));")
+-(define-cproc gtk-label-get-label (label::<gtk-label>)
+- "SCM_RETURN(SCM_MAKE_STR_COPYING(gtk_label_get_label(label)));")
++(define-cproc-fix gtk-label-get-text
++ (fix-arguments! '(label::<gtk-label>))
++ (fix-body!
++ "SCM_RETURN(SCM_MAKE_STR_COPYING(gtk_label_get_text(label)));"))
++(define-cproc-fix gtk-label-get-label
++ (fix-arguments! '(label::<gtk-label>))
++ (fix-body!
++ "SCM_RETURN(SCM_MAKE_STR_COPYING(gtk_label_get_label(label)));"))
+
+ (define-cproc-fix gtk-label-get-seleciton-bounds
+ (fix-arguments! '(label::<gtk-label>))
+@@ -1121,9 +1129,11 @@ return SCM_MAKE_STR_COPYING((char*)string);"))
+
+ (input-file "gtkprogressbar.h")
+
+-(define-cproc gtk-progress-bar-get-text (pbar::<gtk-progress-bar>)
+- "gchar *g = gtk_progress_bar_get_text(pbar);
+- SCM_RETURN(SCM_MAKE_STR_COPYING_SAFELY(g));")
++(define-cproc-fix gtk-progress-bar-get-text
++ (fix-arguments! '(pbar::<gtk-progress-bar>))
++ (fix-body!
++ "gchar *g = gtk_progress_bar_get_text(pbar);
++ SCM_RETURN(SCM_MAKE_STR_COPYING_SAFELY(g));"))
+
+ ;;==================================================================
+ ;; gtkradiobutton
diff --git a/dev-scheme/gauche-gtk/files/gauche-gtk-h2s-cpp.diff b/dev-scheme/gauche-gtk/files/gauche-gtk-h2s-cpp.diff
new file mode 100644
index 000000000000..081c83df1fe5
--- /dev/null
+++ b/dev-scheme/gauche-gtk/files/gauche-gtk-h2s-cpp.diff
@@ -0,0 +1,11 @@
+--- a/lib/h2s/parse.scm
++++ b/lib/h2s/parse.scm
+@@ -329,6 +329,8 @@
+ (#/^\}\s*([\w_]+)/ (#f name) (make-enum name (reverse enums))) ; ----->
+ ;; empty line:
+ (#/^\s*$/ () (loop (read-line) enums))
++ ;; preprocessor directive:
++ (#/^\s*#\s*\w+/ () (loop (read-line) enums))
+ ;;
+ (test has-comment? (skip-comment line (cut loop <> enums) err-eof)) ; what if?: new_value, /* boring comment*/
+ (#/\s+([\w_]+),?/ (#f enum)
diff --git a/dev-scheme/gauche-gtk/files/gauche-gtk-h2s-gdk-pixbuf.diff b/dev-scheme/gauche-gtk/files/gauche-gtk-h2s-gdk-pixbuf.diff
new file mode 100644
index 000000000000..9e8bbcf6e72d
--- /dev/null
+++ b/dev-scheme/gauche-gtk/files/gauche-gtk-h2s-gdk-pixbuf.diff
@@ -0,0 +1,23 @@
+--- a/src/h2s-gtk.scm
++++ b/src/h2s-gtk.scm
+@@ -50,6 +50,11 @@
+ (define pango-directory
+ (find-header-dir #`"pango-,|pango-version|/pango/pango.h"
+ *header-search-paths*))
++(define gdk-pixbuf-directory
++ (guard (e [(<error> e)
++ gtk-directory])
++ (find-header-dir #`"gdk-pixbuf-,|gtk-version|/gdk-pixbuf/gdk-pixbuf.h"
++ *header-search-paths* )))
+
+
+ (define (parse-gdk)
+@@ -64,7 +69,7 @@
+ (call-with-input-file "PANGOFILES" port->string-list)))
+
+ (define (parse-gdk-pixbuf)
+- (parse-headers #`",|gtk-directory|/gdk-pixbuf"
++ (parse-headers #`",|gdk-pixbuf-directory|/gdk-pixbuf"
+ (call-with-input-file "GDKPIXBUFFILES" port->string-list)))
+
+ ;; defaults for the gauche-gtk package: