aboutsummaryrefslogtreecommitdiff
path: root/gdb/guile/scm-utils.c
diff options
context:
space:
mode:
authorDoug Evans <xdje42@gmail.com>2014-06-06 15:57:03 -0700
committerDoug Evans <dje@google.com>2014-06-06 15:57:03 -0700
commitd2929fdcf05bb14dc2484ee6918dbf67c5b46d75 (patch)
tree031eb52397389646d26efdefa250bc0aa1157334 /gdb/guile/scm-utils.c
parent6da01dbef2535e333e2b26547d61e4684b8e4da7 (diff)
downloadgdb-d2929fdcf05bb14dc2484ee6918dbf67c5b46d75.zip
gdb-d2929fdcf05bb14dc2484ee6918dbf67c5b46d75.tar.gz
gdb-d2929fdcf05bb14dc2484ee6918dbf67c5b46d75.tar.bz2
Add support for guile 2.0.5.
* guile/guile-internal.h (gdbscm_guile_major_version): Declare. (gdbscm_guile_minor_version, gdbscm_guile_micro_version): Declare. (gdbscm_guile_version_is_at_least): Declare. (gdbscm_scm_string_to_int): Declare. * guile/guile.c (gdbscm_guile_major_version): New global. (gdbscm_guile_minor_version, gdbscm_guile_micro_version): New globals. (guile_datadir): New static global. (gdbscm_guile_data_directory): New function. (initialize_scheme_side): Update. (misc_guile_functions): Add guile-data-directory. (initialize_gdb_module): Fetch guile version number. * guile/lib/gdb.scm: Remove call to add-to-load-path. * guile/lib/gdb/init.scm (%initialize!): Ditto. * guile/lib/gdb/boot.scm: Use guile-data-directory. * guile/scm-exception.c (gdbscm_print_exception_with_stack): Fix comments. * guile/scm-string.c (gdbscm_scm_string_to_int): New function. * guile/scm-utils.c (gdbscm_guile_version_is_at_least): New function. * guile/scm-value.c (gdbscm_value_to_string): Only call scm_port_conversion_strategy if Guile version >= 2.0.6. doc/ * guile.texi (Guile Configuration): Document guile-data-directory.
Diffstat (limited to 'gdb/guile/scm-utils.c')
-rw-r--r--gdb/guile/scm-utils.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/gdb/guile/scm-utils.c b/gdb/guile/scm-utils.c
index 6d9542d..5a17bd9 100644
--- a/gdb/guile/scm-utils.c
+++ b/gdb/guile/scm-utils.c
@@ -624,3 +624,22 @@ gdbscm_gc_dup_argv (char **argv)
return (const char * const *) result;
}
+
+/* Return non-zero if the version of Guile being used it at least
+ MAJOR.MINOR.MICRO. */
+
+int
+gdbscm_guile_version_is_at_least (int major, int minor, int micro)
+{
+ if (major > gdbscm_guile_major_version)
+ return 0;
+ if (major < gdbscm_guile_major_version)
+ return 1;
+ if (minor > gdbscm_guile_minor_version)
+ return 0;
+ if (minor < gdbscm_guile_minor_version)
+ return 1;
+ if (micro > gdbscm_guile_micro_version)
+ return 0;
+ return 1;
+}