2005-06-30 Nick Roberts * varobj.h: Add Fortran to list of supported languages. * varobj.c (varobj_language_string, variable_language): Add Fortran. (languages) Add Fortran. Use c methods. (varobj_list_children): Adjust offset for Fortran. *** varobj.h.~1.4.~ 2001-08-18 06:56:49.000000000 +1200 --- varobj.h 2005-06-29 15:43:31.000000000 +1200 *************** *** 45,51 **** /* Languages supported by this variable objects system. */ enum varobj_languages { ! vlang_unknown = 0, vlang_c, vlang_cplus, vlang_java, vlang_end }; /* String representations of gdb's known languages (defined in varobj.c) */ --- 45,52 ---- /* Languages supported by this variable objects system. */ enum varobj_languages { ! vlang_unknown = 0, vlang_c, vlang_cplus, vlang_java, vlang_fortran, ! vlang_end }; /* String representations of gdb's known languages (defined in varobj.c) */ *** varobj.c.~1.54.~ 2005-06-29 00:28:57.000000000 +1200 --- varobj.c 2005-06-29 17:35:34.000000000 +1200 *************** *** 46,52 **** { "natural", "binary", "decimal", "hexadecimal", "octal" }; /* String representations of gdb's known languages */ ! char *varobj_language_string[] = { "unknown", "C", "C++", "Java" }; /* Data structures */ --- 46,52 ---- { "natural", "binary", "decimal", "hexadecimal", "octal" }; /* String representations of gdb's known languages */ ! char *varobj_language_string[] = { "unknown", "C", "C++", "Java", "Fortran" }; /* Data structures */ *************** *** 372,377 **** --- 372,389 ---- java_type_of_child, java_variable_editable, java_value_of_variable} + , + /* Fortran */ + { + vlang_fortran, + c_number_of_children, + c_name_of_variable, + c_name_of_child, + c_value_of_root, + c_value_of_child, + c_type_of_child, + c_variable_editable, + c_value_of_variable} }; /* A little convenience enum for dealing with C++/Java */ *************** *** 696,702 **** { struct varobj *child; char *name; ! int i; /* sanity check: have we been passed a pointer? */ if (childlist == NULL) --- 708,714 ---- { struct varobj *child; char *name; ! int i, j; /* sanity check: have we been passed a pointer? */ if (childlist == NULL) *************** *** 715,725 **** /* Mark as the end in case we bail out */ *((*childlist) + i) = NULL; /* check if child exists, if not create */ ! name = name_of_child (var, i); child = child_exists (var, name); if (child == NULL) ! child = create_child (var, i, name); *((*childlist) + i) = child; } --- 727,742 ---- /* Mark as the end in case we bail out */ *((*childlist) + i) = NULL; + if (variable_language (var) == vlang_fortran) + j = i + 1; + else + j = i; + /* check if child exists, if not create */ ! name = name_of_child (var, j); child = child_exists (var, name); if (child == NULL) ! child = create_child (var, j, name); *((*childlist) + i) = child; } *************** *** 1564,1570 **** case language_java: lang = vlang_java; break; ! } return lang; } --- 1581,1590 ---- case language_java: lang = vlang_java; break; ! case language_fortran: ! lang = vlang_fortran; ! break; ! } return lang; }