Re: [RFA/Ada] Implement Ada tasking support (take 2)

Jan Kratochvil
2008-10-23T08:10:07Z

[-- Attachment #1: Type: text/plain, Size: 633 bytes --]

On Thu, 23 Oct 2008 02:49:05 +0200, Joel Brobecker wrote:
> > ada-tasks.c:57: error: initializer element is not constant
> > ada-tasks.c:57: error: (near initialization for ?$B!Ftask_states[0]?$B!G)
> > ...
>
> Humpf. I didn't get any warning with my compiler. Sorry about that.

Interesting, the default in intl/config.intl is --enable-nls which should fail
this way.

> > (There should be N_() with runtime _(var) and not static _().)
>
> Do you mean like this?

Yes but we need to also later explicitely translate the strings as N_() is
a NOP just to get the messages extracted to the catalog. OK to commit it?

Regards,
Jan

[-- Attachment #2: gdb-ada-tasks.patch --]
[-- Type: text/plain, Size: 2950 bytes --]

2008-10-23 Jan Kratochvil <jan.kratochvil@redhat.com>
Joel Brobecker <brobecker@adacore.com>

* ada-tasks.c (task_states, long_task_states): Use constant N_()
initializer. Define the strings as const.
(short_task_info, info_task): Translate the strings above.

--- gdb/ada-tasks.c 22 Oct 2008 19:45:05 -0000 1.12
+++ gdb/ada-tasks.c 23 Oct 2008 08:02:15 -0000
@@ -53,42 +53,42 @@ enum task_states
};

/* A short description corresponding to each possible task state. */
-static char *task_states[] = {
- _("Unactivated"),
- _("Runnable"),
- _("Terminated"),
- _("Child Activation Wait"),
- _("Accept Statement"),
- _("Waiting on entry call"),
- _("Async Select Wait"),
- _("Delay Sleep"),
- _("Child Termination Wait"),
- _("Wait Child in Term Alt"),
+static const char *task_states[] = {
+ N_("Unactivated"),
+ N_("Runnable"),
+ N_("Terminated"),
+ N_("Child Activation Wait"),
+ N_("Accept Statement"),
+ N_("Waiting on entry call"),
+ N_("Async Select Wait"),
+ N_("Delay Sleep"),
+ N_("Child Termination Wait"),
+ N_("Wait Child in Term Alt"),
"",
"",
"",
"",
- _("Asynchronous Hold"),
+ N_("Asynchronous Hold"),
""
};

/* A longer description corresponding to each possible task state. */
-static char *long_task_states[] = {
- _("Unactivated"),
- _("Runnable"),
- _("Terminated"),
- _("Waiting for child activation"),
- _("Blocked in accept statement"),
- _("Waiting on entry call"),
- _("Asynchronous Selective Wait"),
- _("Delay Sleep"),
- _("Waiting for children termination"),
- _("Waiting for children in terminate alternative"),
+static const char *long_task_states[] = {
+ N_("Unactivated"),
+ N_("Runnable"),
+ N_("Terminated"),
+ N_("Waiting for child activation"),
+ N_("Blocked in accept statement"),
+ N_("Waiting on entry call"),
+ N_("Asynchronous Selective Wait"),
+ N_("Delay Sleep"),
+ N_("Waiting for children termination"),
+ N_("Waiting for children in terminate alternative"),
"",
"",
"",
"",
- _("Asynchronous Hold"),
+ N_("Asynchronous Hold"),
""
};

@@ -744,9 +744,9 @@ short_task_info (int taskno)
get_task_number_from_id (task_info->called_task));
else if (task_info->state == Runnable && active_task_p)
/* Replace "Runnable" by "Running" since this is the active task. */
- printf_filtered (" %-22s", "Running");
+ printf_filtered (" %-22s", _("Running"));
else
- printf_filtered (" %-22s", task_states[task_info->state]);
+ printf_filtered (" %-22s", _(task_states[task_info->state]));

/* Finally, print the task name. */
if (task_info->name[0] != '\0')
@@ -833,7 +833,7 @@ info_task (char *taskno_str, int from_tt
target_taskno);
}
else
- printf_filtered ("State: %s", long_task_states[task_info->state]);
+ printf_filtered (_("State: %s"), _(long_task_states[task_info->state]));

if (target_taskno)
{