|
|
|
@ -49,6 +49,61 @@ static void whatis_command (char *, int); |
|
|
|
|
|
|
|
static void whatis_exp (char *, int); |
|
|
|
|
|
|
|
/* Print a description of a type in the format of a
|
|
|
|
typedef for the current language. |
|
|
|
NEW is the new name for a type TYPE. */ |
|
|
|
|
|
|
|
void |
|
|
|
typedef_print (struct type *type, struct symbol *new, struct ui_file *stream) |
|
|
|
{ |
|
|
|
CHECK_TYPEDEF (type); |
|
|
|
switch (current_language->la_language) |
|
|
|
{ |
|
|
|
#ifdef _LANG_c |
|
|
|
case language_c: |
|
|
|
case language_cplus: |
|
|
|
fprintf_filtered (stream, "typedef "); |
|
|
|
type_print (type, "", stream, 0); |
|
|
|
if (TYPE_NAME ((SYMBOL_TYPE (new))) == 0 |
|
|
|
|| !STREQ (TYPE_NAME ((SYMBOL_TYPE (new))), SYMBOL_NAME (new))) |
|
|
|
fprintf_filtered (stream, " %s", SYMBOL_SOURCE_NAME (new)); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
#ifdef _LANG_m2 |
|
|
|
case language_m2: |
|
|
|
fprintf_filtered (stream, "TYPE "); |
|
|
|
if (!TYPE_NAME (SYMBOL_TYPE (new)) || |
|
|
|
!STREQ (TYPE_NAME (SYMBOL_TYPE (new)), SYMBOL_NAME (new))) |
|
|
|
fprintf_filtered (stream, "%s = ", SYMBOL_SOURCE_NAME (new)); |
|
|
|
else |
|
|
|
fprintf_filtered (stream, "<builtin> = "); |
|
|
|
type_print (type, "", stream, 0); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
#ifdef _LANG_pascal |
|
|
|
case language_pascal: |
|
|
|
fprintf_filtered (stream, "type "); |
|
|
|
fprintf_filtered (stream, "%s = ", SYMBOL_SOURCE_NAME (new)); |
|
|
|
type_print (type, "", stream, 0); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
#ifdef _LANG_chill |
|
|
|
case language_chill: |
|
|
|
fprintf_filtered (stream, "SYNMODE "); |
|
|
|
if (!TYPE_NAME (SYMBOL_TYPE (new)) || |
|
|
|
!STREQ (TYPE_NAME (SYMBOL_TYPE (new)), SYMBOL_NAME (new))) |
|
|
|
fprintf_filtered (stream, "%s = ", SYMBOL_SOURCE_NAME (new)); |
|
|
|
else |
|
|
|
fprintf_filtered (stream, "<builtin> = "); |
|
|
|
type_print (type, "", stream, 0); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
default: |
|
|
|
error ("Language not supported."); |
|
|
|
} |
|
|
|
fprintf_filtered (stream, ";\n"); |
|
|
|
} |
|
|
|
|
|
|
|
/* Print a description of a type TYPE in the form of a declaration of a
|
|
|
|
variable named VARSTRING. (VARSTRING is demangled if necessary.) |
|
|
|
Output goes to STREAM (via stdio). |
|
|
|
|