- uiout->field_string ("target-id", contents);
- do_cleanups (str_cleanup);
- }
+ if (uiout->is_mi_like_p ())
+ {
+ uiout->field_string ("target-id", target_id);
+ if (extra_info)
+ uiout->field_string ("details", extra_info);
+ if (name)
+ uiout->field_string ("name", name);
+ }
+ else
+ {
+ struct cleanup *str_cleanup;
+ char *contents;
+
+ if (extra_info && name)
+ contents = xstrprintf ("%s \"%s\" (%s)", target_id,
+ name, extra_info);
+ else if (extra_info)
+ contents = xstrprintf ("%s (%s)", target_id, extra_info);
+ else if (name)
+ contents = xstrprintf ("%s \"%s\"", target_id, name);
+ else
+ contents = xstrdup (target_id);
+ str_cleanup = make_cleanup (xfree, contents);
+
+ uiout->field_string ("target-id", contents);
+ do_cleanups (str_cleanup);
+ }