summaryrefslogtreecommitdiff
path: root/src/output.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/output.cc')
-rw-r--r--src/output.cc13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/output.cc b/src/output.cc
index 20ca0bf..e898254 100644
--- a/src/output.cc
+++ b/src/output.cc
@@ -726,13 +726,14 @@ output_keyword_blank_entries (int count, const char *indent)
int columns;
if (option[TYPE])
{
- columns = 58 / (6 + strlen (option.get_initializer_suffix()));
+ columns = 58 / (4 + (option[SHAREDLIB] ? 8 : 2)
+ + strlen (option.get_initializer_suffix()));
if (columns == 0)
columns = 1;
}
else
{
- columns = 9;
+ columns = (option[SHAREDLIB] ? 4 : 9);
}
int column = 0;
for (int i = 0; i < count; i++)
@@ -749,9 +750,13 @@ output_keyword_blank_entries (int count, const char *indent)
printf (", ");
}
if (option[TYPE])
- printf ("{\"\"%s}", option.get_initializer_suffix());
+ printf ("{");
+ if (option[SHAREDLIB])
+ printf ("(char*)0");
else
printf ("\"\"");
+ if (option[TYPE])
+ printf ("%s}", option.get_initializer_suffix());
column++;
}
}
@@ -1362,6 +1367,8 @@ Output::output_lookup_function_body (const Output_Compare& comparison) const
printf (";\n\n"
"%*s if (",
indent, "");
+ if (option[SHAREDLIB])
+ printf ("s && ");
comparison.output_comparison (Output_Expr1 ("str"), Output_Expr1 ("s"));
printf (")\n"
"%*s return ",