aboutsummaryrefslogtreecommitdiff
path: root/libcpp
diff options
context:
space:
mode:
Diffstat (limited to 'libcpp')
-rw-r--r--libcpp/ChangeLog94
-rw-r--r--libcpp/charset.cc2
-rw-r--r--libcpp/directives.cc21
-rw-r--r--libcpp/expr.cc18
-rw-r--r--libcpp/files.cc8
-rw-r--r--libcpp/include/cpplib.h20
-rw-r--r--libcpp/include/line-map.h19
-rw-r--r--libcpp/include/rich-location.h13
-rw-r--r--libcpp/internal.h7
-rw-r--r--libcpp/lex.cc30
-rw-r--r--libcpp/line-map.cc81
-rw-r--r--libcpp/macro.cc40
-rw-r--r--libcpp/po/ChangeLog20
-rw-r--r--libcpp/po/es.po899
-rw-r--r--libcpp/po/sr.po885
-rw-r--r--libcpp/po/zh_CN.po61
16 files changed, 1067 insertions, 1151 deletions
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
index 775b000..874a08a 100644
--- a/libcpp/ChangeLog
+++ b/libcpp/ChangeLog
@@ -1,3 +1,97 @@
+2025-08-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/120778
+ * include/cpplib.h (struct cpp_options): Add cpp_warn_keyword_macro.
+ (enum cpp_warning_reason): Add CPP_W_KEYWORD_MACRO enumerator.
+ (cpp_keyword_p): New inline function.
+ * directives.cc (do_undef): Support -Wkeyword-macro diagnostics.
+ * macro.cc (warn_of_redefinition): Ignore NODE_WARN flag on nodes
+ registered for -Wkeyword-macro.
+ (_cpp_create_definition): Support -Wkeyword-macro diagnostics.
+ Formatting fixes.
+
+2025-08-05 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/120778
+ * macro.cc (paste_tokens): Use %< and %> instead of \" in
+ diagnostics around %.*s.
+
+2025-08-04 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/120778
+ * macro.cc (stringify_arg): For C++26 emit a pedarn instead of warning
+ for \ at the end of stringification.
+
+2025-08-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/120845
+ * lex.cc (cpp_maybe_module_directive): Move eol variable declaration
+ to the start of the function, initialize to false and only set it to
+ peek->type == CPP_PRAGMA_EOL in the not_module case. Formatting fix.
+
+2025-07-30 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/120778
+ * internal.h (struct lexer_state): Add comma_ok member.
+ * expr.cc (_cpp_parse_expr): Initialize it to 0, increment on
+ CPP_OPEN_PAREN and CPP_QUERY, decrement on CPP_CLOSE_PAREN
+ and CPP_COLON.
+ (num_binary_op): For C++ pedwarn on comma operator if
+ pfile->state.comma_ok is 0 instead of !c99 or skip_eval.
+
+2025-07-25 David Malcolm <dmalcolm@redhat.com>
+
+ * charset.cc: Update comment for file rename.
+
+2025-07-25 David Malcolm <dmalcolm@redhat.com>
+
+ * internal.h: Update comment for diagnostic_t becoming
+ enum class diagnostics::kind.
+
+2025-07-25 David Malcolm <dmalcolm@redhat.com>
+
+ * include/cpplib.h: Update for moves to "source-printing".
+ * include/rich-location.h (class label_effects): Move to...
+ (class diagnostics::label_effects): ...here.
+
+2025-07-25 David Malcolm <dmalcolm@redhat.com>
+
+ * include/rich-location.h: Replace diagnostic_path with
+ diagnostics::paths::path.
+
+2025-06-17 Jason Merrill <jason@redhat.com>
+
+ * line-map.cc (linemap_location_from_module_p): Add.
+ * include/line-map.h: Declare it.
+
+2025-06-11 David Malcolm <dmalcolm@redhat.com>
+
+ PR other/116792
+ * include/line-map.h (typedef expanded_location): Convert to...
+ (struct expanded_location): ...this.
+ (operator==): New decl, for expanded_location.
+ (operator!=): Likewise.
+ * line-map.cc (operator==): New decl, for expanded_location.
+
+2025-05-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/108900
+ PR preprocessor/116047
+ PR preprocessor/120061
+ * files.cc (_cpp_stack_file): Revert 2025-03-28 change.
+ * line-map.cc (linemap_add): Use
+ SOURCE_LINE (from, linemap_included_from (map - 1)) + 1; instead of
+ SOURCE_LINE (from, from[1].start_location); to compute to_line
+ for LC_LEAVE. For LC_ENTER included_from computation, look at
+ map[-2] or even lower if map[-1] has the same start_location as
+ map[0].
+
+2025-04-28 Lewis Hyatt <lhyatt@gmail.com>
+
+ PR c/118838
+ * errors.cc (cpp_get_diagnostic_override_loc): New function.
+ * include/cpplib.h (cpp_get_diagnostic_override_loc): Declare.
+
2025-04-24 Jakub Jelinek <jakub@redhat.com>
PR c++/110343
diff --git a/libcpp/charset.cc b/libcpp/charset.cc
index e3accf8..95ba376 100644
--- a/libcpp/charset.cc
+++ b/libcpp/charset.cc
@@ -2420,7 +2420,7 @@ convert_escape (cpp_reader *pfile, const uchar *from, const uchar *limit,
{
encoding_rich_location rich_loc (pfile);
- /* diagnostic.cc does not support "%03o". When it does, this
+ /* pretty-print.cc does not support "%03o". When it does, this
code can use %03o directly in the diagnostic again. */
char buf[32];
sprintf(buf, "%03o", (int) c);
diff --git a/libcpp/directives.cc b/libcpp/directives.cc
index 4d06caa..47fb8fb 100644
--- a/libcpp/directives.cc
+++ b/libcpp/directives.cc
@@ -734,13 +734,30 @@ do_undef (cpp_reader *pfile)
if (pfile->cb.undef)
pfile->cb.undef (pfile, pfile->directive_line, node);
+ /* Handle -Wkeyword-macro registered identifiers. */
+ bool diagnosed = false;
+ if (CPP_OPTION (pfile, cpp_warn_keyword_macro) && cpp_keyword_p (node))
+ {
+ if (CPP_OPTION (pfile, cpp_pedantic)
+ && CPP_OPTION (pfile, cplusplus)
+ && CPP_OPTION (pfile, lang) >= CLK_GNUCXX26)
+ cpp_pedwarning (pfile, CPP_W_KEYWORD_MACRO,
+ "undefining keyword %qs", NODE_NAME (node));
+ else
+ cpp_warning (pfile, CPP_W_KEYWORD_MACRO,
+ "undefining keyword %qs", NODE_NAME (node));
+ diagnosed = true;
+ }
/* 6.10.3.5 paragraph 2: [#undef] is ignored if the specified
identifier is not currently defined as a macro name. */
if (cpp_macro_p (node))
{
if (node->flags & NODE_WARN)
- cpp_error (pfile, CPP_DL_WARNING,
- "undefining %qs", NODE_NAME (node));
+ {
+ if (!diagnosed)
+ cpp_error (pfile, CPP_DL_WARNING,
+ "undefining %qs", NODE_NAME (node));
+ }
else if (cpp_builtin_macro_p (node)
&& CPP_OPTION (pfile, warn_builtin_macro_redefined))
cpp_warning (pfile, CPP_W_BUILTIN_MACRO_REDEFINED,
diff --git a/libcpp/expr.cc b/libcpp/expr.cc
index 7bb57a3..910848d 100644
--- a/libcpp/expr.cc
+++ b/libcpp/expr.cc
@@ -1460,6 +1460,7 @@ _cpp_parse_expr (cpp_reader *pfile, const char *dir,
location_t virtual_location = 0;
pfile->state.skip_eval = 0;
+ pfile->state.comma_ok = 0;
/* Set up detection of #if ! defined(). */
pfile->mi_ind_cmacro = 0;
@@ -1521,6 +1522,10 @@ _cpp_parse_expr (cpp_reader *pfile, const char *dir,
lex_count--;
continue;
+ case CPP_OPEN_PAREN:
+ pfile->state.comma_ok++;
+ break;
+
default:
if ((int) op.op <= (int) CPP_EQ || (int) op.op >= (int) CPP_PLUS_EQ)
SYNTAX_ERROR2_AT (op.loc,
@@ -1574,13 +1579,16 @@ _cpp_parse_expr (cpp_reader *pfile, const char *dir,
case CPP_CLOSE_PAREN:
if (pfile->state.in_directive == 3 && top == pfile->op_stack)
goto embed_done;
+ pfile->state.comma_ok--;
continue;
case CPP_OR_OR:
if (!num_zerop (top->value))
pfile->state.skip_eval++;
break;
- case CPP_AND_AND:
case CPP_QUERY:
+ pfile->state.comma_ok++;
+ /* FALLTHRU */
+ case CPP_AND_AND:
if (num_zerop (top->value))
pfile->state.skip_eval++;
break;
@@ -1592,6 +1600,8 @@ _cpp_parse_expr (cpp_reader *pfile, const char *dir,
pfile->state.skip_eval++;
else
pfile->state.skip_eval--;
+ pfile->state.comma_ok--;
+ break;
default:
break;
}
@@ -2209,8 +2219,10 @@ num_binary_op (cpp_reader *pfile, cpp_num lhs, cpp_num rhs, enum cpp_ttype op)
/* Comma. */
default: /* case CPP_COMMA: */
- if (CPP_PEDANTIC (pfile) && (!CPP_OPTION (pfile, c99)
- || !pfile->state.skip_eval))
+ if (CPP_PEDANTIC (pfile)
+ && (CPP_OPTION (pfile, cplusplus)
+ ? !pfile->state.comma_ok
+ : (!CPP_OPTION (pfile, c99) || !pfile->state.skip_eval)))
cpp_pedwarning (pfile, CPP_W_PEDANTIC,
"comma operator in operand of #%s",
pfile->state.in_directive == 3
diff --git a/libcpp/files.cc b/libcpp/files.cc
index c1abde6..d80c4bf 100644
--- a/libcpp/files.cc
+++ b/libcpp/files.cc
@@ -1047,14 +1047,6 @@ _cpp_stack_file (cpp_reader *pfile, _cpp_file *file, include_type type,
&& (pfile->line_table->highest_location
!= LINE_MAP_MAX_LOCATION - 1));
- if (decrement && LINEMAPS_ORDINARY_USED (pfile->line_table))
- {
- const line_map_ordinary *map
- = LINEMAPS_LAST_ORDINARY_MAP (pfile->line_table);
- if (map && map->start_location == pfile->line_table->highest_location)
- decrement = false;
- }
-
if (decrement)
pfile->line_table->highest_location--;
diff --git a/libcpp/include/cpplib.h b/libcpp/include/cpplib.h
index 7c147ae..bbd88e5 100644
--- a/libcpp/include/cpplib.h
+++ b/libcpp/include/cpplib.h
@@ -620,6 +620,9 @@ struct cpp_options
/* True if -finput-charset= option has been used explicitly. */
bool cpp_input_charset_explicit;
+ /* True if -Wkeyword-macro. */
+ bool cpp_warn_keyword_macro;
+
/* -Wleading-whitespace= value. */
unsigned char cpp_warn_leading_whitespace;
@@ -757,7 +760,8 @@ enum cpp_warning_reason {
CPP_W_HEADER_GUARD,
CPP_W_PRAGMA_ONCE_OUTSIDE_HEADER,
CPP_W_LEADING_WHITESPACE,
- CPP_W_TRAILING_WHITESPACE
+ CPP_W_TRAILING_WHITESPACE,
+ CPP_W_KEYWORD_MACRO
};
/* Callback for header lookup for HEADER, which is the name of a
@@ -1250,6 +1254,17 @@ inline bool cpp_fun_like_macro_p (cpp_hashnode *node)
return cpp_user_macro_p (node) && node->value.macro->fun_like;
}
+/* Return true for nodes marked for -Wkeyword-macro diagnostics. */
+inline bool cpp_keyword_p (cpp_hashnode *node)
+{
+ /* As keywords are marked identifiers which don't start with underscore
+ or start with underscore followed by capital letter (except for
+ _Pragma). */
+ return ((node->flags & NODE_WARN)
+ && (NODE_NAME (node)[0] != '_'
+ || (NODE_NAME (node)[1] != '_' && NODE_NAME (node)[1] != 'P')));
+}
+
extern const unsigned char *cpp_macro_definition (cpp_reader *, cpp_hashnode *);
extern const unsigned char *cpp_macro_definition (cpp_reader *, cpp_hashnode *,
const cpp_macro *);
@@ -1610,7 +1625,8 @@ struct cpp_decoded_char
This is a tabstop value, along with a callback for getting the
widths of characters. Normally this callback is cpp_wcwidth, but we
support other schemes for escaping non-ASCII unicode as a series of
- ASCII chars when printing the user's source code in diagnostic-show-locus.cc
+ ASCII chars when printing the user's source code in
+ gcc/diagnostics/source-printing.cc
For example, consider:
- the Unicode character U+03C0 "GREEK SMALL LETTER PI" (UTF-8: 0xCF 0x80)
diff --git a/libcpp/include/line-map.h b/libcpp/include/line-map.h
index 75cc1ad..21a59af 100644
--- a/libcpp/include/line-map.h
+++ b/libcpp/include/line-map.h
@@ -1111,6 +1111,10 @@ extern location_t linemap_module_loc
extern void linemap_module_reparent
(line_maps *, location_t loc, location_t new_parent);
+/* TRUE iff the location comes from a module import. */
+extern bool linemap_location_from_module_p
+ (const line_maps *, location_t);
+
/* Restore the linemap state such that the map at LWM-1 continues.
Return start location of the new map. */
extern location_t linemap_module_restore
@@ -1280,7 +1284,7 @@ linemap_location_before_p (const line_maps *set,
return linemap_compare_locations (set, loc_a, loc_b) >= 0;
}
-typedef struct
+struct expanded_location
{
/* The name of the source file involved. */
const char *file;
@@ -1294,7 +1298,18 @@ typedef struct
/* In a system header?. */
bool sysp;
-} expanded_location;
+};
+
+extern bool
+operator== (const expanded_location &a,
+ const expanded_location &b);
+inline bool
+operator!= (const expanded_location &a,
+ const expanded_location &b)
+{
+ return !(a == b);
+}
+
/* This is enum is used by the function linemap_resolve_location
below. The meaning of the values is explained in the comment of
diff --git a/libcpp/include/rich-location.h b/libcpp/include/rich-location.h
index fe9868d..c74e80e 100644
--- a/libcpp/include/rich-location.h
+++ b/libcpp/include/rich-location.h
@@ -25,7 +25,7 @@ along with this program; see the file COPYING3. If not see
#include "label-text.h"
class range_label;
-class label_effects;
+namespace diagnostics { class label_effects; }
/* A hint to diagnostic_show_locus on how to print a source range within a
rich_location.
@@ -213,7 +213,7 @@ semi_embedded_vec<T, NUM_EMBEDDED>::truncate (int len)
}
class fixit_hint;
-class diagnostic_path;
+namespace diagnostics { namespace paths { class path; }}
/* A "rich" source code location, for use when printing diagnostics.
A rich_location has one or more carets&ranges, where the carets
@@ -520,8 +520,8 @@ class rich_location
}
/* An optional path through the code. */
- const diagnostic_path *get_path () const { return m_path; }
- void set_path (const diagnostic_path *path) { m_path = path; }
+ const diagnostics::paths::path *get_path () const { return m_path; }
+ void set_path (const diagnostics::paths::path *path) { m_path = path; }
/* A flag for hinting that the diagnostic involves character encoding
issues, and thus that it will be helpful to the user if we show some
@@ -567,7 +567,7 @@ protected:
static const int MAX_STATIC_FIXIT_HINTS = 2;
semi_embedded_vec <fixit_hint *, MAX_STATIC_FIXIT_HINTS> m_fixit_hints;
- const diagnostic_path *m_path;
+ const diagnostics::paths::path *m_path;
};
/* Abstract base class for labelling a range within a rich_location
@@ -596,7 +596,8 @@ class range_label
virtual label_text get_text (unsigned range_idx) const = 0;
/* Get any special effects for the label (e.g. links to other labels). */
- virtual const label_effects *get_effects (unsigned /*range_idx*/) const
+ virtual const diagnostics::label_effects *
+ get_effects (unsigned /*range_idx*/) const
{
return nullptr;
}
diff --git a/libcpp/internal.h b/libcpp/internal.h
index 9973836..bcf5559 100644
--- a/libcpp/internal.h
+++ b/libcpp/internal.h
@@ -282,6 +282,9 @@ struct lexer_state
/* Nonzero to skip evaluating part of an expression. */
unsigned int skip_eval;
+ /* Nonzero if CPP_COMMA is valid in expression in C++. */
+ unsigned int comma_ok;
+
/* Nonzero when tokenizing a deferred pragma. */
unsigned char in_deferred_pragma;
@@ -622,8 +625,8 @@ struct cpp_reader
zero of said file. */
location_t main_loc;
- /* If non-zero, override diagnostic locations (other than DK_NOTE
- diagnostics) to this one. */
+ /* If non-zero, override diagnostic locations (other than
+ diagnostics::kind::note diagnostics) to this one. */
location_t diagnostic_override_loc;
/* Returns true iff we should warn about UTF-8 bidirectional control
diff --git a/libcpp/lex.cc b/libcpp/lex.cc
index e7705a6..2ba9d58 100644
--- a/libcpp/lex.cc
+++ b/libcpp/lex.cc
@@ -3505,6 +3505,7 @@ cpp_maybe_module_directive (cpp_reader *pfile, cpp_token *result)
cpp_token *keyword = peek;
cpp_hashnode *(&n_modules)[spec_nodes::M_HWM][2] = pfile->spec_nodes.n_modules;
int header_count = 0;
+ bool eol = false;
/* Make sure the incoming state is as we expect it. This way we
can restore it using constants. */
@@ -3564,10 +3565,10 @@ cpp_maybe_module_directive (cpp_reader *pfile, cpp_token *result)
tokens. C++ keywords are not yet relevant. */
if (peek->type == CPP_NAME
|| peek->type == CPP_COLON
- || (header_count
- ? (peek->type == CPP_LESS
- || (peek->type == CPP_STRING && peek->val.str.text[0] != 'R')
- || peek->type == CPP_HEADER_NAME)
+ || (header_count
+ ? (peek->type == CPP_LESS
+ || (peek->type == CPP_STRING && peek->val.str.text[0] != 'R')
+ || peek->type == CPP_HEADER_NAME)
: peek->type == CPP_SEMICOLON))
{
pfile->state.pragma_allow_expansion = !CPP_OPTION (pfile, preprocessed);
@@ -3689,22 +3690,19 @@ cpp_maybe_module_directive (cpp_reader *pfile, cpp_token *result)
pfile->state.in_deferred_pragma = false;
/* Do not let this remain on. */
pfile->state.angled_headers = false;
+ /* If we saw EOL, we should drop it, because this isn't a module
+ control-line after all. */
+ eol = peek->type == CPP_PRAGMA_EOL;
}
/* In either case we want to backup the peeked tokens. */
- if (backup)
+ if (backup && (!eol || backup > 1))
{
- /* If we saw EOL, we should drop it, because this isn't a module
- control-line after all. */
- bool eol = peek->type == CPP_PRAGMA_EOL;
- if (!eol || backup > 1)
- {
- /* Put put the peeked tokens back */
- _cpp_backup_tokens_direct (pfile, backup);
- /* But if the last one was an EOL, forget it. */
- if (eol)
- pfile->lookaheads--;
- }
+ /* Put the peeked tokens back. */
+ _cpp_backup_tokens_direct (pfile, backup);
+ /* But if the last one was an EOL in the not_module case, forget it. */
+ if (eol)
+ pfile->lookaheads--;
}
}
diff --git a/libcpp/line-map.cc b/libcpp/line-map.cc
index 17e7f12..33701b5 100644
--- a/libcpp/line-map.cc
+++ b/libcpp/line-map.cc
@@ -621,8 +621,8 @@ linemap_add (line_maps *set, enum lc_reason reason,
#include "included", inside the same "includer" file. */
linemap_assert (!MAIN_FILE_P (map - 1));
- /* (MAP - 1) points to the map we are leaving. The
- map from which (MAP - 1) got included should be the map
+ /* (MAP - 1) points to the map we are leaving. The
+ map from which (MAP - 1) got included should be usually the map
that comes right before MAP in the same file. */
from = linemap_included_from_linemap (set, map - 1);
@@ -630,7 +630,24 @@ linemap_add (line_maps *set, enum lc_reason reason,
if (to_file == NULL)
{
to_file = ORDINARY_MAP_FILE_NAME (from);
- to_line = SOURCE_LINE (from, from[1].start_location);
+ /* Compute the line on which the map resumes, for #include this
+ should be the line after the #include line. Usually FROM is
+ the map right before LC_ENTER map - the first map of the included
+ file, and in that case SOURCE_LINE (from, from[1].start_location);
+ computes the right line (and does handle even some special cases
+ (e.g. where for returning from <command line> we still want to
+ be at line 0 or some -traditional-cpp cases). In rare cases
+ FROM can be followed by LC_RENAME created by linemap_line_start
+ for line right after #include line. If that happens,
+ start_location of the FROM[1] map will be the same as
+ start_location of FROM[2] LC_ENTER, but FROM[1] start_location
+ might not have advance enough for moving to a full next line.
+ In that case compute the line of #include line and add 1 to it
+ to advance to the next line. See PR120061. */
+ if (from[1].reason == LC_RENAME)
+ to_line = SOURCE_LINE (from, linemap_included_from (map - 1)) + 1;
+ else
+ to_line = SOURCE_LINE (from, from[1].start_location);
sysp = ORDINARY_MAP_IN_SYSTEM_HEADER_P (from);
}
else
@@ -660,11 +677,26 @@ linemap_add (line_maps *set, enum lc_reason reason,
if (set->depth == 0)
map->included_from = 0;
else
- /* The location of the end of the just-closed map. */
- map->included_from
- = (((map[0].start_location - 1 - map[-1].start_location)
- & ~((loc_one << map[-1].m_column_and_range_bits) - 1))
- + map[-1].start_location);
+ {
+ /* Compute location from whence this line map was included.
+ For #include this should be preferrably column 0 of the
+ line on which #include directive appears.
+ map[-1] is the just closed map and usually included_from
+ falls within that map. In rare cases linemap_line_start
+ can insert a new LC_RENAME map for the line immediately
+ after #include line, in that case map[-1] will have the
+ same start_location as the new one and so included_from
+ would not be from map[-1] but likely map[-2]. If that
+ happens, mask off map[-2] m_column_and_range_bits bits
+ instead of map[-1]. See PR120061. */
+ int i = -1;
+ while (map[i].start_location == map[0].start_location)
+ --i;
+ map->included_from
+ = (((map[0].start_location - 1 - map[i].start_location)
+ & ~((loc_one << map[i].m_column_and_range_bits) - 1))
+ + map[i].start_location);
+ }
set->depth++;
if (set->trace_includes)
trace_include (set, map);
@@ -735,6 +767,17 @@ linemap_module_restore (line_maps *set, line_map_uint_t lwm)
return 0;
}
+/* TRUE iff the location comes from a module import. */
+
+bool
+linemap_location_from_module_p (const line_maps *set, location_t loc)
+{
+ const line_map_ordinary *map = linemap_ordinary_map_lookup (set, loc);
+ while (map && map->reason != LC_MODULE)
+ map = linemap_included_from_linemap (set, map);
+ return !!map;
+}
+
/* Returns TRUE if the line table set tracks token locations across
macro expansion, FALSE otherwise. */
@@ -1917,6 +1960,28 @@ linemap_expand_location (const line_maps *set,
return xloc;
}
+bool
+operator== (const expanded_location &a,
+ const expanded_location &b)
+{
+ /* "file" can be null; for them to be equal they must both
+ have either null or nonnull values, and if non-null
+ they must compare as equal. */
+ if ((a.file == nullptr) != (b.file == nullptr))
+ return false;
+ if (a.file && strcmp (a.file, b.file))
+ return false;
+
+ if (a.line != b.line)
+ return false;
+ if (a.column != b.column)
+ return false;
+ if (a.data != b.data)
+ return false;
+ if (a.sysp != b.sysp)
+ return false;
+ return true;
+}
/* Dump line map at index IX in line table SET to STREAM. If STREAM
is NULL, use stderr. IS_MACRO is true if the caller wants to
diff --git a/libcpp/macro.cc b/libcpp/macro.cc
index be25710..a47e1fe 100644
--- a/libcpp/macro.cc
+++ b/libcpp/macro.cc
@@ -1003,7 +1003,10 @@ stringify_arg (cpp_reader *pfile, const cpp_token **first, unsigned int count)
/* Ignore the final \ of invalid string literals. */
if (backslash_count & 1)
{
- cpp_error (pfile, CPP_DL_WARNING,
+ cpp_error (pfile,
+ CPP_OPTION (pfile, cplusplus)
+ && CPP_OPTION (pfile, lang) >= CLK_GNUCXX26
+ ? CPP_DL_PEDWARN : CPP_DL_WARNING,
"invalid string literal, ignoring final %<\\%>");
dest--;
}
@@ -1068,7 +1071,7 @@ paste_tokens (cpp_reader *pfile, location_t location,
/* Mandatory error for all apart from assembler. */
if (CPP_OPTION (pfile, lang) != CLK_ASM)
cpp_error_with_line (pfile, CPP_DL_ERROR, location, 0,
- "pasting \"%.*s\" and \"%.*s\" does not give "
+ "pasting %<%.*s%> and %<%.*s%> does not give "
"a valid preprocessing token",
(int) (lhsend - buf), buf,
(int) (end - rhsstart), rhsstart);
@@ -3408,7 +3411,11 @@ warn_of_redefinition (cpp_reader *pfile, cpp_hashnode *node,
{
/* Some redefinitions need to be warned about regardless. */
if (node->flags & NODE_WARN)
- return true;
+ {
+ /* Ignore NODE_WARN on -Wkeyword-macro registered identifiers though. */
+ if (!CPP_OPTION (pfile, cpp_warn_keyword_macro) || !cpp_keyword_p (node))
+ return true;
+ }
/* Suppress warnings for builtins that lack the NODE_WARN flag,
unless Wbuiltin-macro-redefined. */
@@ -3946,6 +3953,25 @@ _cpp_create_definition (cpp_reader *pfile, cpp_hashnode *node,
if (name_loc)
macro->line = name_loc;
+ /* Handle -Wkeyword-macro registered identifiers. */
+ if (CPP_OPTION (pfile, cpp_warn_keyword_macro) && cpp_keyword_p (node))
+ {
+ if (macro->fun_like
+ && CPP_OPTION (pfile, cplusplus)
+ && (strcmp ((const char *) NODE_NAME (node), "likely") == 0
+ || strcmp ((const char *) NODE_NAME (node), "unlikely") == 0))
+ /* likely and unlikely can be defined as function-like macros. */;
+ else if (CPP_OPTION (pfile, cpp_pedantic)
+ && CPP_OPTION (pfile, cplusplus)
+ && CPP_OPTION (pfile, lang) >= CLK_GNUCXX26)
+ cpp_pedwarning_with_line (pfile, CPP_W_KEYWORD_MACRO, macro->line, 0,
+ "keyword %qs defined as macro",
+ NODE_NAME (node));
+ else
+ cpp_warning_with_line (pfile, CPP_W_KEYWORD_MACRO, macro->line, 0,
+ "keyword %qs defined as macro",
+ NODE_NAME (node));
+ }
if (cpp_macro_p (node))
{
if (CPP_OPTION (pfile, warn_unused_macros))
@@ -3954,12 +3980,12 @@ _cpp_create_definition (cpp_reader *pfile, cpp_hashnode *node,
if (warn_of_redefinition (pfile, node, macro))
{
const enum cpp_warning_reason reason
- = (cpp_builtin_macro_p (node) && !(node->flags & NODE_WARN))
- ? CPP_W_BUILTIN_MACRO_REDEFINED : CPP_W_NONE;
+ = (cpp_builtin_macro_p (node) && !(node->flags & NODE_WARN)
+ ? CPP_W_BUILTIN_MACRO_REDEFINED : CPP_W_NONE);
bool warned
- = cpp_pedwarning_with_line (pfile, reason, macro->line, 0,
- "%qs redefined", NODE_NAME (node));
+ = cpp_pedwarning_with_line (pfile, reason, macro->line, 0,
+ "%qs redefined", NODE_NAME (node));
if (warned && cpp_user_macro_p (node))
cpp_error_with_line (pfile, CPP_DL_NOTE, node->value.macro->line,
diff --git a/libcpp/po/ChangeLog b/libcpp/po/ChangeLog
index aedfd2c..99d0fb4 100644
--- a/libcpp/po/ChangeLog
+++ b/libcpp/po/ChangeLog
@@ -1,3 +1,23 @@
+2025-07-30 Joseph Myers <josmyers@redhat.com>
+
+ * sr.po: Update.
+
+2025-05-16 Joseph Myers <josmyers@redhat.com>
+
+ * es.po: Update.
+
+2025-05-15 Joseph Myers <josmyers@redhat.com>
+
+ * zh_CN.po: Update.
+
+2025-05-14 Joseph Myers <josmyers@redhat.com>
+
+ * es.po: Update.
+
+2025-05-12 Joseph Myers <josmyers@redhat.com>
+
+ * es.po: Update.
+
2025-03-20 Joseph Myers <josmyers@redhat.com>
* de.po: Update.
diff --git a/libcpp/po/es.po b/libcpp/po/es.po
index cc2cff2..65207a8 100644
--- a/libcpp/po/es.po
+++ b/libcpp/po/es.po
@@ -1,15 +1,15 @@
# Spanish localization for cpplib
-# Copyright (C) 2001 - 2024 Free Software Foundation, Inc.
+# Copyright (C) 2001 - 2025 Free Software Foundation, Inc.
# This file is distributed under the same license as the gcc package.
# Francisco Javier Serrador <fserrador@gmail.com>, 2018.
# Antonio Ceballos Roa <aceballos@gmail.com>, 2021.
-# Cristian Othón Martínez Vera <cfuga@cfuga.mx>, 2001 - 2012, 2022, 2023, 2024.
+# Cristian Othón Martínez Vera <cfuga@cfuga.mx>, 2001 - 2012, 2022, 2023, 2024, 2025
msgid ""
msgstr ""
-"Project-Id-Version: cpplib 14.1-b20240218\n"
+"Project-Id-Version: cpplib 15.1-b20250316\n"
"Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
"POT-Creation-Date: 2025-03-14 22:05+0000\n"
-"PO-Revision-Date: 2024-02-19 11:47-0600\n"
+"PO-Revision-Date: 2025-05-16 12:16-0600\n"
"Last-Translator: Cristian Othón Martínez Vera <cfuga@cfuga.mx>\n"
"Language-Team: Spanish <es@tp.org.es>\n"
"Language: es\n"
@@ -33,10 +33,9 @@ msgid "no iconv implementation, cannot convert from %s to %s"
msgstr "no hay una implementación de iconv, no se puede convertir de %s a %s"
#: charset.cc:870
-#, fuzzy, gcc-internal-format
-#| msgid "character 0x%lx is not in the basic source character set\n"
+#, gcc-internal-format
msgid "character 0x%lx is not in the basic source character set"
-msgstr "el carácter 0x%lx no está en el conjunto básico de caracteres fuente\n"
+msgstr "el carácter 0x%lx no está en el conjunto básico de caracteres fuente"
#: charset.cc:887 charset.cc:2639
msgid "converting to execution character set"
@@ -52,22 +51,19 @@ msgid "universal character names are only valid in C++ and C99"
msgstr "los nombres universales de carácter sólo son válidos en C++ y C99"
#: charset.cc:1553
-#, fuzzy, gcc-internal-format
-#| msgid "C99's universal character names are incompatible with C90"
+#, gcc-internal-format
msgid "C99%'s universal character names are incompatible with C90"
msgstr "los nombres universales de carácter de C99 son incompatibles con C90"
#: charset.cc:1556
-#, fuzzy, gcc-internal-format
-#| msgid "the meaning of '\\%c' is different in traditional C"
+#, gcc-internal-format
msgid "the meaning of %<\\%c%> is different in traditional C"
-msgstr "el significado de '\\%c' es diferente en C tradicional"
+msgstr "el significado de %<\\%c%> es diferente en C tradicional"
#: charset.cc:1595
-#, fuzzy, gcc-internal-format
-#| msgid "'\\N' not followed by '{'"
+#, gcc-internal-format
msgid "%<\\N%> not followed by %<{%>"
-msgstr "'\\N' no tiene una '{' a continuación"
+msgstr "%<\\N%> no tiene una %<{%> a continuación"
#: charset.cc:1625
msgid "empty named universal character escape sequence; treating it as separate tokens"
@@ -82,40 +78,34 @@ msgid "named universal character escapes are only valid in C++23"
msgstr "las secuencias de escape de carácter universal nombradas sólo son válidas en C++23"
#: charset.cc:1659
-#, fuzzy, gcc-internal-format
-#| msgid "\\N{%.*s} is not a valid universal character; treating it as separate tokens"
+#, gcc-internal-format
msgid "%<\\N{%.*s}%> is not a valid universal character; treating it as separate tokens"
-msgstr "\\N{%.*s} no es un carácter universal válido; se trata como elementos separados"
+msgstr "%<\\N{%.*s}%> no es un carácter universal válido; se trata como elementos separados"
#: charset.cc:1665
-#, fuzzy, gcc-internal-format
-#| msgid "\\N{%.*s} is not a valid universal character"
+#, gcc-internal-format
msgid "%<\\N{%.*s}%> is not a valid universal character"
-msgstr "\\N{%.*s} no es un carácter universal válido"
+msgstr "%<\\N{%.*s}%> no es un carácter universal válido"
#: charset.cc:1675
-#, fuzzy, gcc-internal-format
-#| msgid "did you mean \\N{%s}?"
+#, gcc-internal-format
msgid "did you mean %<\\N{%s}%>?"
-msgstr "¿Quiso decir \\N{%s}?"
+msgstr "¿Quiso decir %<\\N{%s}%>?"
#: charset.cc:1693
-#, fuzzy, gcc-internal-format
-#| msgid "'\\N{' not terminated with '}' after %.*s; treating it as separate tokens"
+#, gcc-internal-format
msgid "%<\\N{%> not terminated with %<}%> after %.*s; treating it as separate tokens"
-msgstr "'\\N{' no termina con '}' después de %.*s; se trata como elemntos separados"
+msgstr "%<\\N{%> no termina con %<}%> después de %.*s; se trata como elementos separados"
#: charset.cc:1702
-#, fuzzy, gcc-internal-format
-#| msgid "'\\N{' not terminated with '}' after %.*s"
+#, gcc-internal-format
msgid "%<\\N{%> not terminated with %<}%> after %.*s"
-msgstr "'\\N{' no termina con '}' después de %.*s"
+msgstr "%<\\N{%> no termina con %<}%> después de %.*s"
#: charset.cc:1710
-#, fuzzy, gcc-internal-format
-#| msgid "In _cpp_valid_ucn but not a UCN"
+#, gcc-internal-format
msgid "in %<_cpp_valid_ucn%> but not a UCN"
-msgstr "En _cpp_valid_unc pero no es un NUC"
+msgstr "En %<_cpp_valid_ucn%> pero no es un NUC"
#: charset.cc:1753
msgid "empty delimited escape sequence; treating it as separate tokens"
@@ -127,20 +117,17 @@ msgstr "secuencia de escape delimitada vacía"
#: charset.cc:1769 charset.cc:2172 charset.cc:2289
msgid "delimited escape sequences are only valid in C++23"
-msgstr "las secuencias de escape delimitadoas sólo son válidas en C++23"
+msgstr "las secuencias de escape delimitadas sólo son válidas en C++23"
#: charset.cc:1774 charset.cc:1779 charset.cc:2177 charset.cc:2182
#: charset.cc:2294 charset.cc:2299
-#, fuzzy
-#| msgid "delimited escape sequences are only valid in C++23"
msgid "delimited escape sequences are only valid in C2Y"
-msgstr "las secuencias de escape delimitadoas sólo son válidas en C++23"
+msgstr "las secuencias de escape delimitadas sólo son válidas en C2Y"
#: charset.cc:1794
-#, fuzzy, gcc-internal-format
-#| msgid "'\\u{' not terminated with '}' after %.*s; treating it as separate tokens"
+#, gcc-internal-format
msgid "%<\\u{%> not terminated with %<}%> after %.*s; treating it as separate tokens"
-msgstr "'\\u{' no termina con '}' después de %.*s; se trata como elementos separados"
+msgstr "%<\\u{%> no termina con %<}%> después de %.*s; se trata como elementos separados"
#: charset.cc:1806
#, gcc-internal-format
@@ -148,10 +135,9 @@ msgid "incomplete universal character name %.*s"
msgstr "nombre universal de carácter %.*s incompleto"
#: charset.cc:1810
-#, fuzzy, gcc-internal-format
-#| msgid "'\\u{' not terminated with '}' after %.*s"
+#, gcc-internal-format
msgid "%<\\u{%> not terminated with %<}%> after %.*s"
-msgstr "'\\u{' no termina con '}' después de %.*s"
+msgstr "%<\\u{%> no termina con %<}%> después de %.*s"
#: charset.cc:1818
#, gcc-internal-format
@@ -159,16 +145,14 @@ msgid "%.*s is not a valid universal character"
msgstr "%.*s no es un carácter universal válido"
#: charset.cc:1834 charset.cc:1838
-#, fuzzy, gcc-internal-format
-#| msgid "%.*s is not a valid universal character"
+#, gcc-internal-format
msgid "%.*s is not a valid universal character name before C23"
-msgstr "%.*s no es un carácter universal válido"
+msgstr "%.*s no es un carácter universal válido antes de C23"
#: charset.cc:1854 lex.cc:2096
-#, fuzzy, gcc-internal-format
-#| msgid "'$' in identifier or number"
+#, gcc-internal-format
msgid "%<$%> in identifier or number"
-msgstr "'$' en el identificador o número"
+msgstr "%<$%> en el identificador o número"
#: charset.cc:1864
#, gcc-internal-format
@@ -204,80 +188,70 @@ msgid "extended character %.*s is not valid at the start of an identifier"
msgstr "el carácter extendido %.*s no es válido al inicio de un identificador"
#: charset.cc:2129
-#, fuzzy, gcc-internal-format
-#| msgid "the meaning of '\\x' is different in traditional C"
+#, gcc-internal-format
msgid "the meaning of %<\\x%> is different in traditional C"
-msgstr "el significado de '\\x' es diferente en C tradicional"
+msgstr "el significado de %<\\x%> es diferente en C tradicional"
#: charset.cc:2190
-#, fuzzy, gcc-internal-format
-#| msgid "\\x used with no following hex digits"
+#, gcc-internal-format
msgid "%<\\x%> used with no following hex digits"
-msgstr "se usó \\x sin dígitos hexadecimales a continuación"
+msgstr "se usó %<\\x%> sin dígitos hexadecimales a continuación"
#: charset.cc:2196
-#, fuzzy, gcc-internal-format
-#| msgid "'\\x{' not terminated with '}' after %.*s"
+#, gcc-internal-format
msgid "%<\\x{%> not terminated with %<}%> after %.*s"
-msgstr "'\\x{' no termina con '}' después de %.*s"
+msgstr "%<\\x{%> no termina con %<}%> después de %.*s"
#: charset.cc:2204
msgid "hex escape sequence out of range"
-msgstr "secuencia de escape hexadecimal fuera de rango"
+msgstr "secuencia de escape hexadecimal fuera de intervalo"
#: charset.cc:2247
-#, fuzzy, gcc-internal-format
-#| msgid "'\\o' not followed by '{'"
+#, gcc-internal-format
msgid "%<\\o%> not followed by %<{%>"
-msgstr "'\\o' no tiene una '{' a continuación"
+msgstr "%<\\o%> no tiene una %<{%> a continuación"
#: charset.cc:2305
-#, fuzzy, gcc-internal-format
-#| msgid "'\\o{' not terminated with '}' after %.*s"
+#, gcc-internal-format
msgid "%<\\o{%> not terminated with %<}%> after %.*s"
-msgstr "'\\o{' no termina con '}' después de %.*s"
+msgstr "%<\\o{%> no termina con %<}%> después de %.*s"
#: charset.cc:2314
msgid "octal escape sequence out of range"
-msgstr "secuencia de escape octal fuera de rango"
+msgstr "secuencia de escape octal fuera de intervalo"
#: charset.cc:2366 charset.cc:2376
-#, fuzzy, gcc-internal-format
-#| msgid "numeric escape sequence in unevaluated string: '\\%c'"
+#, gcc-internal-format
msgid "numeric escape sequence in unevaluated string: %<\\%c%>"
-msgstr "secuencia de escape numérica en cadena sin evaluar: '\\%c'"
+msgstr "secuencia de escape numérica en cadena sin evaluar: %<\\%c%>"
#: charset.cc:2404
-#, fuzzy, gcc-internal-format
-#| msgid "the meaning of '\\a' is different in traditional C"
+#, gcc-internal-format
msgid "the meaning of %<\\a%> is different in traditional C"
-msgstr "el significado de '\\a' es diferente en C tradicional"
+msgstr "el significado de %<\\a%> es diferente en C tradicional"
#: charset.cc:2410
-#, fuzzy, gcc-internal-format
-#| msgid "non-ISO-standard escape sequence, '\\%c'"
+#, gcc-internal-format
msgid "non-ISO-standard escape sequence, %<\\%c%>"
-msgstr "secuencia de escape que no es estándard ISO, '\\%c'"
+msgstr "secuencia de escape que no es estándard ISO, %<\\%c%>"
#: charset.cc:2418
-#, fuzzy, gcc-internal-format
-#| msgid "unknown escape sequence: '\\%c'"
+#, gcc-internal-format
msgid "unknown escape sequence: %<\\%c%>"
-msgstr "secuencia de escape desconocida: '\\%c'"
+msgstr "secuencia de escape desconocida: %<\\%c%>"
#: charset.cc:2428
-#, fuzzy, gcc-internal-format
-#| msgid "unknown escape sequence: '\\%s'"
+#, gcc-internal-format
msgid "unknown escape sequence: %<\\%s%>"
-msgstr "secuencia de escape desconocida: '\\%s'"
+msgstr "secuencia de escape desconocida: %<\\%s%>"
#: charset.cc:2436
msgid "converting escape sequence to execution character set"
-msgstr "se convierte una secuencia de escape al conjunto de caracteres de ejecución"
+msgstr "se convierte la secuencia de escape al conjunto de caracteres de ejecución"
#: charset.cc:2576
msgid "missing open quote"
-msgstr "falta comilla abierta"
+msgstr "falta comilla al inicio"
#: charset.cc:2807
msgid "character not encodable in a single execution character code unit"
@@ -288,10 +262,9 @@ msgid "at least one character in a multi-character literal not encodable in a si
msgstr "por lo menos un carácter no es codificable en una literal multi-carácter en una sola ejecución de unidad de código de carácter"
#: charset.cc:2830
-#, fuzzy, gcc-internal-format
-#| msgid "multi-character literal with %ld characters exceeds 'int' size of %ld bytes"
+#, gcc-internal-format
msgid "multi-character literal with %ld characters exceeds %<int%> size of %ld bytes"
-msgstr "la literal multi-carácter con %ld caracteres excede el tamaño de 'int' de %ld bytes"
+msgstr "la literal multi-carácter con %ld caracteres excede el tamaño de %<int%> de %ld bytes"
#: charset.cc:2834 charset.cc:2929
msgid "multi-character literal cannot have an encoding prefix"
@@ -315,10 +288,9 @@ msgid "failure to convert %s to %s"
msgstr "no se puede convertir %s a %s"
#: directives.cc:243
-#, fuzzy, gcc-internal-format
-#| msgid "extra tokens at end of #%s directive"
+#, gcc-internal-format
msgid "extra tokens at end of %<#%s%> directive"
-msgstr "elementos extra al final de la directiva #%s"
+msgstr "elementos extra al final de la directiva %<#%s%>"
#: directives.cc:286
#, gcc-internal-format, gfc-internal-format
@@ -326,47 +298,40 @@ msgid "extra tokens at end of #%s directive"
msgstr "elementos extra al final de la directiva #%s"
#: directives.cc:396
-#, fuzzy, gcc-internal-format
-#| msgid "#%s is a GCC extension"
+#, gcc-internal-format
msgid "%<#%s%> is a GCC extension"
-msgstr "#%s es una extensión de GCC"
+msgstr "%<#%s%> es una extensión de GCC"
#: directives.cc:404 directives.cc:2686 directives.cc:2725
-#, fuzzy, gcc-internal-format
-#| msgid "#%s before C++23 is a GCC extension"
+#, gcc-internal-format
msgid "%<#%s%> before C++23 is a GCC extension"
-msgstr "#%s antes de C++23 es una extensión de GCC"
+msgstr "%<#%s%> antes de C++23 es una extensión de GCC"
#: directives.cc:409 directives.cc:415 directives.cc:1374 directives.cc:2690
#: directives.cc:2730
-#, fuzzy, gcc-internal-format
-#| msgid "#%s before C23 is a GCC extension"
+#, gcc-internal-format
msgid "%<#%s%> before C23 is a GCC extension"
-msgstr "#%s antes de C23 es una extensión de GCC"
+msgstr "%<#%s%> antes de C23 es una extensión de GCC"
#: directives.cc:423
-#, fuzzy, gcc-internal-format
-#| msgid "#%s is a deprecated GCC extension"
+#, gcc-internal-format
msgid "%<#%s%> is a deprecated GCC extension"
-msgstr "#%s es una extensión de GCC obsoleta"
+msgstr "%<#%s%> es una extensión de GCC obsoleta"
#: directives.cc:436
-#, fuzzy, gcc-internal-format
-#| msgid "suggest not using #elif in traditional C"
+#, gcc-internal-format
msgid "suggest not using %<#elif%> in traditional C"
-msgstr "se sugiere no usar #elif en C tradicional"
+msgstr "se sugiere no usar %<#elif%> en C tradicional"
#: directives.cc:439
-#, fuzzy, gcc-internal-format
-#| msgid "traditional C ignores #%s with the # indented"
+#, gcc-internal-format
msgid "traditional C ignores %<#%s%> with the %<#%> indented"
-msgstr "C tradicional descarta #%s con el # indentado"
+msgstr "C tradicional descarta %<#%s%> con el %<#%> indentado"
#: directives.cc:443
-#, fuzzy, gcc-internal-format
-#| msgid "suggest hiding #%s from traditional C with an indented #"
+#, gcc-internal-format
msgid "suggest hiding %<#%s%> from traditional C with an indented %<#%>"
-msgstr "se sugiere ocultar #%s de C tradicional con un # indentado"
+msgstr "se sugiere ocultar %<#%s%> de C tradicional con un %<#%> indentado"
#: directives.cc:468
msgid "embedding a directive within macro arguments is not portable"
@@ -387,44 +352,38 @@ msgid "invalid preprocessing directive #%s"
msgstr "directiva de preprocesamiento #%s inválida"
#: directives.cc:656
-#, fuzzy, gcc-internal-format
-#| msgid "\"%s\" cannot be used as a macro name"
+#, gcc-internal-format
msgid "%qs cannot be used as a macro name"
-msgstr "«%s» no se puede utilizar como nombre de macro"
+msgstr "%qs no se puede utilizar como nombre de macro"
#: directives.cc:663
-#, fuzzy, gcc-internal-format
-#| msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+#, gcc-internal-format
msgid "%qs cannot be used as a macro name as it is an operator in C++"
-msgstr "no se puede utilizar «%s» como un nombre de macro porque es un operador en C++"
+msgstr "no se puede utilizar %qs como un nombre de macro porque es un operador en C++"
#: directives.cc:666
-#, fuzzy, gcc-internal-format
-#| msgid "no macro name given in #%s directive"
+#, gcc-internal-format
msgid "no macro name given in %<#%s%> directive"
-msgstr "no se dio un nombre de macro en la directiva #%s"
+msgstr "no se dio un nombre de macro en la directiva %<#%s%>"
#: directives.cc:669
msgid "macro names must be identifiers"
msgstr "los nombres de macro deben ser identificadores"
#: directives.cc:743 directives.cc:747
-#, fuzzy, gcc-internal-format
-#| msgid "undefining \"%s\""
+#, gcc-internal-format
msgid "undefining %qs"
-msgstr "borrando la definición de «%s»"
+msgstr "se borra la definición de %qs"
#: directives.cc:805
-#, fuzzy, gcc-internal-format
-#| msgid "missing terminating > character"
+#, gcc-internal-format
msgid "missing terminating %<>%> character"
-msgstr "falta el carácter de terminación >"
+msgstr "falta el carácter de terminación %<>%>"
#: directives.cc:865
-#, fuzzy, gcc-internal-format
-#| msgid "#%s expects \"FILENAME\" or <FILENAME>"
+#, gcc-internal-format
msgid "%<#%s%> expects %<\"FILENAME\"%> or %<<FILENAME>%>"
-msgstr "#%s espera «NOMBREFICHERO» o <NOMBREFICHERO>"
+msgstr "%<#%s$> espera %<\"NOMBREFICHERO\"%> o %<<NOMBREFICHERO>%>"
#: directives.cc:911 directives.cc:1391
#, gcc-internal-format, gfc-internal-format
@@ -432,133 +391,116 @@ msgid "empty filename in #%s"
msgstr "nombre de fichero vacío en #%s"
#: directives.cc:920
-#, fuzzy, gcc-internal-format
-#| msgid "#include nested depth %u exceeds maximum of %u (use -fmax-include-depth=DEPTH to increase the maximum)"
+#, gcc-internal-format
msgid "%<#include%> nested depth %u exceeds maximum of %u (use %<-fmax-include-depth=DEPTH%> to increase the maximum)"
-msgstr "la profundidad anidada %u de #include excede el máximo %u (utilice -fmax-include-depth=PROFUNDIDAD para aumentar el máximo)"
+msgstr "la profundidad anidada %u de %<#include%> excede el máximo de %u (utilice %<-fmax-include-depth=PROFUNDIDAD%> para aumentar el máximo)"
#: directives.cc:965
-#, fuzzy, gcc-internal-format
-#| msgid "#include_next in primary source file"
+#, gcc-internal-format
msgid "%<#include_next%> in primary source file"
-msgstr "#include_next en fichero primario de código fuente"
+msgstr "%<#include_next%> en fichero de código fuente primario"
#: directives.cc:1037 directives.cc:1059 directives.cc:1062 directives.cc:1065
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "unbalanced stack in %s"
+#, gcc-internal-format, gfc-internal-format
msgid "unbalanced '%c'"
-msgstr "pila desbalanceada en %s"
+msgstr "«%c» desbalanceado"
#: directives.cc:1120 directives.cc:1311
#, gcc-internal-format
msgid "expected %<)%>"
-msgstr ""
+msgstr "se esperaba %<)%>"
#: directives.cc:1126 directives.cc:1177
-#, fuzzy
-#| msgid "expected parameter name, found \"%s\""
msgid "expected parameter name"
-msgstr "se esperaba un nombre de parámetro; se ha encontrado «%s»"
+msgstr "se esperaba un nombre de parámetro"
#: directives.cc:1137
#, gcc-internal-format
msgid "%<gnu::base64%> parameter conflicts with %<limit%> or %<gnu::offset%> parameters"
-msgstr ""
+msgstr "el parámetro %<gnu::base64%> tiene conflictos con los parámetros %<limit%> o %<gnu::offset%>"
#: directives.cc:1147
#, gcc-internal-format
msgid "%<gnu::base64%> parameter required in preprocessed source"
-msgstr ""
+msgstr "se requiere el parámetro %<gnu::base64%> en una fuente preprocesada"
#: directives.cc:1168
#, gcc-internal-format
msgid "expected %<:%>"
-msgstr ""
+msgstr "se esperaba %<:%>"
#: directives.cc:1235
-#, fuzzy, gcc-internal-format
-#| msgid "duplicate macro parameter \"%s\""
+#, gcc-internal-format
msgid "duplicate embed parameter '%.*s%s%.*s'"
-msgstr "parámetro de macro «%s» duplicado"
+msgstr "parámetro imbuído «%.*s%s%.*s» duplicado"
#: directives.cc:1247
#, gcc-internal-format
msgid "unknown embed parameter '%.*s%s%.*s'"
-msgstr ""
+msgstr "parámetro imbuído «%.*s%s%.*s» desconocido"
#: directives.cc:1256
#, gcc-internal-format
msgid "expected %<(%>"
-msgstr ""
+msgstr "se esperaba %<(%>"
#: directives.cc:1269
#, gcc-internal-format
msgid "too large %<gnu::offset%> argument"
-msgstr ""
+msgstr "el argumento %<gnu::offset%> es demasiado grande"
#: directives.cc:1316
-#, fuzzy
-#| msgid "null character(s) preserved in literal"
msgid "expected character string literal"
-msgstr "caracter(es) nulo(s) preservados en la literal"
+msgstr "se esperaba una literal de carácter de cadena"
#: directives.cc:1361
-#, fuzzy, gcc-internal-format
-#| msgid "suggest not using #elif in traditional C"
+#, gcc-internal-format
msgid "%<#embed%> not supported in traditional C"
-msgstr "se sugiere no usar #elif en C tradicional"
+msgstr "no se admite %<#embed%> en C tradicional"
#: directives.cc:1370
-#, fuzzy, gcc-internal-format
-#| msgid "#%s before C++23 is a GCC extension"
+#, gcc-internal-format
msgid "%<#%s%> before C++26 is a GCC extension"
-msgstr "#%s antes de C++23 es una extensión de GCC"
+msgstr "%<#%s%> antes de C++26 es una extensión de GCC"
#: directives.cc:1379
-#, fuzzy, gcc-internal-format
-#| msgid "#%s is a GCC extension"
+#, gcc-internal-format
msgid "%<#%s%> is a C23 feature"
-msgstr "#%s es una extensión de GCC"
+msgstr "%<#%s%> es una característica de C23"
#: directives.cc:1436
-#, fuzzy, gcc-internal-format
-#| msgid "invalid flag \"%s\" in line directive"
+#, gcc-internal-format
msgid "invalid flag %qs in line directive"
-msgstr "indicador «%s» inválido en la línea de directiva"
+msgstr "indicador %qs inválido en la línea de directiva"
#: directives.cc:1504
-#, fuzzy, gcc-internal-format
-#| msgid "unexpected end of file after #line"
+#, gcc-internal-format
msgid "unexpected end of file after %<#line%>"
-msgstr "fin de fichero inesperado después de #line"
+msgstr "fin de fichero inesperado después de %<#line%>"
#: directives.cc:1507
-#, fuzzy, gcc-internal-format
-#| msgid "\"%s\" after #line is not a positive integer"
+#, gcc-internal-format
msgid "%qs after %<#line%> is not a positive integer"
-msgstr "«%s» después de #line no es un entero positivo"
+msgstr "%qs después de %<#line%> no es un entero positivo"
#: directives.cc:1513 directives.cc:1516
msgid "line number out of range"
-msgstr "número de línea fuera de rango"
+msgstr "número de línea fuera de intervalo"
#: directives.cc:1529 directives.cc:1610
-#, fuzzy, gcc-internal-format
-#| msgid "\"%s\" is not a valid filename"
+#, gcc-internal-format
msgid "%qs is not a valid filename"
-msgstr "«%s» no es un nombre de fichero válido"
+msgstr "%qs no es un nombre de fichero válido"
#: directives.cc:1570
-#, fuzzy, gcc-internal-format
-#| msgid "\"%s\" after # is not a positive integer"
+#, gcc-internal-format
msgid "%qs after %<#%> is not a positive integer"
-msgstr "«%s» después de # no es un entero positivo"
+msgstr "%qs después de %<#%> no es un entero positivo"
#: directives.cc:1637
-#, fuzzy, gcc-internal-format
-#| msgid "file \"%s\" linemarker ignored due to incorrect nesting"
+#, gcc-internal-format
msgid "file %qs linemarker ignored due to incorrect nesting"
-msgstr "se descarta la marca lineal de fichero «%s» debido a anidación incorrecta"
+msgstr "se descarta la marca lineal de fichero %qs debido a anidación incorrecta"
#: directives.cc:1715 directives.cc:1717 directives.cc:1719 directives.cc:2326
#, gcc-internal-format, gfc-internal-format
@@ -571,68 +513,58 @@ msgid "invalid #%s directive"
msgstr "directiva #%s inválida"
#: directives.cc:1806
-#, fuzzy, gcc-internal-format
-#| msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+#, gcc-internal-format
msgid "registering pragmas in namespace %qs with mismatched name expansion"
-msgstr "se registran pragmas en el espacio de nombres «%s» con una expansión de nombre que no coincide"
+msgstr "se registran pragmas en el espacio de nombres %qs con una expansión de nombre que no coincide"
#: directives.cc:1815
-#, fuzzy, gcc-internal-format
-#| msgid "registering pragma \"%s\" with name expansion and no namespace"
+#, gcc-internal-format
msgid "registering pragma %qs with name expansion and no namespace"
-msgstr "se registra el pragma «%s» con expansión de nombre y sin un espacio de nombres"
+msgstr "se registra el pragma %qs con expansión de nombre y sin un espacio de nombres"
#: directives.cc:1833
-#, fuzzy, gcc-internal-format
-#| msgid "registering \"%s\" as both a pragma and a pragma namespace"
+#, gcc-internal-format
msgid "registering %qs as both a pragma and a pragma namespace"
-msgstr "se registra «%s» como un pragma y como un espacio de nombres de pragma"
+msgstr "se registra %qs como un pragma y como un espacio de nombres de pragma"
#: directives.cc:1836
-#, fuzzy, gcc-internal-format
-#| msgid "#pragma %s %s is already registered"
+#, gcc-internal-format
msgid "%<#pragma %s %s%> is already registered"
-msgstr "#pragma %s %s ya está registrado"
+msgstr "%<#pragma %s %s%> ya está registrado"
#: directives.cc:1839
-#, fuzzy, gcc-internal-format
-#| msgid "#pragma %s is already registered"
+#, gcc-internal-format
msgid "%<#pragma %s%> is already registered"
-msgstr "#pragma %s ya está registrado"
+msgstr "%<#pragma %s%> ya está registrado"
#: directives.cc:1870
msgid "registering pragma with NULL handler"
msgstr "se registra un pragma con manejador NULL"
#: directives.cc:2088
-#, fuzzy, gcc-internal-format
-#| msgid "#pragma once in main file"
+#, gcc-internal-format
msgid "%<#pragma once%> in main file"
-msgstr "#pragma una vez en el fichero principal"
+msgstr "%<#pragma once%> en el fichero principal"
#: directives.cc:2158
-#, fuzzy, gcc-internal-format
-#| msgid "invalid #pragma push_macro directive"
+#, gcc-internal-format
msgid "invalid %<#pragma %s_macro%> directive"
-msgstr "directiva #pragma push_macro inválida"
+msgstr "directiva %<#pragma %s_macro%> inválida"
#: directives.cc:2237
-#, fuzzy, gcc-internal-format
-#| msgid "invalid #pragma GCC poison directive"
+#, gcc-internal-format
msgid "invalid %<#pragma GCC poison%> directive"
-msgstr "directiva #pragma de GCC envenenada inválida"
+msgstr "directiva %<#pragma GCC poison%> inválida"
#: directives.cc:2246
-#, fuzzy, gcc-internal-format
-#| msgid "poisoning existing macro \"%s\""
+#, gcc-internal-format
msgid "poisoning existing macro %qs"
-msgstr "se envenena el macro existente «%s»"
+msgstr "se envenena el macro existente %qs"
#: directives.cc:2268
-#, fuzzy, gcc-internal-format
-#| msgid "#pragma system_header ignored outside include file"
+#, gcc-internal-format
msgid "%<#pragma system_header%> ignored outside include file"
-msgstr "se descarta #pragma system_header fuera del fichero a incluir"
+msgstr "se descarta %<#pragma system_header%> fuera del fichero a incluir"
#: directives.cc:2293
#, gcc-internal-format, gfc-internal-format
@@ -645,66 +577,56 @@ msgid "current file is older than %s"
msgstr "el fichero actual es más antiguo que %s"
#: directives.cc:2321
-#, fuzzy, gcc-internal-format
-#| msgid "invalid \"#pragma GCC %s\" directive"
+#, gcc-internal-format
msgid "invalid %<#pragma GCC %s%> directive"
-msgstr "directiva «#pragma GCC %s» inválida"
+msgstr "directiva %<#pragma GCC %s%> inválida"
#: directives.cc:2541
-#, fuzzy, gcc-internal-format
-#| msgid "_Pragma takes a parenthesized string literal"
+#, gcc-internal-format
msgid "%<_Pragma%> takes a parenthesized string literal"
-msgstr "_Pragma lleva una cadena literal entre paréntesis"
+msgstr "%<_Pragma%> lleva una cadena literal entre paréntesis"
#: directives.cc:2624
-#, fuzzy, gcc-internal-format
-#| msgid "#else without #if"
+#, gcc-internal-format
msgid "%<#else%> without %<#if%>"
-msgstr "#else sin #if"
+msgstr "%<#else%> sin %<#if%>"
#: directives.cc:2629
-#, fuzzy, gcc-internal-format
-#| msgid "#else after #else"
+#, gcc-internal-format
msgid "%<#else%> after %<#else%>"
-msgstr "#else después de #else"
+msgstr "%<#else%> después de %<#else%>"
#: directives.cc:2631 directives.cc:2666
msgid "the conditional began here"
msgstr "el condicional empezó aquí"
#: directives.cc:2657
-#, fuzzy, gcc-internal-format
-#| msgid "#%s without #if"
+#, gcc-internal-format
msgid "%<#%s%> without %<#if%>"
-msgstr "#%s sin #if"
+msgstr "%<#%s%> sin %<#if%>"
#: directives.cc:2663
-#, fuzzy, gcc-internal-format
-#| msgid "#%s after #else"
+#, gcc-internal-format
msgid "%<#%s%> after %<#else%>"
-msgstr "#%s después de #else"
+msgstr "%<#%s%> después de %<#else%>"
#: directives.cc:2767
-#, fuzzy, gcc-internal-format
-#| msgid "#endif without #if"
+#, gcc-internal-format
msgid "%<#endif%> without %<#if%>"
-msgstr "#endif sin #if"
+msgstr "%<#endif%> sin %<#if%>"
#: directives.cc:2852
-#, fuzzy, gcc-internal-format
-#| msgid "missing '(' after predicate"
+#, gcc-internal-format
msgid "missing %<(%> after predicate"
-msgstr "falta '(' después del predicado"
+msgstr "falta %<(%> después del predicado"
#: directives.cc:2870
-#, fuzzy, gcc-internal-format
-#| msgid "missing ')' to complete answer"
+#, gcc-internal-format
msgid "missing %<)%> to complete answer"
-msgstr "falta ')' para completar la respuesta"
+msgstr "falta %<)%> para completar la respuesta"
#: directives.cc:2882
-#, fuzzy, gcc-internal-format
-#| msgid "predicate's answer is empty"
+#, gcc-internal-format
msgid "predicate%'s answer is empty"
msgstr "la respuesta del predicado está vacía"
@@ -717,10 +639,9 @@ msgid "predicate must be an identifier"
msgstr "el predicado debe ser un identificador"
#: directives.cc:2997
-#, fuzzy, gcc-internal-format
-#| msgid "\"%s\" re-asserted"
+#, gcc-internal-format
msgid "%qs re-asserted"
-msgstr "«%s» reafirmado"
+msgstr "%qs reafirmado"
#: directives.cc:3305
#, gcc-internal-format, gfc-internal-format
@@ -741,16 +662,14 @@ msgid "fixed-point constants are a GCC extension"
msgstr "las constantes de coma fija son una extensión GCC"
#: expr.cc:721
-#, fuzzy, gcc-internal-format
-#| msgid "invalid prefix \"0b\" for floating constant"
+#, gcc-internal-format
msgid "invalid prefix %<0b%> for floating constant"
-msgstr "prefijo «0b» inválido en la constante de coma flotante"
+msgstr "prefijo %<0b%> inválido en la constante de coma flotante"
#: expr.cc:727
-#, fuzzy, gcc-internal-format
-#| msgid "invalid prefix \"0b\" for floating constant"
+#, gcc-internal-format
msgid "invalid prefix %<0o%> for floating constant"
-msgstr "prefijo «0b» inválido en la constante de coma flotante"
+msgstr "prefijo %<0o%> inválido en la constante de coma flotante"
#: expr.cc:740
msgid "use of C++17 hexadecimal floating constant"
@@ -761,38 +680,32 @@ msgid "use of C99 hexadecimal floating constant"
msgstr "uso de una constante de coma flotante hexadecimal C99"
#: expr.cc:789
-#, fuzzy, gcc-internal-format
-#| msgid "invalid suffix \"%.*s\" on floating constant"
+#, gcc-internal-format
msgid "invalid suffix %<%.*s%> on floating constant"
-msgstr "sufijo «%.*s» inválido en la constante de coma flotante"
+msgstr "sufijo %<%.*s%> inválido en una constante de coma flotante"
#: expr.cc:800 expr.cc:870
-#, fuzzy, gcc-internal-format
-#| msgid "traditional C rejects the \"%.*s\" suffix"
+#, gcc-internal-format
msgid "traditional C rejects the %<%.*s%> suffix"
-msgstr "C tradicional rechaza «%.*s» como sufijo"
+msgstr "C tradicional rechaza %<%.*s%> como sufijo"
#: expr.cc:809
msgid "suffix for double constant is a GCC extension"
msgstr "el sufijo para una constante doble es una extensión GCC"
#: expr.cc:815
-#, fuzzy, gcc-internal-format
-#| msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+#, gcc-internal-format
msgid "invalid suffix %<%.*s%> with hexadecimal floating constant"
-msgstr "sufijo «%.*s» inválido en la constante de coma flotante hexadecimal"
+msgstr "sufijo %<%.*s%> inválido en una constante de coma flotante hexadecimal"
#: expr.cc:829 expr.cc:833
-#, fuzzy
-#| msgid "decimal float constants are a C23 feature"
msgid "decimal floating constants are a C23 feature"
msgstr "las constantes de coma flotante decimal son una característica de C23"
#: expr.cc:853
-#, fuzzy, gcc-internal-format
-#| msgid "invalid suffix \"%.*s\" on integer constant"
+#, gcc-internal-format
msgid "invalid suffix %<%.*s%> on integer constant"
-msgstr "sufijo «%.*s» inválido en la constante entera"
+msgstr "sufijo %<%.*s%> inválido en una constante entera"
#: expr.cc:878
msgid "use of C++11 long long integer constant"
@@ -822,20 +735,16 @@ msgid "imaginary constants are a GCC extension"
msgstr "las constantes imaginarias son una extensión de GCC"
#: expr.cc:939
-#, fuzzy
-#| msgid "binary constants are a C23 feature or GCC extension"
msgid "imaginary constants are a C2Y feature or GCC extension"
-msgstr "las constantes binarias son una característica de C23 o una extensión de GCC"
+msgstr "las constantes binarias son una característica de C2Y o una extensión de GCC"
#: expr.cc:944
-#, fuzzy
-#| msgid "binary constants are a C23 feature"
msgid "imaginary constants are a C2Y feature"
-msgstr "las constantes binarias son una característica de C23"
+msgstr "las constantes imaginarias son una característica de C2Y"
#: expr.cc:956
msgid "binary constants are a C++14 feature or GCC extension"
-msgstr "las constantes binarias son una característica C++14 o una extensión de GCC"
+msgstr "las constantes binarias son una característica de C++14 o una extensión de GCC"
#: expr.cc:961
msgid "binary constants are a C23 feature or GCC extension"
@@ -846,16 +755,14 @@ msgid "binary constants are a C23 feature"
msgstr "las constantes binarias son una característica de C23"
#: expr.cc:974
-#, fuzzy, gcc-internal-format
-#| msgid "binary constants are a C23 feature or GCC extension"
+#, gcc-internal-format
msgid "%<0o%> prefixed constants are a C2Y feature or GCC extension"
-msgstr "las constantes binarias son una característica de C23 o una extensión de GCC"
+msgstr "las constantes con prefijo %<0o%> son una característica de C2Y o una extensión de GCC"
#: expr.cc:979
-#, fuzzy, gcc-internal-format
-#| msgid "binary constants are a C23 feature"
+#, gcc-internal-format
msgid "%<0o%> prefixed constants are a C2Y feature"
-msgstr "las constantes binarias son una característica de C23"
+msgstr "las constantes con prefijo %<0o%> son una característica de C2Y"
#: expr.cc:1077
msgid "integer constant is too large for its type"
@@ -868,31 +775,27 @@ msgstr "la constante entera es tan grande que es unsigned"
#: expr.cc:1189
#, gcc-internal-format
msgid "%<defined%> in %<#embed%> parameter"
-msgstr ""
+msgstr "%<defined%> en un parámetro %<#embed%>"
#: expr.cc:1206
-#, fuzzy, gcc-internal-format
-#| msgid "missing ')' after \"defined\""
+#, gcc-internal-format
msgid "missing %<)%> after %<defined%>"
-msgstr "falta ')' después de «defined»"
+msgstr "falta %<)%> después de %<defined%>"
#: expr.cc:1213
-#, fuzzy, gcc-internal-format
-#| msgid "operator \"defined\" requires an identifier"
+#, gcc-internal-format
msgid "operator %<defined%> requires an identifier"
-msgstr "el operador «defined» requiere un identificador"
+msgstr "el operador %<defined%> requiere un identificador"
#: expr.cc:1221
-#, fuzzy, gcc-internal-format
-#| msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+#, gcc-internal-format
msgid "(%qs is an alternative token for %qs in C++)"
-msgstr "(«%s» es un elemento alternativo para «%s» en C++)"
+msgstr "(%qs es un elemento alternativo para %qs en C++)"
#: expr.cc:1234
-#, fuzzy, gcc-internal-format
-#| msgid "this use of \"defined\" may not be portable"
+#, gcc-internal-format
msgid "this use of %<defined%> may not be portable"
-msgstr "este uso de «defined» puede no ser transportable"
+msgstr "este uso de %<defined%> puede no ser transportable"
#: expr.cc:1279
msgid "user-defined literal in preprocessor expression"
@@ -907,10 +810,9 @@ msgid "imaginary number in preprocessor expression"
msgstr "número imaginario en una expresión del preprocesador"
#: expr.cc:1339
-#, fuzzy, gcc-internal-format
-#| msgid "\"%s\" is not defined, evaluates to 0"
+#, gcc-internal-format
msgid "%qs is not defined, evaluates to %<0%>"
-msgstr "«%s» no está definido, evalúa a 0"
+msgstr "%qs no está definido, evalúa a %<0%>"
#: expr.cc:1351
msgid "assertions are a GCC extension"
@@ -927,82 +829,73 @@ msgstr "pila desbalanceada en %s"
#: expr.cc:1633
msgid "negative embed parameter operand"
-msgstr ""
+msgstr "operando de parámetro imbuído negativo"
#: expr.cc:1639
msgid "too large embed parameter operand"
-msgstr ""
+msgstr "operando de parámetro imbuído demasiado grande"
#: expr.cc:1658
#, gcc-internal-format, gfc-internal-format
msgid "impossible operator '%u'"
-msgstr "operador '%u' imposible"
+msgstr "operador «%u» imposible"
#: expr.cc:1759
-#, fuzzy, gcc-internal-format
-#| msgid "missing ')' in expression"
+#, gcc-internal-format
msgid "missing %<)%> in expression"
-msgstr "falta ')' en la expresión"
+msgstr "falta %<)%> en la expresión"
#: expr.cc:1788
-#, fuzzy, gcc-internal-format
-#| msgid "'?' without following ':'"
+#, gcc-internal-format
msgid "%<?%> without following %<:%>"
-msgstr "'?' sin ':' a continuación"
+msgstr "%<?%> sin %<:%> a continuación"
#: expr.cc:1798
msgid "integer overflow in preprocessor expression"
-msgstr "desbordamiento entero en expresión del preprocesador"
+msgstr "desbordamiento entero en una expresión del preprocesador"
#: expr.cc:1803
-#, fuzzy, gcc-internal-format
-#| msgid "missing '(' in expression"
+#, gcc-internal-format
msgid "missing %<(%> in expression"
-msgstr "falta '(' en la expresión"
+msgstr "falta %<(%> en la expresión"
#: expr.cc:1835
-#, fuzzy, gcc-internal-format
-#| msgid "the left operand of \"%s\" changes sign when promoted"
+#, gcc-internal-format
msgid "the left operand of %qs changes sign when promoted"
-msgstr "el operando izquierdo de «%s» cambia de signo cuando es promovido"
+msgstr "el operando izquierdo de %qs cambia de signo cuando es promovido"
#: expr.cc:1840
-#, fuzzy, gcc-internal-format
-#| msgid "the right operand of \"%s\" changes sign when promoted"
+#, gcc-internal-format
msgid "the right operand of %qs changes sign when promoted"
-msgstr "el operando derecho de «%s» cambia de signo cuando es promovido"
+msgstr "el operando derecho de %qs cambia de signo cuando es promovido"
#: expr.cc:2099
msgid "traditional C rejects the unary plus operator"
-msgstr "C tradicional rechaza el operador unario mas"
+msgstr "C tradicional rechaza el operador unario más"
#: expr.cc:2197
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "comma operator in operand of #if"
+#, gcc-internal-format, gfc-internal-format
msgid "comma operator in operand of #%s"
-msgstr "operador coma en operando de #if"
+msgstr "operador coma en operando de #%s"
#: expr.cc:2335
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "division by zero in #if"
+#, gcc-internal-format, gfc-internal-format
msgid "division by zero in #%s"
-msgstr "división entre cero en #if"
+msgstr "división entre cero en #%s"
#: files.cc:530
-#, fuzzy, gcc-internal-format
-#| msgid "NULL directory in find_file"
+#, gcc-internal-format
msgid "NULL directory in %<find_file%>"
-msgstr "directorio NULL en find_file"
+msgstr "directorio NULL en %<find_file%>"
#: files.cc:603
msgid "one or more PCH files were found, but they were invalid"
-msgstr "se encontró uno o más ficheros PCH, pero eran inválidos"
+msgstr "se encontraron uno o más ficheros PCH, pero eran inválidos"
#: files.cc:607
-#, fuzzy, gcc-internal-format
-#| msgid "use -Winvalid-pch for more information"
+#, gcc-internal-format
msgid "use %<-Winvalid-pch%> for more information"
-msgstr "use -Winvalid-pch para más información"
+msgstr "use %<-Winvalid-pch%> para más información"
#: files.cc:737 files.cc:1661
#, gcc-internal-format, gfc-internal-format
@@ -1027,12 +920,12 @@ msgstr "no hay ruta de inclusión en la cual se pueda buscar %s"
#: files.cc:1455
#, gcc-internal-format
msgid "%<gnu::base64%> parameter can be only used with %<\".\"%>"
-msgstr ""
+msgstr "el parámetro %<gnu::base64%> solamente se puede usar con %<\".\"%>"
#: files.cc:1472
#, gcc-internal-format
msgid "%<gnu::base64%> argument not valid base64 encoded string"
-msgstr ""
+msgstr "el argumento de %<gnu::base64%> no es una cadena codificada en base64 válida"
#: files.cc:2228
msgid "Multiple include guards may be useful for:\n"
@@ -1041,18 +934,17 @@ msgstr "Guardias múltiples de include pueden ser útiles para:\n"
#: files.cc:2306
#, gcc-internal-format
msgid "header guard %qs followed by %<#define%> of a different macro"
-msgstr ""
+msgstr "guarda de cabecera %qs seguida por %<#define%> de un macro diferente"
#: files.cc:2310
#, gcc-internal-format
msgid "%qs is defined here; did you mean %qs?"
-msgstr ""
+msgstr "%qs se define aquí; ¿quiso decir %qs?"
#: init.cc:676
-#, fuzzy, gcc-internal-format
-#| msgid "cppchar_t must be an unsigned type"
+#, gcc-internal-format
msgid "%<cppchar_t%> must be an unsigned type"
-msgstr "cppchar_t debe ser de un tipo unsigned"
+msgstr "%<cppchar_t%> debe ser de un tipo unsigned"
#: init.cc:680
#, gcc-internal-format, gfc-internal-format
@@ -1060,28 +952,24 @@ msgid "preprocessor arithmetic has maximum precision of %lu bits; target require
msgstr "la aritmética del preprocesador tiene una precisión máxima de %lu bits; el objetivo requiere de %lu bits"
#: init.cc:687
-#, fuzzy, gcc-internal-format
-#| msgid "CPP arithmetic must be at least as precise as a target int"
+#, gcc-internal-format
msgid "CPP arithmetic must be at least as precise as a target %<int%>"
-msgstr "la aritmética de CPP debe se al menos tan precisa como un int del objetivo"
+msgstr "la aritmética de CPP debe ser al menos tan precisa como un %<int%> del objetivo"
#: init.cc:691
-#, fuzzy, gcc-internal-format
-#| msgid "target char is less than 8 bits wide"
+#, gcc-internal-format
msgid "target %<char%> is less than 8 bits wide"
-msgstr "el char del objetivo tiene menos de 8 bits de ancho"
+msgstr "el %<char%> del objetivo tiene menos de 8 bits de ancho"
#: init.cc:695
-#, fuzzy, gcc-internal-format
-#| msgid "target wchar_t is narrower than target char"
+#, gcc-internal-format
msgid "target %<wchar_t%> is narrower than target %<char%>"
-msgstr "el wchar_t del objetivo es más estrecho que el char del objetivo"
+msgstr "el %<wchar_t%> del objetivo es más estrecho que el %<char%> del objetivo"
#: init.cc:699
-#, fuzzy, gcc-internal-format
-#| msgid "target int is narrower than target char"
+#, gcc-internal-format
msgid "target %<int%> is narrower than target %<char%>"
-msgstr "el int del objetivo es más estrecho que el char del objetivo"
+msgstr "el %<int%> del objetivo es más estrecho que el %<char%> del objetivo"
#: init.cc:704
msgid "CPP half-integer narrower than CPP character"
@@ -1098,43 +986,41 @@ msgstr "caracteres de barra invertida y fin de línea separados por espacio"
#: lex.cc:1109 lex.cc:1145
msgid "trailing whitespace"
-msgstr ""
+msgstr "espacio en blanco al final"
#: lex.cc:1116
msgid "backslash-newline at end of file"
msgstr "no hay caractér de barra invertida o fin de línea al final del fichero"
#: lex.cc:1132
-#, fuzzy, gcc-internal-format
-#| msgid "trigraph ??%c converted to %c"
+#, gcc-internal-format
msgid "trigraph %<??%c%> converted to %<%c%>"
-msgstr "se convierte el trigrafo ??%c a %c"
+msgstr "se convierte el trigrafo %<??%c%> a %<%c%>"
#: lex.cc:1138
-#, fuzzy, gcc-internal-format
-#| msgid "trigraph ??%c ignored, use -trigraphs to enable"
+#, gcc-internal-format
msgid "trigraph %<??%c%> ignored, use %<-trigraphs%> to enable"
-msgstr "se descarta el trigrafo ??%c, use -trigraphs para reconocerlo"
+msgstr "se descarta el trigrafo %<??%c%>, use %<-trigraphs%> para reconocerlo"
#: lex.cc:1149
msgid "too many consecutive spaces in leading whitespace"
-msgstr ""
+msgstr "demasiados espacios consecutivos en un espacio en blanco al inicio"
#: lex.cc:1154
msgid "tab after space in leading whitespace"
-msgstr ""
+msgstr "tabulador después de espacio en un espacio en blanco al inicio"
#: lex.cc:1161
msgid "whitespace other than spaces in leading whitespace"
-msgstr ""
+msgstr "espacio en blanco diferente a espacios en un espacio en blanco al inicio"
#: lex.cc:1167
msgid "whitespace other than tabs in leading whitespace"
-msgstr ""
+msgstr "espacio en blanco diferente a tabuladores en un espacio en blanco al inicio"
#: lex.cc:1173
msgid "whitespace other than spaces and tabs in leading whitespace"
-msgstr ""
+msgstr "espacio en blanco diferente a espacios y tabuladores en un espacio en blanco al inicio"
#: lex.cc:1623
msgid "end of bidirectional context"
@@ -1149,52 +1035,44 @@ msgid "unpaired UTF-8 bidirectional control character detected"
msgstr "se detectó un carácter de control bidireccional UTF-8 sin emparejar"
#: lex.cc:1706
-#, fuzzy, gcc-internal-format
-#| msgid "UTF-8 vs UCN mismatch when closing a context by \"%s\""
+#, gcc-internal-format
msgid "UTF-8 vs UCN mismatch when closing a context by %qs"
-msgstr "no coincide UTF-8 vs UCN al cerrar un contexto por «%s»"
+msgstr "no coincide UTF-8 vs UCN al cerrar un contexto por %qs"
#: lex.cc:1715
-#, fuzzy, gcc-internal-format
-#| msgid "\"%s\" is closing an unopened context"
+#, gcc-internal-format
msgid "%qs is closing an unopened context"
-msgstr "«%s» está cerrando un contexto sin abrir"
+msgstr "%qs está cerrando un contexto sin abrir"
#: lex.cc:1719
-#, fuzzy, gcc-internal-format
-#| msgid "found problematic Unicode character \"%s\""
+#, gcc-internal-format
msgid "found problematic Unicode character %qs"
-msgstr "se encontró el carácter Unicode problemático «%s»"
+msgstr "se encontró el carácter Unicode problemático %qs"
#: lex.cc:1749 lex.cc:1755
-#, fuzzy, gcc-internal-format
-#| msgid "invalid UTF-8 character <%x><%x>"
+#, gcc-internal-format
msgid "invalid UTF-8 character %<<%x>%>"
-msgstr "carácter UTF-8 <%x><%x> inválido"
+msgstr "carácter UTF-8 %<<%x>%> inválido"
#: lex.cc:1765 lex.cc:1771
-#, fuzzy, gcc-internal-format
-#| msgid "invalid UTF-8 character <%x><%x><%x>"
+#, gcc-internal-format
msgid "invalid UTF-8 character %<<%x><%x>%>"
-msgstr "carácter UTF-8 <%x><%x><%x> inválido"
+msgstr "carácter UTF-8 %<<%x><%x>%> inválido"
#: lex.cc:1781 lex.cc:1787
-#, fuzzy, gcc-internal-format
-#| msgid "invalid UTF-8 character <%x><%x><%x><%x>"
+#, gcc-internal-format
msgid "invalid UTF-8 character %<<%x><%x><%x>%>"
-msgstr "carácter UTF-8 <%x><%x><%x><%x> inválido"
+msgstr "carácter UTF-8 %<<%x><%x><%x>%> inválido"
#: lex.cc:1797 lex.cc:1803
-#, fuzzy, gcc-internal-format
-#| msgid "invalid UTF-8 character <%x><%x><%x><%x>"
+#, gcc-internal-format
msgid "invalid UTF-8 character %<<%x><%x><%x><%x>%>"
-msgstr "carácter UTF-8 <%x><%x><%x><%x> inválido"
+msgstr "carácter UTF-8 %<<%x><%x><%x><%x>%> inválido"
#: lex.cc:1885
-#, fuzzy, gcc-internal-format
-#| msgid "\"/*\" within comment"
+#, gcc-internal-format
msgid "%</*%> within comment"
-msgstr "«/*» dentro de un comentario"
+msgstr "%</*%> dentro de un comentario"
#: lex.cc:1990
#, gcc-internal-format, gfc-internal-format
@@ -1206,62 +1084,53 @@ msgid "null character(s) ignored"
msgstr "se descarta(n) caracter(es) nulo(s)"
#: lex.cc:2063
-#, fuzzy, gcc-internal-format
-#| msgid "`%.*s' is not in NFKC"
+#, gcc-internal-format
msgid "%<%.*s%> is not in NFKC"
-msgstr "`%.*s' no está en NFKC"
+msgstr "%<%.*s%> no está en NFKC"
#: lex.cc:2066 lex.cc:2069
-#, fuzzy, gcc-internal-format
-#| msgid "`%.*s' is not in NFC"
+#, gcc-internal-format
msgid "%<%.*s%> is not in NFC"
-msgstr "`%.*s' no está en NFC"
+msgstr "%<%.*s%> no está en NFC"
#: lex.cc:2158
-#, fuzzy, gcc-internal-format
-#| msgid "__VA_OPT__ is not available until C++20"
+#, gcc-internal-format
msgid "%<__VA_OPT__%> is not available until C++20"
-msgstr "__VA_OPT__ no está disponible hasta C++20"
+msgstr "%<__VA_OPT__%> no está disponible hasta C++20"
#: lex.cc:2161
-#, fuzzy, gcc-internal-format
-#| msgid "__VA_OPT__ is not available until C23"
+#, gcc-internal-format
msgid "%<__VA_OPT__%> is not available until C23"
-msgstr "__VA_OPT__ no está disponible hasta C23"
+msgstr "%<__VA_OPT__%> no está disponible hasta C23"
#: lex.cc:2169
-#, fuzzy, gcc-internal-format
-#| msgid "__VA_OPT__ can only appear in the expansion of a C++20 variadic macro"
+#, gcc-internal-format
msgid "%<__VA_OPT__%> can only appear in the expansion of a C++20 variadic macro"
-msgstr "__VA_OPT__ solamente puede aparecer en la expansión de una macro variadic de C++20"
+msgstr "%<__VA_OPT__%> solamente puede aparecer en la expansión de una macro variadic de C++20"
#: lex.cc:2186
-#, fuzzy, gcc-internal-format
-#| msgid "attempt to use poisoned \"%s\""
+#, gcc-internal-format
msgid "attempt to use poisoned %qs"
-msgstr "intento de utilizar «%s» envenenado"
+msgstr "se intenta usar %qs envenenado"
#: lex.cc:2191
msgid "poisoned here"
msgstr "envenenado aquí"
#: lex.cc:2201
-#, fuzzy, gcc-internal-format
-#| msgid "__VA_ARGS__ can only appear in the expansion of a C++11 variadic macro"
+#, gcc-internal-format
msgid "%<__VA_ARGS__%> can only appear in the expansion of a C++11 variadic macro"
-msgstr "__VA_ARGS__ solamente puede aparecer en la expansión de una macro variadic C++11"
+msgstr "%<__VA_ARGS__%> solamente puede aparecer en la expansión de una macro variadic C++11"
#: lex.cc:2205
-#, fuzzy, gcc-internal-format
-#| msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+#, gcc-internal-format
msgid "%<__VA_ARGS__%> can only appear in the expansion of a C99 variadic macro"
-msgstr "__VA_ARGS__ solamente puede aparecer en la expansión de una macro variadic C99"
+msgstr "%<__VA_ARGS__%> solamente puede aparecer en la expansión de una macro variadic C99"
#: lex.cc:2217
-#, fuzzy, gcc-internal-format
-#| msgid "identifier \"%s\" is a special operator name in C++"
+#, gcc-internal-format
msgid "identifier %qs is a special operator name in C++"
-msgstr "el identificador «%s» es un nombre de operador especial en C++"
+msgstr "el identificador %qs es un nombre de operador especial en C++"
#: lex.cc:2353
msgid "adjacent digit separators"
@@ -1282,7 +1151,7 @@ msgstr "carácter inválido nueva línea en un delimitador de cadena cruda"
#: lex.cc:2731 lex.cc:5671
#, gcc-internal-format, gfc-internal-format
msgid "invalid character '%c' in raw string delimiter"
-msgstr "carácter inválido '%c' en un delimitador de cadena cruda"
+msgstr "carácter inválido «%c» en un delimitador de cadena cruda"
#: lex.cc:2770 lex.cc:2793
msgid "unterminated raw string"
@@ -1299,40 +1168,36 @@ msgstr "falta el carácter de terminación %c"
#: lex.cc:2986
msgid "C++11 requires a space between string literal and macro"
-msgstr "C++11 requiere un espacio entre cadena literal y macro"
+msgstr "C++11 requiere un espacio entre una cadena literal y un macro"
#: lex.cc:3579
msgid "module control-line cannot be in included file"
msgstr "la línea de control del módulo no puede estar en un fichero incluido"
#: lex.cc:3593
-#, fuzzy, gcc-internal-format
-#| msgid "module control-line \"%s\" cannot be an object-like macro"
+#, gcc-internal-format
msgid "module control-line %qs cannot be an object-like macro"
-msgstr "la línea de control del módulo «%s» no puede ser una macro de tipo objeto"
+msgstr "la línea de control del módulo %qs no puede ser un macro de tipo objeto"
#: lex.cc:3631
-#, fuzzy, gcc-internal-format
-#| msgid "module control-line \"%s\" cannot be an object-like macro"
+#, gcc-internal-format
msgid "module name %qs cannot be an object-like macro"
-msgstr "la línea de control del módulo «%s» no puede ser una macro de tipo objeto"
+msgstr "el nombre de módulo %qs no puede ser una macro de tipo objeto"
#: lex.cc:3637
-#, fuzzy, gcc-internal-format
-#| msgid "module control-line \"%s\" cannot be an object-like macro"
+#, gcc-internal-format
msgid "module partition %qs cannot be an object-like macro"
-msgstr "la línea de control del módulo «%s» no puede ser una macro de tipo objeto"
+msgstr "la partición de módulo %qs no puede ser un macro de tipo objeto"
#: lex.cc:3658
-#, fuzzy, gcc-internal-format
-#| msgid "'\\o' not followed by '{'"
+#, gcc-internal-format
msgid "module name followed by %<(%>"
-msgstr "'\\o' no tiene una '{' a continuación"
+msgstr "nombre de módulo seguido por %<(%>"
#: lex.cc:3662
#, gcc-internal-format
msgid "module partition followed by %<(%>"
-msgstr ""
+msgstr "partición de módulo seguido por %<(%>"
#: lex.cc:4071 lex.cc:5504 traditional.cc:174
msgid "unterminated comment"
@@ -1373,70 +1238,59 @@ msgid "'##' cannot appear at either end of __VA_OPT__"
msgstr "'##' no puede aparecer o en el final de una __VA_OPT__"
#: macro.cc:144
-#, fuzzy, gcc-internal-format
-#| msgid "__VA_OPT__ may not appear in a __VA_OPT__"
+#, gcc-internal-format
msgid "%<__VA_OPT__%> may not appear in a %<__VA_OPT__%>"
-msgstr "__VA_OPT__ no puede aparecer en un __VA_OPT__"
+msgstr "%<__VA_OPT__%> no puede aparecer en un %<__VA_OPT__%>"
#: macro.cc:157
-#, fuzzy, gcc-internal-format
-#| msgid "__VA_OPT__ must be followed by an open parenthesis"
+#, gcc-internal-format
msgid "%<__VA_OPT__%> must be followed by an open parenthesis"
-msgstr "__VA_OPT__ debe estar seguido por un paréntesis abierto"
+msgstr "%<__VA_OPT__%> debe estar seguido por un paréntesis abierto"
#: macro.cc:235
-#, fuzzy, gcc-internal-format
-#| msgid "unterminated __VA_OPT__"
+#, gcc-internal-format
msgid "unterminated %<__VA_OPT__%>"
-msgstr "__VA_OPT__ sin terminar"
+msgstr "%<__VA_OPT__%> sin terminar"
#: macro.cc:396
-#, fuzzy, gcc-internal-format
-#| msgid "\"%s\" used outside of preprocessing directive"
+#, gcc-internal-format
msgid "%qs used outside of preprocessing directive"
-msgstr "se ha utilizado «%s» fuera de una directiva de preprocesamiento"
+msgstr "se ha utilizado %qs fuera de una directiva de preprocesamiento"
#: macro.cc:407
-#, fuzzy, gcc-internal-format
-#| msgid "missing '(' before \"%s\" operand"
+#, gcc-internal-format
msgid "missing %<(%> before %qs operand"
-msgstr "falta '(' antes del operando «%s»"
+msgstr "falta %<(%> antes del operando %qs"
#: macro.cc:425
-#, fuzzy, gcc-internal-format
-#| msgid "operator \"%s\" requires a header-name"
+#, gcc-internal-format
msgid "operator %qs requires a header-name"
-msgstr "el operador «%s» requiere un nombre cabecera"
+msgstr "el operador %qs requiere un nombre-de-cabecera"
#: macro.cc:454
-#, fuzzy, gcc-internal-format
-#| msgid "missing ')' after \"%s\" operand"
+#, gcc-internal-format
msgid "missing %<)%> after %qs operand"
-msgstr "falta ')' después del operando «%s»"
+msgstr "falta %<)%> después del operando %qs"
#: macro.cc:499
-#, fuzzy, gcc-internal-format
-#| msgid "empty filename in #%s"
+#, gcc-internal-format
msgid "empty filename in %qs"
-msgstr "nombre de fichero vacío en #%s"
+msgstr "nombre de fichero vacío en %qs"
#: macro.cc:533
-#, fuzzy, gcc-internal-format
-#| msgid "macro \"%s\" is not used"
+#, gcc-internal-format
msgid "macro %qs is not used"
-msgstr "el macro «%s» no se utiliza"
+msgstr "el macro %qs no se utiliza"
#: macro.cc:572 macro.cc:888
-#, fuzzy, gcc-internal-format
-#| msgid "invalid built-in macro \"%s\""
+#, gcc-internal-format
msgid "invalid built-in macro %qs"
-msgstr "macro interna «%s» inválida"
+msgstr "macro interna %qs inválida"
#: macro.cc:579 macro.cc:687
-#, fuzzy, gcc-internal-format
-#| msgid "macro \"%s\" might prevent reproducible builds"
+#, gcc-internal-format
msgid "macro %qs might prevent reproducible builds"
-msgstr "macro «%s» quizá previene compilaciones reproducibles"
+msgstr "el macro %qs quizá previene compilaciones reproducibles"
#: macro.cc:610
msgid "could not determine file timestamp"
@@ -1447,22 +1301,19 @@ msgid "could not determine date and time"
msgstr "no se puede determinar la fecha y la hora"
#: macro.cc:733
-#, fuzzy, gcc-internal-format
-#| msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+#, gcc-internal-format
msgid "%<__COUNTER__%> expanded inside directive with %<-fdirectives-only%>"
-msgstr "se expande __COUNTER__ dentro de una directiva con -fdirectives-only"
+msgstr "se expande %<__COUNTER__%> dentro de una directiva con %<-fdirectives-only%>"
#: macro.cc:760
-#, fuzzy, gcc-internal-format
-#| msgid "suggest not using #elif in traditional C"
+#, gcc-internal-format
msgid "%<__has_embed%> not supported in traditional C"
-msgstr "se sugiere no usar #elif en C tradicional"
+msgstr "no se admite %<__has_embed%> en C tradicional"
#: macro.cc:1007
-#, fuzzy, gcc-internal-format
-#| msgid "invalid string literal, ignoring final '\\'"
+#, gcc-internal-format
msgid "invalid string literal, ignoring final %<\\%>"
-msgstr "cadena literal inválida, se descarta el '\\' final"
+msgstr "cadena literal inválida, se descarta el %<\\%> final"
#: macro.cc:1071
#, gcc-internal-format
@@ -1470,46 +1321,39 @@ msgid "pasting \"%.*s\" and \"%.*s\" does not give a valid preprocessing token"
msgstr "pegar «%.*s» y «%.*s» no da un elemento válido de preprocesamiento"
#: macro.cc:1203
-#, fuzzy, gcc-internal-format
-#| msgid "ISO C++11 requires at least one argument for the \"...\" in a variadic macro"
+#, gcc-internal-format
msgid "ISO C++11 requires at least one argument for the %<...%> in a variadic macro"
-msgstr "ISO C++ requiere al menos un argumento: para la «...» en una macro variadic"
+msgstr "ISO C++ requiere al menos un argumento para la %<...%> en una macro variadic"
#: macro.cc:1207
-#, fuzzy, gcc-internal-format
-#| msgid "ISO C99 requires at least one argument for the \"...\" in a variadic macro"
+#, gcc-internal-format
msgid "ISO C99 requires at least one argument for the %<...%> in a variadic macro"
-msgstr "ISO C99 requiere al menos un argumento para la «...» en una macro variadic"
+msgstr "ISO C99 requiere al menos un argumento para la %<...%> en una macro variadic"
#: macro.cc:1214
-#, fuzzy, gcc-internal-format
-#| msgid "macro \"%s\" requires %u arguments, but only %u given"
+#, gcc-internal-format
msgid "macro %qs requires %u arguments, but only %u given"
-msgstr "el macro «%s» requiere %u argumentos, pero solo se proporcionan %u"
+msgstr "el macro %qs requiere %u argumentos, pero solo se proporcionan %u"
#: macro.cc:1219
-#, fuzzy, gcc-internal-format
-#| msgid "macro \"%s\" passed %u arguments, but takes just %u"
+#, gcc-internal-format
msgid "macro %qs passed %u arguments, but takes just %u"
-msgstr "el macro «%s» pasó %u argumentos, pero solamente toma %u"
+msgstr "el macro %qs pasó %u argumentos, pero solamente toma %u"
#: macro.cc:1223
-#, fuzzy, gcc-internal-format
-#| msgid "macro \"%s\" defined here"
+#, gcc-internal-format
msgid "macro %qs defined here"
-msgstr "el macro «%s» se definió aquí"
+msgstr "el macro %qs se definió aquí"
#: macro.cc:1417 traditional.cc:822
-#, fuzzy, gcc-internal-format
-#| msgid "unterminated argument list invoking macro \"%s\""
+#, gcc-internal-format
msgid "unterminated argument list invoking macro %qs"
-msgstr "lista de argumentos sin terminar al invocar el macro «%s»"
+msgstr "lista de argumentos sin terminar al invocar el macro %qs"
#: macro.cc:1563
-#, fuzzy, gcc-internal-format
-#| msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+#, gcc-internal-format
msgid "function-like macro %qs must be used with arguments in traditional C"
-msgstr "la función de macro «%s» se debe usar con argumentos en C tradicional"
+msgstr "la función de tipo macro %qs se debe usar con argumentos en C tradicional"
#: macro.cc:2398
#, gcc-internal-format, gfc-internal-format
@@ -1524,45 +1368,40 @@ msgstr "al invocar el macro %s argumento %d: los argumentos de macro vacíos est
#: macro.cc:3238
#, gcc-internal-format
msgid "%qc in module name or partition comes from or after macro expansion"
-msgstr ""
+msgstr "%qc en el nombre o partición del módulo viene de o después de una expansión de macro"
#: macro.cc:3481
-#, fuzzy, gcc-internal-format
-#| msgid "duplicate macro parameter \"%s\""
+#, gcc-internal-format
msgid "duplicate macro parameter %qs"
-msgstr "parámetro de macro «%s» duplicado"
+msgstr "parámetro de macro %qs duplicado"
#: macro.cc:3563
-#, fuzzy, gcc-internal-format
-#| msgid "expected parameter name, found \"%s\""
+#, gcc-internal-format
msgid "expected parameter name, found %qs"
-msgstr "se esperaba un nombre de parámetro; se ha encontrado «%s»"
+msgstr "se esperaba un nombre de parámetro, se encontró %qs"
#: macro.cc:3564
-#, fuzzy, gcc-internal-format
-#| msgid "expected ',' or ')', found \"%s\""
+#, gcc-internal-format
msgid "expected %<,%> or %<)%>, found %qs"
-msgstr "se esperaba ',' o ')'; se ha encontrado «%s»"
+msgstr "se esperaba %<,%> o %<)%>, se encontró %qs"
#: macro.cc:3565
msgid "expected parameter name before end of line"
msgstr "se esperaba un nombre de parámetro antes del fin de línea"
#: macro.cc:3566
-#, fuzzy, gcc-internal-format
-#| msgid "expected ')' before end of line"
+#, gcc-internal-format
msgid "expected %<)%> before end of line"
-msgstr "se esperaba ')' antes del fin de línea"
+msgstr "se esperaba %<)%> antes del fin de línea"
#: macro.cc:3567
-#, fuzzy, gcc-internal-format
-#| msgid "expected ')' after \"...\""
+#, gcc-internal-format
msgid "expected %<)%> after %<...%>"
-msgstr "se esperaba ')' después de «...»"
+msgstr "se esperaba %<)%> después de %<...%>"
#: macro.cc:3624
msgid "anonymous variadic macros were introduced in C++11"
-msgstr "las macros variadic anónimas se introdujeron en C++11"
+msgstr "los macros variadic anónimos se introdujeron en C++11"
#: macro.cc:3625 macro.cc:3629
msgid "anonymous variadic macros were introduced in C99"
@@ -1577,10 +1416,9 @@ msgid "ISO C does not permit named variadic macros"
msgstr "ISO C no permite macros variadic nombrados"
#: macro.cc:3682
-#, fuzzy, gcc-internal-format
-#| msgid "'##' cannot appear at either end of a macro expansion"
+#, gcc-internal-format
msgid "%<##%> cannot appear at either end of a macro expansion"
-msgstr "'##' no puede aparece en o al final de una expansión de macro"
+msgstr "%<##%> no puede aparece en o al final de una expansión de macro"
#: macro.cc:3720
msgid "ISO C++11 requires whitespace after the macro name"
@@ -1595,70 +1433,61 @@ msgid "missing whitespace after the macro name"
msgstr "faltan espacios en blanco después del nombre de macro"
#: macro.cc:3798
-#, fuzzy, gcc-internal-format
-#| msgid "'#' is not followed by a macro parameter"
+#, gcc-internal-format
msgid "%<#%> is not followed by a macro parameter"
-msgstr "'#' no es seguido por un parámetro de macro"
+msgstr "%<#%> no es seguido por un parámetro de macro"
#: macro.cc:3961
-#, fuzzy, gcc-internal-format
-#| msgid "\"%s\" redefined"
+#, gcc-internal-format
msgid "%qs redefined"
-msgstr "«%s» redefinido"
+msgstr "se redefine %qs"
#: macro.cc:3965
msgid "this is the location of the previous definition"
msgstr "esta es la ubicación de la definición previa"
#: macro.cc:4103
-#, fuzzy, gcc-internal-format
-#| msgid "macro argument \"%s\" would be stringified in traditional C"
+#, gcc-internal-format
msgid "macro argument %qs would be stringified in traditional C"
-msgstr "el argumento de macro «%s» debería ser convertido a cadena en C tradicional"
+msgstr "el argumento de macro %qs debería ser convertido a cadena en C tradicional"
#: pch.cc:90 pch.cc:342 pch.cc:356 pch.cc:374 pch.cc:380 pch.cc:389 pch.cc:396
msgid "while writing precompiled header"
-msgstr "al escribir el encabezado precompilado"
+msgstr "al escribir la cabecera precompilada"
#: pch.cc:616
-#, fuzzy, gcc-internal-format
-#| msgid "%s: not used because `%.*s' is poisoned"
+#, gcc-internal-format
msgid "%s: not used because %<%.*s%> is poisoned"
-msgstr "%s: no se usa porque `%.*s' está envenenado"
+msgstr "%s: no se usa porque %<%.*s%> está envenenado"
#: pch.cc:638
-#, fuzzy, gcc-internal-format
-#| msgid "%s: not used because `%.*s' not defined"
+#, gcc-internal-format
msgid "%s: not used because %<%.*s%> not defined"
-msgstr "%s: no se usa porque `%.*s' no está definido"
+msgstr "%s: no se usa porque %<%.*s%> no está definido"
#: pch.cc:650
-#, fuzzy, gcc-internal-format
-#| msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+#, gcc-internal-format
msgid "%s: not used because %<%.*s%> defined as %qs not %<%.*s%>"
-msgstr "%s: no se usa porque `%.*s' está definido como `%s' no como `%.*s'"
+msgstr "%s: no se usa porque %<%.*s%> está definido como %qs y no como %<%.*s%>"
#: pch.cc:693
-#, fuzzy, gcc-internal-format
-#| msgid "%s: not used because `%s' is defined"
+#, gcc-internal-format
msgid "%s: not used because %qs is defined"
-msgstr "%s: no se usa porque `%s' está definido"
+msgstr "%s: no se usa porque %qs está definido"
#: pch.cc:713
-#, fuzzy, gcc-internal-format
-#| msgid "%s: not used because `__COUNTER__' is invalid"
+#, gcc-internal-format
msgid "%s: not used because %<__COUNTER__%> is invalid"
-msgstr "%s: no se usa porque `__COUNTER__' es inválido"
+msgstr "%s: no se usa porque %<__COUNTER__%> es inválido"
#: pch.cc:722 pch.cc:885
msgid "while reading precompiled header"
-msgstr "al leer el encabezado precompilado"
+msgstr "al leer la cabecera precompilada"
#: traditional.cc:891
-#, fuzzy, gcc-internal-format
-#| msgid "detected recursion whilst expanding macro \"%s\""
+#, gcc-internal-format
msgid "detected recursion whilst expanding macro %qs"
-msgstr "se detectó recursión al expandir el macro «%s»"
+msgstr "se detectó recursión al expandir el macro %qs"
#: traditional.cc:1114
msgid "syntax error in macro parameter list"
@@ -1694,7 +1523,7 @@ msgstr "error de sintaxis en la lista de parámetros de macro"
#~ msgstr "#include anidado con demasiada profundidad"
#~ msgid "missing ')' after \"__has_include__\""
-#~ msgstr "falta ')' tras \"__has_include__\""
+#~ msgstr "falta ')' después de \"__has_include__\""
#~ msgid "\"%s\" may not appear in macro parameter list"
#~ msgstr "«%s» podría faltar en la lista de parámetro de macro"
diff --git a/libcpp/po/sr.po b/libcpp/po/sr.po
index 365f1ae..9e19ea1 100644
--- a/libcpp/po/sr.po
+++ b/libcpp/po/sr.po
@@ -1,14 +1,14 @@
# Serbian translation of cpplib.
# Copyright © 2020 Free Software Foundation, Inc.
# This file is distributed under the same license as the gcc package.
-# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2012-2024.
+# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2012-2025.
#
msgid ""
msgstr ""
-"Project-Id-Version: cpplib-14.1-b20240218\n"
+"Project-Id-Version: cpplib-15.1-b20250316\n"
"Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
"POT-Creation-Date: 2025-03-14 22:05+0000\n"
-"PO-Revision-Date: 2024-12-14 16:23+0100\n"
+"PO-Revision-Date: 2025-07-18 09:21+0200\n"
"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <(nothing)>\n"
"Language: sr\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Gtranslator 42.0\n"
+"X-Generator: Poedit 3.5\n"
#: charset.cc:759
#, gcc-internal-format, gfc-internal-format
@@ -26,7 +26,7 @@ msgstr "„ikonv“ не подржава претварање из %s у %s"
#: charset.cc:762
msgid "iconv_open"
-msgstr "иконв_отвори"
+msgstr "iconv_open"
#: charset.cc:772
#, gcc-internal-format, gfc-internal-format
@@ -34,10 +34,9 @@ msgid "no iconv implementation, cannot convert from %s to %s"
msgstr "нема иконв примене, не могу да претворим из %s у %s"
#: charset.cc:870
-#, fuzzy, gcc-internal-format
-#| msgid "character 0x%lx is not in the basic source character set\n"
+#, gcc-internal-format
msgid "character 0x%lx is not in the basic source character set"
-msgstr "знак 0x%lx није у знаковном скупу основног извора\n"
+msgstr "знак 0x%lx није у знаковном скупу основног извора"
#: charset.cc:887 charset.cc:2639
msgid "converting to execution character set"
@@ -50,23 +49,20 @@ msgstr "знак 0x%lx није једног бајта у знаковном с
#: charset.cc:1549
msgid "universal character names are only valid in C++ and C99"
-msgstr "називи свеопштег знака су једино исправни у Ц++ и Ц99"
+msgstr "називи свеопштег знака су једино исправни у C++ и C99"
#: charset.cc:1553
-#, fuzzy, gcc-internal-format
-#| msgid "C99's universal character names are incompatible with C90"
+#, gcc-internal-format
msgid "C99%'s universal character names are incompatible with C90"
-msgstr "називи свеопштег знака Ц99 нису сагласни са Ц90"
+msgstr "називи свеопштег знака C99%'s нису сагласни са C90"
#: charset.cc:1556
-#, fuzzy, gcc-internal-format
-#| msgid "the meaning of '\\%c' is different in traditional C"
+#, gcc-internal-format
msgid "the meaning of %<\\%c%> is different in traditional C"
-msgstr "значење „\\%c“ је другачије у уобичајеном Ц-у"
+msgstr "значење „\\%c“ је другачије у стандардном C-у"
#: charset.cc:1595
-#, fuzzy, gcc-internal-format
-#| msgid "'\\N' not followed by '{'"
+#, gcc-internal-format
msgid "%<\\N%> not followed by %<{%>"
msgstr "„\\N“ без пратеће „{“"
@@ -80,43 +76,37 @@ msgstr "празан именован свеопшти низ промене з
#: charset.cc:1639
msgid "named universal character escapes are only valid in C++23"
-msgstr "именоване свеопште промене знака су исправне само у Ц++23"
+msgstr "именоване свеопште промене знака су исправне само у C++23"
#: charset.cc:1659
-#, fuzzy, gcc-internal-format
-#| msgid "\\N{%.*s} is not a valid universal character; treating it as separate tokens"
+#, gcc-internal-format
msgid "%<\\N{%.*s}%> is not a valid universal character; treating it as separate tokens"
msgstr "„\\N{%.*s}“ није исправан свеопшти знак; сматрам то одвојеним скупинама"
#: charset.cc:1665
-#, fuzzy, gcc-internal-format
-#| msgid "\\N{%.*s} is not a valid universal character"
+#, gcc-internal-format
msgid "%<\\N{%.*s}%> is not a valid universal character"
msgstr "„\\N{%.*s}“ није исправан свеопшти знак"
#: charset.cc:1675
-#, fuzzy, gcc-internal-format
-#| msgid "did you mean \\N{%s}?"
+#, gcc-internal-format
msgid "did you mean %<\\N{%s}%>?"
msgstr "да ли сте мислили „\\N{%s}“?"
#: charset.cc:1693
-#, fuzzy, gcc-internal-format
-#| msgid "'\\N{' not terminated with '}' after %.*s; treating it as separate tokens"
+#, gcc-internal-format
msgid "%<\\N{%> not terminated with %<}%> after %.*s; treating it as separate tokens"
-msgstr "„\\N{' се не завршава са '}“ после „%.*s“; сматрам то одвојеним скупинама"
+msgstr "„\\N{“ се не завршава са „}“ после „%.*s“; сматрам то одвојеним скупинама"
#: charset.cc:1702
-#, fuzzy, gcc-internal-format
-#| msgid "'\\N{' not terminated with '}' after %.*s"
+#, gcc-internal-format
msgid "%<\\N{%> not terminated with %<}%> after %.*s"
-msgstr "„\\N{' се не завршава са '}“ после „%.*s“"
+msgstr "„\\N{“ се не завршава са „}“ након „%.*s“"
#: charset.cc:1710
-#, fuzzy, gcc-internal-format
-#| msgid "In _cpp_valid_ucn but not a UCN"
+#, gcc-internal-format
msgid "in %<_cpp_valid_ucn%> but not a UCN"
-msgstr "У _цпп_исправан_нсз али није НСЗ"
+msgstr "у „_cpp_valid_ucn“ али није UCN"
#: charset.cc:1753
msgid "empty delimited escape sequence; treating it as separate tokens"
@@ -128,20 +118,17 @@ msgstr "празан ограничен низ промене"
#: charset.cc:1769 charset.cc:2172 charset.cc:2289
msgid "delimited escape sequences are only valid in C++23"
-msgstr "ограничени низови промене су једино исправни у Ц++23"
+msgstr "ограничени низови промене су једино исправни у C++23"
#: charset.cc:1774 charset.cc:1779 charset.cc:2177 charset.cc:2182
#: charset.cc:2294 charset.cc:2299
-#, fuzzy
-#| msgid "delimited escape sequences are only valid in C++23"
msgid "delimited escape sequences are only valid in C2Y"
-msgstr "ограничени низови промене су једино исправни у Ц++23"
+msgstr "ограничени низови промене су једино исправни у C2Y"
#: charset.cc:1794
-#, fuzzy, gcc-internal-format
-#| msgid "'\\u{' not terminated with '}' after %.*s; treating it as separate tokens"
+#, gcc-internal-format
msgid "%<\\u{%> not terminated with %<}%> after %.*s; treating it as separate tokens"
-msgstr "„\\u{' се не завршава са '}“ после „%.*s“; сматрам то одвојеним токенима"
+msgstr "„\\u{“ се не завршава са „}“ после „%.*s“; сматрам то одвојеним токенима"
#: charset.cc:1806
#, gcc-internal-format
@@ -149,27 +136,24 @@ msgid "incomplete universal character name %.*s"
msgstr "непотпун назив свеопштег знака %.*s"
#: charset.cc:1810
-#, fuzzy, gcc-internal-format
-#| msgid "'\\u{' not terminated with '}' after %.*s"
+#, gcc-internal-format
msgid "%<\\u{%> not terminated with %<}%> after %.*s"
-msgstr "„\\u{' се не завршава са '}“ после „%.*s“"
+msgstr "„\\u{“ се не завршава са „}“ након „%.*s“"
#: charset.cc:1818
#, gcc-internal-format
msgid "%.*s is not a valid universal character"
-msgstr "%.*s није исправан свеопшти знак"
+msgstr "„%.*s“ није исправан свеопшти знак"
#: charset.cc:1834 charset.cc:1838
-#, fuzzy, gcc-internal-format
-#| msgid "%.*s is not a valid universal character"
+#, gcc-internal-format
msgid "%.*s is not a valid universal character name before C23"
-msgstr "%.*s није исправан свеопшти знак"
+msgstr "„%.*s“ није исправан назив свеопштег знака пре C23"
#: charset.cc:1854 lex.cc:2096
-#, fuzzy, gcc-internal-format
-#| msgid "'$' in identifier or number"
+#, gcc-internal-format
msgid "%<$%> in identifier or number"
-msgstr "„$“ у одреднику или број"
+msgstr "„$“ у одреднику или броју"
#: charset.cc:1864
#, gcc-internal-format
@@ -184,15 +168,15 @@ msgstr "свеопшти знак %.*s није исправан на почет
#: charset.cc:1875
#, gcc-internal-format
msgid "%.*s is outside the UCS codespace"
-msgstr "„%.*s“ је ван УЦС кодног простора"
+msgstr "„%.*s“ је ван UCS кодног простора"
#: charset.cc:1919 charset.cc:3072
msgid "converting UCN to source character set"
-msgstr "претварам НСЗ у изворни знаковни скуп"
+msgstr "претварам UCN у изворни знаковни скуп"
#: charset.cc:1926
msgid "converting UCN to execution character set"
-msgstr "претварам НСЗ у извршни знаковни скуп"
+msgstr "претварам UCN у извршни знаковни скуп"
#: charset.cc:1990
#, gcc-internal-format
@@ -205,70 +189,60 @@ msgid "extended character %.*s is not valid at the start of an identifier"
msgstr "проширени знак „%.*s“ није исправан на почетку одредника"
#: charset.cc:2129
-#, fuzzy, gcc-internal-format
-#| msgid "the meaning of '\\x' is different in traditional C"
+#, gcc-internal-format
msgid "the meaning of %<\\x%> is different in traditional C"
-msgstr "значење „\\x“ је другачије у уобичајеном Ц-у"
+msgstr "значење „\\x“ је другачије у стандардном C-у"
#: charset.cc:2190
-#, fuzzy, gcc-internal-format
-#| msgid "\\x used with no following hex digits"
+#, gcc-internal-format
msgid "%<\\x%> used with no following hex digits"
-msgstr "„\\x“ је коришћено са не пратећим хекса цифрама"
+msgstr "„\\x“ је коришћено са не пратећим хекс цифрама"
#: charset.cc:2196
-#, fuzzy, gcc-internal-format
-#| msgid "'\\x{' not terminated with '}' after %.*s"
+#, gcc-internal-format
msgid "%<\\x{%> not terminated with %<}%> after %.*s"
-msgstr "„\\x{' се не завршава са '}“ после „%.*s“"
+msgstr "„\\x{“ се не завршава са „}“ након „%.*s“"
#: charset.cc:2204
msgid "hex escape sequence out of range"
msgstr "хекс низ промене је изван опсега"
#: charset.cc:2247
-#, fuzzy, gcc-internal-format
-#| msgid "'\\o' not followed by '{'"
+#, gcc-internal-format
msgid "%<\\o%> not followed by %<{%>"
msgstr "за „\\o“ не следи „{“"
#: charset.cc:2305
-#, fuzzy, gcc-internal-format
-#| msgid "'\\o{' not terminated with '}' after %.*s"
+#, gcc-internal-format
msgid "%<\\o{%> not terminated with %<}%> after %.*s"
-msgstr "„\\o{' се не завршава са '}“ после „%.*s“"
+msgstr "„\\o{“ се не завршава са „}“ после „%.*s“"
#: charset.cc:2314
msgid "octal escape sequence out of range"
msgstr "октални низ промене је изван опсега"
#: charset.cc:2366 charset.cc:2376
-#, fuzzy, gcc-internal-format
-#| msgid "numeric escape sequence in unevaluated string: '\\%c'"
+#, gcc-internal-format
msgid "numeric escape sequence in unevaluated string: %<\\%c%>"
msgstr "бројевни низ промене низа у непроцењеној ниски: „\\%c“"
#: charset.cc:2404
-#, fuzzy, gcc-internal-format
-#| msgid "the meaning of '\\a' is different in traditional C"
+#, gcc-internal-format
msgid "the meaning of %<\\a%> is different in traditional C"
-msgstr "значење „\\a“ је другачије у уобичајеном Ц-у"
+msgstr "значење „\\a“ је другачије у стандардном C-у"
#: charset.cc:2410
-#, fuzzy, gcc-internal-format
-#| msgid "non-ISO-standard escape sequence, '\\%c'"
+#, gcc-internal-format
msgid "non-ISO-standard escape sequence, %<\\%c%>"
msgstr "низ промене не-ИСО-стандарда, „\\%c“"
#: charset.cc:2418
-#, fuzzy, gcc-internal-format
-#| msgid "unknown escape sequence: '\\%c'"
+#, gcc-internal-format
msgid "unknown escape sequence: %<\\%c%>"
msgstr "непознат низ промене: „\\%c“"
#: charset.cc:2428
-#, fuzzy, gcc-internal-format
-#| msgid "unknown escape sequence: '\\%s'"
+#, gcc-internal-format
msgid "unknown escape sequence: %<\\%s%>"
msgstr "непознат низ промене: „\\%s“"
@@ -289,8 +263,7 @@ msgid "at least one character in a multi-character literal not encodable in a si
msgstr "барем један знак у вишезнаковном литералу се не може прекодирати у једној јединици знаковног скупа извршавања"
#: charset.cc:2830
-#, fuzzy, gcc-internal-format
-#| msgid "multi-character literal with %ld characters exceeds 'int' size of %ld bytes"
+#, gcc-internal-format
msgid "multi-character literal with %ld characters exceeds %<int%> size of %ld bytes"
msgstr "више-знаковни литерал са %ld знака премашује „int“ величину од %ld бајта"
@@ -316,58 +289,50 @@ msgid "failure to convert %s to %s"
msgstr "неуспех у претварању %s у %s"
#: directives.cc:243
-#, fuzzy, gcc-internal-format
-#| msgid "extra tokens at end of #%s directive"
+#, gcc-internal-format
msgid "extra tokens at end of %<#%s%> directive"
-msgstr "посебни симболи на крају #%s директиве"
+msgstr "екстра скупине на крају „#%s“ директиве"
#: directives.cc:286
#, gcc-internal-format, gfc-internal-format
msgid "extra tokens at end of #%s directive"
-msgstr "посебни симболи на крају #%s директиве"
+msgstr "посебни симболи на крају „#%s“ директиве"
#: directives.cc:396
-#, fuzzy, gcc-internal-format
-#| msgid "#%s is a GCC extension"
+#, gcc-internal-format
msgid "%<#%s%> is a GCC extension"
-msgstr "#%s је ГЦЦ проширење"
+msgstr "„#%s“ је GCC проширење"
#: directives.cc:404 directives.cc:2686 directives.cc:2725
-#, fuzzy, gcc-internal-format
-#| msgid "#%s before C++23 is a GCC extension"
+#, gcc-internal-format
msgid "%<#%s%> before C++23 is a GCC extension"
-msgstr "„#%s“ пре „C++23“ јесте GCC проширење"
+msgstr "„#%s“ пре C++23 је GCC проширење"
#: directives.cc:409 directives.cc:415 directives.cc:1374 directives.cc:2690
#: directives.cc:2730
-#, fuzzy, gcc-internal-format
-#| msgid "#%s before C23 is a GCC extension"
+#, gcc-internal-format
msgid "%<#%s%> before C23 is a GCC extension"
-msgstr "„#%s“ пре „C23“ јесте GCC проширење"
+msgstr "„#%s“ пре C23 је GCC проширење"
#: directives.cc:423
-#, fuzzy, gcc-internal-format
-#| msgid "#%s is a deprecated GCC extension"
+#, gcc-internal-format
msgid "%<#%s%> is a deprecated GCC extension"
-msgstr "#%s је превазиђено ГЦЦ проширење"
+msgstr "„#%s“ је застарело GCC проширење"
#: directives.cc:436
-#, fuzzy, gcc-internal-format
-#| msgid "suggest not using #elif in traditional C"
+#, gcc-internal-format
msgid "suggest not using %<#elif%> in traditional C"
-msgstr "саветује да се не користи „#elif“ у уобичајеном Ц-у"
+msgstr "саветује да се не користи „#elif“ у стандардном C-у"
#: directives.cc:439
-#, fuzzy, gcc-internal-format
-#| msgid "traditional C ignores #%s with the # indented"
+#, gcc-internal-format
msgid "traditional C ignores %<#%s%> with the %<#%> indented"
-msgstr "уобичајени Ц занемарује #%s са # увученим"
+msgstr "стандардни C занемарује „#%s“ са „#“ увученим"
#: directives.cc:443
-#, fuzzy, gcc-internal-format
-#| msgid "suggest hiding #%s from traditional C with an indented #"
+#, gcc-internal-format
msgid "suggest hiding %<#%s%> from traditional C with an indented %<#%>"
-msgstr "саветује скривање #%s из уобичајеног Ц-а са увученим #"
+msgstr "саветује скривање „#%s“ из стандардног C-а са увученим „#“"
#: directives.cc:468
msgid "embedding a directive within macro arguments is not portable"
@@ -375,191 +340,168 @@ msgstr "угнежђивање директиве унутар аргумена
#: directives.cc:497
msgid "style of line directive is a GCC extension"
-msgstr "стил директиве реда је ГЦЦ проширење"
+msgstr "стил директиве реда је GCC проширење"
#: directives.cc:572
#, gcc-internal-format, gfc-internal-format
msgid "invalid preprocessing directive #%s; did you mean #%s?"
-msgstr "неисправна директива предобраде #%s; да ли сте мислили „#%s“?"
+msgstr "неисправна директива предобраде „#%s“; да ли сте мислили „#%s“?"
#: directives.cc:578
#, gcc-internal-format, gfc-internal-format
msgid "invalid preprocessing directive #%s"
-msgstr "неисправна директива предобраде #%s"
+msgstr "неисправна директива предобраде „#%s“"
#: directives.cc:656
-#, fuzzy, gcc-internal-format
-#| msgid "\"%s\" cannot be used as a macro name"
+#, gcc-internal-format
msgid "%qs cannot be used as a macro name"
-msgstr "„%s“ не може бити коришћено као назив макроа"
+msgstr "„%qs“ не може бити коришћено као назив макроа"
#: directives.cc:663
-#, fuzzy, gcc-internal-format
-#| msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+#, gcc-internal-format
msgid "%qs cannot be used as a macro name as it is an operator in C++"
-msgstr "„%s“ не може бити коришћено као назив макроа јер је то оператор у Ц++-у"
+msgstr "„%qs“ не може бити коришћено као назив макроа јер је то оператор у C++-у"
#: directives.cc:666
-#, fuzzy, gcc-internal-format
-#| msgid "no macro name given in #%s directive"
+#, gcc-internal-format
msgid "no macro name given in %<#%s%> directive"
-msgstr "није дат назив макроа у #%s директиви"
+msgstr "није дат назив макроа у „#%s“ директиви"
#: directives.cc:669
msgid "macro names must be identifiers"
msgstr "називи макроа морају бити одредници"
#: directives.cc:743 directives.cc:747
-#, fuzzy, gcc-internal-format
-#| msgid "undefining \"%s\""
+#, gcc-internal-format
msgid "undefining %qs"
-msgstr "неодређујем „%s“"
+msgstr "неодређујем „%qs“"
#: directives.cc:805
-#, fuzzy, gcc-internal-format
-#| msgid "missing terminating > character"
+#, gcc-internal-format
msgid "missing terminating %<>%> character"
-msgstr "недостаје завршни знак >"
+msgstr "недостаје завршни знак „>“"
#: directives.cc:865
-#, fuzzy, gcc-internal-format
-#| msgid "#%s expects \"FILENAME\" or <FILENAME>"
+#, gcc-internal-format
msgid "%<#%s%> expects %<\"FILENAME\"%> or %<<FILENAME>%>"
-msgstr "#%s очекује „НАЗИВДАТОТЕКЕ“ или <НАЗИВДАТОТЕКЕ>"
+msgstr "„#%s“ очекује „НАЗИВДАТОТЕКЕ“ или „НАЗИВДАТОТЕКЕ“"
#: directives.cc:911 directives.cc:1391
#, gcc-internal-format, gfc-internal-format
msgid "empty filename in #%s"
-msgstr "празан назив датотеке у #%s"
+msgstr "празан назив датотеке у „#%s“"
#: directives.cc:920
-#, fuzzy, gcc-internal-format
-#| msgid "#include nested depth %u exceeds maximum of %u (use -fmax-include-depth=DEPTH to increase the maximum)"
+#, gcc-internal-format
msgid "%<#include%> nested depth %u exceeds maximum of %u (use %<-fmax-include-depth=DEPTH%> to increase the maximum)"
msgstr "„#include“ дубоко угнеждено %u превазилази максимум од %u (користите „-fmax-include-depth=ДУБИНА“ да повећате максимум)"
#: directives.cc:965
-#, fuzzy, gcc-internal-format
-#| msgid "#include_next in primary source file"
+#, gcc-internal-format
msgid "%<#include_next%> in primary source file"
-msgstr "#include_next у примарној изворној датотеци"
+msgstr "„#include_next“ у примарној изворној датотеци"
#: directives.cc:1037 directives.cc:1059 directives.cc:1062 directives.cc:1065
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "unbalanced stack in %s"
+#, gcc-internal-format, gfc-internal-format
msgid "unbalanced '%c'"
-msgstr "неуравнотежен стек у %s"
+msgstr "неуравнотежено „%c“"
#: directives.cc:1120 directives.cc:1311
#, gcc-internal-format
msgid "expected %<)%>"
-msgstr ""
+msgstr "очекивах „)“"
#: directives.cc:1126 directives.cc:1177
-#, fuzzy
-#| msgid "expected parameter name, found \"%s\""
msgid "expected parameter name"
-msgstr "очекивах назив параметра, нађох „%s“"
+msgstr "очекивах назив параметра"
#: directives.cc:1137
#, gcc-internal-format
msgid "%<gnu::base64%> parameter conflicts with %<limit%> or %<gnu::offset%> parameters"
-msgstr ""
+msgstr "„gnu::base64“ параметар се сукобљава са „limit“ или „gnu::offset“ параметром"
#: directives.cc:1147
#, gcc-internal-format
msgid "%<gnu::base64%> parameter required in preprocessed source"
-msgstr ""
+msgstr "„gnu::base64“ параметар је захтеван у преобрађеном извору"
#: directives.cc:1168
#, gcc-internal-format
msgid "expected %<:%>"
-msgstr ""
+msgstr "очекивах „:“"
#: directives.cc:1235
-#, fuzzy, gcc-internal-format
-#| msgid "duplicate macro parameter \"%s\""
+#, gcc-internal-format
msgid "duplicate embed parameter '%.*s%s%.*s'"
-msgstr "параметар двоструког макроа „%s“"
+msgstr "двоструки угнеждени параметар „%.*s%s%.*s“"
#: directives.cc:1247
#, gcc-internal-format
msgid "unknown embed parameter '%.*s%s%.*s'"
-msgstr ""
+msgstr "непознат угнеждени параметар „%.*s%s%.*s“"
#: directives.cc:1256
#, gcc-internal-format
msgid "expected %<(%>"
-msgstr ""
+msgstr "очекивах „(“"
#: directives.cc:1269
#, gcc-internal-format
msgid "too large %<gnu::offset%> argument"
-msgstr ""
+msgstr "превелик „gnu::offset“ аргумент"
#: directives.cc:1316
-#, fuzzy
-#| msgid "null character(s) preserved in literal"
msgid "expected character string literal"
-msgstr "ништаван знак је причуван у словности"
+msgstr "очекивах словност ниске знака"
#: directives.cc:1361
-#, fuzzy, gcc-internal-format
-#| msgid "suggest not using #elif in traditional C"
+#, gcc-internal-format
msgid "%<#embed%> not supported in traditional C"
-msgstr "саветује да се не користи „#elif“ у уобичајеном Ц-у"
+msgstr "„#embed“ није подржано у стандардном C-у"
#: directives.cc:1370
-#, fuzzy, gcc-internal-format
-#| msgid "#%s before C++23 is a GCC extension"
+#, gcc-internal-format
msgid "%<#%s%> before C++26 is a GCC extension"
-msgstr "„#%s“ пре „C++23“ јесте GCC проширење"
+msgstr "„#%s“ пре C++26 је GCC проширење"
#: directives.cc:1379
-#, fuzzy, gcc-internal-format
-#| msgid "#%s is a GCC extension"
+#, gcc-internal-format
msgid "%<#%s%> is a C23 feature"
-msgstr "#%s је ГЦЦ проширење"
+msgstr "„#%s“ је C23 функционалност"
#: directives.cc:1436
-#, fuzzy, gcc-internal-format
-#| msgid "invalid flag \"%s\" in line directive"
+#, gcc-internal-format
msgid "invalid flag %qs in line directive"
-msgstr "неисправна опција „%s“ у директиви реда"
+msgstr "неисправна заставица „%qs“ у директиви реда"
#: directives.cc:1504
-#, fuzzy, gcc-internal-format
-#| msgid "unexpected end of file after #line"
+#, gcc-internal-format
msgid "unexpected end of file after %<#line%>"
msgstr "неочекивани крај датотеке након „#line“"
#: directives.cc:1507
-#, fuzzy, gcc-internal-format
-#| msgid "\"%s\" after #line is not a positive integer"
+#, gcc-internal-format
msgid "%qs after %<#line%> is not a positive integer"
-msgstr "„%s“ након „#line“ није позитиван цео број"
+msgstr "„%qs“ након „#line“ није позитиван цео број"
#: directives.cc:1513 directives.cc:1516
msgid "line number out of range"
msgstr "број реда је ван опсега"
#: directives.cc:1529 directives.cc:1610
-#, fuzzy, gcc-internal-format
-#| msgid "\"%s\" is not a valid filename"
+#, gcc-internal-format
msgid "%qs is not a valid filename"
-msgstr "„%s“ није исправан назив датотеке"
+msgstr "„%qs“ није исправан назив датотеке"
#: directives.cc:1570
-#, fuzzy, gcc-internal-format
-#| msgid "\"%s\" after # is not a positive integer"
+#, gcc-internal-format
msgid "%qs after %<#%> is not a positive integer"
-msgstr "„%s“ након „#“ није позитиван цео број"
+msgstr "„%qs“ након „#“ није позитиван цео број"
#: directives.cc:1637
-#, fuzzy, gcc-internal-format
-#| msgid "file \"%s\" linemarker ignored due to incorrect nesting"
+#, gcc-internal-format
msgid "file %qs linemarker ignored due to incorrect nesting"
-msgstr "датотека „%s“ означавач реда занемаренa због нетачног угњежђавања"
+msgstr "„%qs“ означавач реда датотеке је занемарен због нетачног угнежђавања"
#: directives.cc:1715 directives.cc:1717 directives.cc:1719 directives.cc:2326
#, gcc-internal-format, gfc-internal-format
@@ -569,69 +511,59 @@ msgstr "%s"
#: directives.cc:1743
#, gcc-internal-format, gfc-internal-format
msgid "invalid #%s directive"
-msgstr "неисправна #%s директива"
+msgstr "неисправна „#%s“ директива"
#: directives.cc:1806
-#, fuzzy, gcc-internal-format
-#| msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+#, gcc-internal-format
msgid "registering pragmas in namespace %qs with mismatched name expansion"
-msgstr "бележим прагме у простору назива „%s“ са неодговарајућим ширењем назива"
+msgstr "бележим прагме у простору назива „%qs“ са неодговарајућим ширењем назива"
#: directives.cc:1815
-#, fuzzy, gcc-internal-format
-#| msgid "registering pragma \"%s\" with name expansion and no namespace"
+#, gcc-internal-format
msgid "registering pragma %qs with name expansion and no namespace"
-msgstr "бележим прагму „%s“ са ширењем назива и без простора назива"
+msgstr "бележим прагму „%qs“ са ширењем назива и без простора назива"
#: directives.cc:1833
-#, fuzzy, gcc-internal-format
-#| msgid "registering \"%s\" as both a pragma and a pragma namespace"
+#, gcc-internal-format
msgid "registering %qs as both a pragma and a pragma namespace"
-msgstr "бележим „%s“ и као прагму и као простор назива прагме"
+msgstr "бележим „%qs“ и као прагму и као простор назива прагме"
#: directives.cc:1836
-#, fuzzy, gcc-internal-format
-#| msgid "#pragma %s %s is already registered"
+#, gcc-internal-format
msgid "%<#pragma %s %s%> is already registered"
-msgstr "#pragma %s %s је већ забележено"
+msgstr "„#pragma %s %s“ је већ забележено"
#: directives.cc:1839
-#, fuzzy, gcc-internal-format
-#| msgid "#pragma %s is already registered"
+#, gcc-internal-format
msgid "%<#pragma %s%> is already registered"
-msgstr "#pragma %s је већ забележено"
+msgstr "„#pragma %s“ је већ забележено"
#: directives.cc:1870
msgid "registering pragma with NULL handler"
msgstr "бележим прагму са НИШТАВНИМ руковаоцем"
#: directives.cc:2088
-#, fuzzy, gcc-internal-format
-#| msgid "#pragma once in main file"
+#, gcc-internal-format
msgid "%<#pragma once%> in main file"
-msgstr "#pragma једном у главној датотеци"
+msgstr "„#pragma once“ у главној датотеци"
#: directives.cc:2158
-#, fuzzy, gcc-internal-format
-#| msgid "invalid #pragma push_macro directive"
+#, gcc-internal-format
msgid "invalid %<#pragma %s_macro%> directive"
-msgstr "неисправна „#pragma push_macro“ директива"
+msgstr "неисправна „#pragma %s_macro“ директива"
#: directives.cc:2237
-#, fuzzy, gcc-internal-format
-#| msgid "invalid #pragma GCC poison directive"
+#, gcc-internal-format
msgid "invalid %<#pragma GCC poison%> directive"
msgstr "неисправна „#pragma GCC poison“ директива"
#: directives.cc:2246
-#, fuzzy, gcc-internal-format
-#| msgid "poisoning existing macro \"%s\""
+#, gcc-internal-format
msgid "poisoning existing macro %qs"
-msgstr "трујем постојећи макро „%s“"
+msgstr "трујем постојећи макро „%qs“"
#: directives.cc:2268
-#, fuzzy, gcc-internal-format
-#| msgid "#pragma system_header ignored outside include file"
+#, gcc-internal-format
msgid "%<#pragma system_header%> ignored outside include file"
msgstr "„#pragma system_header“ је занемарено изван датотеке укључивања"
@@ -646,26 +578,22 @@ msgid "current file is older than %s"
msgstr "текућа датотека је старија од %s"
#: directives.cc:2321
-#, fuzzy, gcc-internal-format
-#| msgid "invalid \"#pragma GCC %s\" directive"
+#, gcc-internal-format
msgid "invalid %<#pragma GCC %s%> directive"
-msgstr "неисправна директива „#pragma GCC %s“"
+msgstr "неисправна „#pragma GCC %s“ директива"
#: directives.cc:2541
-#, fuzzy, gcc-internal-format
-#| msgid "_Pragma takes a parenthesized string literal"
+#, gcc-internal-format
msgid "%<_Pragma%> takes a parenthesized string literal"
-msgstr "_Прагма узима словност ниске затворене заградом"
+msgstr "„_Pragma“ узима словност ниске затворене заградом"
#: directives.cc:2624
-#, fuzzy, gcc-internal-format
-#| msgid "#else without #if"
+#, gcc-internal-format
msgid "%<#else%> without %<#if%>"
msgstr "„#else“ без „#if“"
#: directives.cc:2629
-#, fuzzy, gcc-internal-format
-#| msgid "#else after #else"
+#, gcc-internal-format
msgid "%<#else%> after %<#else%>"
msgstr "„#else“ након „#else“"
@@ -674,40 +602,34 @@ msgid "the conditional began here"
msgstr "условљеност почиње овде"
#: directives.cc:2657
-#, fuzzy, gcc-internal-format
-#| msgid "#%s without #if"
+#, gcc-internal-format
msgid "%<#%s%> without %<#if%>"
msgstr "„#%s“ без „#if“"
#: directives.cc:2663
-#, fuzzy, gcc-internal-format
-#| msgid "#%s after #else"
+#, gcc-internal-format
msgid "%<#%s%> after %<#else%>"
msgstr "„#%s“ након „#else“"
#: directives.cc:2767
-#, fuzzy, gcc-internal-format
-#| msgid "#endif without #if"
+#, gcc-internal-format
msgid "%<#endif%> without %<#if%>"
msgstr "„#endif“ без „#if“"
#: directives.cc:2852
-#, fuzzy, gcc-internal-format
-#| msgid "missing '(' after predicate"
+#, gcc-internal-format
msgid "missing %<(%> after predicate"
-msgstr "недостаје ( након предиката"
+msgstr "недостаје „(“ након предиката"
#: directives.cc:2870
-#, fuzzy, gcc-internal-format
-#| msgid "missing ')' to complete answer"
+#, gcc-internal-format
msgid "missing %<)%> to complete answer"
-msgstr "недостаје ) да доврши одговор"
+msgstr "недостаје „)“ да доврши одговор"
#: directives.cc:2882
-#, fuzzy, gcc-internal-format
-#| msgid "predicate's answer is empty"
+#, gcc-internal-format
msgid "predicate%'s answer is empty"
-msgstr "одговор предиката је празан"
+msgstr "„predicate%'s“ одговор је празан"
#: directives.cc:2912
msgid "assertion without predicate"
@@ -718,10 +640,9 @@ msgid "predicate must be an identifier"
msgstr "предикат мора бити одредник"
#: directives.cc:2997
-#, fuzzy, gcc-internal-format
-#| msgid "\"%s\" re-asserted"
+#, gcc-internal-format
msgid "%qs re-asserted"
-msgstr "„%s“ је поново утврђен"
+msgstr "„%qs“ је поново утврђено"
#: directives.cc:3305
#, gcc-internal-format, gfc-internal-format
@@ -739,104 +660,92 @@ msgstr "стдизлаз"
#: expr.cc:694 expr.cc:822
msgid "fixed-point constants are a GCC extension"
-msgstr "константе сталне тачке су ГЦЦ проширења"
+msgstr "константе сталне тачке су GCC проширења"
#: expr.cc:721
-#, fuzzy, gcc-internal-format
-#| msgid "invalid prefix \"0b\" for floating constant"
+#, gcc-internal-format
msgid "invalid prefix %<0b%> for floating constant"
msgstr "неисправан префикс „0b“ за покретну константу"
#: expr.cc:727
-#, fuzzy, gcc-internal-format
-#| msgid "invalid prefix \"0b\" for floating constant"
+#, gcc-internal-format
msgid "invalid prefix %<0o%> for floating constant"
-msgstr "неисправан префикс „0b“ за покретну константу"
+msgstr "неисправан префикс „0o“ за покретну константу"
#: expr.cc:740
msgid "use of C++17 hexadecimal floating constant"
-msgstr "употреба Ц++17 хексадецималне покретне константе"
+msgstr "употреба C++17 хексадецималне покретне константе"
#: expr.cc:744
msgid "use of C99 hexadecimal floating constant"
-msgstr "употреба Ц99 хексадецималне покретне константе"
+msgstr "употреба C99 хексадецималне покретне константе"
#: expr.cc:789
-#, fuzzy, gcc-internal-format
-#| msgid "invalid suffix \"%.*s\" on floating constant"
+#, gcc-internal-format
msgid "invalid suffix %<%.*s%> on floating constant"
msgstr "неисправан суфикс „%.*s“ на покретној константи"
#: expr.cc:800 expr.cc:870
-#, fuzzy, gcc-internal-format
-#| msgid "traditional C rejects the \"%.*s\" suffix"
+#, gcc-internal-format
msgid "traditional C rejects the %<%.*s%> suffix"
-msgstr "уобичајени Ц одбацује „%.*s“ суфикс"
+msgstr "стандардни C одбацује „%.*s“ суфикс"
#: expr.cc:809
msgid "suffix for double constant is a GCC extension"
-msgstr "суфикс за двоструку константу је ГЦЦ проширење"
+msgstr "суфикс за двоструку константу је GCC проширење"
#: expr.cc:815
-#, fuzzy, gcc-internal-format
-#| msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+#, gcc-internal-format
msgid "invalid suffix %<%.*s%> with hexadecimal floating constant"
msgstr "неисправан суфикс „%.*s“ са хексадецималном покретном константом"
#: expr.cc:829 expr.cc:833
-#, fuzzy
-#| msgid "decimal float constants are a C23 feature"
msgid "decimal floating constants are a C23 feature"
-msgstr "децималне покретне константе су „C23“ функције"
+msgstr "децималне покретне константе су C23 функције"
#: expr.cc:853
-#, fuzzy, gcc-internal-format
-#| msgid "invalid suffix \"%.*s\" on integer constant"
+#, gcc-internal-format
msgid "invalid suffix %<%.*s%> on integer constant"
msgstr "неисправан суфикс „%.*s“ на константи целог броја"
#: expr.cc:878
msgid "use of C++11 long long integer constant"
-msgstr "употреба Ц++11 дуге дуге константе целог броја"
+msgstr "употреба C++11 дуге дуге константе целог броја"
#: expr.cc:879
msgid "use of C99 long long integer constant"
-msgstr "употреба Ц99 дуге дуге константе целог броја"
+msgstr "употреба C99 дуге дуге константе целог броја"
#: expr.cc:894
#, gcc-internal-format
msgid "use of C++23 %<size_t%> integer constant"
-msgstr "употреба Ц++23 %<size_t%> константе целог броја"
+msgstr "употреба C++23 „size_t“ константе целог броја"
#: expr.cc:895
#, gcc-internal-format
msgid "use of C++23 %<make_signed_t<size_t>%> integer constant"
-msgstr "употреба Ц++23 %<make_signed_t<size_t>%> константе целог броја"
+msgstr "употреба C++23 „make_signed_t<size_t>“ константе целог броја"
#: expr.cc:905 expr.cc:916
#, gcc-internal-format
msgid "ISO C does not support literal %<wb%> suffixes before C23"
-msgstr "ISO C не подржава префиксе %<wb%> литерала пре C23"
+msgstr "ISO C не подржава префиксе „wb“ литерала пре C23"
#: expr.cc:931
msgid "imaginary constants are a GCC extension"
-msgstr "имагинарне константе су ГЦЦ проширења"
+msgstr "имагинарне константе су GCC проширења"
#: expr.cc:939
-#, fuzzy
-#| msgid "binary constants are a C23 feature or GCC extension"
msgid "imaginary constants are a C2Y feature or GCC extension"
-msgstr "бинарне константе су „C23“ функције или GCC проширења"
+msgstr "имагинарне константе су C23 функције или GCC проширења"
#: expr.cc:944
-#, fuzzy
-#| msgid "binary constants are a C23 feature"
msgid "imaginary constants are a C2Y feature"
-msgstr "бинарне константе су „C23“ функције"
+msgstr "имагинарне константе су C23 функције"
#: expr.cc:956
msgid "binary constants are a C++14 feature or GCC extension"
-msgstr "бинарне константе су Ц++14 функције или ГЦЦ проширења"
+msgstr "бинарне константе су C++14 функције или GCC проширења"
#: expr.cc:961
msgid "binary constants are a C23 feature or GCC extension"
@@ -847,16 +756,14 @@ msgid "binary constants are a C23 feature"
msgstr "бинарне константе су „C23“ функције"
#: expr.cc:974
-#, fuzzy, gcc-internal-format
-#| msgid "binary constants are a C23 feature or GCC extension"
+#, gcc-internal-format
msgid "%<0o%> prefixed constants are a C2Y feature or GCC extension"
-msgstr "бинарне константе су „C23“ функције или GCC проширења"
+msgstr "„0o“ префиксиране константе су C2Y функције или GCC проширење"
#: expr.cc:979
-#, fuzzy, gcc-internal-format
-#| msgid "binary constants are a C23 feature"
+#, gcc-internal-format
msgid "%<0o%> prefixed constants are a C2Y feature"
-msgstr "бинарне константе су „C23“ функције"
+msgstr "„0o“ префиксиране константе су C2Y функције"
#: expr.cc:1077
msgid "integer constant is too large for its type"
@@ -869,29 +776,25 @@ msgstr "константа целог броја је толико велика
#: expr.cc:1189
#, gcc-internal-format
msgid "%<defined%> in %<#embed%> parameter"
-msgstr ""
+msgstr "„defined“ у „#embed“ параметру"
#: expr.cc:1206
-#, fuzzy, gcc-internal-format
-#| msgid "missing ')' after \"defined\""
+#, gcc-internal-format
msgid "missing %<)%> after %<defined%>"
-msgstr "недостаје ( након „defined“"
+msgstr "недостаје „(“ након „defined“"
#: expr.cc:1213
-#, fuzzy, gcc-internal-format
-#| msgid "operator \"defined\" requires an identifier"
+#, gcc-internal-format
msgid "operator %<defined%> requires an identifier"
msgstr "оператор „defined“ захтева одредника"
#: expr.cc:1221
-#, fuzzy, gcc-internal-format
-#| msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+#, gcc-internal-format
msgid "(%qs is an alternative token for %qs in C++)"
-msgstr "(„%s“ је резервни симбол за „%s“ у Ц++-у)"
+msgstr "(„%qs“ је резервни симбол за „%qs“ у C++-)"
#: expr.cc:1234
-#, fuzzy, gcc-internal-format
-#| msgid "this use of \"defined\" may not be portable"
+#, gcc-internal-format
msgid "this use of %<defined%> may not be portable"
msgstr "ова употреба „defined“ не може бити преносива"
@@ -901,21 +804,20 @@ msgstr "словност коју је одредио корисник у изр
#: expr.cc:1284
msgid "floating constant in preprocessor expression"
-msgstr "покретна константа у изразу претптоцесора"
+msgstr "покретна константа у изразу претпроцесора"
#: expr.cc:1290
msgid "imaginary number in preprocessor expression"
-msgstr "имагинаран број у изразу претптоцесора"
+msgstr "имагинаран број у изразу претпроцесора"
#: expr.cc:1339
-#, fuzzy, gcc-internal-format
-#| msgid "\"%s\" is not defined, evaluates to 0"
+#, gcc-internal-format
msgid "%qs is not defined, evaluates to %<0%>"
-msgstr "„%s“ није одређено, процењује се на 0"
+msgstr "„%qs“ није одређено, процењује се на „0“"
#: expr.cc:1351
msgid "assertions are a GCC extension"
-msgstr "тврдње су ГЦЦ проширења"
+msgstr "тврдње су GCC проширења"
#: expr.cc:1355
msgid "assertions are a deprecated extension"
@@ -928,11 +830,11 @@ msgstr "неуравнотежен стек у %s"
#: expr.cc:1633
msgid "negative embed parameter operand"
-msgstr ""
+msgstr "негативан операнд угнежденог параметра"
#: expr.cc:1639
msgid "too large embed parameter operand"
-msgstr ""
+msgstr "превелик операнд угнежденог параметра"
#: expr.cc:1658
#, gcc-internal-format, gfc-internal-format
@@ -940,68 +842,59 @@ msgid "impossible operator '%u'"
msgstr "немогућ оператор у „%u“"
#: expr.cc:1759
-#, fuzzy, gcc-internal-format
-#| msgid "missing ')' in expression"
+#, gcc-internal-format
msgid "missing %<)%> in expression"
-msgstr "недостаје ) у изразу"
+msgstr "недостаје „)“ у изразу"
#: expr.cc:1788
-#, fuzzy, gcc-internal-format
-#| msgid "'?' without following ':'"
+#, gcc-internal-format
msgid "%<?%> without following %<:%>"
-msgstr "„?“ без пратећег „:“"
+msgstr "„?“ без пратеће „:“"
#: expr.cc:1798
msgid "integer overflow in preprocessor expression"
msgstr "прекорачење целог броја у изразу претпроцесора"
#: expr.cc:1803
-#, fuzzy, gcc-internal-format
-#| msgid "missing '(' in expression"
+#, gcc-internal-format
msgid "missing %<(%> in expression"
-msgstr "недостаје ( у изразу"
+msgstr "недостаје „(“ у изразу"
#: expr.cc:1835
-#, fuzzy, gcc-internal-format
-#| msgid "the left operand of \"%s\" changes sign when promoted"
+#, gcc-internal-format
msgid "the left operand of %qs changes sign when promoted"
-msgstr "леви операнд за „%s“ мења знак када је претворен"
+msgstr "леви операнд за „%qs“ мења знак када је претворен"
#: expr.cc:1840
-#, fuzzy, gcc-internal-format
-#| msgid "the right operand of \"%s\" changes sign when promoted"
+#, gcc-internal-format
msgid "the right operand of %qs changes sign when promoted"
-msgstr "десни операнд за „%s“ мења знак када је претворен"
+msgstr "десни операнд за „%qs“ мења знак када је претворен"
#: expr.cc:2099
msgid "traditional C rejects the unary plus operator"
-msgstr "уобичајени Ц одбацује унарни плус оператор"
+msgstr "стандардни C одбацује унарни плус оператор"
#: expr.cc:2197
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "comma operator in operand of #if"
+#, gcc-internal-format, gfc-internal-format
msgid "comma operator in operand of #%s"
-msgstr "оператор зареза у операнду „#if“"
+msgstr "оператор зареза у операнду „#%s“"
#: expr.cc:2335
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "division by zero in #if"
+#, gcc-internal-format, gfc-internal-format
msgid "division by zero in #%s"
-msgstr "дељење нулом у „#if“"
+msgstr "дељење нулом у „#%s“"
#: files.cc:530
-#, fuzzy, gcc-internal-format
-#| msgid "NULL directory in find_file"
+#, gcc-internal-format
msgid "NULL directory in %<find_file%>"
-msgstr "НИШТАВАН директоријум у пронађи_датотеку"
+msgstr "НИШТА директоријум у „find_file“"
#: files.cc:603
msgid "one or more PCH files were found, but they were invalid"
-msgstr "једна или више ПЦХ датотека је пронађено, али су неисправне"
+msgstr "једна или више PCH датотека је пронађено, али су неисправне"
#: files.cc:607
-#, fuzzy, gcc-internal-format
-#| msgid "use -Winvalid-pch for more information"
+#, gcc-internal-format
msgid "use %<-Winvalid-pch%> for more information"
msgstr "користите „-Winvalid-pch“ за више података"
@@ -1028,12 +921,12 @@ msgstr "нема путање укључивања у којој потражи
#: files.cc:1455
#, gcc-internal-format
msgid "%<gnu::base64%> parameter can be only used with %<\".\"%>"
-msgstr ""
+msgstr "„gnu::base64“ параметар се може користити само са „.“"
#: files.cc:1472
#, gcc-internal-format
msgid "%<gnu::base64%> argument not valid base64 encoded string"
-msgstr ""
+msgstr "„gnu::base64“ аргумент није исправна шифрована ниска основе64"
#: files.cc:2228
msgid "Multiple include guards may be useful for:\n"
@@ -1042,16 +935,15 @@ msgstr "Више чувара укључивања може бити корис
#: files.cc:2306
#, gcc-internal-format
msgid "header guard %qs followed by %<#define%> of a different macro"
-msgstr ""
+msgstr "за чуварем заглавља „%qs“ следи „#define“ другог макроа"
#: files.cc:2310
#, gcc-internal-format
msgid "%qs is defined here; did you mean %qs?"
-msgstr ""
+msgstr "„%qs“ је дефинисано овде; да ли сте мислили „%qs“?"
#: init.cc:676
-#, fuzzy, gcc-internal-format
-#| msgid "cppchar_t must be an unsigned type"
+#, gcc-internal-format
msgid "%<cppchar_t%> must be an unsigned type"
msgstr "„cppchar_t“ мора бити неозначена врста"
@@ -1061,37 +953,33 @@ msgid "preprocessor arithmetic has maximum precision of %lu bits; target require
msgstr "аритметика претпроцесора има највећу тачност од %lu бита; мета затева %lu бита"
#: init.cc:687
-#, fuzzy, gcc-internal-format
-#| msgid "CPP arithmetic must be at least as precise as a target int"
+#, gcc-internal-format
msgid "CPP arithmetic must be at least as precise as a target %<int%>"
-msgstr "ЦПП аритметика мора бити тачна барем колико и циљни цео број"
+msgstr "CPP аритметика мора бити тачна барем колико и циљни „int“"
#: init.cc:691
-#, fuzzy, gcc-internal-format
-#| msgid "target char is less than 8 bits wide"
+#, gcc-internal-format
msgid "target %<char%> is less than 8 bits wide"
-msgstr "циљни знак је дужи мање од 8 бита"
+msgstr "циљни „char“ је дужи мање од 8 бита"
#: init.cc:695
-#, fuzzy, gcc-internal-format
-#| msgid "target wchar_t is narrower than target char"
+#, gcc-internal-format
msgid "target %<wchar_t%> is narrower than target %<char%>"
-msgstr "циљни широки знак (wchar_t) је ужи од циљног знака"
+msgstr "циљни „wchar_t“ је ужи од циљног „char“"
#: init.cc:699
-#, fuzzy, gcc-internal-format
-#| msgid "target int is narrower than target char"
+#, gcc-internal-format
msgid "target %<int%> is narrower than target %<char%>"
-msgstr "циљни цео број је ужи од циљног знака"
+msgstr "циљни „int“ је ужи од циљног „char“"
#: init.cc:704
msgid "CPP half-integer narrower than CPP character"
-msgstr "ЦПП полуцео број је ужи од ЦПП знака"
+msgstr "CPP полуцео број је ужи од CPP знака"
#: init.cc:708
#, gcc-internal-format, gfc-internal-format
msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
-msgstr "ЦПП на овом рачунару не може да рукује дуге константе знака преко %lu бита, али мета захтева %lu бита"
+msgstr "CPP на овом рачунару не може да рукује дуге константе знака преко %lu бита, али мета захтева %lu бита"
#: lex.cc:1104
msgid "backslash and newline separated by space"
@@ -1099,43 +987,41 @@ msgstr "контра коса и нови ред су раздвојени ра
#: lex.cc:1109 lex.cc:1145
msgid "trailing whitespace"
-msgstr ""
+msgstr "пратећа празнина"
#: lex.cc:1116
msgid "backslash-newline at end of file"
msgstr "контра коса-нови ред на крају датотеке"
#: lex.cc:1132
-#, fuzzy, gcc-internal-format
-#| msgid "trigraph ??%c converted to %c"
+#, gcc-internal-format
msgid "trigraph %<??%c%> converted to %<%c%>"
-msgstr "триграф ??%c је претворен у %c"
+msgstr "триграф „??%c“ је претворен у „%c“"
#: lex.cc:1138
-#, fuzzy, gcc-internal-format
-#| msgid "trigraph ??%c ignored, use -trigraphs to enable"
+#, gcc-internal-format
msgid "trigraph %<??%c%> ignored, use %<-trigraphs%> to enable"
-msgstr "триграф ??%c је занемарен, користите „-trigraphs“ да укључите"
+msgstr "триграф „??%c“ је занемарен, користите „-trigraphs“ да укључите"
#: lex.cc:1149
msgid "too many consecutive spaces in leading whitespace"
-msgstr ""
+msgstr "превише узастопних размака у водећој празнини"
#: lex.cc:1154
msgid "tab after space in leading whitespace"
-msgstr ""
+msgstr "табулатор након размака у водећој празнини"
#: lex.cc:1161
msgid "whitespace other than spaces in leading whitespace"
-msgstr ""
+msgstr "празнина осим размака у водећој празнини"
#: lex.cc:1167
msgid "whitespace other than tabs in leading whitespace"
-msgstr ""
+msgstr "празнина осим табулатора у водећој празнини"
#: lex.cc:1173
msgid "whitespace other than spaces and tabs in leading whitespace"
-msgstr ""
+msgstr "празнина осим размака и табулатора у водећој празнини"
#: lex.cc:1623
msgid "end of bidirectional context"
@@ -1150,50 +1036,42 @@ msgid "unpaired UTF-8 bidirectional control character detected"
msgstr "неупарени УТФ-8 двосмерни контролни знак је откривен"
#: lex.cc:1706
-#, fuzzy, gcc-internal-format
-#| msgid "UTF-8 vs UCN mismatch when closing a context by \"%s\""
+#, gcc-internal-format
msgid "UTF-8 vs UCN mismatch when closing a context by %qs"
-msgstr "„UTF-8 vs UCN“ не одговара када затварам контекст са „%s“"
+msgstr "„UTF-8 vs UCN“ не одговара када затварам контекст са „%qs“"
#: lex.cc:1715
-#, fuzzy, gcc-internal-format
-#| msgid "\"%s\" is closing an unopened context"
+#, gcc-internal-format
msgid "%qs is closing an unopened context"
-msgstr "„%s“ затвара неотворени контекст"
+msgstr "„%qs“ затвара неотворени контекст"
#: lex.cc:1719
-#, fuzzy, gcc-internal-format
-#| msgid "found problematic Unicode character \"%s\""
+#, gcc-internal-format
msgid "found problematic Unicode character %qs"
-msgstr "нађох проблематичан Јуникод знак „%s“"
+msgstr "нађох проблематичан Јуникод знак „%qs“"
#: lex.cc:1749 lex.cc:1755
-#, fuzzy, gcc-internal-format
-#| msgid "invalid UTF-8 character <%x><%x>"
+#, gcc-internal-format
msgid "invalid UTF-8 character %<<%x>%>"
-msgstr "неисправан УТФ-8 знак „<%x><%x>“"
+msgstr "неисправан УТФ-8 знак „<%x>“"
#: lex.cc:1765 lex.cc:1771
-#, fuzzy, gcc-internal-format
-#| msgid "invalid UTF-8 character <%x><%x><%x>"
+#, gcc-internal-format
msgid "invalid UTF-8 character %<<%x><%x>%>"
-msgstr "неисправан УТФ-8 знак „<%x><%x><%x>“"
+msgstr "неисправан УТФ-8 знак „<%x><%x>“"
#: lex.cc:1781 lex.cc:1787
-#, fuzzy, gcc-internal-format
-#| msgid "invalid UTF-8 character <%x><%x><%x><%x>"
+#, gcc-internal-format
msgid "invalid UTF-8 character %<<%x><%x><%x>%>"
-msgstr "неисправан УТФ-8 знак „<%x><%x><%x><%x>“"
+msgstr "неисправан УТФ-8 знак „<%x><%x><%x>“"
#: lex.cc:1797 lex.cc:1803
-#, fuzzy, gcc-internal-format
-#| msgid "invalid UTF-8 character <%x><%x><%x><%x>"
+#, gcc-internal-format
msgid "invalid UTF-8 character %<<%x><%x><%x><%x>%>"
msgstr "неисправан УТФ-8 знак „<%x><%x><%x><%x>“"
#: lex.cc:1885
-#, fuzzy, gcc-internal-format
-#| msgid "\"/*\" within comment"
+#, gcc-internal-format
msgid "%</*%> within comment"
msgstr "„/*“ унутар напомене"
@@ -1207,62 +1085,53 @@ msgid "null character(s) ignored"
msgstr "ништаван знак(ци) је занемарен(и)"
#: lex.cc:2063
-#, fuzzy, gcc-internal-format
-#| msgid "`%.*s' is not in NFKC"
+#, gcc-internal-format
msgid "%<%.*s%> is not in NFKC"
-msgstr "„%.*s“ није у НФКЦ-у"
+msgstr "„%.*s“ није у NFKC-у"
#: lex.cc:2066 lex.cc:2069
-#, fuzzy, gcc-internal-format
-#| msgid "`%.*s' is not in NFC"
+#, gcc-internal-format
msgid "%<%.*s%> is not in NFC"
-msgstr "„%.*s“ није у НФЦ-у"
+msgstr "„%.*s“ није у NFC-у"
#: lex.cc:2158
-#, fuzzy, gcc-internal-format
-#| msgid "__VA_OPT__ is not available until C++20"
+#, gcc-internal-format
msgid "%<__VA_OPT__%> is not available until C++20"
-msgstr "„__VA_OPT__“ није доступно све до „Ц++20“"
+msgstr "„__VA_OPT__“ није доступно све до C++20"
#: lex.cc:2161
-#, fuzzy, gcc-internal-format
-#| msgid "__VA_OPT__ is not available until C23"
+#, gcc-internal-format
msgid "%<__VA_OPT__%> is not available until C23"
-msgstr "„__VA_OPT__“ није доступно све до „C23“"
+msgstr "„__VA_OPT__“ није доступно све до C23"
#: lex.cc:2169
-#, fuzzy, gcc-internal-format
-#| msgid "__VA_OPT__ can only appear in the expansion of a C++20 variadic macro"
+#, gcc-internal-format
msgid "%<__VA_OPT__%> can only appear in the expansion of a C++20 variadic macro"
-msgstr "„__VA_OPT__“ може само да се појави у ширењу вариадик макроа „Ц++20“"
+msgstr "„__VA_OPT__“ може само да се појави у ширењу вариадик макроа C++20"
#: lex.cc:2186
-#, fuzzy, gcc-internal-format
-#| msgid "attempt to use poisoned \"%s\""
+#, gcc-internal-format
msgid "attempt to use poisoned %qs"
-msgstr "покушај коришћења отрованог „%s“"
+msgstr "покушај коришћења отрованог „%qs“"
#: lex.cc:2191
msgid "poisoned here"
msgstr "отровано овде"
#: lex.cc:2201
-#, fuzzy, gcc-internal-format
-#| msgid "__VA_ARGS__ can only appear in the expansion of a C++11 variadic macro"
+#, gcc-internal-format
msgid "%<__VA_ARGS__%> can only appear in the expansion of a C++11 variadic macro"
-msgstr "„__VA_ARGS__“ може само да се појави у ширењу вариадик макроа Ц++11"
+msgstr "„__VA_ARGS__“ може само да се појави у ширењу вариадик макроа C++11"
#: lex.cc:2205
-#, fuzzy, gcc-internal-format
-#| msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+#, gcc-internal-format
msgid "%<__VA_ARGS__%> can only appear in the expansion of a C99 variadic macro"
-msgstr "„__VA_ARGS__“ може само да се појави у ширењу вариадик макроа Ц99"
+msgstr "„__VA_ARGS__“ може само да се појави у ширењу вариадик макроа C99"
#: lex.cc:2217
-#, fuzzy, gcc-internal-format
-#| msgid "identifier \"%s\" is a special operator name in C++"
+#, gcc-internal-format
msgid "identifier %qs is a special operator name in C++"
-msgstr "одредник „%s“ је назив посебног оператора у Ц++-у"
+msgstr "одредник „%qs“ је назив посебног оператора у C++-у"
#: lex.cc:2353
msgid "adjacent digit separators"
@@ -1270,7 +1139,7 @@ msgstr "блиски раздвојници цифре"
#: lex.cc:2502
msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
-msgstr "неисправан суфикс у словности; Ц++11 захтева размак између словности и макроа ниске"
+msgstr "неисправан суфикс у словности; C++11 захтева размак између словности и макроа ниске"
#: lex.cc:2723
msgid "raw string delimiter longer than 16 characters"
@@ -1296,44 +1165,40 @@ msgstr "ништаван знак је причуван у словности"
#: lex.cc:2953
#, gcc-internal-format, gfc-internal-format
msgid "missing terminating %c character"
-msgstr "недостаје завршни знак %c"
+msgstr "недостаје завршни знак „%c“"
#: lex.cc:2986
msgid "C++11 requires a space between string literal and macro"
-msgstr "Ц++11 захтева размак између словности и макроа ниске"
+msgstr "C++11 захтева размак између словности и макроа ниске"
#: lex.cc:3579
msgid "module control-line cannot be in included file"
msgstr "контролни ред модула не може бити у укљученој датотеци"
#: lex.cc:3593
-#, fuzzy, gcc-internal-format
-#| msgid "module control-line \"%s\" cannot be an object-like macro"
+#, gcc-internal-format
msgid "module control-line %qs cannot be an object-like macro"
-msgstr "контролни ред модула „%s“ не може бити макро налик објекту"
+msgstr "контролни ред модула „%qs“ не може бити макро налик објекту"
#: lex.cc:3631
-#, fuzzy, gcc-internal-format
-#| msgid "module control-line \"%s\" cannot be an object-like macro"
+#, gcc-internal-format
msgid "module name %qs cannot be an object-like macro"
-msgstr "контролни ред модула „%s“ не може бити макро налик објекту"
+msgstr "контролни ред модула „%qs“ не може бити макро налик објекту"
#: lex.cc:3637
-#, fuzzy, gcc-internal-format
-#| msgid "module control-line \"%s\" cannot be an object-like macro"
+#, gcc-internal-format
msgid "module partition %qs cannot be an object-like macro"
-msgstr "контролни ред модула „%s“ не може бити макро налик објекту"
+msgstr "партиција модула „%qs“ не може бити макро налик објекту"
#: lex.cc:3658
-#, fuzzy, gcc-internal-format
-#| msgid "'\\o' not followed by '{'"
+#, gcc-internal-format
msgid "module name followed by %<(%>"
-msgstr "за „\\o“ не следи „{“"
+msgstr "за називом модула следи „(“"
#: lex.cc:3662
#, gcc-internal-format
msgid "module partition followed by %<(%>"
-msgstr ""
+msgstr "за партицијом модула следи „(“"
#: lex.cc:4071 lex.cc:5504 traditional.cc:174
msgid "unterminated comment"
@@ -1341,7 +1206,7 @@ msgstr "неокончана напомена"
#: lex.cc:4085 lex.cc:4120
msgid "C++ style comments are not allowed in ISO C90"
-msgstr "Напомене Ц++ стила нису допуштене у ИСО Ц90"
+msgstr "Напомене C++ стила нису допуштене у ISO C90"
#: lex.cc:4088 lex.cc:4099 lex.cc:4123
msgid "(this will be reported only once per input file)"
@@ -1349,7 +1214,7 @@ msgstr "(ово ће бити извештено само једном по ул
#: lex.cc:4097
msgid "C++ style comments are incompatible with C90"
-msgstr "Напомене Ц++ стила нису сагласне са Ц90"
+msgstr "Напомене C++ стила нису сагласне са C90"
#: lex.cc:4129
msgid "multi-line comment"
@@ -1374,70 +1239,59 @@ msgid "'##' cannot appear at either end of __VA_OPT__"
msgstr "„##“ не може да се појави у или на крају „__VA_OPT__“"
#: macro.cc:144
-#, fuzzy, gcc-internal-format
-#| msgid "__VA_OPT__ may not appear in a __VA_OPT__"
+#, gcc-internal-format
msgid "%<__VA_OPT__%> may not appear in a %<__VA_OPT__%>"
msgstr "„__VA_OPT__“ не може да се појави у „__VA_OPT__“"
#: macro.cc:157
-#, fuzzy, gcc-internal-format
-#| msgid "__VA_OPT__ must be followed by an open parenthesis"
+#, gcc-internal-format
msgid "%<__VA_OPT__%> must be followed by an open parenthesis"
msgstr "„__VA_OPT__“ мора да буде праћено отвореном заградом"
#: macro.cc:235
-#, fuzzy, gcc-internal-format
-#| msgid "unterminated __VA_OPT__"
+#, gcc-internal-format
msgid "unterminated %<__VA_OPT__%>"
msgstr "неокончано „__VA_OPT__“"
#: macro.cc:396
-#, fuzzy, gcc-internal-format
-#| msgid "\"%s\" used outside of preprocessing directive"
+#, gcc-internal-format
msgid "%qs used outside of preprocessing directive"
-msgstr "„%s“ се користи ван директиве претпроцесора"
+msgstr "„%qs“ се користи ван директиве претпроцесора"
#: macro.cc:407
-#, fuzzy, gcc-internal-format
-#| msgid "missing '(' before \"%s\" operand"
+#, gcc-internal-format
msgid "missing %<(%> before %qs operand"
-msgstr "недостаје ( пре операнда „%s“"
+msgstr "недостаје „(“ пре операнда „%qs“"
#: macro.cc:425
-#, fuzzy, gcc-internal-format
-#| msgid "operator \"%s\" requires a header-name"
+#, gcc-internal-format
msgid "operator %qs requires a header-name"
-msgstr "оператор „%s“ захтева назив заглавља"
+msgstr "оператор „%qs“ захтева назив заглавља"
#: macro.cc:454
-#, fuzzy, gcc-internal-format
-#| msgid "missing ')' after \"%s\" operand"
+#, gcc-internal-format
msgid "missing %<)%> after %qs operand"
-msgstr "недостаје ) након операнда „%s“"
+msgstr "недостаје „)“ након операнда „%qs“"
#: macro.cc:499
-#, fuzzy, gcc-internal-format
-#| msgid "empty filename in #%s"
+#, gcc-internal-format
msgid "empty filename in %qs"
-msgstr "празан назив датотеке у #%s"
+msgstr "празан назив датотеке у „%qs“"
#: macro.cc:533
-#, fuzzy, gcc-internal-format
-#| msgid "macro \"%s\" is not used"
+#, gcc-internal-format
msgid "macro %qs is not used"
-msgstr "макро „%s“ није коришћен"
+msgstr "макро „%qs“ није коришћен"
#: macro.cc:572 macro.cc:888
-#, fuzzy, gcc-internal-format
-#| msgid "invalid built-in macro \"%s\""
+#, gcc-internal-format
msgid "invalid built-in macro %qs"
-msgstr "неисправан макро уградње „%s“"
+msgstr "неисправан макро уградње „%qs“"
#: macro.cc:579 macro.cc:687
-#, fuzzy, gcc-internal-format
-#| msgid "macro \"%s\" might prevent reproducible builds"
+#, gcc-internal-format
msgid "macro %qs might prevent reproducible builds"
-msgstr "макро „%s“ може да спречи поновљиве изградње"
+msgstr "макро „%qs“ може да спречи поновљиве изградње"
#: macro.cc:610
msgid "could not determine file timestamp"
@@ -1448,22 +1302,19 @@ msgid "could not determine date and time"
msgstr "не могу да одредим датум и време"
#: macro.cc:733
-#, fuzzy, gcc-internal-format
-#| msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+#, gcc-internal-format
msgid "%<__COUNTER__%> expanded inside directive with %<-fdirectives-only%>"
msgstr "„__COUNTER__“ је проширен у директиви са „-fdirectives-only“"
#: macro.cc:760
-#, fuzzy, gcc-internal-format
-#| msgid "suggest not using #elif in traditional C"
+#, gcc-internal-format
msgid "%<__has_embed%> not supported in traditional C"
-msgstr "саветује да се не користи „#elif“ у уобичајеном Ц-у"
+msgstr "„__has_embed“ није подржано у стандардном C-у"
#: macro.cc:1007
-#, fuzzy, gcc-internal-format
-#| msgid "invalid string literal, ignoring final '\\'"
+#, gcc-internal-format
msgid "invalid string literal, ignoring final %<\\%>"
-msgstr "неисправна словност ниске, занемарујем завршну \\"
+msgstr "неисправна словност ниске, занемарујем завршну „\\“"
#: macro.cc:1071
#, gcc-internal-format
@@ -1471,183 +1322,162 @@ msgid "pasting \"%.*s\" and \"%.*s\" does not give a valid preprocessing token"
msgstr "убацивање „%.*s“ и „%.*s“ не даје исправну скупину предобраде"
#: macro.cc:1203
-#, fuzzy, gcc-internal-format
-#| msgid "ISO C++11 requires at least one argument for the \"...\" in a variadic macro"
+#, gcc-internal-format
msgid "ISO C++11 requires at least one argument for the %<...%> in a variadic macro"
-msgstr "ИСО Ц++11 захтева барем један аргумент за „...“ у вариадик макроу"
+msgstr "ISO C++11 захтева барем један аргумент за „...“ у вариадик макроу"
#: macro.cc:1207
-#, fuzzy, gcc-internal-format
-#| msgid "ISO C99 requires at least one argument for the \"...\" in a variadic macro"
+#, gcc-internal-format
msgid "ISO C99 requires at least one argument for the %<...%> in a variadic macro"
-msgstr "ИСО Ц99 захтева барем један аргумент за „...“ у вариадик макроу"
+msgstr "ISO C99 захтева барем један аргумент за „...“ у вариадик макроу"
#: macro.cc:1214
-#, fuzzy, gcc-internal-format
-#| msgid "macro \"%s\" requires %u arguments, but only %u given"
+#, gcc-internal-format
msgid "macro %qs requires %u arguments, but only %u given"
-msgstr "макро „%s“ захтева %u аргумента, али само %u су дата"
+msgstr "макро „%qs“ захтева %u аргумента, али само %u су дата"
#: macro.cc:1219
-#, fuzzy, gcc-internal-format
-#| msgid "macro \"%s\" passed %u arguments, but takes just %u"
+#, gcc-internal-format
msgid "macro %qs passed %u arguments, but takes just %u"
-msgstr "макро „%s“ је проследио %u аргумента, али узима само %u"
+msgstr "макро „%qs“ је проследио %u аргумента, али узима само %u"
#: macro.cc:1223
-#, fuzzy, gcc-internal-format
-#| msgid "macro \"%s\" defined here"
+#, gcc-internal-format
msgid "macro %qs defined here"
-msgstr "макро „%s“ је дефинисан овде"
+msgstr "макро „%qs“ је дефинисан овде"
#: macro.cc:1417 traditional.cc:822
-#, fuzzy, gcc-internal-format
-#| msgid "unterminated argument list invoking macro \"%s\""
+#, gcc-internal-format
msgid "unterminated argument list invoking macro %qs"
-msgstr "бесконачан списак аргумената призивајући макро „%s“"
+msgstr "неокончан списак аргумената призивајући макро „%qs“"
#: macro.cc:1563
-#, fuzzy, gcc-internal-format
-#| msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+#, gcc-internal-format
msgid "function-like macro %qs must be used with arguments in traditional C"
-msgstr "макро налик функцији „%s“ мора бити коришћен са аргументима у уобичајеном Ц-у"
+msgstr "макро налик функцији „%qs“ мора бити коришћен са аргументима у стандардном C-у"
#: macro.cc:2398
#, gcc-internal-format, gfc-internal-format
msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C++98"
-msgstr "призивајући макро %s аргумент %d: празни аргументи макроа нису одређени у ИСО Ц++98"
+msgstr "призивајући макро %s аргумент %d: празни аргументи макроа нису одређени у ISO C++98"
#: macro.cc:2406 macro.cc:2415
#, gcc-internal-format, gfc-internal-format
msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90"
-msgstr "призивајући макро %s аргумент %d: празни аргументи макроа нису одређени у ИСО Ц90"
+msgstr "призивајући макро %s аргумент %d: празни аргументи макроа нису одређени у ISO C90"
#: macro.cc:3238
#, gcc-internal-format
msgid "%qc in module name or partition comes from or after macro expansion"
-msgstr ""
+msgstr "„%qc“ у називу модула или партицији долази из или након ширења макроа"
#: macro.cc:3481
-#, fuzzy, gcc-internal-format
-#| msgid "duplicate macro parameter \"%s\""
+#, gcc-internal-format
msgid "duplicate macro parameter %qs"
-msgstr "параметар двоструког макроа „%s“"
+msgstr "двоструки параметар макроа „%qs“"
#: macro.cc:3563
-#, fuzzy, gcc-internal-format
-#| msgid "expected parameter name, found \"%s\""
+#, gcc-internal-format
msgid "expected parameter name, found %qs"
-msgstr "очекивах назив параметра, нађох „%s“"
+msgstr "очекивах назив параметра, нађох „%qs“"
#: macro.cc:3564
-#, fuzzy, gcc-internal-format
-#| msgid "expected ',' or ')', found \"%s\""
+#, gcc-internal-format
msgid "expected %<,%> or %<)%>, found %qs"
-msgstr "очекивах , или ), нађох „%s“"
+msgstr "очекивах „,“ или „)“, нађох %qs"
#: macro.cc:3565
msgid "expected parameter name before end of line"
msgstr "очекивах назив параметра пре краја реда"
#: macro.cc:3566
-#, fuzzy, gcc-internal-format
-#| msgid "expected ')' before end of line"
+#, gcc-internal-format
msgid "expected %<)%> before end of line"
-msgstr "очекивах ) пре краја реда"
+msgstr "очекивах „)“ пре краја реда"
#: macro.cc:3567
-#, fuzzy, gcc-internal-format
-#| msgid "expected ')' after \"...\""
+#, gcc-internal-format
msgid "expected %<)%> after %<...%>"
-msgstr "очекивах ) након ..."
+msgstr "очекивах „)“ након „...“"
#: macro.cc:3624
msgid "anonymous variadic macros were introduced in C++11"
-msgstr "безимени вариадик макрои су уведени у Ц++11"
+msgstr "безимени вариадик макрои су уведени у C++11"
#: macro.cc:3625 macro.cc:3629
msgid "anonymous variadic macros were introduced in C99"
-msgstr "безимени вариадик макрои су уведени у Ц99"
+msgstr "безимени вариадик макрои су уведени у C99"
#: macro.cc:3635
msgid "ISO C++ does not permit named variadic macros"
-msgstr "ИСО Ц++ не дозвољава именоване вариадик макрое"
+msgstr "ISO C++ не дозвољава именоване вариадик макрое"
#: macro.cc:3636
msgid "ISO C does not permit named variadic macros"
-msgstr "ИСО Ц не дозвољава именоване вариадик макрое"
+msgstr "ISO C не дозвољава именоване вариадик макрое"
#: macro.cc:3682
-#, fuzzy, gcc-internal-format
-#| msgid "'##' cannot appear at either end of a macro expansion"
+#, gcc-internal-format
msgid "%<##%> cannot appear at either end of a macro expansion"
msgstr "„##“ не може да се појави у или на крају макро ширења"
#: macro.cc:3720
msgid "ISO C++11 requires whitespace after the macro name"
-msgstr "ИСО Ц++11 захтева празнине након назива макроа"
+msgstr "ISO C++11 захтева празнине након назива макроа"
#: macro.cc:3721
msgid "ISO C99 requires whitespace after the macro name"
-msgstr "ИСО Ц99 захтева празнине након назива макроа"
+msgstr "ISO C99 захтева празнине након назива макроа"
#: macro.cc:3745
msgid "missing whitespace after the macro name"
msgstr "недостаје празнина након назива макроа"
#: macro.cc:3798
-#, fuzzy, gcc-internal-format
-#| msgid "'#' is not followed by a macro parameter"
+#, gcc-internal-format
msgid "%<#%> is not followed by a macro parameter"
msgstr "за „#“ не следи параметар макроа"
#: macro.cc:3961
-#, fuzzy, gcc-internal-format
-#| msgid "\"%s\" redefined"
+#, gcc-internal-format
msgid "%qs redefined"
-msgstr "„%s“ је поново одређено"
+msgstr "„%qs“ је поново одређено"
#: macro.cc:3965
msgid "this is the location of the previous definition"
msgstr "ово је место претходне одреднице"
#: macro.cc:4103
-#, fuzzy, gcc-internal-format
-#| msgid "macro argument \"%s\" would be stringified in traditional C"
+#, gcc-internal-format
msgid "macro argument %qs would be stringified in traditional C"
-msgstr "макро аргумент „%s“ ће бити нискован у уобичајеном Ц-у"
+msgstr "макро аргумент „%qs“ ће бити нискован у стандардном C-у"
#: pch.cc:90 pch.cc:342 pch.cc:356 pch.cc:374 pch.cc:380 pch.cc:389 pch.cc:396
msgid "while writing precompiled header"
msgstr "за време уписивања претходно преведеног заглавља"
#: pch.cc:616
-#, fuzzy, gcc-internal-format
-#| msgid "%s: not used because `%.*s' is poisoned"
+#, gcc-internal-format
msgid "%s: not used because %<%.*s%> is poisoned"
msgstr "%s: није употребљено зато што је „%.*s“ отровано"
#: pch.cc:638
-#, fuzzy, gcc-internal-format
-#| msgid "%s: not used because `%.*s' not defined"
+#, gcc-internal-format
msgid "%s: not used because %<%.*s%> not defined"
msgstr "%s: није употребљено зато што „%.*s“ није одређено"
#: pch.cc:650
-#, fuzzy, gcc-internal-format
-#| msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+#, gcc-internal-format
msgid "%s: not used because %<%.*s%> defined as %qs not %<%.*s%>"
-msgstr "%s: није употребљено зато што „%.*s“ одређено као „%s“ није „%.*s“"
+msgstr "%s: није употребљено зато што „%.*s“ одређено као „%qs“ није „%.*s“"
#: pch.cc:693
-#, fuzzy, gcc-internal-format
-#| msgid "%s: not used because `%s' is defined"
+#, gcc-internal-format
msgid "%s: not used because %qs is defined"
-msgstr "%s: није употребљено зато што је „%s“ одређено"
+msgstr "%s: није употребљено зато што је „%qs“ одређено"
#: pch.cc:713
-#, fuzzy, gcc-internal-format
-#| msgid "%s: not used because `__COUNTER__' is invalid"
+#, gcc-internal-format
msgid "%s: not used because %<__COUNTER__%> is invalid"
msgstr "%s: није употребљено зато што „__COUNTER__“ није исправно"
@@ -1656,10 +1486,9 @@ msgid "while reading precompiled header"
msgstr "за време читања претходно преведеног заглавља"
#: traditional.cc:891
-#, fuzzy, gcc-internal-format
-#| msgid "detected recursion whilst expanding macro \"%s\""
+#, gcc-internal-format
msgid "detected recursion whilst expanding macro %qs"
-msgstr "откривено је дубачење за време ширења макроа „%s“"
+msgstr "откривено је дубачење за време ширења макроа „%qs“"
#: traditional.cc:1114
msgid "syntax error in macro parameter list"
diff --git a/libcpp/po/zh_CN.po b/libcpp/po/zh_CN.po
index 467575b..2262520 100644
--- a/libcpp/po/zh_CN.po
+++ b/libcpp/po/zh_CN.po
@@ -2,22 +2,24 @@
# Copyright (C) 2005 Free Software Foundation, Inc.
# This file is distributed under the same license as the gcc package.
# Meng Jie <zuxy.meng@gmail.com>, 2005-2010.
+# Boyuan Yang <073plan@gmail.com>, 2025.
+# Anbang LI <anbangli@foxmail.com>, 2025.
# Zhanhaoxiang Zhang <zzhx2006@outlook.com>, 2024, 2025.
#
msgid ""
msgstr ""
-"Project-Id-Version: cpplib 15-b20250216\n"
+"Project-Id-Version: cpplib 15.1-b20250316\n"
"Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
"POT-Creation-Date: 2025-03-14 22:05+0000\n"
-"PO-Revision-Date: 2025-02-20 18:32+0800\n"
-"Last-Translator: Zhanhaoxiang Zhang <zzhx2006@outlook.com>\n"
+"PO-Revision-Date: 2025-05-15 12:47-0400\n"
+"Last-Translator: Boyuan Yang <073plan@gmail.com>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Poedit 3.5\n"
+"X-Generator: Poedit 3.6\n"
#: charset.cc:759
#, gcc-internal-format, gfc-internal-format
@@ -49,12 +51,12 @@ msgstr "字符 0x%lx 在执行字符集中不是单字节的"
#: charset.cc:1549
msgid "universal character names are only valid in C++ and C99"
-msgstr "Unicode 字符名只在 C++ 和 C99 中有效"
+msgstr "通用字符名只在 C++ 和 C99 中有效"
#: charset.cc:1553
#, gcc-internal-format
msgid "C99%'s universal character names are incompatible with C90"
-msgstr "C99 的 Unicode 字符名与 C90 不兼容"
+msgstr "C99 的通用字符名与 C90 不兼容"
#: charset.cc:1556
#, gcc-internal-format
@@ -64,29 +66,29 @@ msgstr "%<\\%c%> 的意义与在传统 C 中不同"
#: charset.cc:1595
#, gcc-internal-format
msgid "%<\\N%> not followed by %<{%>"
-msgstr "%<\\N%> 后没有 %<{%>"
+msgstr "%<\\N%> 后面没有 %<{%>"
#: charset.cc:1625
msgid "empty named universal character escape sequence; treating it as separate tokens"
-msgstr "空的命名 Unicode 字符转义序列;将其视为独立 token 处理"
+msgstr "空命名通用字符转义序列; 将其视为单独的词元"
#: charset.cc:1632
msgid "empty named universal character escape sequence"
-msgstr "空的命名 Unicode 字符转义序列"
+msgstr "空的命名通用字符转义序列"
#: charset.cc:1639
msgid "named universal character escapes are only valid in C++23"
-msgstr "命名 Unicode 字符转义序列(named universal character escapes)仅在 C++23 中有效"
+msgstr "命名通用字符转义仅在 C++23 中有效"
#: charset.cc:1659
#, gcc-internal-format
msgid "%<\\N{%.*s}%> is not a valid universal character; treating it as separate tokens"
-msgstr "%<\\N{%.*s}%> 不是一个有效的 Unicode 字符;将其视为独立 token 处理"
+msgstr "%<\\N{%.*s}%> 不是有效的通用字符; 将其视为独立的词元"
#: charset.cc:1665
#, gcc-internal-format
msgid "%<\\N{%.*s}%> is not a valid universal character"
-msgstr "%<\\N{%.*s}%> 不是一个有效的 Unicode 字符"
+msgstr "%<\\N{%.*s}%> 不是一个有效的通用字符"
#: charset.cc:1675
#, gcc-internal-format
@@ -96,7 +98,7 @@ msgstr "你是说 %<\\N{%s}%> 吗?"
#: charset.cc:1693
#, gcc-internal-format
msgid "%<\\N{%> not terminated with %<}%> after %.*s; treating it as separate tokens"
-msgstr "在 %.*s 之后 %<\\N{%> 未以 %<}%> 结束;将其视为独立 token 处理"
+msgstr "在 %.*s 之后 %<\\N{%> 未以 %<}%> 结束;将其视为独立词元"
#: charset.cc:1702
#, gcc-internal-format
@@ -110,7 +112,7 @@ msgstr "在 %<_cpp_valid_ucn%> 中但不是一个 UCN"
#: charset.cc:1753
msgid "empty delimited escape sequence; treating it as separate tokens"
-msgstr "空的带分隔符的转义序列;将其视为独立 token 处理"
+msgstr "空的带分隔符的转义序列;将其视为独立词元"
#: charset.cc:1760 charset.cc:2163 charset.cc:2280
msgid "empty delimited escape sequence"
@@ -128,12 +130,12 @@ msgstr "带分隔符的转义序列仅在 C2Y 中有效"
#: charset.cc:1794
#, gcc-internal-format
msgid "%<\\u{%> not terminated with %<}%> after %.*s; treating it as separate tokens"
-msgstr "在 %.*s 之后 %<\\u{%> 未以 %<}%> 结束;将其视为独立 token 处理"
+msgstr "在 %.*s 之后 %<\\u{%> 未以 %<}%> 结束;将其视为独立词元"
#: charset.cc:1806
#, gcc-internal-format
msgid "incomplete universal character name %.*s"
-msgstr "不完全的 Unicode 字符名 %.*s"
+msgstr "不完整的通用字符名 %.*s"
#: charset.cc:1810
#, gcc-internal-format
@@ -143,12 +145,12 @@ msgstr "在 %.*s 之后 %<\\u{%> 未以 %<}%> 结束"
#: charset.cc:1818
#, gcc-internal-format
msgid "%.*s is not a valid universal character"
-msgstr "%.*s 不是一个有效的 Unicode 字符"
+msgstr "%.*s 不是一个有效的通用字符"
#: charset.cc:1834 charset.cc:1838
#, gcc-internal-format
msgid "%.*s is not a valid universal character name before C23"
-msgstr "在C23之前,%.*s 不是一个有效的 Unicode 字符名"
+msgstr "在C23之前,%.*s 不是一个有效的通用字符名"
#: charset.cc:1854 lex.cc:2096
#, gcc-internal-format
@@ -158,17 +160,17 @@ msgstr "%<$%> 出现在标识符或数字中"
#: charset.cc:1864
#, gcc-internal-format
msgid "universal character %.*s is not valid in an identifier"
-msgstr "Unicode 字符 %.*s 在标识符中无效"
+msgstr "通用字符 %.*s 在标识符中无效"
#: charset.cc:1868
#, gcc-internal-format
msgid "universal character %.*s is not valid at the start of an identifier"
-msgstr "Unicode 字符 %.*s 在标识符开头无效"
+msgstr "通用字符 %.*s 在标识符开头无效"
#: charset.cc:1875
#, gcc-internal-format
msgid "%.*s is outside the UCS codespace"
-msgstr "%.*s 超出了 UCS 码空间"
+msgstr "%.*s 在 UCS 码空间之外"
#: charset.cc:1919 charset.cc:3072
msgid "converting UCN to source character set"
@@ -186,7 +188,7 @@ msgstr "扩展字符 %.*s 在标识符中无效"
#: charset.cc:2007
#, gcc-internal-format
msgid "extended character %.*s is not valid at the start of an identifier"
-msgstr "扩展字符 %.*s 在标识符开头无效"
+msgstr "扩展字符 %.*s 在标识符的开头无效"
#: charset.cc:2129
#, gcc-internal-format
@@ -208,10 +210,9 @@ msgid "hex escape sequence out of range"
msgstr "16 进制转义序列越界"
#: charset.cc:2247
-#, fuzzy, gcc-internal-format
-#| msgid "%<\\o%> not followed by %<}%>"
+#, gcc-internal-format
msgid "%<\\o%> not followed by %<{%>"
-msgstr "%<\\o%> 后没有 %<}%>"
+msgstr "%<\\o%> 后面没有 %<{%>"
#: charset.cc:2305
#, gcc-internal-format
@@ -461,16 +462,14 @@ msgid "%<#embed%> not supported in traditional C"
msgstr "在传统C中不支持 %<#embed%>"
#: directives.cc:1370
-#, fuzzy, gcc-internal-format
-#| msgid "%<#%s%> before C++23 is a GCC extension"
+#, gcc-internal-format
msgid "%<#%s%> before C++26 is a GCC extension"
-msgstr "%<#%s%> 在C++23以前是一个 GCC 扩展"
+msgstr "%<#%s%> 在 C++26 以前是一个 GCC 扩展"
#: directives.cc:1379
-#, fuzzy, gcc-internal-format
-#| msgid "%<#%s%> is a GCC extension"
+#, gcc-internal-format
msgid "%<#%s%> is a C23 feature"
-msgstr "%<#%s%> 是一个 GCC 扩展"
+msgstr "%<#%s%> 是一个 C23 特性"
#: directives.cc:1436
#, gcc-internal-format