2005-01-29 Baurzhan Ismagulov <ibr@radix50.net>

* ax-gdb.c, ax-general.c, bcache.c, bfd-target.c, bsd-kvm.c,
	* buildsym.c, c-lang.c, c-typeprint.c, c-valprint.c, charset.c,
	* coff-pe-read.c, coffread.c, complaints.c, copying.c: I18n markup.
This commit is contained in:
Baurzhan Ismagulov 2005-01-29 17:53:26 +00:00
parent a80493b821
commit 3d263c1d0a
15 changed files with 470 additions and 457 deletions

View File

@ -2,6 +2,10 @@
* MAINTAINERS: Add myself to "Write After Approval".
* ax-gdb.c, ax-general.c, bcache.c, bfd-target.c, bsd-kvm.c,
* buildsym.c, c-lang.c, c-typeprint.c, c-valprint.c, charset.c,
* coff-pe-read.c, coffread.c, complaints.c, copying.c: I18n markup.
2005-01-29 Mark Kettenis <kettenis@gnu.org>
* configure.ac: Remove extra check for ranlib.

View File

@ -414,7 +414,7 @@ gen_fetch (struct agent_expr *ax, struct type *type)
In any case, it's a bug the user shouldn't see. */
default:
internal_error (__FILE__, __LINE__,
"gen_fetch: strange size");
_("gen_fetch: strange size"));
}
gen_sign_extend (ax, type);
@ -426,7 +426,7 @@ gen_fetch (struct agent_expr *ax, struct type *type)
something we should be (this code's fault). In any case,
it's a bug the user shouldn't see. */
internal_error (__FILE__, __LINE__,
"gen_fetch: bad type code");
_("gen_fetch: bad type code"));
}
}
@ -539,7 +539,7 @@ gen_var_ref (struct agent_expr *ax, struct axs_value *value, struct symbol *var)
case LOC_CONST_BYTES:
internal_error (__FILE__, __LINE__,
"gen_var_ref: LOC_CONST_BYTES symbols are not supported");
_("gen_var_ref: LOC_CONST_BYTES symbols are not supported"));
/* Variable at a fixed location in memory. Easy. */
case LOC_STATIC:
@ -578,7 +578,7 @@ gen_var_ref (struct agent_expr *ax, struct axs_value *value, struct symbol *var)
break;
case LOC_TYPEDEF:
error ("Cannot compute value of typedef `%s'.",
error (_("Cannot compute value of typedef `%s'."),
SYMBOL_PRINT_NAME (var));
break;
@ -610,7 +610,7 @@ gen_var_ref (struct agent_expr *ax, struct axs_value *value, struct symbol *var)
struct minimal_symbol *msym
= lookup_minimal_symbol (DEPRECATED_SYMBOL_NAME (var), NULL, NULL);
if (!msym)
error ("Couldn't resolve symbol `%s'.", SYMBOL_PRINT_NAME (var));
error (_("Couldn't resolve symbol `%s'."), SYMBOL_PRINT_NAME (var));
/* Push the address of the variable. */
ax_const_l (ax, SYMBOL_VALUE_ADDRESS (msym));
@ -629,12 +629,12 @@ gen_var_ref (struct agent_expr *ax, struct axs_value *value, struct symbol *var)
break;
case LOC_OPTIMIZED_OUT:
error ("The variable `%s' has been optimized out.",
error (_("The variable `%s' has been optimized out."),
SYMBOL_PRINT_NAME (var));
break;
default:
error ("Cannot find value of botched symbol `%s'.",
error (_("Cannot find value of botched symbol `%s'."),
SYMBOL_PRINT_NAME (var));
break;
}
@ -899,7 +899,7 @@ gen_cast (struct agent_expr *ax, struct axs_value *value, struct type *type)
case TYPE_CODE_STRUCT:
case TYPE_CODE_UNION:
case TYPE_CODE_FUNC:
error ("Illegal type cast: intended type must be scalar.");
error (_("Invalid type cast: intended type must be scalar."));
case TYPE_CODE_ENUM:
/* We don't have to worry about the size of the value, because
@ -922,7 +922,7 @@ gen_cast (struct agent_expr *ax, struct axs_value *value, struct type *type)
break;
default:
error ("Casts to requested type are not yet implemented.");
error (_("Casts to requested type are not yet implemented."));
}
value->type = type;
@ -989,7 +989,7 @@ gen_add (struct agent_expr *ax, struct axs_value *value,
}
else
error ("Illegal combination of types in %s.", name);
error (_("Invalid combination of types in %s."), name);
value->kind = axs_rvalue;
}
@ -1026,9 +1026,9 @@ gen_sub (struct agent_expr *ax, struct axs_value *value,
value->type = builtin_type_long; /* FIXME --- should be ptrdiff_t */
}
else
error ("\
error (_("\
First argument of `-' is a pointer, but second argument is neither\n\
an integer nor a pointer of the same type.");
an integer nor a pointer of the same type."));
}
/* Must be number + number. */
@ -1041,7 +1041,7 @@ an integer nor a pointer of the same type.");
}
else
error ("Illegal combination of types in subtraction.");
error (_("Invalid combination of types in subtraction."));
value->kind = axs_rvalue;
}
@ -1060,7 +1060,7 @@ gen_binop (struct agent_expr *ax, struct axs_value *value,
/* We only handle INT op INT. */
if ((TYPE_CODE (value1->type) != TYPE_CODE_INT)
|| (TYPE_CODE (value2->type) != TYPE_CODE_INT))
error ("Illegal combination of types in %s.", name);
error (_("Invalid combination of types in %s."), name);
ax_simple (ax,
TYPE_UNSIGNED (value1->type) ? op_unsigned : op);
@ -1076,7 +1076,7 @@ gen_logical_not (struct agent_expr *ax, struct axs_value *value)
{
if (TYPE_CODE (value->type) != TYPE_CODE_INT
&& TYPE_CODE (value->type) != TYPE_CODE_PTR)
error ("Illegal type of operand to `!'.");
error (_("Invalid type of operand to `!'."));
gen_usual_unary (ax, value);
ax_simple (ax, aop_log_not);
@ -1088,7 +1088,7 @@ static void
gen_complement (struct agent_expr *ax, struct axs_value *value)
{
if (TYPE_CODE (value->type) != TYPE_CODE_INT)
error ("Illegal type of operand to `~'.");
error (_("Invalid type of operand to `~'."));
gen_usual_unary (ax, value);
gen_integral_promotions (ax, value);
@ -1108,7 +1108,7 @@ gen_deref (struct agent_expr *ax, struct axs_value *value)
this, and we don't know what error message to generate. */
if (TYPE_CODE (value->type) != TYPE_CODE_PTR)
internal_error (__FILE__, __LINE__,
"gen_deref: expected a pointer");
_("gen_deref: expected a pointer"));
/* We've got an rvalue now, which is a pointer. We want to yield an
lvalue, whose address is exactly that pointer. So we don't
@ -1136,10 +1136,10 @@ gen_address_of (struct agent_expr *ax, struct axs_value *value)
switch (value->kind)
{
case axs_rvalue:
error ("Operand of `&' is an rvalue, which has no address.");
error (_("Operand of `&' is an rvalue, which has no address."));
case axs_lvalue_register:
error ("Operand of `&' is in a register, and has no address.");
error (_("Operand of `&' is in a register, and has no address."));
case axs_lvalue_memory:
value->kind = axs_rvalue;
@ -1164,7 +1164,7 @@ find_field (struct type *type, char *name)
/* Make sure this isn't C++. */
if (TYPE_N_BASECLASSES (type) != 0)
internal_error (__FILE__, __LINE__,
"find_field: derived classes supported");
_("find_field: derived classes supported"));
for (i = 0; i < TYPE_NFIELDS (type); i++)
{
@ -1175,10 +1175,10 @@ find_field (struct type *type, char *name)
if (this_name[0] == '\0')
internal_error (__FILE__, __LINE__,
"find_field: anonymous unions not supported");
_("find_field: anonymous unions not supported"));
}
error ("Couldn't find member named `%s' in struct/union `%s'",
error (_("Couldn't find member named `%s' in struct/union `%s'"),
name, TYPE_TAG_NAME (type));
return 0;
@ -1248,7 +1248,7 @@ gen_bitfield_ref (struct agent_expr *ax, struct axs_value *value,
/* Can we fetch the number of bits requested at all? */
if ((end - start) > ((1 << num_ops) * 8))
internal_error (__FILE__, __LINE__,
"gen_bitfield_ref: bitfield too wide");
_("gen_bitfield_ref: bitfield too wide"));
/* Note that we know here that we only need to try each opcode once.
That may not be true on machines with weird byte sizes. */
@ -1370,13 +1370,13 @@ gen_struct_ref (struct agent_expr *ax, struct axs_value *value, char *field,
/* This must yield a structure or a union. */
if (TYPE_CODE (type) != TYPE_CODE_STRUCT
&& TYPE_CODE (type) != TYPE_CODE_UNION)
error ("The left operand of `%s' is not a %s.",
error (_("The left operand of `%s' is not a %s."),
operator_name, operand_name);
/* And it must be in memory; we don't deal with structure rvalues,
or structures living in registers. */
if (value->kind != axs_lvalue_memory)
error ("Structure does not live in memory.");
error (_("Structure does not live in memory."));
i = find_field (type, field);
@ -1415,7 +1415,7 @@ gen_repeat (union exp_element **pc, struct agent_expr *ax,
here. */
gen_expr (pc, ax, &value1);
if (value1.kind != axs_lvalue_memory)
error ("Left operand of `@' must be an object in memory.");
error (_("Left operand of `@' must be an object in memory."));
/* Evaluate the length; it had better be a constant. */
{
@ -1423,12 +1423,12 @@ gen_repeat (union exp_element **pc, struct agent_expr *ax,
int length;
if (!v)
error ("Right operand of `@' must be a constant, in agent expressions.");
error (_("Right operand of `@' must be a constant, in agent expressions."));
if (TYPE_CODE (v->type) != TYPE_CODE_INT)
error ("Right operand of `@' must be an integer.");
error (_("Right operand of `@' must be an integer."));
length = value_as_long (v);
if (length <= 0)
error ("Right operand of `@' must be positive.");
error (_("Right operand of `@' must be positive."));
/* The top of the stack is already the address of the object, so
all we need to do is frob the type of the lvalue. */
@ -1472,6 +1472,7 @@ gen_sizeof (union exp_element **pc, struct agent_expr *ax,
/* Generating bytecode from GDB expressions: general recursive thingy */
/* XXX: i18n */
/* A gen_expr function written by a Gen-X'er guy.
Append code for the subexpression of EXPR starting at *POS_P to AX. */
static void
@ -1537,7 +1538,7 @@ gen_expr (union exp_element **pc, struct agent_expr *ax,
case BINOP_SUBSCRIPT:
gen_add (ax, value, &value1, &value2, "array subscripting");
if (TYPE_CODE (value->type) != TYPE_CODE_PTR)
error ("Illegal combination of types in array subscripting.");
error (_("Invalid combination of types in array subscripting."));
gen_deref (ax, value);
break;
case BINOP_BITWISE_AND:
@ -1559,7 +1560,7 @@ gen_expr (union exp_element **pc, struct agent_expr *ax,
/* We should only list operators in the outer case statement
that we actually handle in the inner case statement. */
internal_error (__FILE__, __LINE__,
"gen_expr: op case sets don't match");
_("gen_expr: op case sets don't match"));
}
break;
@ -1605,7 +1606,7 @@ gen_expr (union exp_element **pc, struct agent_expr *ax,
break;
case OP_INTERNALVAR:
error ("GDB agent expressions cannot use convenience variables.");
error (_("GDB agent expressions cannot use convenience variables."));
/* Weirdo operator: see comments for gen_repeat for details. */
case BINOP_REPEAT:
@ -1635,7 +1636,7 @@ gen_expr (union exp_element **pc, struct agent_expr *ax,
if (value->kind != axs_rvalue)
/* This would be weird. */
internal_error (__FILE__, __LINE__,
"gen_expr: OP_MEMVAL operand isn't an rvalue???");
_("gen_expr: OP_MEMVAL operand isn't an rvalue???"));
value->type = type;
value->kind = axs_lvalue_memory;
}
@ -1669,7 +1670,7 @@ gen_expr (union exp_element **pc, struct agent_expr *ax,
gen_expr (pc, ax, value);
gen_usual_unary (ax, value);
if (TYPE_CODE (value->type) != TYPE_CODE_PTR)
error ("Argument of unary `*' is not a pointer.");
error (_("Argument of unary `*' is not a pointer."));
gen_deref (ax, value);
break;
@ -1704,15 +1705,15 @@ gen_expr (union exp_element **pc, struct agent_expr *ax,
/* If this `if' chain doesn't handle it, then the case list
shouldn't mention it, and we shouldn't be here. */
internal_error (__FILE__, __LINE__,
"gen_expr: unhandled struct case");
_("gen_expr: unhandled struct case"));
}
break;
case OP_TYPE:
error ("Attempt to use a type name as an expression.");
error (_("Attempt to use a type name as an expression."));
default:
error ("Unsupported operator in expression.");
error (_("Unsupported operator in expression."));
}
}
@ -1760,7 +1761,7 @@ expr_to_address_and_size (struct expression *expr)
if (value.kind != axs_lvalue_memory)
{
free_agent_expr (ax);
error ("Expression does not denote an object in memory.");
error (_("Expression does not denote an object in memory."));
}
/* Push the object's size on the stack. */
@ -1815,10 +1816,10 @@ agent_command (char *exp, int from_tty)
another command, change the error message; the user shouldn't
have to know anything about agent expressions. */
if (overlay_debugging)
error ("GDB can't do agent expression translation with overlays.");
error (_("GDB can't do agent expression translation with overlays."));
if (exp == 0)
error_no_arg ("expression to translate");
error_no_arg (_("expression to translate"));
expr = parse_expression (exp);
old_chain = make_cleanup (free_current_contents, &expr);
@ -1841,6 +1842,6 @@ void
_initialize_ax_gdb (void)
{
add_cmd ("agent", class_maintenance, agent_command,
"Translate an expression into remote agent bytecode.",
_("Translate an expression into remote agent bytecode."),
&maintenancelist);
}

View File

@ -116,7 +116,7 @@ read_const (struct agent_expr *x, int o, int n)
/* Make sure we're not reading off the end of the expression. */
if (o + n > x->len)
error ("GDB bug: ax-general.c (read_const): incomplete constant");
error (_("GDB bug: ax-general.c (read_const): incomplete constant"));
for (i = 0; i < n; i++)
accum = (accum << 8) | x->buf[o + i];
@ -141,10 +141,10 @@ generic_ext (struct agent_expr *x, enum agent_op op, int n)
{
/* N must fit in a byte. */
if (n < 0 || n > 255)
error ("GDB bug: ax-general.c (generic_ext): bit count out of range");
error (_("GDB bug: ax-general.c (generic_ext): bit count out of range"));
/* That had better be enough range. */
if (sizeof (LONGEST) * 8 > 255)
error ("GDB bug: ax-general.c (generic_ext): opcode has inadequate range");
error (_("GDB bug: ax-general.c (generic_ext): opcode has inadequate range"));
grow_expr (x, 2);
x->buf[x->len++] = op;
@ -174,7 +174,7 @@ ax_trace_quick (struct agent_expr *x, int n)
{
/* N must fit in a byte. */
if (n < 0 || n > 255)
error ("GDB bug: ax-general.c (ax_trace_quick): size out of range for trace_quick");
error (_("GDB bug: ax-general.c (ax_trace_quick): size out of range for trace_quick"));
grow_expr (x, 2);
x->buf[x->len++] = aop_trace_quick;
@ -209,7 +209,7 @@ ax_label (struct agent_expr *x, int patch, int target)
/* Make sure the value is in range. Don't accept 0xffff as an
offset; that's our magic sentinel value for unpatched branches. */
if (target < 0 || target >= 0xffff)
error ("GDB bug: ax-general.c (ax_label): label target out of range");
error (_("GDB bug: ax-general.c (ax_label): label target out of range"));
x->buf[patch] = (target >> 8) & 0xff;
x->buf[patch + 1] = target & 0xff;
@ -251,7 +251,7 @@ void
ax_const_d (struct agent_expr *x, LONGEST d)
{
/* FIXME: floating-point support not present yet. */
error ("GDB bug: ax-general.c (ax_const_d): floating point not supported yet");
error (_("GDB bug: ax-general.c (ax_const_d): floating point not supported yet"));
}
@ -262,7 +262,7 @@ ax_reg (struct agent_expr *x, int reg)
{
/* Make sure the register number is in range. */
if (reg < 0 || reg > 0xffff)
error ("GDB bug: ax-general.c (ax_reg): register number out of range");
error (_("GDB bug: ax-general.c (ax_reg): register number out of range"));
grow_expr (x, 3);
x->buf[x->len] = aop_reg;
x->buf[x->len + 1] = (reg >> 8) & 0xff;
@ -340,7 +340,7 @@ ax_print (struct ui_file *f, struct agent_expr *x)
the enum, to catch additions that people didn't sync. */
if ((sizeof (aop_map) / sizeof (aop_map[0]))
!= aop_last)
error ("GDB bug: ax-general.c (ax_print): opcode map out of sync");
error (_("GDB bug: ax-general.c (ax_print): opcode map out of sync"));
for (i = 0; i < x->len;)
{
@ -349,13 +349,13 @@ ax_print (struct ui_file *f, struct agent_expr *x)
if (op >= (sizeof (aop_map) / sizeof (aop_map[0]))
|| !aop_map[op].name)
{
fprintf_filtered (f, "%3d <bad opcode %02x>\n", i, op);
fprintf_filtered (f, _("%3d <bad opcode %02x>\n"), i, op);
i++;
continue;
}
if (i + 1 + aop_map[op].op_size > x->len)
{
fprintf_filtered (f, "%3d <incomplete opcode %s>\n",
fprintf_filtered (f, _("%3d <incomplete opcode %s>\n"),
i, aop_map[op].name);
break;
}

View File

@ -301,7 +301,8 @@ static void
print_percentage (int portion, int total)
{
if (total == 0)
printf_filtered ("(not applicable)\n");
/* i18n: Like "Percentage of duplicates, by count: (not applicable)" */
printf_filtered (_("(not applicable)\n"));
else
printf_filtered ("%3d%%\n", (int) (portion * 100.0 / total));
}
@ -382,53 +383,55 @@ print_bcache_statistics (struct bcache *c, char *type)
xfree (entry_size);
}
printf_filtered (" Cached '%s' statistics:\n", type);
printf_filtered (" Total object count: %ld\n", c->total_count);
printf_filtered (" Unique object count: %lu\n", c->unique_count);
printf_filtered (" Percentage of duplicates, by count: ");
printf_filtered (_(" Cached '%s' statistics:\n"), type);
printf_filtered (_(" Total object count: %ld\n"), c->total_count);
printf_filtered (_(" Unique object count: %lu\n"), c->unique_count);
printf_filtered (_(" Percentage of duplicates, by count: "));
print_percentage (c->total_count - c->unique_count, c->total_count);
printf_filtered ("\n");
printf_filtered (" Total object size: %ld\n", c->total_size);
printf_filtered (" Unique object size: %ld\n", c->unique_size);
printf_filtered (" Percentage of duplicates, by size: ");
printf_filtered (_(" Total object size: %ld\n"), c->total_size);
printf_filtered (_(" Unique object size: %ld\n"), c->unique_size);
printf_filtered (_(" Percentage of duplicates, by size: "));
print_percentage (c->total_size - c->unique_size, c->total_size);
printf_filtered ("\n");
printf_filtered (" Max entry size: %d\n", max_entry_size);
printf_filtered (" Average entry size: ");
printf_filtered (_(" Max entry size: %d\n"), max_entry_size);
printf_filtered (_(" Average entry size: "));
if (c->unique_count > 0)
printf_filtered ("%ld\n", c->unique_size / c->unique_count);
else
printf_filtered ("(not applicable)\n");
printf_filtered (" Median entry size: %d\n", median_entry_size);
/* i18n: "Average entry size: (not applicable)" */
printf_filtered (_("(not applicable)\n"));
printf_filtered (_(" Median entry size: %d\n"), median_entry_size);
printf_filtered ("\n");
printf_filtered (" Total memory used by bcache, including overhead: %ld\n",
printf_filtered (_(" Total memory used by bcache, including overhead: %ld\n"),
c->structure_size);
printf_filtered (" Percentage memory overhead: ");
printf_filtered (_(" Percentage memory overhead: "));
print_percentage (c->structure_size - c->unique_size, c->unique_size);
printf_filtered (" Net memory savings: ");
printf_filtered (_(" Net memory savings: "));
print_percentage (c->total_size - c->structure_size, c->total_size);
printf_filtered ("\n");
printf_filtered (" Hash table size: %3d\n", c->num_buckets);
printf_filtered (" Hash table expands: %lu\n",
printf_filtered (_(" Hash table size: %3d\n"), c->num_buckets);
printf_filtered (_(" Hash table expands: %lu\n"),
c->expand_count);
printf_filtered (" Hash table hashes: %lu\n",
printf_filtered (_(" Hash table hashes: %lu\n"),
c->total_count + c->expand_hash_count);
printf_filtered (" Half hash misses: %lu\n",
printf_filtered (_(" Half hash misses: %lu\n"),
c->half_hash_miss_count);
printf_filtered (" Hash table population: ");
printf_filtered (_(" Hash table population: "));
print_percentage (occupied_buckets, c->num_buckets);
printf_filtered (" Median hash chain length: %3d\n",
printf_filtered (_(" Median hash chain length: %3d\n"),
median_chain_length);
printf_filtered (" Average hash chain length: ");
printf_filtered (_(" Average hash chain length: "));
if (c->num_buckets > 0)
printf_filtered ("%3lu\n", c->unique_count / c->num_buckets);
else
printf_filtered ("(not applicable)\n");
printf_filtered (" Maximum hash chain length: %3d\n", max_chain_length);
/* i18n: "Average hash chain length: (not applicable)" */
printf_filtered (_("(not applicable)\n"));
printf_filtered (_(" Maximum hash chain length: %3d\n"), max_chain_length);
printf_filtered ("\n");
}

View File

@ -121,8 +121,8 @@ target_bfd_reopen (struct bfd *bfd)
{
struct target_ops *t = XZALLOC (struct target_ops);
t->to_shortname = "bfd";
t->to_longname = "BFD backed target";
t->to_doc = "You should never see this";
t->to_longname = _("BFD backed target");
t->to_doc = _("You should never see this");
t->to_xfer_partial = target_bfd_xfer_partial;
t->to_xclose = target_bfd_xclose;
t->to_data = bfd;

View File

@ -205,7 +205,8 @@ bsd_kvm_fetch_registers (int regnum)
}
#endif
error ("Cannot find a valid PCB");
/* i18n: PCB == "Process Control Block" */
error (_("Cannot find a valid PCB"));
}
@ -226,10 +227,10 @@ bsd_kvm_proc_cmd (char *arg, int fromtty)
CORE_ADDR addr;
if (arg == NULL)
error_no_arg ("proc address");
error_no_arg (_("proc address"));
if (core_kd == NULL)
error ("No kernel memory image.");
error (_("No kernel memory image."));
addr = parse_and_eval_address (arg);
#ifdef HAVE_STRUCT_LWP
@ -254,10 +255,11 @@ static void
bsd_kvm_pcb_cmd (char *arg, int fromtty)
{
if (arg == NULL)
error_no_arg ("pcb address");
/* i18n: PCB == "Process Control Block" */
error_no_arg (_("pcb address"));
if (core_kd == NULL)
error ("No kernel memory image.");
error (_("No kernel memory image."));
bsd_kvm_paddr = (struct pcb *)(u_long) parse_and_eval_address (arg);
@ -279,9 +281,9 @@ bsd_kvm_add_target (int (*supply_pcb)(struct regcache *, struct pcb *))
bsd_kvm_supply_pcb = supply_pcb;
bsd_kvm_ops.to_shortname = "kvm";
bsd_kvm_ops.to_longname = "Kernel memory interface";
bsd_kvm_ops.to_doc = "Use a kernel virtual memory image as a target.\n\
Optionally specify the filename of a core dump.";
bsd_kvm_ops.to_longname = _("Kernel memory interface");
bsd_kvm_ops.to_doc = _("Use a kernel virtual memory image as a target.\n\
Optionally specify the filename of a core dump.");
bsd_kvm_ops.to_open = bsd_kvm_open;
bsd_kvm_ops.to_close = bsd_kvm_close;
bsd_kvm_ops.to_fetch_registers = bsd_kvm_fetch_registers;
@ -294,14 +296,15 @@ Optionally specify the filename of a core dump.";
add_target (&bsd_kvm_ops);
add_prefix_cmd ("kvm", class_obscure, bsd_kvm_cmd, "\
Generic command for manipulating the kernel memory interface.",
add_prefix_cmd ("kvm", class_obscure, bsd_kvm_cmd, _("\
Generic command for manipulating the kernel memory interface."),
&bsd_kvm_cmdlist, "kvm ", 0, &cmdlist);
#ifndef HAVE_STRUCT_THREAD_TD_PCB
add_cmd ("proc", class_obscure, bsd_kvm_proc_cmd,
"Set current context from proc address", &bsd_kvm_cmdlist);
_("Set current context from proc address"), &bsd_kvm_cmdlist);
#endif
add_cmd ("pcb", class_obscure, bsd_kvm_pcb_cmd,
"Set current context from pcb address", &bsd_kvm_cmdlist);
/* i18n: PCB == "Process Control Block" */
_("Set current context from pcb address"), &bsd_kvm_cmdlist);
}

View File

@ -373,13 +373,13 @@ finish_block (struct symbol *symbol, struct pending **listhead,
if (symbol)
{
complaint (&symfile_complaints,
"block end address less than block start address in %s (patched it)",
_("block end address less than block start address in %s (patched it)"),
SYMBOL_PRINT_NAME (symbol));
}
else
{
complaint (&symfile_complaints,
"block end address 0x%s less than block start address 0x%s (patched it)",
_("block end address 0x%s less than block start address 0x%s (patched it)"),
paddr_nz (BLOCK_END (block)), paddr_nz (BLOCK_START (block)));
}
/* Better than nothing */
@ -407,13 +407,13 @@ finish_block (struct symbol *symbol, struct pending **listhead,
if (symbol)
{
complaint (&symfile_complaints,
"inner block not inside outer block in %s",
_("inner block not inside outer block in %s"),
SYMBOL_PRINT_NAME (symbol));
}
else
{
complaint (&symfile_complaints,
"inner block (0x%s-0x%s) not inside outer block (0x%s-0x%s)",
_("inner block (0x%s-0x%s) not inside outer block (0x%s-0x%s)"),
paddr_nz (BLOCK_START (pblock->block)),
paddr_nz (BLOCK_END (pblock->block)),
paddr_nz (BLOCK_START (block)),
@ -519,7 +519,7 @@ make_blockvector (struct objfile *objfile)
CORE_ADDR start
= BLOCK_START (BLOCKVECTOR_BLOCK (blockvector, i));
complaint (&symfile_complaints, "block at %s out of order",
complaint (&symfile_complaints, _("block at %s out of order"),
hex_string ((LONGEST) start));
}
}
@ -674,7 +674,7 @@ push_subfile (void)
subfile_stack = tem;
if (current_subfile == NULL || current_subfile->name == NULL)
{
internal_error (__FILE__, __LINE__, "failed internal consistency check");
internal_error (__FILE__, __LINE__, _("failed internal consistency check"));
}
tem->name = current_subfile->name;
}
@ -687,7 +687,7 @@ pop_subfile (void)
if (link == NULL)
{
internal_error (__FILE__, __LINE__, "failed internal consistency check");
internal_error (__FILE__, __LINE__, _("failed internal consistency check"));
}
name = link->name;
subfile_stack = link->next;
@ -838,7 +838,7 @@ end_symtab (CORE_ADDR end_addr, struct objfile *objfile, int section)
believed to happen in most cases (even for coffread.c);
it used to be an abort(). */
complaint (&symfile_complaints,
"Context stack not empty in end_symtab");
_("Context stack not empty in end_symtab"));
context_stack_depth = 0;
}
}

View File

@ -149,7 +149,7 @@ c_printstr (struct ui_file *stream, const bfd_byte *string,
in_quotes = 0;
}
LA_PRINT_CHAR (current_char, stream);
fprintf_filtered (stream, " <repeats %u times>", reps);
fprintf_filtered (stream, _(" <repeats %u times>"), reps);
i = rep1 - 1;
things_printed += repeat_count_threshold;
need_comma = 1;
@ -220,7 +220,7 @@ c_create_fundamental_type (struct objfile *objfile, int typeid)
type = init_type (TYPE_CODE_INT,
TARGET_INT_BIT / TARGET_CHAR_BIT,
0, "<?type?>", objfile);
warning ("internal error: no C/C++ fundamental type %d", typeid);
warning (_("internal error: no C/C++ fundamental type %d"), typeid);
break;
case FT_VOID:
type = init_type (TYPE_CODE_VOID,

View File

@ -286,7 +286,7 @@ c_type_print_varspec_prefix (struct type *type, struct ui_file *stream,
gcc -Wall will reveal any types that haven't been handled. */
break;
default:
error ("type not handled in c_type_print_varspec_prefix()");
error (_("type not handled in c_type_print_varspec_prefix()"));
break;
}
}
@ -627,7 +627,7 @@ c_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
gcc -Wall will report types that may not have been considered. */
break;
default:
error ("type not handled in c_type_print_varspec_suffix()");
error (_("type not handled in c_type_print_varspec_suffix()"));
break;
}
}
@ -671,7 +671,7 @@ c_type_print_base (struct type *type, struct ui_file *stream, int show,
wrap_here (" ");
if (type == NULL)
{
fputs_filtered ("<type unknown>", stream);
fputs_filtered (_("<type unknown>"), stream);
return;
}
@ -770,9 +770,9 @@ c_type_print_base (struct type *type, struct ui_file *stream, int show,
if ((TYPE_NFIELDS (type) == 0) && (TYPE_NFN_FIELDS (type) == 0))
{
if (TYPE_STUB (type))
fprintfi_filtered (level + 4, stream, "<incomplete type>\n");
fprintfi_filtered (level + 4, stream, _("<incomplete type>\n"));
else
fprintfi_filtered (level + 4, stream, "<no data fields>\n");
fprintfi_filtered (level + 4, stream, _("<no data fields>\n"));
}
/* Start off with no specific section type, so we can print
@ -990,7 +990,7 @@ c_type_print_base (struct type *type, struct ui_file *stream, int show,
if (TYPE_TARGET_TYPE (TYPE_FN_FIELD_TYPE (f, j)) == 0)
{
/* Keep GDB from crashing here. */
fprintf_filtered (stream, "<undefined type> %s;\n",
fprintf_filtered (stream, _("<undefined type> %s;\n"),
TYPE_FN_FIELD_PHYSNAME (f, j));
break;
}
@ -1029,7 +1029,7 @@ c_type_print_base (struct type *type, struct ui_file *stream, int show,
stream);
}
else
fprintf_filtered (stream, "<badly mangled name '%s'>",
fprintf_filtered (stream, _("<badly mangled name '%s'>"),
mangled_name);
}
else
@ -1064,7 +1064,7 @@ c_type_print_base (struct type *type, struct ui_file *stream, int show,
fprintfi_filtered (level, stream, "}");
if (TYPE_LOCALTYPE_PTR (type) && show >= 0)
fprintfi_filtered (level, stream, " (Local at %s:%d)\n",
fprintfi_filtered (level, stream, _(" (Local at %s:%d)\n"),
TYPE_LOCALTYPE_FILE (type),
TYPE_LOCALTYPE_LINE (type));
}
@ -1136,16 +1136,16 @@ c_type_print_base (struct type *type, struct ui_file *stream, int show,
break;
case TYPE_CODE_UNDEF:
fprintf_filtered (stream, "struct <unknown>");
fprintf_filtered (stream, _("struct <unknown>"));
break;
case TYPE_CODE_ERROR:
fprintf_filtered (stream, "<unknown type>");
fprintf_filtered (stream, _("<unknown type>"));
break;
case TYPE_CODE_RANGE:
/* This should not occur */
fprintf_filtered (stream, "<range type>");
fprintf_filtered (stream, _("<range type>"));
break;
case TYPE_CODE_TEMPLATE:
@ -1171,7 +1171,7 @@ c_type_print_base (struct type *type, struct ui_file *stream, int show,
go_back:
if (TYPE_NINSTANTIATIONS (type) > 0)
{
fprintf_filtered (stream, "\ntemplate instantiations:\n");
fprintf_filtered (stream, _("\ntemplate instantiations:\n"));
for (i = 0; i < TYPE_NINSTANTIATIONS (type); i++)
{
fprintf_filtered (stream, " ");
@ -1201,7 +1201,7 @@ c_type_print_base (struct type *type, struct ui_file *stream, int show,
{
/* At least for dump_symtab, it is important that this not be
an error (). */
fprintf_filtered (stream, "<invalid type code %d>",
fprintf_filtered (stream, _("<invalid type code %d>"),
TYPE_CODE (type));
}
break;

View File

@ -125,7 +125,7 @@ c_val_print (struct type *type, const bfd_byte *valaddr, int embedded_offset,
if (cp_is_vtbl_ptr_type (elttype))
{
i = 1;
fprintf_filtered (stream, "%d vtable entries", len - 1);
fprintf_filtered (stream, _("%d vtable entries"), len - 1);
}
else
{
@ -251,7 +251,7 @@ c_val_print (struct type *type, const bfd_byte *valaddr, int embedded_offset,
break;
case TYPE_CODE_MEMBER:
error ("not implemented: member type in c_val_print");
error (_("not implemented: member type in c_val_print"));
break;
case TYPE_CODE_REF:
@ -455,14 +455,14 @@ c_val_print (struct type *type, const bfd_byte *valaddr, int embedded_offset,
break;
case TYPE_CODE_ERROR:
fprintf_filtered (stream, "<error type>");
fprintf_filtered (stream, _("<error type>"));
break;
case TYPE_CODE_UNDEF:
/* This happens (without TYPE_FLAG_STUB set) on systems which don't use
dbx xrefs (NO_DBX_XREFS in gcc) if a file has a "struct foo *bar"
and no complete type for struct foo in that file. */
fprintf_filtered (stream, "<incomplete type>");
fprintf_filtered (stream, _("<incomplete type>"));
break;
case TYPE_CODE_COMPLEX:
@ -488,7 +488,7 @@ c_val_print (struct type *type, const bfd_byte *valaddr, int embedded_offset,
break;
default:
error ("Invalid C/C++ type code %d in symbol table.", TYPE_CODE (type));
error (_("Invalid C/C++ type code %d in symbol table."), TYPE_CODE (type));
}
gdb_flush (stream);
return (0);
@ -576,7 +576,7 @@ c_value_print (struct value *val, struct ui_file *stream, int format,
val = value_full_object (val, real_type, full, top, using_enc);
fprintf_filtered (stream, "(%s%s) ",
TYPE_NAME (real_type),
full ? "" : " [incomplete object]");
full ? "" : _(" [incomplete object]"));
/* Print out object: enclosing type is same as real_type if full */
return val_print (VALUE_ENCLOSING_TYPE (val), VALUE_CONTENTS_ALL (val), 0,
VALUE_ADDRESS (val), stream, format, 1, 0, pretty);

View File

@ -394,8 +394,8 @@ check_iconv_cache (struct cached_iconv *ci,
ci->i = (iconv_t) 0;
if (iconv_close (i) == -1)
error ("Error closing `iconv' descriptor for "
"`%s'-to-`%s' character conversion: %s",
error (_("Error closing `iconv' descriptor for "
"`%s'-to-`%s' character conversion: %s"),
ci->from->name, ci->to->name, safe_strerror (errno));
}
@ -444,8 +444,8 @@ cached_iconv_convert (struct cached_iconv *ci, int from_char, int *to_char)
/* Anything else is mysterious. */
internal_error (__FILE__, __LINE__,
"Error converting character `%d' from `%s' to `%s' "
"character set: %s",
_("Error converting character `%d' from `%s' to `%s' "
"character set: %s"),
from_char, ci->from->name, ci->to->name,
safe_strerror (errno));
}
@ -923,7 +923,7 @@ lookup_charset_or_error (const char *name)
struct charset *cs = lookup_charset (name);
if (! cs)
error ("GDB doesn't know of any character set named `%s'.", name);
error (_("GDB doesn't know of any character set named `%s'."), name);
return cs;
}
@ -932,7 +932,7 @@ static void
check_valid_host_charset (struct charset *cs)
{
if (! cs->valid_host_charset)
error ("GDB can't use `%s' as its host character set.", cs->name);
error (_("GDB can't use `%s' as its host character set."), cs->name);
}
/* Set the host and target character sets to HOST and TARGET. */
@ -962,14 +962,14 @@ set_host_and_target_charsets (struct charset *host, struct charset *target)
{
if (check_iconv_cache (&cached_iconv_host_to_target, host, target)
< 0)
error ("GDB can't convert from the `%s' character set to `%s'.",
error (_("GDB can't convert from the `%s' character set to `%s'."),
host->name, target->name);
}
if (! t2h || ! t2h->convert_char)
{
if (check_iconv_cache (&cached_iconv_target_to_host, target, host)
< 0)
error ("GDB can't convert from the `%s' character set to `%s'.",
error (_("GDB can't convert from the `%s' character set to `%s'."),
target->name, host->name);
}
}
@ -1079,14 +1079,14 @@ show_charset (char *arg, int from_tty)
{
if (current_host_charset == current_target_charset)
{
printf_filtered ("The current host and target character set is `%s'.\n",
printf_filtered (_("The current host and target character set is `%s'.\n"),
host_charset ());
}
else
{
printf_filtered ("The current host character set is `%s'.\n",
printf_filtered (_("The current host character set is `%s'.\n"),
host_charset ());
printf_filtered ("The current target character set is `%s'.\n",
printf_filtered (_("The current target character set is `%s'.\n"),
target_charset ());
}
}
@ -1222,12 +1222,12 @@ _initialize_charset (void)
class_support,
host_charset_enum,
&host_charset_name,
"Set the host and target character sets.\n"
"The `host character set' is the one used by the system GDB is running on.\n"
"The `target character set' is the one used by the program being debugged.\n"
"You may only use supersets of ASCII for your host character set; GDB does\n"
"not support any others.\n"
"To see a list of the character sets GDB supports, type `set charset <TAB>'.",
_("Set the host and target character sets.\n\
The `host character set' is the one used by the system GDB is running on.\n\
The `target character set' is the one used by the program being debugged.\n\
You may only use supersets of ASCII for your host character set; GDB does\n\
not support any others.\n\
To see a list of the character sets GDB supports, type `set charset <TAB>'."),
&setlist);
/* Note that the sfunc below needs to set target_charset_name, because
@ -1235,12 +1235,12 @@ _initialize_charset (void)
set_cmd_sfunc (new_cmd, set_charset_sfunc);
/* Don't use set_from_show - need to print some extra info. */
add_cmd ("charset", class_support, show_charset,
"Show the host and target character sets.\n"
"The `host character set' is the one used by the system GDB is running on.\n"
"The `target character set' is the one used by the program being debugged.\n"
"You may only use supersets of ASCII for your host character set; GDB does\n"
"not support any others.\n"
"To see a list of the character sets GDB supports, type `set charset <TAB>'.",
_("Show the host and target character sets.\n\
The `host character set' is the one used by the system GDB is running on.\n\
The `target character set' is the one used by the program being debugged.\n\
You may only use supersets of ASCII for your host character set; GDB does\n\
not support any others.\n\
To see a list of the character sets GDB supports, type `set charset <TAB>'."),
&showlist);
@ -1248,11 +1248,11 @@ _initialize_charset (void)
class_support,
host_charset_enum,
&host_charset_name,
"Set the host character set.\n"
"The `host character set' is the one used by the system GDB is running on.\n"
"You may only use supersets of ASCII for your host character set; GDB does\n"
"not support any others.\n"
"To see a list of the character sets GDB supports, type `set host-charset <TAB>'.",
_("Set the host character set.\n\
The `host character set' is the one used by the system GDB is running on.\n\
You may only use supersets of ASCII for your host character set; GDB does\n\
not support any others.\n\
To see a list of the character sets GDB supports, type `set host-charset <TAB>'."),
&setlist);
set_cmd_sfunc (new_cmd, set_host_charset_sfunc);
@ -1265,11 +1265,11 @@ _initialize_charset (void)
class_support,
target_charset_enum,
&target_charset_name,
"Set the target character set.\n"
"The `target character set' is the one used by the program being debugged.\n"
"GDB translates characters and strings between the host and target\n"
"character sets as needed.\n"
"To see a list of the character sets GDB supports, type `set target-charset'<TAB>",
_("Set the target character set.\n\
The `target character set' is the one used by the program being debugged.\n\
GDB translates characters and strings between the host and target\n\
character sets as needed.\n\
To see a list of the character sets GDB supports, type `set target-charset'<TAB>"),
&setlist);
set_cmd_sfunc (new_cmd, set_target_charset_sfunc);

View File

@ -309,7 +309,7 @@ read_pe_exported_syms (struct objfile *objfile)
+= ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
}
printf_filtered ("Minimal symbols from %s...", dll_name);
printf_filtered (_("Minimal symbols from %s..."), dll_name);
wrap_here ("");
/* Truncate name at first dot. Should maybe also convert to all

View File

@ -576,7 +576,7 @@ coff_symfile_read (struct objfile *objfile, int mainline)
val = init_lineno (abfd, info->min_lineno_offset,
info->max_lineno_offset - info->min_lineno_offset);
if (val < 0)
error ("\"%s\": error reading line numbers\n", name);
error (_("\"%s\": error reading line numbers\n"), name);
}
/* Now read the string table, all at once. */
@ -584,7 +584,7 @@ coff_symfile_read (struct objfile *objfile, int mainline)
make_cleanup (free_stringtab_cleanup, 0 /*ignore*/);
val = init_stringtab (abfd, stringtab_offset);
if (val < 0)
error ("\"%s\": can't get string table", name);
error (_("\"%s\": can't get string table"), name);
init_minimal_symbol_collection ();
cleanup_minimal_symbols = make_cleanup_discard_minimal_symbols ();
@ -617,9 +617,8 @@ coff_symfile_read (struct objfile *objfile, int mainline)
{
if (!info->stabstrsect)
{
error (("The debugging information in `%s' is corrupted.\n"
"The file has a `.stabs' section, but no `.stabstr' "
"section."),
error (_("The debugging information in `%s' is corrupted.\n"
"The file has a `.stabs' section, but no `.stabstr' section."),
name);
}
@ -783,7 +782,7 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms,
case C_LINE:
case C_ALIAS:
case C_HIDDEN:
complaint (&symfile_complaints, "Bad n_sclass for symbol %s",
complaint (&symfile_complaints, _("Bad n_sclass for symbol %s"),
cs->c_name);
break;
@ -954,7 +953,7 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms,
contains line number of '{' } */
if (cs->c_naux != 1)
complaint (&symfile_complaints,
"`.bf' symbol %d has no aux entry", cs->c_symnum);
_("`.bf' symbol %d has no aux entry"), cs->c_symnum);
fcn_first_line = main_aux.x_sym.x_misc.x_lnsz.x_lnno;
fcn_first_line_addr = cs->c_value;
@ -970,7 +969,7 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms,
else if (DEPRECATED_STREQ (cs->c_name, ".ef"))
{
if (!within_function)
error ("Bad coff function information\n");
error (_("Bad coff function information\n"));
/* the value of .ef is the address of epilogue code;
not useful for gdb. */
/* { main_aux.x_sym.x_misc.x_lnsz.x_lnno
@ -979,7 +978,7 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms,
if (context_stack_depth <= 0)
{ /* We attempted to pop an empty context stack */
complaint (&symfile_complaints,
"`.ef' symbol without matching `.bf' symbol ignored starting at symnum %d",
_("`.ef' symbol without matching `.bf' symbol ignored starting at symnum %d"),
cs->c_symnum);
within_function = 0;
break;
@ -990,7 +989,7 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms,
if (context_stack_depth > 0 || new == NULL)
{
complaint (&symfile_complaints,
"Unmatched .ef symbol(s) ignored starting at symnum %d",
_("Unmatched .ef symbol(s) ignored starting at symnum %d"),
cs->c_symnum);
within_function = 0;
break;
@ -998,7 +997,7 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms,
if (cs->c_naux != 1)
{
complaint (&symfile_complaints,
"`.ef' symbol %d has no aux entry", cs->c_symnum);
_("`.ef' symbol %d has no aux entry"), cs->c_symnum);
fcn_last_line = 0x7FFFFFFF;
}
else
@ -1054,7 +1053,7 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms,
if (context_stack_depth <= 0)
{ /* We attempted to pop an empty context stack */
complaint (&symfile_complaints,
"`.eb' symbol without matching `.bb' symbol ignored starting at symnum %d",
_("`.eb' symbol without matching `.bb' symbol ignored starting at symnum %d"),
cs->c_symnum);
break;
}
@ -1063,7 +1062,7 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms,
if (depth-- != new->depth)
{
complaint (&symfile_complaints,
"Mismatched .eb symbol ignored starting at symnum %d",
_("Mismatched .eb symbol ignored starting at symnum %d"),
symnum);
break;
}
@ -1141,7 +1140,7 @@ read_one_sym (struct coff_symbol *cs,
#if 0
if (cs->c_sclass & 128)
printf ("thumb symbol %s, class 0x%x\n", cs->c_name, cs->c_sclass);
printf (_("thumb symbol %s, class 0x%x\n"), cs->c_name, cs->c_sclass);
#endif
symnum += 1 + cs->c_naux;
@ -1351,7 +1350,7 @@ enter_linenos (long file_offset, int first_line,
if (file_offset < linetab_offset)
{
complaint (&symfile_complaints,
"Line number pointer %ld lower than start of line numbers",
_("Line number pointer %ld lower than start of line numbers"),
file_offset);
if (file_offset > linetab_size) /* Too big to be an offset? */
return;
@ -1755,7 +1754,7 @@ decode_type (struct coff_symbol *cs, unsigned int c_type,
else
{
complaint (&symfile_complaints,
"Symbol table entry for %s has bad tagndx value",
_("Symbol table entry for %s has bad tagndx value"),
cs->c_name);
/* And fall through to decode_base_type... */
}
@ -1913,7 +1912,7 @@ decode_base_type (struct coff_symbol *cs, unsigned int c_type,
else
return lookup_fundamental_type (current_objfile, FT_UNSIGNED_LONG);
}
complaint (&symfile_complaints, "Unexpected type for symbol %s", cs->c_name);
complaint (&symfile_complaints, _("Unexpected type for symbol %s"), cs->c_name);
return lookup_fundamental_type (current_objfile, FT_VOID);
}

View File

@ -202,6 +202,7 @@ vcomplaint (struct complaints **c, const char *file, int line, const char *fmt,
wrap_here ("");
if (series != SUBSEQUENT_MESSAGE)
begin_line ();
/* XXX: i18n */
fprintf_filtered (gdb_stderr, "%s%s%s",
complaints->explanation[series].prefix, msg,
complaints->explanation[series].postfix);
@ -297,7 +298,7 @@ clear_complaints (struct complaints **c, int less_verbose, int noisy)
fputs_unfiltered ("\n", gdb_stderr);
break;
default:
internal_error (__FILE__, __LINE__, "bad switch");
internal_error (__FILE__, __LINE__, _("bad switch"));
}
if (!less_verbose)
@ -311,10 +312,10 @@ clear_complaints (struct complaints **c, int less_verbose, int noisy)
void
_initialize_complaints (void)
{
add_setshow_zinteger_cmd ("complaints", class_support, &stop_whining, "\
Set max number of complaints about incorrect symbols.", "\
Show max number of complaints about incorrect symbols.", NULL, "\
Max number of complaints about incorrect symbols is %s.",
add_setshow_zinteger_cmd ("complaints", class_support, &stop_whining, _("\
Set max number of complaints about incorrect symbols."), _("\
Show max number of complaints about incorrect symbols."), NULL, _("\
Max number of complaints about incorrect symbols is %s."),
NULL, NULL,
&setlist, &showlist);

View File

@ -16,263 +16,264 @@ static void
show_copying_command (char *ignore, int from_tty)
{
immediate_quit++;
printf_filtered (" GNU GENERAL PUBLIC LICENSE\n");
printf_filtered (" Version 2, June 1991\n");
printf_filtered ("\n");
printf_filtered (" Copyright (C) 1989, 1991 Free Software Foundation, Inc.\n");
printf_filtered (" 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n");
printf_filtered (" Everyone is permitted to copy and distribute verbatim copies\n");
printf_filtered (" of this license document, but changing it is not allowed.\n");
printf_filtered ("\n");
printf_filtered (" Preamble\n");
printf_filtered ("\n");
printf_filtered (" The licenses for most software are designed to take away your\n");
printf_filtered ("freedom to share and change it. By contrast, the GNU General Public\n");
printf_filtered ("License is intended to guarantee your freedom to share and change free\n");
printf_filtered ("software--to make sure the software is free for all its users. This\n");
printf_filtered ("General Public License applies to most of the Free Software\n");
printf_filtered ("Foundation's software and to any other program whose authors commit to\n");
printf_filtered ("using it. (Some other Free Software Foundation software is covered by\n");
printf_filtered ("the GNU Library General Public License instead.) You can apply it to\n");
printf_filtered ("your programs, too.\n");
printf_filtered ("\n");
printf_filtered (" When we speak of free software, we are referring to freedom, not\n");
printf_filtered ("price. Our General Public Licenses are designed to make sure that you\n");
printf_filtered ("have the freedom to distribute copies of free software (and charge for\n");
printf_filtered ("this service if you wish), that you receive source code or can get it\n");
printf_filtered ("if you want it, that you can change the software or use pieces of it\n");
printf_filtered ("in new free programs; and that you know you can do these things.\n");
printf_filtered ("\n");
printf_filtered (" To protect your rights, we need to make restrictions that forbid\n");
printf_filtered ("anyone to deny you these rights or to ask you to surrender the rights.\n");
printf_filtered ("These restrictions translate to certain responsibilities for you if you\n");
printf_filtered ("distribute copies of the software, or if you modify it.\n");
printf_filtered ("\n");
printf_filtered (" For example, if you distribute copies of such a program, whether\n");
printf_filtered ("gratis or for a fee, you must give the recipients all the rights that\n");
printf_filtered ("you have. You must make sure that they, too, receive or can get the\n");
printf_filtered ("source code. And you must show them these terms so they know their\n");
printf_filtered ("rights.\n");
printf_filtered ("\n");
printf_filtered (" We protect your rights with two steps: (1) copyright the software, and\n");
printf_filtered ("(2) offer you this license which gives you legal permission to copy,\n");
printf_filtered ("distribute and/or modify the software.\n");
printf_filtered ("\n");
printf_filtered (" Also, for each author's protection and ours, we want to make certain\n");
printf_filtered ("that everyone understands that there is no warranty for this free\n");
printf_filtered ("software. If the software is modified by someone else and passed on, we\n");
printf_filtered ("want its recipients to know that what they have is not the original, so\n");
printf_filtered ("that any problems introduced by others will not reflect on the original\n");
printf_filtered ("authors' reputations.\n");
printf_filtered ("\n");
printf_filtered (" Finally, any free program is threatened constantly by software\n");
printf_filtered ("patents. We wish to avoid the danger that redistributors of a free\n");
printf_filtered ("program will individually obtain patent licenses, in effect making the\n");
printf_filtered ("program proprietary. To prevent this, we have made it clear that any\n");
printf_filtered ("patent must be licensed for everyone's free use or not licensed at all.\n");
printf_filtered ("\n");
printf_filtered (" The precise terms and conditions for copying, distribution and\n");
printf_filtered ("modification follow.\n");
printf_filtered ("\n");
printf_filtered (" GNU GENERAL PUBLIC LICENSE\n");
printf_filtered (" TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n");
printf_filtered ("\n");
printf_filtered (" 0. This License applies to any program or other work which contains\n");
printf_filtered ("a notice placed by the copyright holder saying it may be distributed\n");
printf_filtered ("under the terms of this General Public License. The \"Program\", below,\n");
printf_filtered ("refers to any such program or work, and a \"work based on the Program\"\n");
printf_filtered ("means either the Program or any derivative work under copyright law:\n");
printf_filtered ("that is to say, a work containing the Program or a portion of it,\n");
printf_filtered ("either verbatim or with modifications and/or translated into another\n");
printf_filtered ("language. (Hereinafter, translation is included without limitation in\n");
printf_filtered ("the term \"modification\".) Each licensee is addressed as \"you\".\n");
printf_filtered ("\n");
printf_filtered ("Activities other than copying, distribution and modification are not\n");
printf_filtered ("covered by this License; they are outside its scope. The act of\n");
printf_filtered ("running the Program is not restricted, and the output from the Program\n");
printf_filtered ("is covered only if its contents constitute a work based on the\n");
printf_filtered ("Program (independent of having been made by running the Program).\n");
printf_filtered ("Whether that is true depends on what the Program does.\n");
printf_filtered ("\n");
printf_filtered (" 1. You may copy and distribute verbatim copies of the Program's\n");
printf_filtered ("source code as you receive it, in any medium, provided that you\n");
printf_filtered ("conspicuously and appropriately publish on each copy an appropriate\n");
printf_filtered ("copyright notice and disclaimer of warranty; keep intact all the\n");
printf_filtered ("notices that refer to this License and to the absence of any warranty;\n");
printf_filtered ("and give any other recipients of the Program a copy of this License\n");
printf_filtered ("along with the Program.\n");
printf_filtered ("\n");
printf_filtered ("You may charge a fee for the physical act of transferring a copy, and\n");
printf_filtered ("you may at your option offer warranty protection in exchange for a fee.\n");
printf_filtered ("\n");
printf_filtered (" 2. You may modify your copy or copies of the Program or any portion\n");
printf_filtered ("of it, thus forming a work based on the Program, and copy and\n");
printf_filtered ("distribute such modifications or work under the terms of Section 1\n");
printf_filtered ("above, provided that you also meet all of these conditions:\n");
printf_filtered ("\n");
printf_filtered (" a) You must cause the modified files to carry prominent notices\n");
printf_filtered (" stating that you changed the files and the date of any change.\n");
printf_filtered ("\n");
printf_filtered (" b) You must cause any work that you distribute or publish, that in\n");
printf_filtered (" whole or in part contains or is derived from the Program or any\n");
printf_filtered (" part thereof, to be licensed as a whole at no charge to all third\n");
printf_filtered (" parties under the terms of this License.\n");
printf_filtered ("\n");
printf_filtered (" c) If the modified program normally reads commands interactively\n");
printf_filtered (" when run, you must cause it, when started running for such\n");
printf_filtered (" interactive use in the most ordinary way, to print or display an\n");
printf_filtered (" announcement including an appropriate copyright notice and a\n");
printf_filtered (" notice that there is no warranty (or else, saying that you provide\n");
printf_filtered (" a warranty) and that users may redistribute the program under\n");
printf_filtered (" these conditions, and telling the user how to view a copy of this\n");
printf_filtered (" License. (Exception: if the Program itself is interactive but\n");
printf_filtered (" does not normally print such an announcement, your work based on\n");
printf_filtered (" the Program is not required to print an announcement.)\n");
printf_filtered ("\n");
printf_filtered ("These requirements apply to the modified work as a whole. If\n");
printf_filtered ("identifiable sections of that work are not derived from the Program,\n");
printf_filtered ("and can be reasonably considered independent and separate works in\n");
printf_filtered ("themselves, then this License, and its terms, do not apply to those\n");
printf_filtered ("sections when you distribute them as separate works. But when you\n");
printf_filtered ("distribute the same sections as part of a whole which is a work based\n");
printf_filtered ("on the Program, the distribution of the whole must be on the terms of\n");
printf_filtered ("this License, whose permissions for other licensees extend to the\n");
printf_filtered ("entire whole, and thus to each and every part regardless of who wrote it.\n");
printf_filtered ("\n");
printf_filtered ("Thus, it is not the intent of this section to claim rights or contest\n");
printf_filtered ("your rights to work written entirely by you; rather, the intent is to\n");
printf_filtered ("exercise the right to control the distribution of derivative or\n");
printf_filtered ("collective works based on the Program.\n");
printf_filtered ("\n");
printf_filtered ("In addition, mere aggregation of another work not based on the Program\n");
printf_filtered ("with the Program (or with a work based on the Program) on a volume of\n");
printf_filtered ("a storage or distribution medium does not bring the other work under\n");
printf_filtered ("the scope of this License.\n");
printf_filtered ("\n");
printf_filtered (" 3. You may copy and distribute the Program (or a work based on it,\n");
printf_filtered ("under Section 2) in object code or executable form under the terms of\n");
printf_filtered ("Sections 1 and 2 above provided that you also do one of the following:\n");
printf_filtered ("\n");
printf_filtered (" a) Accompany it with the complete corresponding machine-readable\n");
printf_filtered (" source code, which must be distributed under the terms of Sections\n");
printf_filtered (" 1 and 2 above on a medium customarily used for software interchange; or,\n");
printf_filtered ("\n");
printf_filtered (" b) Accompany it with a written offer, valid for at least three\n");
printf_filtered (" years, to give any third party, for a charge no more than your\n");
printf_filtered (" cost of physically performing source distribution, a complete\n");
printf_filtered (" machine-readable copy of the corresponding source code, to be\n");
printf_filtered (" distributed under the terms of Sections 1 and 2 above on a medium\n");
printf_filtered (" customarily used for software interchange; or,\n");
printf_filtered ("\n");
printf_filtered (" c) Accompany it with the information you received as to the offer\n");
printf_filtered (" to distribute corresponding source code. (This alternative is\n");
printf_filtered (" allowed only for noncommercial distribution and only if you\n");
printf_filtered (" received the program in object code or executable form with such\n");
printf_filtered (" an offer, in accord with Subsection b above.)\n");
printf_filtered ("\n");
printf_filtered ("The source code for a work means the preferred form of the work for\n");
printf_filtered ("making modifications to it. For an executable work, complete source\n");
printf_filtered ("code means all the source code for all modules it contains, plus any\n");
printf_filtered ("associated interface definition files, plus the scripts used to\n");
printf_filtered ("control compilation and installation of the executable. However, as a\n");
printf_filtered ("special exception, the source code distributed need not include\n");
printf_filtered ("anything that is normally distributed (in either source or binary\n");
printf_filtered ("form) with the major components (compiler, kernel, and so on) of the\n");
printf_filtered ("operating system on which the executable runs, unless that component\n");
printf_filtered ("itself accompanies the executable.\n");
printf_filtered ("\n");
printf_filtered ("If distribution of executable or object code is made by offering\n");
printf_filtered ("access to copy from a designated place, then offering equivalent\n");
printf_filtered ("access to copy the source code from the same place counts as\n");
printf_filtered ("distribution of the source code, even though third parties are not\n");
printf_filtered ("compelled to copy the source along with the object code.\n");
printf_filtered ("\n");
printf_filtered (" 4. You may not copy, modify, sublicense, or distribute the Program\n");
printf_filtered ("except as expressly provided under this License. Any attempt\n");
printf_filtered ("otherwise to copy, modify, sublicense or distribute the Program is\n");
printf_filtered ("void, and will automatically terminate your rights under this License.\n");
printf_filtered ("However, parties who have received copies, or rights, from you under\n");
printf_filtered ("this License will not have their licenses terminated so long as such\n");
printf_filtered ("parties remain in full compliance.\n");
printf_filtered ("\n");
printf_filtered (" 5. You are not required to accept this License, since you have not\n");
printf_filtered ("signed it. However, nothing else grants you permission to modify or\n");
printf_filtered ("distribute the Program or its derivative works. These actions are\n");
printf_filtered ("prohibited by law if you do not accept this License. Therefore, by\n");
printf_filtered ("modifying or distributing the Program (or any work based on the\n");
printf_filtered ("Program), you indicate your acceptance of this License to do so, and\n");
printf_filtered ("all its terms and conditions for copying, distributing or modifying\n");
printf_filtered ("the Program or works based on it.\n");
printf_filtered ("\n");
printf_filtered (" 6. Each time you redistribute the Program (or any work based on the\n");
printf_filtered ("Program), the recipient automatically receives a license from the\n");
printf_filtered ("original licensor to copy, distribute or modify the Program subject to\n");
printf_filtered ("these terms and conditions. You may not impose any further\n");
printf_filtered ("restrictions on the recipients' exercise of the rights granted herein.\n");
printf_filtered ("You are not responsible for enforcing compliance by third parties to\n");
printf_filtered ("this License.\n");
printf_filtered ("\n");
printf_filtered (" 7. If, as a consequence of a court judgment or allegation of patent\n");
printf_filtered ("infringement or for any other reason (not limited to patent issues),\n");
printf_filtered ("conditions are imposed on you (whether by court order, agreement or\n");
printf_filtered ("otherwise) that contradict the conditions of this License, they do not\n");
printf_filtered ("excuse you from the conditions of this License. If you cannot\n");
printf_filtered ("distribute so as to satisfy simultaneously your obligations under this\n");
printf_filtered ("License and any other pertinent obligations, then as a consequence you\n");
printf_filtered ("may not distribute the Program at all. For example, if a patent\n");
printf_filtered ("license would not permit royalty-free redistribution of the Program by\n");
printf_filtered ("all those who receive copies directly or indirectly through you, then\n");
printf_filtered ("the only way you could satisfy both it and this License would be to\n");
printf_filtered ("refrain entirely from distribution of the Program.\n");
printf_filtered ("\n");
printf_filtered ("If any portion of this section is held invalid or unenforceable under\n");
printf_filtered ("any particular circumstance, the balance of the section is intended to\n");
printf_filtered ("apply and the section as a whole is intended to apply in other\n");
printf_filtered ("circumstances.\n");
printf_filtered ("\n");
printf_filtered ("It is not the purpose of this section to induce you to infringe any\n");
printf_filtered ("patents or other property right claims or to contest validity of any\n");
printf_filtered ("such claims; this section has the sole purpose of protecting the\n");
printf_filtered ("integrity of the free software distribution system, which is\n");
printf_filtered ("implemented by public license practices. Many people have made\n");
printf_filtered ("generous contributions to the wide range of software distributed\n");
printf_filtered ("through that system in reliance on consistent application of that\n");
printf_filtered ("system; it is up to the author/donor to decide if he or she is willing\n");
printf_filtered ("to distribute software through any other system and a licensee cannot\n");
printf_filtered ("impose that choice.\n");
printf_filtered ("\n");
printf_filtered ("This section is intended to make thoroughly clear what is believed to\n");
printf_filtered ("be a consequence of the rest of this License.\n");
printf_filtered ("\n");
printf_filtered (" 8. If the distribution and/or use of the Program is restricted in\n");
printf_filtered ("certain countries either by patents or by copyrighted interfaces, the\n");
printf_filtered ("original copyright holder who places the Program under this License\n");
printf_filtered ("may add an explicit geographical distribution limitation excluding\n");
printf_filtered ("those countries, so that distribution is permitted only in or among\n");
printf_filtered ("countries not thus excluded. In such case, this License incorporates\n");
printf_filtered ("the limitation as if written in the body of this License.\n");
printf_filtered ("\n");
printf_filtered (" 9. The Free Software Foundation may publish revised and/or new versions\n");
printf_filtered ("of the General Public License from time to time. Such new versions will\n");
printf_filtered ("be similar in spirit to the present version, but may differ in detail to\n");
printf_filtered ("address new problems or concerns.\n");
printf_filtered ("\n");
printf_filtered ("Each version is given a distinguishing version number. If the Program\n");
printf_filtered ("specifies a version number of this License which applies to it and \"any\n");
printf_filtered ("later version\", you have the option of following the terms and conditions\n");
printf_filtered ("either of that version or of any later version published by the Free\n");
printf_filtered ("Software Foundation. If the Program does not specify a version number of\n");
printf_filtered ("this License, you may choose any version ever published by the Free Software\n");
printf_filtered ("Foundation.\n");
printf_filtered ("\n");
printf_filtered (" 10. If you wish to incorporate parts of the Program into other free\n");
printf_filtered ("programs whose distribution conditions are different, write to the author\n");
printf_filtered ("to ask for permission. For software which is copyrighted by the Free\n");
printf_filtered ("Software Foundation, write to the Free Software Foundation; we sometimes\n");
printf_filtered ("make exceptions for this. Our decision will be guided by the two goals\n");
printf_filtered ("of preserving the free status of all derivatives of our free software and\n");
printf_filtered ("of promoting the sharing and reuse of software generally.\n");
printf_filtered ("\n");
printf_filtered (_("\
GNU GENERAL PUBLIC LICENSE\n\
Version 2, June 1991\n\
\n\
Copyright (C) 1989, 1991 Free Software Foundation, Inc.\n\
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n\
Everyone is permitted to copy and distribute verbatim copies\n\
of this license document, but changing it is not allowed.\n\
\n\
Preamble\n\
\n\
The licenses for most software are designed to take away your\n\
freedom to share and change it. By contrast, the GNU General Public\n\
License is intended to guarantee your freedom to share and change free\n\
software--to make sure the software is free for all its users. This\n\
General Public License applies to most of the Free Software\n\
Foundation's software and to any other program whose authors commit to\n\
using it. (Some other Free Software Foundation software is covered by\n\
the GNU Library General Public License instead.) You can apply it to\n\
your programs, too.\n\
\n\
When we speak of free software, we are referring to freedom, not\n\
price. Our General Public Licenses are designed to make sure that you\n\
have the freedom to distribute copies of free software (and charge for\n\
this service if you wish), that you receive source code or can get it\n\
if you want it, that you can change the software or use pieces of it\n\
in new free programs; and that you know you can do these things.\n\
\n\
To protect your rights, we need to make restrictions that forbid\n\
anyone to deny you these rights or to ask you to surrender the rights.\n\
These restrictions translate to certain responsibilities for you if you\n\
distribute copies of the software, or if you modify it.\n\
\n\
For example, if you distribute copies of such a program, whether\n\
gratis or for a fee, you must give the recipients all the rights that\n\
you have. You must make sure that they, too, receive or can get the\n\
source code. And you must show them these terms so they know their\n\
rights.\n\
\n\
We protect your rights with two steps: (1) copyright the software, and\n\
(2) offer you this license which gives you legal permission to copy,\n\
distribute and/or modify the software.\n\
\n\
Also, for each author's protection and ours, we want to make certain\n\
that everyone understands that there is no warranty for this free\n\
software. If the software is modified by someone else and passed on, we\n\
want its recipients to know that what they have is not the original, so\n\
that any problems introduced by others will not reflect on the original\n\
authors' reputations.\n\
\n\
Finally, any free program is threatened constantly by software\n\
patents. We wish to avoid the danger that redistributors of a free\n\
program will individually obtain patent licenses, in effect making the\n\
program proprietary. To prevent this, we have made it clear that any\n\
patent must be licensed for everyone's free use or not licensed at all.\n\
\n\
The precise terms and conditions for copying, distribution and\n\
modification follow.\n\
\n\
GNU GENERAL PUBLIC LICENSE\n\
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n\
\n\
0. This License applies to any program or other work which contains\n\
a notice placed by the copyright holder saying it may be distributed\n\
under the terms of this General Public License. The \"Program\", below,\n\
refers to any such program or work, and a \"work based on the Program\"\n\
means either the Program or any derivative work under copyright law:\n\
that is to say, a work containing the Program or a portion of it,\n\
either verbatim or with modifications and/or translated into another\n\
language. (Hereinafter, translation is included without limitation in\n\
the term \"modification\".) Each licensee is addressed as \"you\".\n\
\n\
Activities other than copying, distribution and modification are not\n\
covered by this License; they are outside its scope. The act of\n\
running the Program is not restricted, and the output from the Program\n\
is covered only if its contents constitute a work based on the\n\
Program (independent of having been made by running the Program).\n\
Whether that is true depends on what the Program does.\n\
\n\
1. You may copy and distribute verbatim copies of the Program's\n\
source code as you receive it, in any medium, provided that you\n\
conspicuously and appropriately publish on each copy an appropriate\n\
copyright notice and disclaimer of warranty; keep intact all the\n\
notices that refer to this License and to the absence of any warranty;\n\
and give any other recipients of the Program a copy of this License\n\
along with the Program.\n\
\n\
You may charge a fee for the physical act of transferring a copy, and\n\
you may at your option offer warranty protection in exchange for a fee.\n\
\n\
2. You may modify your copy or copies of the Program or any portion\n\
of it, thus forming a work based on the Program, and copy and\n\
distribute such modifications or work under the terms of Section 1\n\
above, provided that you also meet all of these conditions:\n\
\n\
a) You must cause the modified files to carry prominent notices\n\
stating that you changed the files and the date of any change.\n\
\n\
b) You must cause any work that you distribute or publish, that in\n\
whole or in part contains or is derived from the Program or any\n\
part thereof, to be licensed as a whole at no charge to all third\n\
parties under the terms of this License.\n\
\n\
c) If the modified program normally reads commands interactively\n\
when run, you must cause it, when started running for such\n\
interactive use in the most ordinary way, to print or display an\n\
announcement including an appropriate copyright notice and a\n\
notice that there is no warranty (or else, saying that you provide\n\
a warranty) and that users may redistribute the program under\n\
these conditions, and telling the user how to view a copy of this\n\
License. (Exception: if the Program itself is interactive but\n\
does not normally print such an announcement, your work based on\n\
the Program is not required to print an announcement.)\n\
\n\
These requirements apply to the modified work as a whole. If\n\
identifiable sections of that work are not derived from the Program,\n\
and can be reasonably considered independent and separate works in\n\
themselves, then this License, and its terms, do not apply to those\n\
sections when you distribute them as separate works. But when you\n\
distribute the same sections as part of a whole which is a work based\n\
on the Program, the distribution of the whole must be on the terms of\n\
this License, whose permissions for other licensees extend to the\n\
entire whole, and thus to each and every part regardless of who wrote it.\n\
\n\
Thus, it is not the intent of this section to claim rights or contest\n\
your rights to work written entirely by you; rather, the intent is to\n\
exercise the right to control the distribution of derivative or\n\
collective works based on the Program.\n\
\n\
In addition, mere aggregation of another work not based on the Program\n\
with the Program (or with a work based on the Program) on a volume of\n\
a storage or distribution medium does not bring the other work under\n\
the scope of this License.\n\
\n\
3. You may copy and distribute the Program (or a work based on it,\n\
under Section 2) in object code or executable form under the terms of\n\
Sections 1 and 2 above provided that you also do one of the following:\n\
\n\
a) Accompany it with the complete corresponding machine-readable\n\
source code, which must be distributed under the terms of Sections\n\
1 and 2 above on a medium customarily used for software interchange; or,\n\
\n\
b) Accompany it with a written offer, valid for at least three\n\
years, to give any third party, for a charge no more than your\n\
cost of physically performing source distribution, a complete\n\
machine-readable copy of the corresponding source code, to be\n\
distributed under the terms of Sections 1 and 2 above on a medium\n\
customarily used for software interchange; or,\n\
\n\
c) Accompany it with the information you received as to the offer\n\
to distribute corresponding source code. (This alternative is\n\
allowed only for noncommercial distribution and only if you\n\
received the program in object code or executable form with such\n\
an offer, in accord with Subsection b above.)\n\
\n\
The source code for a work means the preferred form of the work for\n\
making modifications to it. For an executable work, complete source\n\
code means all the source code for all modules it contains, plus any\n\
associated interface definition files, plus the scripts used to\n\
control compilation and installation of the executable. However, as a\n\
special exception, the source code distributed need not include\n\
anything that is normally distributed (in either source or binary\n\
form) with the major components (compiler, kernel, and so on) of the\n\
operating system on which the executable runs, unless that component\n\
itself accompanies the executable.\n\
\n\
If distribution of executable or object code is made by offering\n\
access to copy from a designated place, then offering equivalent\n\
access to copy the source code from the same place counts as\n\
distribution of the source code, even though third parties are not\n\
compelled to copy the source along with the object code.\n\
\n\
4. You may not copy, modify, sublicense, or distribute the Program\n\
except as expressly provided under this License. Any attempt\n\
otherwise to copy, modify, sublicense or distribute the Program is\n\
void, and will automatically terminate your rights under this License.\n\
However, parties who have received copies, or rights, from you under\n\
this License will not have their licenses terminated so long as such\n\
parties remain in full compliance.\n\
\n\
5. You are not required to accept this License, since you have not\n\
signed it. However, nothing else grants you permission to modify or\n\
distribute the Program or its derivative works. These actions are\n\
prohibited by law if you do not accept this License. Therefore, by\n\
modifying or distributing the Program (or any work based on the\n\
Program), you indicate your acceptance of this License to do so, and\n\
all its terms and conditions for copying, distributing or modifying\n\
the Program or works based on it.\n\
\n\
6. Each time you redistribute the Program (or any work based on the\n\
Program), the recipient automatically receives a license from the\n\
original licensor to copy, distribute or modify the Program subject to\n\
these terms and conditions. You may not impose any further\n\
restrictions on the recipients' exercise of the rights granted herein.\n\
You are not responsible for enforcing compliance by third parties to\n\
this License.\n\
\n\
7. If, as a consequence of a court judgment or allegation of patent\n\
infringement or for any other reason (not limited to patent issues),\n\
conditions are imposed on you (whether by court order, agreement or\n\
otherwise) that contradict the conditions of this License, they do not\n\
excuse you from the conditions of this License. If you cannot\n\
distribute so as to satisfy simultaneously your obligations under this\n\
License and any other pertinent obligations, then as a consequence you\n\
may not distribute the Program at all. For example, if a patent\n\
license would not permit royalty-free redistribution of the Program by\n\
all those who receive copies directly or indirectly through you, then\n\
the only way you could satisfy both it and this License would be to\n\
refrain entirely from distribution of the Program.\n\
\n\
If any portion of this section is held invalid or unenforceable under\n\
any particular circumstance, the balance of the section is intended to\n\
apply and the section as a whole is intended to apply in other\n\
circumstances.\n\
\n\
It is not the purpose of this section to induce you to infringe any\n\
patents or other property right claims or to contest validity of any\n\
such claims; this section has the sole purpose of protecting the\n\
integrity of the free software distribution system, which is\n\
implemented by public license practices. Many people have made\n\
generous contributions to the wide range of software distributed\n\
through that system in reliance on consistent application of that\n\
system; it is up to the author/donor to decide if he or she is willing\n\
to distribute software through any other system and a licensee cannot\n\
impose that choice.\n\
\n\
This section is intended to make thoroughly clear what is believed to\n\
be a consequence of the rest of this License.\n\
\n\
8. If the distribution and/or use of the Program is restricted in\n\
certain countries either by patents or by copyrighted interfaces, the\n\
original copyright holder who places the Program under this License\n\
may add an explicit geographical distribution limitation excluding\n\
those countries, so that distribution is permitted only in or among\n\
countries not thus excluded. In such case, this License incorporates\n\
the limitation as if written in the body of this License.\n\
\n\
9. The Free Software Foundation may publish revised and/or new versions\n\
of the General Public License from time to time. Such new versions will\n\
be similar in spirit to the present version, but may differ in detail to\n\
address new problems or concerns.\n\
\n\
Each version is given a distinguishing version number. If the Program\n\
specifies a version number of this License which applies to it and \"any\n\
later version\", you have the option of following the terms and conditions\n\
either of that version or of any later version published by the Free\n\
Software Foundation. If the Program does not specify a version number of\n\
this License, you may choose any version ever published by the Free Software\n\
Foundation.\n\
\n\
10. If you wish to incorporate parts of the Program into other free\n\
programs whose distribution conditions are different, write to the author\n\
to ask for permission. For software which is copyrighted by the Free\n\
Software Foundation, write to the Free Software Foundation; we sometimes\n\
make exceptions for this. Our decision will be guided by the two goals\n\
of preserving the free status of all derivatives of our free software and\n\
of promoting the sharing and reuse of software generally.\n\
\n"));
immediate_quit--;
}
@ -280,28 +281,29 @@ static void
show_warranty_command (char *ignore, int from_tty)
{
immediate_quit++;
printf_filtered (" NO WARRANTY\n");
printf_filtered ("\n");
printf_filtered (" 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\n");
printf_filtered ("FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN\n");
printf_filtered ("OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\n");
printf_filtered ("PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\n");
printf_filtered ("OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n");
printf_filtered ("MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS\n");
printf_filtered ("TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE\n");
printf_filtered ("PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\n");
printf_filtered ("REPAIR OR CORRECTION.\n");
printf_filtered ("\n");
printf_filtered (" 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\n");
printf_filtered ("WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\n");
printf_filtered ("REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\n");
printf_filtered ("INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\n");
printf_filtered ("OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\n");
printf_filtered ("TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\n");
printf_filtered ("YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\n");
printf_filtered ("PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\n");
printf_filtered ("POSSIBILITY OF SUCH DAMAGES.\n");
printf_filtered ("\n");
printf_filtered (_("\
NO WARRANTY\n\
\n\
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\n\
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN\n\
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\n\
PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\n\
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n\
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS\n\
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE\n\
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\n\
REPAIR OR CORRECTION.\n\
\n\
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\n\
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\n\
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\n\
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\n\
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\n\
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\n\
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\n\
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\n\
POSSIBILITY OF SUCH DAMAGES.\n\
\n"));
immediate_quit--;
}
@ -309,15 +311,15 @@ void
_initialize_copying (void)
{
add_cmd ("copying", no_class, show_copying_command,
"Conditions for redistributing copies of GDB.",
_("Conditions for redistributing copies of GDB."),
&showlist);
add_cmd ("warranty", no_class, show_warranty_command,
"Various kinds of warranty you do not have.",
_("Various kinds of warranty you do not have."),
&showlist);
/* For old-timers, allow "info copying", etc. */
add_info ("copying", show_copying_command,
"Conditions for redistributing copies of GDB.");
_("Conditions for redistributing copies of GDB."));
add_info ("warranty", show_warranty_command,
"Various kinds of warranty you do not have.");
_("Various kinds of warranty you do not have."));
}