1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-05 09:13:14 +02:00

Compare commits

..

35 Commits

Author SHA1 Message Date
Sébastien Helleu 2e88586ade core: always write all options in theme files
Theme files saved with /theme save and automatic backups now always
contain every themable option (full snapshot), so a theme file is
self-contained and round-trips exactly regardless of the current
configuration. The diff-only mode and the "-full" argument of
/theme save are removed.
2026-06-06 12:23:07 +02:00
Sébastien Helleu 91e926ee22 core: fix description of automatic theme backup 2026-06-06 12:23:07 +02:00
Sébastien Helleu e5542a58fc core: add /theme rename to rename a user theme file 2026-06-06 12:23:07 +02:00
Sébastien Helleu 94e5b65ecb core: auto-detect terminal background and apply light theme on first start
Detect the terminal background (via COLORFGBG or an OSC 11 query) before
GUI init and, on the first start, automatically apply the built-in
"light" theme when a light terminal is detected.

The function gui_term_theme_is_light returns an int (1 if light, 0 otherwise,
0 being the safe value when detection is unsure).
2026-06-06 12:23:07 +02:00
Sébastien Helleu 6360925e55 core: fix style in comments 2026-06-06 12:23:07 +02:00
Sébastien Helleu bb2b1f9870 core: display path to theme written with /theme save <name> 2026-06-06 12:23:07 +02:00
Sébastien Helleu 2bbcd8a68f core: add /theme reset to restore original themable defaults 2026-06-06 12:23:07 +02:00
Sébastien Helleu ad3b7b825c tests: cover apply edge cases for /theme command 2026-06-06 12:23:07 +02:00
Sébastien Helleu 3858e6e1c8 doc: add ChangeLog entry for /theme command and built-in light theme
Add six entries to the "Added" section of Version 4.10.0 in
CHANGELOG.md:

- the /theme command with its subcommands (list/apply/save/delete/
  info) and the automatic backup mechanism, plus the shipped
  "light" built-in theme;
- the themable flag on configuration options;
- the weechat.look.theme and weechat.look.theme_backup options;
- the theme_register plugin/script API function;
- the t:themable filter in fset.

No UPGRADING.md entry: the change is purely additive — default option
values are unchanged, so existing users see no visible difference
until they explicitly /theme apply light. weechat.look.theme is a new
option (empty by default at first launch) and weechat.look.theme_backup
defaults to "on".
2026-06-06 12:23:07 +02:00
Sébastien Helleu 7bb23896e7 doc: document /theme command and theme file format
Add the "Themes" section to user guides and plugin API references in
every language where the corresponding adoc exists.

User guide (10 files): English (the new prose) and French (a full
translation, with section title "Thèmes"). For the other languages —
German, Italian, Japanese, Polish, Serbian — the body is the English
text with only the section title localized where the existing Colors
section is localized (Themen / Motywy / Теме); Italian and Japanese
keep the English "Themes" title to match their existing English-only
section titles. Coverage by file:

  - doc/en/weechat_user.en.adoc       (new English section)
  - doc/fr/weechat_user.fr.adoc       (full French translation)
  - doc/de/weechat_user.de.adoc       (English body, "Themen" title)
  - doc/it/weechat_user.it.adoc       (English body and title)
  - doc/ja/weechat_user.ja.adoc       (English body and title)
  - doc/pl/weechat_user.pl.adoc       (English body, "Motywy" title)
  - doc/sr/weechat_user.sr.adoc       (English body, "Теме" title)

Plugin API reference (5 files): same approach — English plus full
French translation; Italian, Japanese and Serbian keep the English
body with their conventional section title:

  - doc/en/weechat_plugin_api.en.adoc (new English section)
  - doc/fr/weechat_plugin_api.fr.adoc (full French translation)
  - doc/it/weechat_plugin_api.it.adoc (English body and title)
  - doc/ja/weechat_plugin_api.ja.adoc (English body and title)
  - doc/sr/weechat_plugin_api.sr.adoc (English body, "Теме" title)

User-guide content covers themable options, /theme apply with the
automatic backup mechanism, /theme save and /theme delete with the
reserved-name rules, the .theme file format with a sample, and the
user-file-shadows-built-in resolution order. The API-reference content
documents weechat_theme_register (prototype, arguments, return value,
C example, Python example) with notes on the themable flag and
per-script auto-cleanup on script unload.

The /theme command's CMD_ARGS_DESC help text and the cmdline option
descriptions are picked up automatically by the doc generator
(doc-autogen), so no manual entries are needed there.
2026-06-06 12:23:07 +02:00
Sébastien Helleu 2a94a90b36 script: track per-script theme contributions and purge on script unload
Make individual scripts the unit of ownership for theme contributions
so that loading a script that calls weechat.theme_register(...) and
later unloading it correctly removes the script's overrides.

Plugin API addition (weechat-plugin.h):

  - new function pointer t_weechat_plugin.theme_unregister_script
    delegates to core's theme_unregister_script.
  - new convenience macro weechat_theme_unregister_script(script).
  - WEECHAT_PLUGIN_API_VERSION bumped to 20260527-02.

Script API additions (plugin-script-api.{c,h}):

  - new plugin_script_api_theme_register (plugin, script, name,
    overrides) forwards to the plugin API with the script pointer
    as the contribution owner, so contributions are tracked
    per-script (not per script-language plugin).

Lifecycle wiring (plugin-script.c):

  - new file-local plugin_script_remove_themes (plugin, script)
    calls weechat_theme_unregister_script.
  - plugin_script_remove now calls it alongside the other
    plugin_script_remove_* helpers, so script-unload tears down
    everything (configs, bar items, themes, hooks).

Eight language bindings updated to call
plugin_script_api_theme_register instead of weechat_theme_register
directly, so they pass the script pointer as owner:

  - python, perl, ruby, lua, tcl, javascript, php, guile.

The behavior change is end-to-end visible only at script unload:
before, an unloaded script's theme overrides lingered in the
registry forever and would be re-applied on the next /theme apply;
after, they vanish when the script unloads. /plugin unload of an
entire script-language plugin already worked via commit 24's hook
in plugin_remove (which drops both plugin-only contributions and
their script-owned children when the language plugin itself goes
away, because the contribution's plugin pointer matches).

No new unit tests in this commit: the underlying theme_unregister_script
function is covered by TEST(CoreTheme, UnregisterByOwner), and the
remaining changes are plumbing.
2026-06-06 12:23:07 +02:00
Sébastien Helleu 75bd55d17c core: auto-purge plugin contributions on plugin unload
Call theme_unregister_plugin (plugin) from plugin_remove, right after
config_file_free_all_plugin and before unhook_all_plugin. This drops
every theme contribution whose plugin pointer matches the plugin being
unloaded, so subsequent /theme apply runs no longer try to set
options for an unloaded plugin and per-plugin contributions don't
outlive the plugin.

Script-owned contributions (plugin != NULL && script != NULL) are
left intact - they are cleaned up per-script in the next commit.

This commit is wiring only: the underlying theme_unregister_plugin
function and its semantics are already covered by
TEST(CoreTheme, UnregisterByOwner) in the previous commit.
2026-06-06 12:23:07 +02:00
Sébastien Helleu 84f5fd92d6 core: track per-contributor overrides in theme registry
Refactor the theme registry to store one sub-table per contributor
instead of a single merged hashtable. Each registered theme now holds
a linked list of t_theme_contribution entries:

  struct t_theme_contribution {
      struct t_weechat_plugin *plugin;  /* NULL = core */
      const void *script;               /* NULL for non-script */
      struct t_hashtable *overrides;
      ...
  };

Identity of a contributor is the (plugin, script) pair:

  - (NULL, NULL)     -> core (theme_builtin_init)
  - (plugin, NULL)   -> plugin-level contribution
  - (plugin, script) -> individual script (filled in by next commit)

theme_register is now (plugin, script, name, overrides). It searches
the existing contributions for a matching (plugin, script) and merges
the new overrides into it; otherwise it appends a fresh contribution.
The public macro weechat_theme_register(name, overrides) still takes
two args - it now expands to pass weechat_plugin and NULL for script.

theme_apply iterates contributions in list order, calling
config_file_option_set for each entry; later contributions naturally
win for duplicate keys.

Two new internal helpers prepare for the lifecycle work in the next
two commits:

  - theme_unregister_plugin (plugin): drops every contribution owned
    by that plugin (with script == NULL).
  - theme_unregister_script (plugin, script): drops every contribution
    owned by that script.

Neither is called yet; the auto-purge wiring lands in commits 24
(plugin_unloaded signal) and 25 (script API + script-unload hook).

Other touched code:

  - core-theme-builtin.c switches to theme_register (NULL, NULL, ...).
  - core-command.c /theme info uses theme_overrides_count helper
    instead of reaching into theme->overrides (which no longer
    exists).
  - WEECHAT_PLUGIN_API_VERSION bumped to 20260527-01 (function-pointer
    signature change).

Two new tests cover the new semantics:

  - UnregisterByOwner: registers four contributions from distinct
    (plugin, script) pairs, then prunes by plugin and by script,
    asserting per-contribution removal.
  - RegisterMergesPerContributor: two successive register calls from
    the same (plugin, script) merge into a single contribution with
    later keys overriding earlier ones.

Existing tests are updated to use the new theme_register signature,
theme_overrides_count, and theme_get_override (replacing direct
access to theme->overrides->items_count and hashtable_get on
theme->overrides). No plugin or script call sites change - the
public weechat_theme_register macro keeps the same shape.
2026-06-06 12:23:07 +02:00
Sébastien Helleu 018f9797d7 trigger: contribute "light" theme overrides
Add trigger-theme.{c,h} with the trigger plugin contribution to the
built-in "light" theme: 6 entries (flag_command, flag_conditions,
flag_post_action, flag_regex, flag_return_code, regex) tuned for a
light-background terminal.

Same 2D-array pattern as the other plugin contributions.

Default option values are NOT changed.
2026-06-06 12:23:07 +02:00
Sébastien Helleu 7934778ae3 spell: contribute "light" theme overrides
Add spell-theme.{c,h} with the spell plugin contribution to the
built-in "light" theme: 1 entry (spell.color.misspelled=red) tuned for
a light-background terminal.

Same 2D-array pattern as the other plugin contributions.

Default option values are NOT changed.
2026-06-06 12:23:07 +02:00
Sébastien Helleu 466a93054e script: contribute "light" theme overrides
Add script-theme.{c,h} with the script plugin contribution to the
built-in "light" theme: 24 entries on script.color.* (status_* and
text_*) tuned for a light-background terminal.

Same 2D-array pattern as the other plugin contributions.

Default option values are NOT changed.
2026-06-06 12:23:07 +02:00
Sébastien Helleu 0036138243 relay: contribute "light" theme overrides
Add relay-theme.{c,h} with the relay plugin contribution to the
built-in "light" theme: 5 entries (status_auth_failed, status_authenticating,
status_connecting, status_disconnected, text_selected) tuned for a
light-background terminal.

Same 2D-array pattern as the other plugin contributions.

Default option values are NOT changed.
2026-06-06 12:23:07 +02:00
Sébastien Helleu 097f910f77 logger: contribute "light" theme overrides
Add logger-theme.{c,h} with the logger plugin contribution to the
built-in "light" theme: 2 entries (logger.color.backlog_end=darkgray,
logger.color.backlog_line=darkgray) tuned for a light-background
terminal.

Same 2D-array pattern as the other plugin contributions.

Default option values are NOT changed.
2026-06-06 12:23:07 +02:00
Sébastien Helleu adaa7e8f87 exec: contribute "light" theme overrides
Add exec-theme.{c,h} with the exec plugin contribution to the built-in
"light" theme: 2 entries (exec.color.flag_finished=red,
exec.color.flag_running=green) tuned for a light-background terminal.

Same 2D-array pattern as the other plugin contributions.

Default option values are NOT changed.
2026-06-06 12:23:07 +02:00
Sébastien Helleu f117b74933 xfer: contribute "light" theme overrides
Add xfer-theme.{c,h} with the xfer plugin contribution to the built-in
"light" theme: 7 overrides on xfer.color.* (status_aborted,
status_active, status_connecting, status_done, status_failed,
status_waiting, text_selected) tuned for a light-background terminal.

Same NULL-terminated 2D-array pattern as the irc, fset and buflist
contributions; xfer_theme_init() is called once from
weechat_plugin_init after xfer_config_init / xfer_config_read.

Default option values are NOT changed.
2026-06-06 12:23:07 +02:00
Sébastien Helleu 47addb88b6 buflist: contribute "light" theme overrides
Add buflist-theme.{c,h} with the buflist plugin contribution to the
built-in "light" theme: 5 overrides on buflist.format.* options
(buffer_current, hotlist_low, hotlist_message, lag, number) tuned for
a light-background terminal. Each target is a "string|themable" option
holding an evaluated format expression with embedded ${color:...}
references.

Follows the same pattern as the irc and fset contributions: a
NULL-terminated 2D string table consumed by a tiny local register
helper that builds a hashtable and calls weechat_theme_register;
buflist_theme_init() is called once from weechat_plugin_init after
buflist_config_init / buflist_config_read.

Default option values are NOT changed.
2026-06-06 12:23:07 +02:00
Sébastien Helleu 14616347c8 fset: contribute "light" theme overrides
Add fset-theme.{c,h} with the fset plugin contribution to the built-in
"light" theme: 47 overrides on fset.color.* options (line backgrounds,
selected-row tuning, title and value colors) tuned for a
light-background terminal.

The table is a NULL-terminated 2-column array of strings (no struct
wrapper, matching the pattern adopted for the irc contribution).
fset_theme_register builds a hashtable from the table and calls
weechat_theme_register; fset_theme_init() is called once from
weechat_plugin_init after fset_config_init / fset_config_read.

Default option values are NOT changed.
2026-06-06 12:23:07 +02:00
Sébastien Helleu 2a3082636c irc: contribute "light" theme overrides
Add irc-theme.{c,h} with the IRC plugin contribution to the built-in
"light" theme: 9 overrides on irc.color.* options tuned for a
light-background terminal (input_nick, item_lag_finished,
item_tls_version_deprecated, list_buffer_line_selected,
message_chghost, message_setname, nick_prefixes, topic_new, topic_old).

The registration is a small wrapper around weechat_theme_register that
builds a hashtable from a static (option, value) table and frees it
after the call. irc_theme_init() is called from weechat_plugin_init
after irc_config_init/read so the option names are already created
when the theme registry references them.

Default option values are NOT changed.
2026-06-06 12:23:07 +02:00
Sébastien Helleu ff4d9d638c core: register built-in "light" theme
Add a small core-theme-builtin.c module containing the core
contribution to the "light" theme: 33 overrides for
"weechat.bar.{status,title}.color_*" and "weechat.color.*" tuned for
light-background terminals.

theme_builtin_init() builds a hashtable from the static entry table and
calls theme_register("light", overrides), then frees the temporary
hashtable. It is called once from weechat_init right after theme_init.
Calling it twice is a no-op (the registry merges identical keys).

Default option values are NOT changed. Existing configs render exactly
as before; users opt in with "/theme apply light".

Add TEST(CoreTheme, BuiltinInit) covering:
  - the "light" theme is absent before theme_builtin_init();
  - it is present after, with >= 30 overrides;
  - three spot-checked values match the source table;
  - calling theme_builtin_init() a second time does not change the
    override count.

Plugins contribute their own "light" overrides via weechat_theme_register
in subsequent commits.
2026-06-06 12:23:07 +02:00
Sébastien Helleu f49ac1aaf9 script: expose theme_register to python, perl, ruby, lua, tcl, javascript, php, guile
Add weechat.theme_register (name, overrides) to all eight script
languages. Each binding is a mechanical translation of the same
signature:

  - name:      string
  - overrides: language-native dict / hash / associative array of
               full_option_name -> value strings
  - returns:   pointer-as-string of the registered t_theme (empty
               string on failure)

Each binding converts the dict to a struct t_hashtable using the
existing per-language helper (weechat_python_dict_to_hashtable,
weechat_perl_hash_to_hashtable, weechat_ruby_hash_to_hashtable,
weechat_lua_tohashtable, weechat_tcl_dict_to_hashtable,
weechat_js_object_to_hashtable, weechat_php_array_to_hashtable,
weechat_guile_alist_to_hashtable), calls weechat_theme_register,
frees the temporary hashtable, and returns the result. The new
function is registered right after the config_* functions so the API
listing stays grouped by topic.

PHP also receives a new arginfo entry (string, array -> string) in
both weechat-php_arginfo.h and weechat-php_legacy_arginfo.h.

This is plumbing only - the underlying theme_register function is
already covered by tests/unit/core/test-core-theme.cpp
(TEST(CoreTheme, Register)). No script-side tests are added here.
2026-06-06 12:23:07 +02:00
Sébastien Helleu 18c4993424 api: expose theme_register to plugins
Add a single new entry point to the plugin API:

  struct t_theme *weechat_theme_register (const char *name,
                                          struct t_hashtable *overrides);

Plugins call this at init time to contribute their per-theme color (or
other themable) overrides for a built-in theme like "dark". The
overrides hashtable maps full option names ("irc.color.input_nick") to
their string values; the caller retains ownership and may free it
right after the call. Repeated calls with the same theme name merge
into the existing registry entry, so each plugin can declare its own
contributions independently of core and of other plugins.

Wiring:

- struct t_theme forward-declared in weechat-plugin.h alongside the
  other opaque types.
- theme_register function pointer added to t_weechat_plugin.
- weechat_theme_register convenience macro added.
- plugin.c initializes the pointer to core's theme_register.
- WEECHAT_PLUGIN_API_VERSION bumped to 20260526-01.

This commit is plumbing only: the underlying theme_register function
already has unit-test coverage in tests/unit/core/test-core-theme.cpp
(TEST(CoreTheme, Register)), so no new tests are added here.
2026-06-06 12:23:07 +02:00
Sébastien Helleu 8be6cff05f core: add theme name completion
Add two completion items hooked alongside "layouts_names":

- "theme_themes_all": all theme names (built-ins from the registry
  plus every *.theme file in <weechat_config_dir>/themes/, including
  backup-*.theme). Used by tab-complete on /theme apply and
  /theme info.
- "theme_themes_user": user theme files only (excludes built-ins
  and backup-*.theme). Used by tab-complete on /theme save and
  /theme delete, so users cannot accidentally try to overwrite a
  built-in name or save a name colliding with the reserved backup
  prefix.

Both callbacks share a small dir_exec_on_files-based helper to filter
the themes directory. The /theme command's completion template in
core-command.c is updated to reference these new items.
2026-06-06 12:23:07 +02:00
Sébastien Helleu 144d79f331 core: implement /theme save and /theme delete
Add two complementary subcommands:

  /theme save <name> [-full]: writes a user theme file at
    ${weechat_config_dir}/themes/<name>.theme containing the current
    themable options. By default only options whose value differs from
    their default (config_file_option_has_changed) are written, which
    keeps the file small and focused. Pass "-full" to write every
    themable option (matches the format used by automatic backups).

    Name validation: refuses any name matching a built-in theme (those
    are reserved for in-memory registrations) and any name starting
    with "backup-" (reserved for /theme apply backups). Both checks
    print an error and abort without writing.

  /theme delete <name>: removes ${weechat_config_dir}/themes/<name>.theme
    via unlink. Refuses to delete a name registered as a built-in
    theme (a built-in has no file on disk to delete, even if the user
    has a shadowing file of the same name they cannot remove it this
    way; they can rename or delete it manually).

The full-snapshot writer used by /theme apply backups is refactored
into theme_write_file (name, description, diff_only). It is reused
by theme_make_backup (diff_only=0) and theme_save (diff_only inverted
from the user's -full flag).

Bug fix while at it: the writer was previously calling
config_file_option_value_to_string (ptr_option, 0, 1, 0); the third
and fourth arguments are "use_colors" and "use_delimiters", so the
call inserted GUI color escape codes into the file output and skipped
quoting strings. Corrected to (ptr_option, 0, 0, 1) so plain text
with proper string quoting is written; the change also fixes the
content of files produced by theme_make_backup in the previous commit.
2026-06-06 12:23:06 +02:00
Sébastien Helleu 74faa91578 core: implement theme file parsing and transient file reads in /theme apply
Add a small INI-style parser for *.theme files and wire it into the
/theme command so user themes living in directory "themes" inside the
WeeChat configuration directory can be applied (and inspected) without
ever being cached.

Parser (theme_file_parse in core-theme.c) accepts two sections:

  [info]
  name = "..."          \ shown by /theme info; ignored for apply
  description = "..."   |
  date = "..."          |
  weechat = "..."       /
  (unknown keys are ignored with a warning)

  [options]
  full.option.name = "value"

Surrounding single or double quotes around a value are stripped (same
rule used by the regular config file reader). The parsed result is a
heap-allocated t_theme; the caller frees with theme_free.

Resolution rule in theme_apply: if the path
"${weechat_config_dir}/themes/<name>.theme" is readable it is parsed
and used (file shadows any built-in of the same name); otherwise the
built-in registry is consulted. The transient t_theme is freed before
the final refresh, so user themes have no steady-state memory
footprint regardless of how many .theme files have accumulated.

/theme list now also scans the themes directory and appends user
files to the listing (each marked "(file)"). backup-*.theme are
hidden by default; pass "-backups" to include them.

/theme info <name> works for both sources: file path is shown when the
information comes from disk; "built-in (in-memory)" otherwise.
2026-06-06 12:23:06 +02:00
Sébastien Helleu 1bad1f60d7 core: implement /theme apply with themable enforcement and auto-backup
Implement /theme apply <name> for themes currently in the in-memory
registry. The file-shadowing branch (read a .theme file from
${weechat_config_dir}/themes/ when no built-in matches) is added in
the next commit together with the parser.

Apply algorithm (theme_apply in core-theme.c):

- Look up the theme in the registry; abort with an error if unknown.
- If weechat.look.theme_backup is on and the target name does not
  begin with "backup-", write a full snapshot of every themable
  option to ${weechat_config_dir}/themes/backup-<timestamp>.theme
  via theme_make_backup; abort the apply if the backup cannot be
  written, so the user can always undo.
- Iterate the theme's overrides with theme_applying=1 so the
  per-option config_change_color skips its gui refresh; for each
  entry look up the option, refuse it if missing or non-themable
  (warning to core buffer), otherwise call config_file_option_set.
- Perform a single gui_color_init_weechat + gui_window_ask_refresh
  at the end.
- Persist the active label in weechat.look.theme and send signal
  "theme_applied" with the name as data.

Add the new option weechat.look.theme_backup (boolean, default on)
which controls the backup-or-abort behaviour described above.

Wire the new /theme apply subcommand into core-command.c with the
existing /theme registration; update help text accordingly.
2026-06-06 12:23:06 +02:00
Sébastien Helleu 6b5b0d8915 core: add /theme command with list and info subcommands
Add the /theme command with two read-only subcommands for now:

- /theme  (or  /theme list): list registered themes; the active theme
  (matching weechat.look.theme) is marked with "->".
- /theme info <name>: show name, description, creation date, WeeChat
  version and override count of a theme.

Both subcommands only consider themes present in the in-memory
registry (registered via core/plugins/scripts). User theme files on
disk are not yet handled: the file parser and transient file reads
land in a later commit together with /theme apply.
2026-06-06 12:23:06 +02:00
Sébastien Helleu a7b41b6321 core: add weechat.look.theme option and theme_applying guard
Add a new string option "weechat.look.theme" holding the name of the
last theme applied via the upcoming /theme command. It is set
automatically by /theme apply and persisted on disk for /theme info to
display after restart; it is NOT re-applied at startup (the user's
saved color values win to avoid clobbering manual post-apply tweaks).

Amend config_change_color so it skips the gui_color_init_weechat ()
and gui_window_ask_refresh (1) calls when theme_applying is set.
/theme apply will set this flag while iterating overrides so the N
individual option changes do not trigger N redundant screen refreshes;
the apply path then performs a single refresh at the end.
2026-06-06 12:23:06 +02:00
Sébastien Helleu e1a6fba1b4 core: add core-theme skeleton and theme registry
Introduce a new module (core-theme.{c,h}) holding the in-memory registry
of built-in themes used by the upcoming /theme command:

- struct t_theme stores name, description, date and weechat version
  captured at registration time, plus a hashtable of overrides keyed by
  full option name (file.section.option) -> value string.
- theme_register (name, overrides) creates a new theme or merges the
  given overrides into an existing one (later calls override duplicate
  keys); this is the API plugins and scripts will use to contribute
  per-theme color values.
- theme_search and theme_list provide lookup and ordered enumeration.
- theme_init / theme_end are called from weechat_init / weechat_end.

The theme_applying flag is declared here but not yet consumed (it will
gate config_change_color in the next commit to avoid N redundant
window refreshes during /theme apply).

User theme files are not handled by this module: they are read
transiently inside /theme apply (a later commit) and never cached.
2026-06-06 12:23:06 +02:00
Sébastien Helleu 540dd7d612 fset: add "t:themable" filter
Extend the "t:" filter so the special value "themable" matches every
option whose new themable flag is set, regardless of type (color,
string, integer, boolean, enum). This makes the flag interactively
discoverable in the fset buffer and is the natural way to inspect the
surface area that an upcoming /theme command will be allowed to touch.

The themable flag of an option is now mirrored on struct t_fset_option,
exposed via hdata ("themable", integer) and infolist ("themable",
integer), and printed in the log.
2026-06-06 12:23:06 +02:00
Sébastien Helleu 426caf4bdf core: add themable flag to configuration options
Add an "int themable" field on struct t_config_option. The flag is set
automatically for every CONFIG_OPTION_TYPE_COLOR option, and may be set
explicitly on any other type by suffixing the type argument with
"|themable" in the call to config_file_new_option (e.g. "string|themable"
for a string option whose value contains "${color:...}" references).

Opt in the relevant string options in core (buffer_time_format,
day_change_message_*, item_time_format, nick_color_force, prefix_*,
chat_nick_colors, eval_syntax_colors, color palette aliases) and in the
buflist, fset, irc, relay plugins.

The flag is exposed via hdata, infolist, and print_log so scripts and
/debug can read it. This is the foundation for an upcoming /theme
command that will only be allowed to modify themable options.
2026-06-06 12:23:06 +02:00
144 changed files with 1589 additions and 6141 deletions
+16 -25
View File
@@ -115,13 +115,10 @@ jobs:
checks:
env:
POEXAM_VERSION: "0.0.12"
strategy:
matrix:
os:
- ubuntu-26.04
- ubuntu-24.04
runs-on: ${{ matrix.os }}
@@ -133,20 +130,13 @@ jobs:
run: |
sudo apt-get update -qq
sudo apt-get --yes --no-install-recommends install ${{ env.CHECK_DEPS_UBUNTU }}
pipx install ruff
pipx install msgcheck ruff
cargo install --version 0.0.10 poexam
- name: Cache poexam
id: cache-poexam
uses: actions/cache@v6
with:
path: ~/.cargo/bin/poexam
key: poexam-${{ env.POEXAM_VERSION }}-${{ runner.os }}
- name: Check gettext files (msgcheck)
run: msgcheck po/*.po
- name: Install poexam
if: steps.cache-poexam.outputs.cache-hit != 'true'
run: cargo install --version "$POEXAM_VERSION" poexam
- name: Check gettext files
- name: Check gettext files (poexam)
run: poexam check --file-stats --rule-stats
- name: Check shell and Python scripts
@@ -163,7 +153,7 @@ jobs:
strategy:
matrix:
os:
- ubuntu-26.04
- ubuntu-24.04
config:
- name: "gcc"
cc: "gcc"
@@ -204,8 +194,6 @@ jobs:
name: "install (${{ matrix.os }}, ${{ matrix.config.name }})"
runs-on: ${{ matrix.os }}
env:
PHP_INI_SCAN_DIR: /tmp/php-noscan # embed PHP loads no add-on extensions (see #2009)
steps:
@@ -215,7 +203,8 @@ jobs:
run: |
sudo apt-get update -qq
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_DEPS_UBUNTU }}
mkdir -p /tmp/php-noscan
# uninstall php imagick as is causes a crash when loading php plugin (see #2009)
sudo apt-get --yes purge php8.3-imagick
pipx install schemathesis
- name: Build and run tests
@@ -269,7 +258,7 @@ jobs:
strategy:
matrix:
os:
- ubuntu-26.04
- ubuntu-24.04
config:
- name: "gcc"
cc: "gcc"
@@ -315,7 +304,7 @@ jobs:
strategy:
matrix:
os:
- ubuntu-26.04
- ubuntu-24.04
config:
- name: "gcc"
cc: "gcc"
@@ -366,7 +355,7 @@ jobs:
strategy:
matrix:
os:
- ubuntu-26.04
- ubuntu-24.04
config:
# - name: "gcc"
# cc: "gcc"
@@ -461,7 +450,7 @@ jobs:
strategy:
matrix:
os:
- ubuntu-26.04
- ubuntu-24.04
runs-on: ${{ matrix.os }}
@@ -498,7 +487,7 @@ jobs:
strategy:
matrix:
os:
- ubuntu-26.04
- ubuntu-24.04
runs-on: ${{ matrix.os }}
@@ -516,6 +505,8 @@ jobs:
run: |
sudo apt-get update -qq
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_DEPS_UBUNTU }}
# uninstall php imagick as is causes a crash when loading php plugin (see #2009)
sudo apt-get --yes purge php8.3-imagick
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
-1
View File
@@ -235,7 +235,6 @@ sys
tThe
tcl
tg
themable
tls
tlscertkey
toggleautoload
-6
View File
@@ -69,9 +69,6 @@ autorejoin
away
away-notify
backspace
backup
backup-
backups
bare
bash
beep
@@ -532,9 +529,6 @@ tcl
term
text
tg
themable
theme
themes
time
timeout
timer
-2
View File
@@ -7,11 +7,9 @@ select = [
"checks",
]
ignore = [
"acronyms",
"brackets",
"double-quotes",
"double-words",
"functions",
"html-tags",
"paths",
"unchanged",
+13 -34
View File
@@ -12,54 +12,33 @@ SPDX-License-Identifier: GPL-3.0-or-later
- core: add condition on connected relay api clients in default value of option weechat.look.hotlist_add_conditions
- core: add `/mute` in default command for key `Alt`+`=` (toggle filters)
- api: change type of parameter "pos_option_name" to "const char **" in function config_search_with_string
- relay/api: add field "last_read_line_id" in GET /api/buffers
### Added
- core: add command `/theme`
- core: add built-in "light" theme, applied automatically on first start on light-background terminals
- core: add `themable` flag on configuration options
- core: add options weechat.look.theme and weechat.look.theme_backup
- api: add function theme_register
- fset: add filter `t:themable`
- relay/api: add resource `GET /api/scripts`
- core: add `/theme` command with subcommands `list`, `apply`, `reset`, `save`, `rename`, `delete`, `info`, automatic backup of current themable options before apply, and built-in "light" theme
- core: detect terminal background on first start and automatically apply the built-in "light" theme when a light terminal is detected
- core: add `themable` flag on configuration options (auto-set for color options; explicit opt-in for string options containing `${color:...}` references via the `type|themable` syntax)
- core: add option weechat.look.theme (informational, set by `/theme apply`)
- core: add option weechat.look.theme_backup (boolean, default `on`)
- api: add function `theme_register` (available to plugins and to all script languages)
- fset: add filter `t:themable` (matches every themable option regardless of type)
- relay: add option relay.network.unix_socket_permissions ([#2317](https://github.com/weechat/weechat/issues/2317))
- script: add info "script_languages"
### Fixed
- core: fix option weechat.look.color_real_white not applied when color is "white" on 16+ colors terminals ([#1742](https://github.com/weechat/weechat/issues/1742))
- core: fix buffer overflow in connection to SOCKS5 proxy ([#2325](https://github.com/weechat/weechat/issues/2325))
- api: fix infinite loop in function string_replace when the search string is empty
- irc: fix tag in message with list of names when joining a channel
- fset: remove error displayed in core buffer when clicking with the mouse below the last option displayed
- guile, lua, perl, python, ruby, tcl: fix conversion of dates in the API functions
- irc: limit size of data received from the server to prevent memory exhaustion
- irc: fix out-of-bounds read on incoming DCC command with a quoted filename ending the message ([#2322](https://github.com/weechat/weechat/issues/2322))
- irc: fix conversion of dates in received messages
- relay: limit size of decompressed websocket frame with permessage-deflate to prevent memory exhaustion ([GHSA-v2v4-45wm-5cr3](https://github.com/weechat/weechat/security/advisories/GHSA-v2v4-45wm-5cr3), [CVE-2026-53524](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-53524))
- relay: limit size of received websocket frame and HTTP body to prevent memory exhaustion
- relay: limit size of partial message received while reading an HTTP request to prevent memory exhaustion
- relay: fix timing attack on password authentication ([GHSA-vhv8-g2r9-cwcc](https://github.com/weechat/weechat/security/advisories/GHSA-vhv8-g2r9-cwcc), [CVE-2026-53525](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-53525))
- relay: fix out-of-bounds read in dump of data ([#2324](https://github.com/weechat/weechat/issues/2324))
- relay/api: fix memory leak in resources "handshake", "input" and "completion"
- relay: fix read of uncompressed websocket frame ([#2331](https://github.com/weechat/weechat/issues/2331))
- api, relay: fix timing attack on TOTP validation ([GHSA-vhv8-g2r9-cwcc](https://github.com/weechat/weechat/security/advisories/GHSA-vhv8-g2r9-cwcc), [CVE-2026-53525](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-53525))
- xfer: replace directory separator in remote nick by underscore in download filename to prevent writing the file outside the download directory ([#2321](https://github.com/weechat/weechat/issues/2321))
- xfer: fix out-of-bounds read when receiving empty line in DCC chat ([#2323](https://github.com/weechat/weechat/issues/2323))
- xfer: fix out-of-bounds write in xfer file transfer resume ([#2326](https://github.com/weechat/weechat/issues/2326))
## Version 4.9.2 (2026-06-07)
### Fixed
- api: fix infinite loop in function string_replace when the search string is empty
- irc: limit size of data received from the server to prevent memory exhaustion
- irc: fix out-of-bounds read on incoming DCC command with a quoted filename ending the message ([#2322](https://github.com/weechat/weechat/issues/2322))
- relay: limit size of decompressed websocket frame with permessage-deflate to prevent memory exhaustion ([GHSA-v2v4-45wm-5cr3](https://github.com/weechat/weechat/security/advisories/GHSA-v2v4-45wm-5cr3))
- relay: limit size of received websocket frame and HTTP body to prevent memory exhaustion
- relay: limit size of partial message received while reading an HTTP request to prevent memory exhaustion
- relay: fix timing attack on password authentication ([GHSA-vhv8-g2r9-cwcc](https://github.com/weechat/weechat/security/advisories/GHSA-vhv8-g2r9-cwcc))
- relay: fix out-of-bounds read in dump of data ([#2324](https://github.com/weechat/weechat/issues/2324))
- api, relay: fix timing attack on TOTP validation ([GHSA-vhv8-g2r9-cwcc](https://github.com/weechat/weechat/security/advisories/GHSA-vhv8-g2r9-cwcc))
- xfer: replace directory separator in remote nick by underscore in download filename to prevent writing the file outside the download directory ([#2321](https://github.com/weechat/weechat/issues/2321))
- xfer: fix out-of-bounds read when receiving empty line in DCC chat ([#2323](https://github.com/weechat/weechat/issues/2323))
@@ -69,9 +48,9 @@ SPDX-License-Identifier: GPL-3.0-or-later
- core: fix option weechat.look.color_real_white not applied when color is "white" on 16+ colors terminals ([#1742](https://github.com/weechat/weechat/issues/1742))
- irc: fix tag in message with list of names when joining a channel
- relay: limit size of decompressed websocket frame with permessage-deflate to prevent memory exhaustion ([GHSA-v2v4-45wm-5cr3](https://github.com/weechat/weechat/security/advisories/GHSA-v2v4-45wm-5cr3), [CVE-2026-53524](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-53524))
- relay: fix timing attack on password authentication ([GHSA-vhv8-g2r9-cwcc](https://github.com/weechat/weechat/security/advisories/GHSA-vhv8-g2r9-cwcc), [CVE-2026-53525](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-53525))
- api, relay: fix timing attack on TOTP validation ([GHSA-vhv8-g2r9-cwcc](https://github.com/weechat/weechat/security/advisories/GHSA-vhv8-g2r9-cwcc), [CVE-2026-53525](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-53525))
- relay: limit size of decompressed websocket frame with permessage-deflate to prevent memory exhaustion ([GHSA-v2v4-45wm-5cr3](https://github.com/weechat/weechat/security/advisories/GHSA-v2v4-45wm-5cr3))
- relay: fix timing attack on password authentication ([GHSA-vhv8-g2r9-cwcc](https://github.com/weechat/weechat/security/advisories/GHSA-vhv8-g2r9-cwcc))
- api, relay: fix timing attack on TOTP validation ([GHSA-vhv8-g2r9-cwcc](https://github.com/weechat/weechat/security/advisories/GHSA-vhv8-g2r9-cwcc))
## Version 4.9.0 (2026-03-29)
+1 -1
View File
@@ -2295,7 +2295,7 @@ consistently.
Delete a user theme:
----
/theme del mytheme
/theme delete mytheme
----
This removes the file on disk; built-in themes cannot be deleted.
+9 -11
View File
@@ -4348,7 +4348,7 @@ Prototype:
[source,c]
----
int weechat_mkdir_home (const char *directory, int mode);
int weechat_mkdir_home (char *directory, int mode);
----
Arguments:
@@ -4395,7 +4395,7 @@ Prototype:
[source,c]
----
int weechat_mkdir (const char *directory, int mode);
int weechat_mkdir (char *directory, int mode);
----
Arguments:
@@ -4436,7 +4436,7 @@ Prototype:
[source,c]
----
int weechat_mkdir_parents (const char *directory, int mode);
int weechat_mkdir_parents (char *directory, int mode);
----
Arguments:
@@ -7367,7 +7367,7 @@ section = weechat.config_search_section(config_file, "section")
==== config_new_option
_Updated in 1.5, 4.1.0, 4.10.0._
_Updated in 1.5, 4.1.0._
Create a new option in a section of a configuration file.
@@ -7413,9 +7413,7 @@ Arguments:
option name (the value of parent option will be displayed in `/set` command
output if this option is "null"), the syntax is then:
"name << file.section.option"
* _type_: type of option; any type can be suffixed with `+|themable+` to mark
the option as themable, so that it can be set by the `/theme` command
(options of type _color_ are always themable) _(WeeChat ≥ 4.10.0)_:
* _type_: type of option:
** _boolean_: boolean value (on/off)
** _integer_: integer value
** _string_: string value
@@ -7501,7 +7499,7 @@ struct t_config_option *option_int =
/* string */
struct t_config_option *option_str =
weechat_config_new_option (config_file, section, "option_str", "string|themable",
weechat_config_new_option (config_file, section, "option_str", "string",
"My option, type string",
NULL,
0, 0,
@@ -7577,7 +7575,7 @@ option_int = weechat.config_new_option(config_file, section, "option_int", "inte
"", "",
"", "")
option_str = weechat.config_new_option(config_file, section, "option_str", "string|themable",
option_str = weechat.config_new_option(config_file, section, "option_str", "string",
"My option, type string",
"", 0, 0, "test", "test", 1,
"option_str_check_value_cb", "",
@@ -7711,7 +7709,7 @@ void weechat_config_search_with_string (const char *option_name,
struct t_config_file **config_file,
struct t_config_section **section,
struct t_config_option **option,
const char **pos_option_name);
char **pos_option_name);
----
Arguments:
@@ -7733,7 +7731,7 @@ C example:
struct t_config_file *ptr_config_file;
struct t_config_section *ptr_section;
struct t_config_option *ptr_option;
const char *option_name;
char *option_name;
weechat_config_search_with_string ("file.section.option",
&ptr_config_file,
-53
View File
@@ -1034,13 +1034,6 @@ Path parameters:
confused with the buffer number, which is different)
* `buffer_name` (string, **required**): buffer name
Query parameters:
* `colors` (string, optional, default: `ansi`): how to return strings with color codes:
** `ansi`: return ANSI color codes
** `weechat`: return WeeChat internal color codes
** `strip`: strip colors
Request example: get nicks of a buffer:
[source,shell]
@@ -1186,51 +1179,6 @@ HTTP/1.1 200 OK
]
----
[[resource_scripts]]
=== Scripts
Return loaded scripts (all languages).
Endpoint:
----
GET /api/scripts
----
Request example:
[source,shell]
----
curl -L -u 'plain:secret_password' 'https://localhost:9000/api/scripts'
----
Response:
[source,http]
----
HTTP/1.1 200 OK
----
[source,json]
----
[
{
"name": "highmon.pl",
"version": "2.7",
"description": "Highlight Monitor",
"author": "KenjiE20",
"license": "GPL3"
},
{
"name": "go.py",
"version": "3.1.1",
"description": "Quick jump to buffers",
"author": "Sébastien Helleu <flashcode@flashtux.org>",
"license": "GPL3"
}
]
----
[[resource_input]]
=== Input
@@ -1562,7 +1510,6 @@ Body types that can be returned:
* `nick_group` (object)
* `nick` (object)
* `hotlist` (object)
* `scripts` (array)
* `ping` (object)
[TIP]
+1 -1
View File
@@ -2282,7 +2282,7 @@ consistently.
Delete a user theme:
----
/theme del mytheme
/theme delete mytheme
----
This removes the file on disk; built-in themes cannot be deleted.
+9 -12
View File
@@ -4424,7 +4424,7 @@ Prototype :
[source,c]
----
int weechat_mkdir_home (const char *directory, int mode);
int weechat_mkdir_home (char *directory, int mode);
----
Paramètres :
@@ -4471,7 +4471,7 @@ Prototype :
[source,c]
----
int weechat_mkdir (const char *directory, int mode);
int weechat_mkdir (char *directory, int mode);
----
Paramètres :
@@ -4512,7 +4512,7 @@ Prototype :
[source,c]
----
int weechat_mkdir_parents (const char *directory, int mode);
int weechat_mkdir_parents (char *directory, int mode);
----
Paramètres :
@@ -7488,7 +7488,7 @@ section = weechat.config_search_section(config_file, "section")
==== config_new_option
_Mis à jour dans la 1.5, 4.1.0, 4.10.0._
_Mis à jour dans la 1.5, 4.1.0._
Créer une nouvelle option dans une section d'un fichier de configuration.
@@ -7534,10 +7534,7 @@ Paramètres :
d'une option parente (la valeur de l'option parente sera affichée dans la
sortie de `/set` si cette option est "null"), la syntaxe est alors :
"name << file.section.option"
* _type_ : type de l'option ; n'importe quel type peut être suffixé par
`+|themable+` pour rendre l'option modifiable par un thème, afin qu'elle
puisse être définie par la commande `/theme` (les options de type _color_
sont toujours modifiables par un thème) _(WeeChat ≥ 4.10.0)_ :
* _type_ : type de l'option :
** _boolean_ : valeur booléenne (on/off)
** _integer_ : valeur entière
** _string_ : une chaîne de caractères
@@ -7628,7 +7625,7 @@ struct t_config_option *option_int =
/* chaîne */
struct t_config_option *option_str =
weechat_config_new_option (config_file, section, "option_str", "string|themable",
weechat_config_new_option (config_file, section, "option_str", "string",
"Mon option, type chaîne",
NULL,
0, 0,
@@ -7704,7 +7701,7 @@ option_int = weechat.config_new_option(config_file, section, "option_int", "inte
"", "",
"", "")
option_str = weechat.config_new_option(config_file, section, "option_str", "string|themable",
option_str = weechat.config_new_option(config_file, section, "option_str", "string",
"Mon option, type chaîne",
"", 0, 0, "test", "test", 1,
"option_str_check_value_cb", "",
@@ -7841,7 +7838,7 @@ void weechat_config_search_with_string (const char *option_name,
struct t_config_file **config_file,
struct t_config_section **section,
struct t_config_option **option,
const char **pos_option_name);
char **pos_option_name);
----
Paramètres :
@@ -7864,7 +7861,7 @@ Exemple en C :
struct t_config_file *ptr_config_file;
struct t_config_section *ptr_section;
struct t_config_option *ptr_option;
const char *option_name;
char *option_name;
weechat_config_search_with_string ("fichier.section.option",
&ptr_config_file,
-54
View File
@@ -1046,14 +1046,6 @@ Paramètres de chemin :
confondre avec le numéro du tampon, qui est différent)
* `buffer_name` (chaîne, **obligatoire**) : nom du tampon
Paramètres de requête :
* `colors` (chaîne, facultatif, par défaut : `ansi`) : comment les chaînes avec
des couleurs sont retournées :
** `ansi` : retourner les codes couleur ANSI
** `weechat` : retourner les codes couleur internes WeeChat
** `strip` : supprimer les couleurs
Exemple de requête : obtenir les pseudos d'un tampon :
[source,shell]
@@ -1199,51 +1191,6 @@ HTTP/1.1 200 OK
]
----
[[resource_scripts]]
=== Scripts
Retourner la liste des scripts chargés (tous les langages).
Point de terminaison:
----
GET /api/scripts
----
Exemple de requête:
[source,shell]
----
curl -L -u 'plain:secret_password' 'https://localhost:9000/api/scripts'
----
Réponse:
[source,http]
----
HTTP/1.1 200 OK
----
[source,json]
----
[
{
"name": "highmon.pl",
"version": "2.7",
"description": "Highlight Monitor",
"author": "KenjiE20",
"license": "GPL3"
},
{
"name": "go.py",
"version": "3.1.1",
"description": "Quick jump to buffers",
"author": "Sébastien Helleu <flashcode@flashtux.org>",
"license": "GPL3"
}
]
----
[[resource_input]]
=== Entrée
@@ -1583,7 +1530,6 @@ Les types de corps qui peuvent être retournés :
* `nick_group` (objet)
* `nick` (objet)
* `hotlist` (objet)
* `scripts` (tableau)
* `ping` (objet)
[TIP]
+1 -1
View File
@@ -2332,7 +2332,7 @@ manière cohérente.
Supprimer un thème utilisateur :
----
/theme del monTheme
/theme delete monTheme
----
Cela supprime le fichier sur le disque ; les thèmes intégrés ne
+9 -12
View File
@@ -4549,7 +4549,7 @@ Prototipo:
[source,c]
----
int weechat_mkdir_home (const char *directory, int mode);
int weechat_mkdir_home (char *directory, int mode);
----
Argomenti:
@@ -4597,7 +4597,7 @@ Prototipo:
[source,c]
----
int weechat_mkdir (const char *directory, int mode);
int weechat_mkdir (char *directory, int mode);
----
Argomenti:
@@ -4638,7 +4638,7 @@ Prototipo:
[source,c]
----
int weechat_mkdir_parents (const char *directory, int mode);
int weechat_mkdir_parents (char *directory, int mode);
----
Argomenti:
@@ -7661,7 +7661,7 @@ section = weechat.config_search_section(config_file, "section")
==== config_new_option
// TRANSLATION MISSING
_Updated in 1.5, 4.1.0, 4.10.0._
_Updated in 1.5, 4.1.0._
Crea una nuova opzione nella sezione di un file di configurazione.
@@ -7708,10 +7708,7 @@ Argomenti:
option name (the value of parent option will be displayed in `/set` command
output if this option is "null"), the syntax is then:
"name << file.section.option"
// TRANSLATION MISSING
* _type_: type of option; any type can be suffixed with `+|themable+` to mark
the option as themable, so that it can be set by the `/theme` command
(options of type _color_ are always themable) _(WeeChat ≥ 4.10.0)_:
* _type_: tipo dell'opzione:
** _boolean_: valore booleano (on/off)
** _integer_: valore intero
** _string_: valore stringa
@@ -7802,7 +7799,7 @@ struct t_config_option *option_int =
/* stringa */
struct t_config_option *option_str =
weechat_config_new_option (config_file, section, "option_str", "string|themable",
weechat_config_new_option (config_file, section, "option_str", "string",
"My option, type string",
NULL,
0, 0,
@@ -7878,7 +7875,7 @@ option_int = weechat.config_new_option(config_file, section, "option_int", "inte
"", "",
"", "")
option_str = weechat.config_new_option(config_file, section, "option_str", "string|themable",
option_str = weechat.config_new_option(config_file, section, "option_str", "string",
"My option, type string",
"", 0, 0, "test", "test", 1,
"option_str_check_value_cb", "",
@@ -8014,7 +8011,7 @@ void weechat_config_search_with_string (const char *option_name,
struct t_config_file **config_file,
struct t_config_section **section,
struct t_config_option **option,
const char **pos_option_name);
char **pos_option_name);
----
Argomenti:
@@ -8037,7 +8034,7 @@ Esempio in C:
struct t_config_file *ptr_config_file;
struct t_config_section *ptr_section;
struct t_config_option *ptr_option;
const char *option_name;
char *option_name;
weechat_config_search_with_string ("file.section.option",
&ptr_config_file,
+1 -1
View File
@@ -2537,7 +2537,7 @@ consistently.
Delete a user theme:
----
/theme del mytheme
/theme delete mytheme
----
This removes the file on disk; built-in themes cannot be deleted.
+9 -12
View File
@@ -4477,7 +4477,7 @@ WeeChat ホームディレクトリの下にディレクトリを作成。
[source,c]
----
int weechat_mkdir_home (const char *directory, int mode);
int weechat_mkdir_home (char *directory, int mode);
----
引数:
@@ -4525,7 +4525,7 @@ weechat.mkdir_home("${weechat_cache_dir}/temp", 0755)
[source,c]
----
int weechat_mkdir (const char *directory, int mode);
int weechat_mkdir (char *directory, int mode);
----
引数:
@@ -4566,7 +4566,7 @@ weechat.mkdir("/tmp/mydir", 0755)
[source,c]
----
int weechat_mkdir_parents (const char *directory, int mode);
int weechat_mkdir_parents (char *directory, int mode);
----
引数:
@@ -7472,7 +7472,7 @@ section = weechat.config_search_section(config_file, "section")
==== config_new_option
// TRANSLATION MISSING
_Updated in 1.5, 4.1.0, 4.10.0._
_Updated in 1.5, 4.1.0._
設定ファイルのあるセクションに新しいオプションを作成。
@@ -7518,10 +7518,7 @@ struct t_config_option *weechat_config_new_option (
(このオプションが "null" の場合、親オプションの値が `/set`
コマンドの出力に表示されます)。以下の構文を使ってください:
"name << file.section.option"
// TRANSLATION MISSING
* _type_: type of option; any type can be suffixed with `+|themable+` to mark
the option as themable, so that it can be set by the `/theme` command
(options of type _color_ are always themable) _(WeeChat ≥ 4.10.0)_:
* _type_: オプションの型:
** _boolean_: ブール値 (on/off)
** _integer_: 整数値
** _string_: 文字列
@@ -7609,7 +7606,7 @@ struct t_config_option *option_int =
/* string */
struct t_config_option *option_str =
weechat_config_new_option (config_file, section, "option_str", "string|themable",
weechat_config_new_option (config_file, section, "option_str", "string",
"My option, type string",
NULL,
0, 0,
@@ -7685,7 +7682,7 @@ option_int = weechat.config_new_option(config_file, section, "option_int", "inte
"", "",
"", "")
option_str = weechat.config_new_option(config_file, section, "option_str", "string|themable",
option_str = weechat.config_new_option(config_file, section, "option_str", "string",
"My option, type string",
"", 0, 0, "test", "test", 1,
"option_str_check_value_cb", "",
@@ -7819,7 +7816,7 @@ void weechat_config_search_with_string (const char *option_name,
struct t_config_file **config_file,
struct t_config_section **section,
struct t_config_option **option,
const char **pos_option_name);
char **pos_option_name);
----
引数:
@@ -7841,7 +7838,7 @@ C 言語での使用例:
struct t_config_file *ptr_config_file;
struct t_config_section *ptr_section;
struct t_config_option *ptr_option;
const char *option_name;
char *option_name;
weechat_config_search_with_string ("file.section.option",
&ptr_config_file,
+1 -1
View File
@@ -2473,7 +2473,7 @@ consistently.
Delete a user theme:
----
/theme del mytheme
/theme delete mytheme
----
This removes the file on disk; built-in themes cannot be deleted.
+1 -1
View File
@@ -2289,7 +2289,7 @@ consistently.
Delete a user theme:
----
/theme del mytheme
/theme delete mytheme
----
This removes the file on disk; built-in themes cannot be deleted.
+9 -12
View File
@@ -4209,7 +4209,7 @@ _Ажурирано у верзији 3.2._
[source,c]
----
int weechat_mkdir_home (const char *directory, int mode);
int weechat_mkdir_home (char *directory, int mode);
----
Аргументи:
@@ -4255,7 +4255,7 @@ weechat.mkdir_home("${weechat_cache_dir}/temp", 0755)
[source,c]
----
int weechat_mkdir (const char *directory, int mode);
int weechat_mkdir (char *directory, int mode);
----
Аргументи:
@@ -4296,7 +4296,7 @@ weechat.mkdir("/tmp/mydir", 0755)
[source,c]
----
int weechat_mkdir_parents (const char *directory, int mode);
int weechat_mkdir_parents (char *directory, int mode);
----
Аргументи:
@@ -7171,7 +7171,7 @@ section = weechat.config_search_section(config_file, "section")
==== config_new_option
_Ажурирано у верзији 1.5, 4.1.0, 4.10.0._
_Ажурирано у верзији 1.5, 4.1.0._
Креира нову опцију у одељку конфигурационог фајла.
@@ -7214,10 +7214,7 @@ struct t_config_option *weechat_config_new_option (
* _config_file_: показивач на конфигурациони фајл
* _section_: показивач на одељак
* _name_: име опције; у програм у WeeChat верзије ≥ 1.4, име може да укључи и име родитељске опције (у случају да је ова опција „null”, вредност родитељске опције ће се приказати у излазу команде `/set`), тада је синтакса: „име << фајл.одељак.опција”
// TRANSLATION MISSING
* _type_: type of option; any type can be suffixed with `+|themable+` to mark
the option as themable, so that it can be set by the `/theme` command
(options of type _color_ are always themable) _(WeeChat ≥ 4.10.0)_:
* _type_: тип опције:
** _boolean_: логичка вредност (on/off)
** _integer_: целобројна вредност
** _string_: стринг вредност
@@ -7290,7 +7287,7 @@ struct t_config_option *option_int =
/* стринг */
struct t_config_option *option_str =
weechat_config_new_option (config_file, section, "option_str", "string|themable",
weechat_config_new_option (config_file, section, "option_str", "string",
"My option, type string",
NULL,
0, 0,
@@ -7366,7 +7363,7 @@ option_int = weechat.config_new_option(config_file, section, "option_int", "inte
"", "",
"", "")
option_str = weechat.config_new_option(config_file, section, "option_str", "string|themable",
option_str = weechat.config_new_option(config_file, section, "option_str", "string",
"My option, type string",
"", 0, 0, "test", "test", 1,
"option_str_check_value_cb", "",
@@ -7495,7 +7492,7 @@ void weechat_config_search_with_string (const char *option_name,
struct t_config_file **config_file,
struct t_config_section **section,
struct t_config_option **option,
const char **pos_option_name);
char **pos_option_name);
----
Аргументи:
@@ -7513,7 +7510,7 @@ C пример:
struct t_config_file *ptr_config_file;
struct t_config_section *ptr_section;
struct t_config_option *ptr_option;
const char *option_name;
char *option_name;
weechat_config_search_with_string ("file.section.option",
&ptr_config_file,
+1 -54
View File
@@ -1030,19 +1030,12 @@ GET /api/buffers/{id_бафера}/nicks
GET /api/buffers/{име_бафера}/nicks
----
Параметри путање:
Параметри упита:
* `id_бафера` (цео број, **обавезно**): јединствени идентификатор бафера (не треба
да се помеша са бројем бафера, то је нешто друго)
* `име_бафера` (стринг, **обавезно**): име бафера
Параметри упита:
* `colors` (стринг, није обавезно, подразумевано: `ansi`): како се враћају стрингови са кодовима боје:
** `ansi`: враћају се ANSI кодови боје
** `weechat`: враћају се WeeChat интерни кодови боје
** `strip`: уклањају се боје
Пример захтева: врати надимке бафера:
[source,shell]
@@ -1188,51 +1181,6 @@ HTTP/1.1 200 OK
]
----
[[resource_scripts]]
=== Скрипте
Враћа учитане скрипте (на свим језицима).
Крајња тачка:
----
GET /api/scripts
----
Пример захтева:
[source,shell]
----
curl -L -u 'plain:secret_password' 'https://localhost:9000/api/scripts'
----
Одговор:
[source,http]
----
HTTP/1.1 200 OK
----
[source,json]
----
[
{
"name": "highmon.pl",
"version": "2.7",
"description": "Highlight Monitor",
"author": "KenjiE20",
"license": "GPL3"
},
{
"name": "go.py",
"version": "3.1.1",
"description": "Quick jump to buffers",
"author": "Sébastien Helleu <flashcode@flashtux.org>",
"license": "GPL3"
}
]
----
[[resource_input]]
=== Input
@@ -1562,7 +1510,6 @@ GUID `258EAFA5-E914-47DA-95CA-C5AB0DC85B11` (SHA-1 се кодира у base64).
* `nick_group` (објекат)
* `nick` (објекат)
* `hotlist` (објекат)
* `scripts` (низ)
* `ping` (објекат)
[TIP]
+1 -1
View File
@@ -2191,7 +2191,7 @@ consistently.
Delete a user theme:
----
/theme del mytheme
/theme delete mytheme
----
This removes the file on disk; built-in themes cannot be deleted.
+27 -314
View File
@@ -23,7 +23,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-07-04 22:01+0200\n"
"POT-Creation-Date: 2026-05-30 14:00+0200\n"
"PO-Revision-Date: 2026-05-30 14:01+0200\n"
"Last-Translator: Ondřej Súkup <mimi.vx@gmail.com>\n"
"Language-Team: Czech <weechat-dev@nongnu.org>\n"
@@ -1005,55 +1005,6 @@ msgstr "Volba vytvořena: "
msgid "%sFunction \"%s\" is not available on this system"
msgstr "%s: upozornění: slovník \"%s\" není dostupný ve vašem systému"
#, fuzzy
#| msgid "no variable"
msgid "No theme available"
msgstr "není proměnná"
msgid "Themes:"
msgstr ""
#, c-format
msgid " %s %s%s%s (file)"
msgstr ""
#, fuzzy, c-format
#| msgid "%sKey \"%s\" not found"
msgid "%sTheme \"%s\" not found"
msgstr "%sKlávesa \"%s\" nenalezena"
#, fuzzy, c-format
#| msgid "Option \"%s%s%s\":"
msgid "Theme \"%s%s%s\":"
msgstr "Volba \"%s%s%s\":"
#, fuzzy, c-format
#| msgid " file: %s"
msgid " source: %s"
msgstr " soubor: %s"
msgid " source: built-in (in-memory)"
msgstr ""
#, fuzzy, c-format
#| msgid "description"
msgid " description: %s"
msgstr "popis"
#, fuzzy, c-format
#| msgid " file: %s"
msgid " date: %s"
msgstr " soubor: %s"
#, fuzzy, c-format
#| msgid "WeeChat version"
msgid " WeeChat version: %s"
msgstr "verze WeeChat"
#, c-format
msgid " overrides: %d"
msgstr ""
#, c-format
msgid "%sFailed to unset option \"%s\""
msgstr "%sSelhalo odnastavení volby \"%s\""
@@ -3707,78 +3658,6 @@ msgstr ""
msgid "number: number of processes to clean"
msgstr ""
#, fuzzy
#| msgid "list of bar items"
msgid "manage color themes"
msgstr "seznam položek polí"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid ""
"[list [-backups]] || apply <name> || reset || save <name> || rename <old> "
"<new> || del <name> || info <name>"
msgstr ""
#, fuzzy
#| msgid "list of filters"
msgid ""
"raw[list]: list registered themes and any *.theme files in the WeeChat "
"configuration directory; the active theme (matching weechat.look.theme) is "
"marked with \"->\""
msgstr "seznam filtrů"
msgid "raw[-backups]: display backup theme files"
msgstr ""
msgid ""
"raw[apply]: apply a theme (set every themable option to the value from the "
"theme); if a file named <name>.theme exists in directory \"themes\" it "
"shadows any built-in theme of the same name"
msgstr ""
msgid ""
"raw[reset]: reset every themable option to its default value (restores the "
"original look shipped with WeeChat)"
msgstr ""
msgid ""
"raw[save]: save current themable options to a file <name>.theme in directory "
"\"themes\"; every themable option is written, so the file is self-contained; "
"the name must not match a built-in theme or start with \"backup-\""
msgstr ""
#, fuzzy
#| msgid "names of filters"
msgid "raw[rename]: rename a user theme file"
msgstr "jména filtrů"
#, fuzzy
#| msgid "get/set channel topic"
msgid "raw[del]: delete a user theme file"
msgstr "získat/nastavit téma kanálu"
msgid ""
"raw[info]: display details on a theme (name, description, creation date, "
"WeeChat version, number of option overrides)"
msgstr ""
#, fuzzy
msgid "name: name of a theme"
msgstr "zapni podporu myši"
msgid ""
"Themes are named bundles of option overrides. Built-in themes are registered "
"in memory by core/plugins/scripts; user themes are read from files in "
"directory \"themes\" inside the WeeChat configuration directory."
msgstr ""
msgid ""
"By default, `/theme apply` command creates a backup of current themable "
"values in directory \"themes\" before applying (file name: \"backup-"
"<timestamp>.theme\"); the previous state can be restored with: `/theme apply "
"backup-<timestamp>`. This is controlled by the option "
"weechat.look.theme_backup."
msgstr ""
#, fuzzy
#| msgid "values for a configuration option"
msgid "toggle value of a config option"
@@ -4367,15 +4246,6 @@ msgstr ""
msgid "names of layouts"
msgstr "jména rozvržení"
msgid "names of themes (built-ins + user files + backups)"
msgstr ""
msgid "names of user theme files (without built-ins and backups)"
msgstr ""
msgid "names of theme files on disk (user files + backups, no built-ins)"
msgstr ""
msgid "names of secured data (file sec.conf, section data)"
msgstr "jména chráněných dat (soubor sec.conf, sekce data)"
@@ -5346,20 +5216,6 @@ msgstr ""
msgid "number of spaces used to display tabs in messages"
msgstr "prefix pro zprávy akcí"
msgid ""
"name of the last theme applied with command /theme (set automatically, do "
"not change manually); informational only, the theme is not re-applied at "
"startup"
msgstr ""
msgid ""
"create a backup theme file with the current themable options before applying "
"a theme with command /theme; if the backup file cannot be written, the apply "
"is aborted (no option is changed); the backup file is written to directory "
"\"themes\" inside the WeeChat configuration directory and can be restored "
"with the command: `/theme apply backup-<timestamp>`"
msgstr ""
#, fuzzy
msgid ""
"time format for dates converted to strings and displayed in messages (see "
@@ -6331,111 +6187,6 @@ msgstr "%s: chyba: slovník \"%s\" není ve vašem systému dostupný"
msgid "Resource usage (see \"man getrusage\" for help):"
msgstr "Využití paměti (viz \"man mallinfo\" pro nápovědu):"
msgid "WeeChat default theme for light-background terminals"
msgstr ""
msgid "Automatic backup"
msgstr ""
#, fuzzy, c-format
#| msgid "%sKey \"%s\" not found"
msgid "%sTheme: option \"%s\" not found, skipped"
msgstr "%sKlávesa \"%s\" nenalezena"
#, fuzzy, c-format
#| msgid "%s: script \"%s\" is not installed"
msgid "%sTheme: option \"%s\" is not themable, skipped"
msgstr "%s: skript \"%s\" není nainstalován"
#, c-format
msgid "%s%s: line %d: malformed section header"
msgstr ""
#, fuzzy, c-format
#| msgid "%sWarning: %s, line %d: unknown section identifier (\"%s\")"
msgid "%s%s: line %d: ignoring unknown section \"%s\""
msgstr "%sUpozornění: %s, řádek %d: neznámý identifikátor sekce (\"%s\")"
#, c-format
msgid "%s%s: line %d: missing '=' separator"
msgstr ""
#, fuzzy, c-format
msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr "%sUpozornění: %s, řádek %d: neznámý identifikátor sekce (\"%s\")"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to parse theme file \"%s\""
msgstr "%s%s: nemůžu parsovat soubor \"%s\""
#, c-format
msgid ""
"%sUnable to create theme backup; aborting apply (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
#, c-format
msgid "Previous state saved as theme \"%s\"; to restore: /theme apply %s"
msgstr ""
#, c-format
msgid ""
"%sUnable to create theme backup; aborting reset (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
#, c-format
msgid "%sName \"%s\" is reserved for automatic backups"
msgstr ""
#, c-format
msgid "%sName \"%s\" is reserved for a built-in theme"
msgstr ""
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to save theme \"%s\""
msgstr "%s%s: nemůžu parsovat soubor \"%s\""
#, fuzzy, c-format
#| msgid "Option \"%s%s%s\":"
msgid "Theme saved to: %s"
msgstr "Volba \"%s%s%s\":"
#, fuzzy, c-format
msgid "%sCannot rename built-in theme \"%s\""
msgstr "%sChyba: nemohu vytvořit soubor \"%s\""
#, c-format
msgid "%sNew name is the same as old name"
msgstr ""
#, fuzzy, c-format
msgid "%sTheme \"%s\" already exists"
msgstr "%s%s: vzorec přesměrování \"%s\" již existuje"
#, fuzzy, c-format
msgid "%sFailed to rename theme \"%s\" to \"%s\""
msgstr "%sChyba: nemohu přejmenovat filter \"%s\" na \"%s\""
#, fuzzy, c-format
msgid "Theme \"%s\" renamed to \"%s\""
msgstr "Filtr \"%s\" přejmenován na \"%s\""
#, fuzzy, c-format
msgid "%sCannot delete built-in theme \"%s\""
msgstr "%sChyba: nemohu vytvořit soubor \"%s\""
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to delete theme \"%s\""
msgstr "%s%s: nemůžu parsovat soubor \"%s\""
#, c-format
msgid "Theme deleted: %s"
msgstr ""
#, c-format
msgid "%sError upgrading WeeChat with file \"%s\":"
msgstr "%sChyba aktualizace WeeChat se souborem \"%s\":"
@@ -6599,36 +6350,37 @@ msgstr "Konec příkazu '%s', vypršel časový limit (%.1fs)"
msgid "WeeChat is running in headless mode (ctrl-c to quit)."
msgstr "1 pokud se WeeChat aktualizuje (příkaz `/upgrade`)"
msgid "Welcome to WeeChat!"
msgstr ""
#, fuzzy
msgid ""
"Welcome to WeeChat!\n"
"\n"
"If you are discovering WeeChat, it is recommended to read at least the "
"quickstart guide, and the user's guide if you have some time; they explain "
"main WeeChat concepts."
msgstr ""
#, c-format
msgid "All WeeChat docs are available at: %s"
msgstr ""
msgid ""
"main WeeChat concepts.\n"
"All WeeChat docs are available at: https://weechat.org/doc/\n"
"\n"
"Moreover, there is inline help with /help on all commands and options (use "
"Tab key to complete the name)."
msgstr ""
msgid "The command /fset can help to customize WeeChat."
msgstr ""
msgid ""
"Tab key to complete the name).\n"
"The command /fset can help to customize WeeChat.\n"
"\n"
"You can add and connect to an IRC server with /server and /connect commands "
"(see /help server)."
msgstr ""
msgid ""
"The \"light\" theme will be automatically applied. Use /theme reset to "
"switch back to the default dark theme."
msgstr ""
"Vítejte v WeeChatu!\n"
"\n"
"Pokud objevujete WeeChat je doporučeno si prečíst alespoň \"quickstart\" "
"průvodce, a pokud máte trochu času tak uživatelskou příručku, oboje vám "
"vyvětlí hlavní koncepty WeeChatu.\n"
"Veškerá dokumentace WeeChatu je dostupná na adrese: https://weechat.org/"
"doc/\n"
"\n"
"Navíc je zde dostupná integrovaná nápověda /help fungující na všech "
"příkazech a nastaveních ( použijte Tab klávesu pro doplňování názvů).\n"
"Příkaz /iset (script iset.pl) může pomoci upravit WeeChat\" /script install "
"iset.pl\n"
"\n"
"Můžete přidat IRC server a připojit se k němu pomocí príkazů /server a /"
"connect ( podívejte se na /help server)."
#. TRANSLATORS: the "under %s" can be "under screen" or "under tmux"
#, c-format
@@ -8143,8 +7895,7 @@ msgstr "Neznámý konfigurační soubor \"%s\""
msgid ""
"> `t:xxx`: show only type \"xxx\" (bool/int/str/col/enum or boolean/integer/"
"string/color/enum); the special value \"themable\" can be used to show all "
"options that can be used in themes, regardless of type"
"string/color/enum)"
msgstr ""
msgid "> `d`: show only changed options"
@@ -16317,10 +16068,6 @@ msgstr "načteny %s skripty:"
msgid "script name with extension"
msgstr "seznam skriptů"
#, fuzzy
msgid "comma-separated list of plugin:extension with supported languages"
msgstr "čárkami oddělený seznam slovníků, které použít pro tento buffer"
#, fuzzy
msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr "jméno serveru (zástupný znak \"*\" je povolen) (volitelné)"
@@ -16939,9 +16686,7 @@ msgstr ""
msgid "> type `command_run`: command(s) (required)"
msgstr ""
msgid ""
"> type `timer`: interval (required, in milliseconds), align on second, max "
"calls"
msgid "> type `timer`: interval (required), align on second, max calls"
msgstr ""
msgid "> type `config`: name(s) of option (required)"
@@ -17782,35 +17527,3 @@ msgid ""
msgstr ""
"%s%s: nelze akceptovat obnovení souboru \"%s\" (port: %d, počáteční pozice: "
"%llu): xfer nenalezen nebo není připraven pro přenos"
#, fuzzy
#~ msgid ""
#~ "Welcome to WeeChat!\n"
#~ "\n"
#~ "If you are discovering WeeChat, it is recommended to read at least the "
#~ "quickstart guide, and the user's guide if you have some time; they "
#~ "explain main WeeChat concepts.\n"
#~ "All WeeChat docs are available at: https://weechat.org/doc/\n"
#~ "\n"
#~ "Moreover, there is inline help with /help on all commands and options "
#~ "(use Tab key to complete the name).\n"
#~ "The command /fset can help to customize WeeChat.\n"
#~ "\n"
#~ "You can add and connect to an IRC server with /server and /connect "
#~ "commands (see /help server)."
#~ msgstr ""
#~ "Vítejte v WeeChatu!\n"
#~ "\n"
#~ "Pokud objevujete WeeChat je doporučeno si prečíst alespoň \"quickstart\" "
#~ "průvodce, a pokud máte trochu času tak uživatelskou příručku, oboje vám "
#~ "vyvětlí hlavní koncepty WeeChatu.\n"
#~ "Veškerá dokumentace WeeChatu je dostupná na adrese: https://weechat.org/"
#~ "doc/\n"
#~ "\n"
#~ "Navíc je zde dostupná integrovaná nápověda /help fungující na všech "
#~ "příkazech a nastaveních ( použijte Tab klávesu pro doplňování názvů).\n"
#~ "Příkaz /iset (script iset.pl) může pomoci upravit WeeChat\" /script "
#~ "install iset.pl\n"
#~ "\n"
#~ "Můžete přidat IRC server a připojit se k němu pomocí príkazů /server a /"
#~ "connect ( podívejte se na /help server)."
+36 -346
View File
@@ -1,8 +1,7 @@
#
# SPDX-FileCopyrightText: 2005 Rudolf Polzer <weechat-te@durchnull.de>
# SPDX-FileCopyrightText: 2006-2007 Thomas Schuetz <i18n@internet-villa.de>
# SPDX-FileCopyrightText: 2009-2026 Nils Görs <weechatter@arcor.de>
# SPDX-FileCopyrightText: 2018 w8rabbit <w8rabbit@mail.i2p>
# SPDX-FileCopyrightText: 2009-2019, 2023, 2024, 2025 Nils Görs <weechatter@arcor.de>
# SPDX-FileCopyrightText: 2015 Sven Knurr <zeug@tuxproject.de>
#
# SPDX-License-Identifier: GPL-3.0-or-later
@@ -22,14 +21,18 @@
# You should have received a copy of the GNU General Public License
# along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
#
#
# w8rabbit <w8rabbit@mail.i2p>, 2018.
# Nils Görs <>, 2022-2026.
#
msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-07-04 22:01+0200\n"
"PO-Revision-Date: 2026-06-28 08:28+0200\n"
"POT-Creation-Date: 2026-05-30 14:00+0200\n"
"PO-Revision-Date: 2026-05-30 14:01+0200\n"
"Last-Translator: Nils Görs <weechatter@arcor.de>\n"
"Language-Team: German <weechatter@arcor.de>\n"
"Language-Team: German - Germany <weechat-dev@nongnu.org>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -1003,55 +1006,6 @@ msgstr "Einstellung erstellt: "
msgid "%sFunction \"%s\" is not available on this system"
msgstr "%sFunktion \"%s\" ist auf dem Rechner nicht verfügbar"
#, fuzzy
#| msgid "not available"
msgid "No theme available"
msgstr "nicht verfügbar"
msgid "Themes:"
msgstr ""
#, c-format
msgid " %s %s%s%s (file)"
msgstr ""
#, fuzzy, c-format
#| msgid "%sKey \"%s\" not found"
msgid "%sTheme \"%s\" not found"
msgstr "%sTastenbelegung \"%s\" nicht gefunden"
#, fuzzy, c-format
#| msgid "Option \"%s%s%s\":"
msgid "Theme \"%s%s%s\":"
msgstr "Einstellung \"%s%s%s\":"
#, fuzzy, c-format
#| msgid " file: %s"
msgid " source: %s"
msgstr " Datei: %s"
msgid " source: built-in (in-memory)"
msgstr ""
#, fuzzy, c-format
#| msgid "description"
msgid " description: %s"
msgstr "Beschreibung"
#, fuzzy, c-format
#| msgid " file: %s"
msgid " date: %s"
msgstr " Datei: %s"
#, fuzzy, c-format
#| msgid "WeeChat version"
msgid " WeeChat version: %s"
msgstr "WeeChat-Version"
#, c-format
msgid " overrides: %d"
msgstr ""
#, c-format
msgid "%sFailed to unset option \"%s\""
msgstr "%sEinstellung \"%s\" konnte nicht zurück gesetzt werden"
@@ -4099,86 +4053,6 @@ msgstr ""
msgid "number: number of processes to clean"
msgstr "Anzahl: Anzahl der zu bereinigenden Prozesse"
#, fuzzy
#| msgid "manage custom bar items"
msgid "manage color themes"
msgstr "Verwalten von benutzerdefinierten Bar-Items"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid ""
"[list [-backups]] || apply <name> || reset || save <name> || rename <old> "
"<new> || del <name> || info <name>"
msgstr ""
#, fuzzy
#| msgid ""
#| "raw[list]: list remote relay servers (without argument, this list is "
#| "displayed)"
msgid ""
"raw[list]: list registered themes and any *.theme files in the WeeChat "
"configuration directory; the active theme (matching weechat.look.theme) is "
"marked with \"->\""
msgstr ""
"raw[list]: listet relay-Server auf (ohne Angabe von Argumente wird diese "
"Liste standardmäßig ausgegeben)"
#, fuzzy
#| msgid "raw[tags]: display tags for lines"
msgid "raw[-backups]: display backup theme files"
msgstr ""
"raw[tags]: schaltet für jede Zeile die dazugehörigen Schlagwörter an / aus"
msgid ""
"raw[apply]: apply a theme (set every themable option to the value from the "
"theme); if a file named <name>.theme exists in directory \"themes\" it "
"shadows any built-in theme of the same name"
msgstr ""
msgid ""
"raw[reset]: reset every themable option to its default value (restores the "
"original look shipped with WeeChat)"
msgstr ""
msgid ""
"raw[save]: save current themable options to a file <name>.theme in directory "
"\"themes\"; every themable option is written, so the file is self-contained; "
"the name must not match a built-in theme or start with \"backup-\""
msgstr ""
#, fuzzy
#| msgid "raw[rename]: rename a filter"
msgid "raw[rename]: rename a user theme file"
msgstr "raw[rename]: benennt einen Filter um"
#, fuzzy
#| msgid "raw[del]: delete a server"
msgid "raw[del]: delete a user theme file"
msgstr "raw[del]: entfernt einen Server"
msgid ""
"raw[info]: display details on a theme (name, description, creation date, "
"WeeChat version, number of option overrides)"
msgstr ""
#, fuzzy
#| msgid "name: name of trigger"
msgid "name: name of a theme"
msgstr "name: Name des Triggers"
msgid ""
"Themes are named bundles of option overrides. Built-in themes are registered "
"in memory by core/plugins/scripts; user themes are read from files in "
"directory \"themes\" inside the WeeChat configuration directory."
msgstr ""
msgid ""
"By default, `/theme apply` command creates a backup of current themable "
"values in directory \"themes\" before applying (file name: \"backup-"
"<timestamp>.theme\"); the previous state can be restored with: `/theme apply "
"backup-<timestamp>`. This is controlled by the option "
"weechat.look.theme_backup."
msgstr ""
msgid "toggle value of a config option"
msgstr "den Wert einer Konfigurationsoption umschalten"
@@ -4836,15 +4710,6 @@ msgstr ""
msgid "names of layouts"
msgstr "Namen der Layouts"
msgid "names of themes (built-ins + user files + backups)"
msgstr ""
msgid "names of user theme files (without built-ins and backups)"
msgstr ""
msgid "names of theme files on disk (user files + backups, no built-ins)"
msgstr ""
msgid "names of secured data (file sec.conf, section data)"
msgstr "Namen der geschützten Daten (Datei sec.conf, section data)"
@@ -6057,20 +5922,6 @@ msgstr ""
msgid "number of spaces used to display tabs in messages"
msgstr "Anzahl an Leerzeichen um Tabulatoren in Nachrichten darzustellen"
msgid ""
"name of the last theme applied with command /theme (set automatically, do "
"not change manually); informational only, the theme is not re-applied at "
"startup"
msgstr ""
msgid ""
"create a backup theme file with the current themable options before applying "
"a theme with command /theme; if the backup file cannot be written, the apply "
"is aborted (no option is changed); the backup file is written to directory "
"\"themes\" inside the WeeChat configuration directory and can be restored "
"with the command: `/theme apply backup-<timestamp>`"
msgstr ""
msgid ""
"time format for dates converted to strings and displayed in messages (see "
"man strftime for date/time specifiers)"
@@ -7169,122 +7020,6 @@ msgstr "Die Systemfunktion „%s“ ist nicht verfügbar"
msgid "Resource usage (see \"man getrusage\" for help):"
msgstr "Ressourcennutzung (siehe „man getrusage“ für Hilfe):"
msgid "WeeChat default theme for light-background terminals"
msgstr ""
msgid "Automatic backup"
msgstr ""
#, fuzzy, c-format
#| msgid "%sKey \"%s\" not found"
msgid "%sTheme: option \"%s\" not found, skipped"
msgstr "%sTastenbelegung \"%s\" nicht gefunden"
#, fuzzy, c-format
#| msgid "%s: script \"%s\" is not installed"
msgid "%sTheme: option \"%s\" is not themable, skipped"
msgstr "%s: Skript \"%s\" ist nicht installiert"
#, c-format
msgid "%s%s: line %d: malformed section header"
msgstr ""
#, fuzzy, c-format
#| msgid "%sWarning: %s, line %d: ignoring unknown section identifier (\"%s\")"
msgid "%s%s: line %d: ignoring unknown section \"%s\""
msgstr "%sWarnung: %s, Zeile %d: unbekannte Sektion wird ignoriert (\"%s\")"
#, c-format
msgid "%s%s: line %d: missing '=' separator"
msgstr ""
#, fuzzy, c-format
#| msgid ""
#| "%sWarning: %s, line %d: ignoring unknown option for section \"%s\": %s"
msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr ""
"%sWarnung: %s, Zeile %d: ignoriert unbekannte Einstellung für Sektion "
"\"%s\": %s"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to parse theme file \"%s\""
msgstr "%s%s: Datei \"%s\" Analyse nicht möglich"
#, c-format
msgid ""
"%sUnable to create theme backup; aborting apply (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
#, c-format
msgid "Previous state saved as theme \"%s\"; to restore: /theme apply %s"
msgstr ""
#, c-format
msgid ""
"%sUnable to create theme backup; aborting reset (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
#, fuzzy, c-format
#| msgid "%sBuffer name \"%s\" is reserved for WeeChat"
msgid "%sName \"%s\" is reserved for automatic backups"
msgstr "%sDer Buffer-Name \"%s\" ist für WeeChat reserviert"
#, fuzzy, c-format
#| msgid "%sBuffer name \"%s\" is reserved for WeeChat"
msgid "%sName \"%s\" is reserved for a built-in theme"
msgstr "%sDer Buffer-Name \"%s\" ist für WeeChat reserviert"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to save theme \"%s\""
msgstr "%s%s: Datei \"%s\" Analyse nicht möglich"
#, fuzzy, c-format
#| msgid "Option \"%s%s%s\":"
msgid "Theme saved to: %s"
msgstr "Einstellung \"%s%s%s\":"
#, fuzzy, c-format
#| msgid "%sCannot create file \"%s\""
msgid "%sCannot rename built-in theme \"%s\""
msgstr "%sDie Datei \"%s\" kann nicht erstellt werden"
#, c-format
msgid "%sNew name is the same as old name"
msgstr ""
#, fuzzy, c-format
#| msgid "%sBar \"%s\" already exists"
msgid "%sTheme \"%s\" already exists"
msgstr "%sBar \"%s\" existiert bereits"
#, fuzzy, c-format
#| msgid "%sUnable to rename filter \"%s\" to \"%s\""
msgid "%sFailed to rename theme \"%s\" to \"%s\""
msgstr "%sUmbenennung des Filters von \"%s\" in \"%s\" nicht möglich"
#, fuzzy, c-format
#| msgid "Trigger \"%s\" renamed to \"%s\""
msgid "Theme \"%s\" renamed to \"%s\""
msgstr "Trigger \"%s\" wurde umbenannt. Der neue Name lautet \"%s\""
#, fuzzy, c-format
#| msgid "%sCannot create file \"%s\""
msgid "%sCannot delete built-in theme \"%s\""
msgstr "%sDie Datei \"%s\" kann nicht erstellt werden"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to delete theme \"%s\""
msgstr "%s%s: Datei \"%s\" Analyse nicht möglich"
#, c-format
msgid "Theme deleted: %s"
msgstr ""
#, c-format
msgid "%sError upgrading WeeChat with file \"%s\":"
msgstr ""
@@ -7447,36 +7182,37 @@ msgstr "Ende der URL-Übertragung '%s', Übertragung gestoppt"
msgid "WeeChat is running in headless mode (ctrl-c to quit)."
msgstr "WeeChat läuft im Hintergrundmodus (ctrl-c zum Beenden)."
msgid "Welcome to WeeChat!"
msgstr ""
msgid ""
"Welcome to WeeChat!\n"
"\n"
"If you are discovering WeeChat, it is recommended to read at least the "
"quickstart guide, and the user's guide if you have some time; they explain "
"main WeeChat concepts."
msgstr ""
#, c-format
msgid "All WeeChat docs are available at: %s"
msgstr ""
msgid ""
"main WeeChat concepts.\n"
"All WeeChat docs are available at: https://weechat.org/doc/\n"
"\n"
"Moreover, there is inline help with /help on all commands and options (use "
"Tab key to complete the name)."
msgstr ""
msgid "The command /fset can help to customize WeeChat."
msgstr ""
msgid ""
"Tab key to complete the name).\n"
"The command /fset can help to customize WeeChat.\n"
"\n"
"You can add and connect to an IRC server with /server and /connect commands "
"(see /help server)."
msgstr ""
msgid ""
"The \"light\" theme will be automatically applied. Use /theme reset to "
"switch back to the default dark theme."
msgstr ""
"Willkommen zu WeeChat!\n"
"\n"
"Wenn Du WeeChat nutzen möchtest dann solltest Du zumindest einen Blick in "
"die Quickstart-Anleitung werfen. Wir empfehlen aber um den vollen "
"Funktionsumfang und das Konzept hinter WeeChat kennen zu lernen, die "
"Benutzeranleitung zu lesen.\n"
"Die vollständige Dokumentation findet man unter: https://weechat.org/doc/\n"
"\n"
"Darüber hinaus ist in WeeChat eine interne Hilfe integriert die man mit /"
"help auf alle Befehle und Optionen anwenden kann (mittels der TAB-Taste kann "
"eine Namensvervollständigung durchgeführt werden).\n"
"Mit dem Befehl /fset kann WeeChat sehr einfach und übersichtlich den eigenen "
"Bedürfnissen angepasst werden.\n"
"\n"
"Um einen IRC Server zu erstellen und sich mit selbigem zu Verbinden müssen "
"die Befehle /server und /connect verwendet werden (siehe /help server)."
#. TRANSLATORS: the "under %s" can be "under screen" or "under tmux"
#, c-format
@@ -9303,14 +9039,9 @@ msgstr "> `xxx`: zeigt nur Optionen mit \"xxx\" im Namen"
msgid "> `f:xxx`: show only configuration file \"xxx\""
msgstr "> `f:xxx`: zeigt nur Konfigurationsdatei \"xxx\" an"
#, fuzzy
#| msgid ""
#| "> `t:xxx`: show only type \"xxx\" (bool/int/str/col/enum or boolean/"
#| "integer/string/color/enum)"
msgid ""
"> `t:xxx`: show only type \"xxx\" (bool/int/str/col/enum or boolean/integer/"
"string/color/enum); the special value \"themable\" can be used to show all "
"options that can be used in themes, regardless of type"
"string/color/enum)"
msgstr ""
"> `t:xxx`: zeigt nur Optionen des entsprechenden Typs, \"xxx\" (bool/int/str/"
"col/enum oder boolean/Ganzzahl/Zeichenkette/Farbe/Aufzählung)"
@@ -17779,11 +17510,6 @@ msgstr "1 falls Skript geladen wurde"
msgid "script name with extension"
msgstr "Skriptname mit Erweiterung"
msgid "comma-separated list of plugin:extension with supported languages"
msgstr ""
"durch Kommata getrennte Liste von Erweiterungen: Endung mit unterstützen "
"Sprachen"
msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr ""
"Name des Skriptes, mit Dateierweiterung (Platzhalter \"*\" kann verwendet "
@@ -18450,12 +18176,10 @@ msgstr ""
msgid "> type `command_run`: command(s) (required)"
msgstr "> type `command_run`: Befehl(e) (erforderlich)"
msgid ""
"> type `timer`: interval (required, in milliseconds), align on second, max "
"calls"
msgid "> type `timer`: interval (required), align on second, max calls"
msgstr ""
"> type `timer`: Intervall (erforderlich, in Millisekunden), an Sekunde "
"anpassen, maximale Anzahl an Aufrufen"
"> type `timer`: Intervall (erforderlich), an Sekunden anpassen, maximale "
"Anzahl an Aufrufen"
msgid "> type `config`: name(s) of option (required)"
msgstr "> type `config`: Name der Einstellung (erforderlich)"
@@ -19376,37 +19100,3 @@ msgstr ""
"%s%s Datei \"%s\" zum Fortsetzen der Übertragung wird nicht akzeptiert "
"(Port: %d, Startposition: %llu): xfer nicht gefunden oder nicht bereit für "
"Transfer"
#~ msgid ""
#~ "Welcome to WeeChat!\n"
#~ "\n"
#~ "If you are discovering WeeChat, it is recommended to read at least the "
#~ "quickstart guide, and the user's guide if you have some time; they "
#~ "explain main WeeChat concepts.\n"
#~ "All WeeChat docs are available at: https://weechat.org/doc/\n"
#~ "\n"
#~ "Moreover, there is inline help with /help on all commands and options "
#~ "(use Tab key to complete the name).\n"
#~ "The command /fset can help to customize WeeChat.\n"
#~ "\n"
#~ "You can add and connect to an IRC server with /server and /connect "
#~ "commands (see /help server)."
#~ msgstr ""
#~ "Willkommen zu WeeChat!\n"
#~ "\n"
#~ "Wenn Du WeeChat nutzen möchtest dann solltest Du zumindest einen Blick in "
#~ "die Quickstart-Anleitung werfen. Wir empfehlen aber um den vollen "
#~ "Funktionsumfang und das Konzept hinter WeeChat kennen zu lernen, die "
#~ "Benutzeranleitung zu lesen.\n"
#~ "Die vollständige Dokumentation findet man unter: https://weechat.org/"
#~ "doc/\n"
#~ "\n"
#~ "Darüber hinaus ist in WeeChat eine interne Hilfe integriert die man mit /"
#~ "help auf alle Befehle und Optionen anwenden kann (mittels der TAB-Taste "
#~ "kann eine Namensvervollständigung durchgeführt werden).\n"
#~ "Mit dem Befehl /fset kann WeeChat sehr einfach und übersichtlich den "
#~ "eigenen Bedürfnissen angepasst werden.\n"
#~ "\n"
#~ "Um einen IRC Server zu erstellen und sich mit selbigem zu Verbinden "
#~ "müssen die Befehle /server und /connect verwendet werden (siehe /help "
#~ "server)."
+27 -320
View File
@@ -24,10 +24,10 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-07-04 22:01+0200\n"
"PO-Revision-Date: 2026-06-28 08:46+0200\n"
"POT-Creation-Date: 2026-05-30 14:00+0200\n"
"PO-Revision-Date: 2026-05-30 14:01+0200\n"
"Last-Translator: Santiago Forero <santiago@forero.xyz>\n"
"Language-Team: Spanish <weechat-dev@nongnu.org>\n"
"Language-Team: Spanish - Spain <weechat-dev@nongnu.org>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -1034,54 +1034,6 @@ msgstr "Opción creada: "
msgid "%sFunction \"%s\" is not available on this system"
msgstr "%s: atención: diccionario \"%s\" no está disponible en su sistema"
#, fuzzy
msgid "No theme available"
msgstr "Variables"
msgid "Themes:"
msgstr ""
#, c-format
msgid " %s %s%s%s (file)"
msgstr ""
#, fuzzy, c-format
#| msgid "%sKey \"%s\" not found"
msgid "%sTheme \"%s\" not found"
msgstr "%sTecla \"%s\" no encontrada"
#, fuzzy, c-format
#| msgid "Option \"%s%s%s\":"
msgid "Theme \"%s%s%s\":"
msgstr "Opción \"%s%s%s\":"
#, fuzzy, c-format
#| msgid " file: %s"
msgid " source: %s"
msgstr " archivo: %s"
msgid " source: built-in (in-memory)"
msgstr ""
#, fuzzy, c-format
#| msgid "description"
msgid " description: %s"
msgstr "descripción"
#, fuzzy, c-format
#| msgid " file: %s"
msgid " date: %s"
msgstr " archivo: %s"
#, fuzzy, c-format
#| msgid "WeeChat version"
msgid " WeeChat version: %s"
msgstr "versión de WeeChat"
#, c-format
msgid " overrides: %d"
msgstr ""
#, c-format
msgid "%sFailed to unset option \"%s\""
msgstr "%sNo se pudo deshacer la opción \"%s\""
@@ -3799,78 +3751,6 @@ msgstr ""
msgid "number: number of processes to clean"
msgstr ""
#, fuzzy
#| msgid "list of bar items"
msgid "manage color themes"
msgstr "lista de elementos de barra"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid ""
"[list [-backups]] || apply <name> || reset || save <name> || rename <old> "
"<new> || del <name> || info <name>"
msgstr ""
#, fuzzy
#| msgid "list of filters"
msgid ""
"raw[list]: list registered themes and any *.theme files in the WeeChat "
"configuration directory; the active theme (matching weechat.look.theme) is "
"marked with \"->\""
msgstr "lista de filtros"
msgid "raw[-backups]: display backup theme files"
msgstr ""
msgid ""
"raw[apply]: apply a theme (set every themable option to the value from the "
"theme); if a file named <name>.theme exists in directory \"themes\" it "
"shadows any built-in theme of the same name"
msgstr ""
msgid ""
"raw[reset]: reset every themable option to its default value (restores the "
"original look shipped with WeeChat)"
msgstr ""
msgid ""
"raw[save]: save current themable options to a file <name>.theme in directory "
"\"themes\"; every themable option is written, so the file is self-contained; "
"the name must not match a built-in theme or start with \"backup-\""
msgstr ""
#, fuzzy
#| msgid "names of filters"
msgid "raw[rename]: rename a user theme file"
msgstr "nombre de los filtros"
#, fuzzy
#| msgid "get/set channel topic"
msgid "raw[del]: delete a user theme file"
msgstr "ver/establecer el tema del canal"
msgid ""
"raw[info]: display details on a theme (name, description, creation date, "
"WeeChat version, number of option overrides)"
msgstr ""
#, fuzzy
msgid "name: name of a theme"
msgstr "habilitar soporte para ratón"
msgid ""
"Themes are named bundles of option overrides. Built-in themes are registered "
"in memory by core/plugins/scripts; user themes are read from files in "
"directory \"themes\" inside the WeeChat configuration directory."
msgstr ""
msgid ""
"By default, `/theme apply` command creates a backup of current themable "
"values in directory \"themes\" before applying (file name: \"backup-"
"<timestamp>.theme\"); the previous state can be restored with: `/theme apply "
"backup-<timestamp>`. This is controlled by the option "
"weechat.look.theme_backup."
msgstr ""
#, fuzzy
#| msgid "values for a configuration option"
msgid "toggle value of a config option"
@@ -4457,15 +4337,6 @@ msgstr "áreas (\"chat\" o nombre de barra) para movimiento libre del cursor"
msgid "names of layouts"
msgstr "nombres de temas"
msgid "names of themes (built-ins + user files + backups)"
msgstr ""
msgid "names of user theme files (without built-ins and backups)"
msgstr ""
msgid "names of theme files on disk (user files + backups, no built-ins)"
msgstr ""
msgid "names of secured data (file sec.conf, section data)"
msgstr ""
@@ -5491,20 +5362,6 @@ msgstr ""
msgid "number of spaces used to display tabs in messages"
msgstr "localización para traducción de mensajes"
msgid ""
"name of the last theme applied with command /theme (set automatically, do "
"not change manually); informational only, the theme is not re-applied at "
"startup"
msgstr ""
msgid ""
"create a backup theme file with the current themable options before applying "
"a theme with command /theme; if the backup file cannot be written, the apply "
"is aborted (no option is changed); the backup file is written to directory "
"\"themes\" inside the WeeChat configuration directory and can be restored "
"with the command: `/theme apply backup-<timestamp>`"
msgstr ""
#, fuzzy
msgid ""
"time format for dates converted to strings and displayed in messages (see "
@@ -6486,117 +6343,6 @@ msgstr "%s: error: diccionario \"%s\" no está disponible en tu sistema"
msgid "Resource usage (see \"man getrusage\" for help):"
msgstr "Uso de memoria (ver en \"man mallinfo\" por ayuda):"
msgid "WeeChat default theme for light-background terminals"
msgstr ""
msgid "Automatic backup"
msgstr ""
#, fuzzy, c-format
#| msgid "%sKey \"%s\" not found"
msgid "%sTheme: option \"%s\" not found, skipped"
msgstr "%sTecla \"%s\" no encontrada"
#, fuzzy, c-format
#| msgid "%s: script \"%s\" is not installed"
msgid "%sTheme: option \"%s\" is not themable, skipped"
msgstr "%s: el script \"%s\" no esta instalado"
#, c-format
msgid "%s%s: line %d: malformed section header"
msgstr ""
#, fuzzy, c-format
#| msgid "%sWarning: %s, line %d: unknown section identifier (\"%s\")"
msgid "%s%s: line %d: ignoring unknown section \"%s\""
msgstr ""
"%sAtención: %s, línea %d: identificador de sección desconocido (\"%s\")"
#, c-format
msgid "%s%s: line %d: missing '=' separator"
msgstr ""
#, fuzzy, c-format
#| msgid "%sWarning: %s, line %d: unknown option for section \"%s\": %s"
msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr ""
"%sAtención: %s, línea %d: opción desconocida para la sección \"%s\": %s"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to parse theme file \"%s\""
msgstr "%s%s: no es posible analizar el archivo \"%s\""
#, c-format
msgid ""
"%sUnable to create theme backup; aborting apply (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
#, c-format
msgid "Previous state saved as theme \"%s\"; to restore: /theme apply %s"
msgstr ""
#, c-format
msgid ""
"%sUnable to create theme backup; aborting reset (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
#, fuzzy, c-format
#| msgid "%sBuffer name \"%s\" is reserved for WeeChat"
msgid "%sName \"%s\" is reserved for automatic backups"
msgstr "%sEl nombre del buffer \"%s\" está reservado por WeeChat"
#, fuzzy, c-format
#| msgid "%sBuffer name \"%s\" is reserved for WeeChat"
msgid "%sName \"%s\" is reserved for a built-in theme"
msgstr "%sEl nombre del buffer \"%s\" está reservado por WeeChat"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to save theme \"%s\""
msgstr "%s%s: no es posible analizar el archivo \"%s\""
#, fuzzy, c-format
#| msgid "Option \"%s%s%s\":"
msgid "Theme saved to: %s"
msgstr "Opción \"%s%s%s\":"
#, fuzzy, c-format
msgid "%sCannot rename built-in theme \"%s\""
msgstr "%sError: no es posible crear el archivo \"%s\""
#, c-format
msgid "%sNew name is the same as old name"
msgstr ""
#, fuzzy, c-format
msgid "%sTheme \"%s\" already exists"
msgstr "%sError: el filtro \"%s\" ya existe"
#, fuzzy, c-format
#| msgid "%sUnable to rename filter \"%s\" to \"%s\""
msgid "%sFailed to rename theme \"%s\" to \"%s\""
msgstr "%sError: no se pudo renombrar el filtro \"%s\" a \"%s\""
#, fuzzy, c-format
msgid "Theme \"%s\" renamed to \"%s\""
msgstr "Filtro \"%s\" renombrado a \"%s\""
#, fuzzy, c-format
msgid "%sCannot delete built-in theme \"%s\""
msgstr "%sError: no es posible crear el archivo \"%s\""
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to delete theme \"%s\""
msgstr "%s%s: no es posible analizar el archivo \"%s\""
#, c-format
msgid "Theme deleted: %s"
msgstr ""
#, c-format
msgid "%sError upgrading WeeChat with file \"%s\":"
msgstr "%sError al actualizar WeeChat con el archivo \"%s\":"
@@ -6764,36 +6510,35 @@ msgid "WeeChat is running in headless mode (ctrl-c to quit)."
msgstr ""
"WeeChat se está ejecutando en modo de segundo plano (Ctrl-C para salir)."
msgid "Welcome to WeeChat!"
msgstr ""
msgid ""
"Welcome to WeeChat!\n"
"\n"
"If you are discovering WeeChat, it is recommended to read at least the "
"quickstart guide, and the user's guide if you have some time; they explain "
"main WeeChat concepts."
msgstr ""
#, c-format
msgid "All WeeChat docs are available at: %s"
msgstr ""
msgid ""
"main WeeChat concepts.\n"
"All WeeChat docs are available at: https://weechat.org/doc/\n"
"\n"
"Moreover, there is inline help with /help on all commands and options (use "
"Tab key to complete the name)."
msgstr ""
msgid "The command /fset can help to customize WeeChat."
msgstr ""
msgid ""
"Tab key to complete the name).\n"
"The command /fset can help to customize WeeChat.\n"
"\n"
"You can add and connect to an IRC server with /server and /connect commands "
"(see /help server)."
msgstr ""
msgid ""
"The \"light\" theme will be automatically applied. Use /theme reset to "
"switch back to the default dark theme."
msgstr ""
"¡Bienvenido a WeeChat!\n"
"\n"
"Si estás conociendo WeeChat, es recomendable que leas la guia de inicio, y "
"la guia de usuario si tienes tiempo; en ellas se explicanlo conceptos "
"principales de WeeChat.\n"
"Toda la documentación de WeeChat se encuentra disponible en: https://"
"weechat.org/doc/\n"
"\n"
"Adicionalmente, hay un menú de ayuda con el comando /help con todos los "
"comandos y opciones (usa el tabulador (Tab) para completar el nombre).\n"
"El comando /fset puede ayudar a customizar WeeChat.\n"
"\n"
"Puedes agregar y conectarte a un servidor IRC con los comandos /server y /"
"connect (más información en /help server)."
#. TRANSLATORS: the "under %s" can be "under screen" or "under tmux"
#, c-format
@@ -8309,8 +8054,7 @@ msgstr "Archivo de configuración \"%s\" desconocido"
msgid ""
"> `t:xxx`: show only type \"xxx\" (bool/int/str/col/enum or boolean/integer/"
"string/color/enum); the special value \"themable\" can be used to show all "
"options that can be used in themes, regardless of type"
"string/color/enum)"
msgstr ""
msgid "> `d`: show only changed options"
@@ -16602,11 +16346,6 @@ msgstr "scripts en %s cargados:"
msgid "script name with extension"
msgstr "lista de scripts"
#, fuzzy
#| msgid "comma separated list of file name extensions for plugins"
msgid "comma-separated list of plugin:extension with supported languages"
msgstr "lista separada por comas de extensiones de archivo para plugins"
#, fuzzy
msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr ""
@@ -17236,9 +16975,7 @@ msgstr ""
msgid "> type `command_run`: command(s) (required)"
msgstr ""
msgid ""
"> type `timer`: interval (required, in milliseconds), align on second, max "
"calls"
msgid "> type `timer`: interval (required), align on second, max calls"
msgstr ""
msgid "> type `config`: name(s) of option (required)"
@@ -18087,33 +17824,3 @@ msgid ""
msgstr ""
"%s%s: no es posible aceptar la continuación del archivo \"%s\" (puerto: %d, "
"posición inicial: %llu): xfer encontrado o no está listo para transferir"
#~ msgid ""
#~ "Welcome to WeeChat!\n"
#~ "\n"
#~ "If you are discovering WeeChat, it is recommended to read at least the "
#~ "quickstart guide, and the user's guide if you have some time; they "
#~ "explain main WeeChat concepts.\n"
#~ "All WeeChat docs are available at: https://weechat.org/doc/\n"
#~ "\n"
#~ "Moreover, there is inline help with /help on all commands and options "
#~ "(use Tab key to complete the name).\n"
#~ "The command /fset can help to customize WeeChat.\n"
#~ "\n"
#~ "You can add and connect to an IRC server with /server and /connect "
#~ "commands (see /help server)."
#~ msgstr ""
#~ "¡Bienvenido a WeeChat!\n"
#~ "\n"
#~ "Si estás conociendo WeeChat, es recomendable que leas la guia de inicio, "
#~ "y la guia de usuario si tienes tiempo; en ellas se explicanlo conceptos "
#~ "principales de WeeChat.\n"
#~ "Toda la documentación de WeeChat se encuentra disponible en: https://"
#~ "weechat.org/doc/\n"
#~ "\n"
#~ "Adicionalmente, hay un menú de ayuda con el comando /help con todos los "
#~ "comandos y opciones (usa el tabulador (Tab) para completar el nombre).\n"
#~ "El comando /fset puede ayudar a customizar WeeChat.\n"
#~ "\n"
#~ "Puedes agregar y conectarte a un servidor IRC con los comandos /server y /"
#~ "connect (más información en /help server)."
+28 -360
View File
@@ -23,10 +23,10 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-07-04 22:01+0200\n"
"PO-Revision-Date: 2026-07-04 22:02+0200\n"
"POT-Creation-Date: 2026-05-30 14:00+0200\n"
"PO-Revision-Date: 2026-05-30 14:01+0200\n"
"Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n"
"Language-Team: French <flashcode@flashtux.org>\n"
"Language-Team: French - France <weechat-dev@nongnu.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -989,47 +989,6 @@ msgstr "Option créée : "
msgid "%sFunction \"%s\" is not available on this system"
msgstr "%sLa fonction \"%s\" n'est pas disponible sur ce système"
msgid "No theme available"
msgstr "Aucun thème disponible"
msgid "Themes:"
msgstr "Thèmes:"
#, c-format
msgid " %s %s%s%s (file)"
msgstr " %s %s%s%s (fichier)"
#, c-format
msgid "%sTheme \"%s\" not found"
msgstr "%sThème \"%s\" non trouvé"
#, c-format
msgid "Theme \"%s%s%s\":"
msgstr "Thème \"%s%s%s\" :"
#, c-format
msgid " source: %s"
msgstr " source: %s"
msgid " source: built-in (in-memory)"
msgstr " source: intégré (en mémoire)"
#, c-format
msgid " description: %s"
msgstr " description: %s"
#, c-format
msgid " date: %s"
msgstr " date: %s"
#, c-format
msgid " WeeChat version: %s"
msgstr " version de WeeChat: %s"
#, c-format
msgid " overrides: %d"
msgstr " remplace: %d"
#, c-format
msgid "%sFailed to unset option \"%s\""
msgstr "%sImpossible de supprimer/réinitialiser l'option \"%s\""
@@ -4026,94 +3985,6 @@ msgstr ""
msgid "number: number of processes to clean"
msgstr "nombre : nombre de processus à nettoyer"
msgid "manage color themes"
msgstr "gestion des thèmes de couleurs"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid ""
"[list [-backups]] || apply <name> || reset || save <name> || rename <old> "
"<new> || del <name> || info <name>"
msgstr ""
"[list [-backups]] || apply <nom> || reset || save <nom> || rename <ancien> "
"<nouveau> || del <nom> || info <nom>"
msgid ""
"raw[list]: list registered themes and any *.theme files in the WeeChat "
"configuration directory; the active theme (matching weechat.look.theme) is "
"marked with \"->\""
msgstr ""
"raw[list]: afficher les thèmes enregistrés et tous les fichiers *.theme "
"dans le répertoire de configuration de WeeChat; le thème actif "
"(correspondant à weechat.look.theme) est marqué avec \"->\""
msgid "raw[-backups]: display backup theme files"
msgstr "raw[-backups] : afficher les fichier de sauvegarde de thèmes"
msgid ""
"raw[apply]: apply a theme (set every themable option to the value from the "
"theme); if a file named <name>.theme exists in directory \"themes\" it "
"shadows any built-in theme of the same name"
msgstr ""
"raw[apply]: appliquer un thème (définir chaque option personnalisable par "
"thème à la valeur du thème); si un fichier nommé <nom>.theme existe dans le "
"répertoire \"themes\", il masque tout thème intégré du même nom"
msgid ""
"raw[reset]: reset every themable option to its default value (restores the "
"original look shipped with WeeChat)"
msgstr ""
"raw[reset]: réinitialiser toutes les options de thème à leurs valeurs par "
"défaut (rétablit l'apparence d'origine de WeeChat)"
msgid ""
"raw[save]: save current themable options to a file <name>.theme in directory "
"\"themes\"; every themable option is written, so the file is self-contained; "
"the name must not match a built-in theme or start with \"backup-\""
msgstr ""
"raw[save]: sauvegarder les options de thème dans un fichier <nom>.theme "
"dans le répertoire \"themes\"; toutes les options de thème sont écrites, le "
"fichier est donc autonome; le nom ne doit pas correspondre à un thème "
"intégré ou démarrer par \"backup-\""
msgid "raw[rename]: rename a user theme file"
msgstr "raw[rename] : renommer un fichier de thème utilisateur"
msgid "raw[del]: delete a user theme file"
msgstr "raw[del] : supprimer un fichier de thème utilisateur"
msgid ""
"raw[info]: display details on a theme (name, description, creation date, "
"WeeChat version, number of option overrides)"
msgstr ""
"raw[info]: afficher les détails sur un thème (nom, description, date de "
"création, version de WeeChat, nombre d'options remplacées)"
msgid "name: name of a theme"
msgstr "nom : nom du thème"
msgid ""
"Themes are named bundles of option overrides. Built-in themes are registered "
"in memory by core/plugins/scripts; user themes are read from files in "
"directory \"themes\" inside the WeeChat configuration directory."
msgstr ""
"Les thèmes sont des ensembles nommés de redéfinitions d'options. Les thèmes "
"intégrés sont enregistrés en mémoire par le cœur, les plugins ou les "
"scripts; les thèmes utilisateur sont lus à partir de fichiers situés dans "
"le répertoire \"themes\" du répertoire de configuration de WeeChat."
msgid ""
"By default, `/theme apply` command creates a backup of current themable "
"values in directory \"themes\" before applying (file name: \"backup-"
"<timestamp>.theme\"); the previous state can be restored with: `/theme apply "
"backup-<timestamp>`. This is controlled by the option "
"weechat.look.theme_backup."
msgstr ""
"Par défaut, la commande `/theme apply` crée une sauvegarde des valeurs du "
"thème actuel dans le répertoire \"themes\" avant de les appliquer (nom de "
"fichier: \"backup-<horodatage>.theme\"); l'état précédent peut être "
"restauré à l'aide de la commande `/theme apply backup-<horodatage>`. Ce "
"comportement est régi par l'option weechat.look.theme_backup."
msgid "toggle value of a config option"
msgstr "basculer la valeur d'une option de configuration"
@@ -4756,17 +4627,6 @@ msgstr "zones (\"chat\" ou un nom de barre) pour le mouvement libre du curseur"
msgid "names of layouts"
msgstr "noms des dispositions"
msgid "names of themes (built-ins + user files + backups)"
msgstr "noms des thèmes (intégrés + fichiers utilisateur + sauvegardes)"
msgid "names of user theme files (without built-ins and backups)"
msgstr "noms des thèmes utilisateur (sans les intégrés et sauvegardes)"
msgid "names of theme files on disk (user files + backups, no built-ins)"
msgstr ""
"noms des fichiers de thèmes sur le disque (fichiers utilisateur + "
"sauvegardes, pas les intégrés)"
msgid "names of secured data (file sec.conf, section data)"
msgstr "noms de données sécurisées (fichier sec.conf, section data)"
@@ -5940,29 +5800,6 @@ msgid "number of spaces used to display tabs in messages"
msgstr ""
"nombre d'espaces utilisés pour afficher les tabulations dans les messages"
msgid ""
"name of the last theme applied with command /theme (set automatically, do "
"not change manually); informational only, the theme is not re-applied at "
"startup"
msgstr ""
"nom du dernier thème appliqué avec la commande /theme (défini "
"automatiquement, ne pas changer manuellement); à titre d'information "
"seulement, le thème n'est pas réappliqué au démarrage"
msgid ""
"create a backup theme file with the current themable options before applying "
"a theme with command /theme; if the backup file cannot be written, the apply "
"is aborted (no option is changed); the backup file is written to directory "
"\"themes\" inside the WeeChat configuration directory and can be restored "
"with the command: `/theme apply backup-<timestamp>`"
msgstr ""
"créer un fichier de sauvegarde des options de thème actuelles avant "
"d'appliquer un thème avec la commande `/theme` ; si le fichier de sauvegarde "
"ne peut pas être écrit, l'application est annulée (aucune option n'est "
"modifiée); le fichier de sauvegarde est enregistré dans le répertoire "
"\"themes\" situé dans le répertoire de configuration de WeeChat et peut être "
"restauré à l'aide de la commande: `/theme apply backup-<horodatage>`"
msgid ""
"time format for dates converted to strings and displayed in messages (see "
"man strftime for date/time specifiers)"
@@ -7057,109 +6894,6 @@ msgstr "La fonction système \"%s\" n'est pas disponible"
msgid "Resource usage (see \"man getrusage\" for help):"
msgstr "Utilisation des ressources (voir \"man getrusage\" pour de l'aide) :"
msgid "WeeChat default theme for light-background terminals"
msgstr "Thème par défaut de WeeChat par défaut pour les terminaux à fond clair"
msgid "Automatic backup"
msgstr "Sauvegarde automatique"
#, c-format
msgid "%sTheme: option \"%s\" not found, skipped"
msgstr "%sThème: option \"%s\" non trouvée, ignorée"
#, c-format
msgid "%sTheme: option \"%s\" is not themable, skipped"
msgstr "%sThème: l'option \"%s\" n'est pas personnalisable par thème, ignorée"
#, c-format
msgid "%s%s: line %d: malformed section header"
msgstr "%s%s: ligne %d: en-tête de section mal formé"
#, c-format
msgid "%s%s: line %d: ignoring unknown section \"%s\""
msgstr "%s%s: ligne %d: section \"%s\" inconnue, ignorée"
#, c-format
msgid "%s%s: line %d: missing '=' separator"
msgstr "%s%s: ligne %d: séparateur '=' manquant"
#, c-format
msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr "%s%s: ligne %d: clé [info] \"%s\" inconnue, ignorée"
#, c-format
msgid "%sFailed to parse theme file \"%s\""
msgstr "%sÉchec de l'analyse du fichier de thème \"%s\""
#, c-format
msgid ""
"%sUnable to create theme backup; aborting apply (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
"%sImpossible de créer une sauvegarde du thème; abandon de l'application "
"(désactivez l'option weechat.look.theme_backup pour forcer)"
#, c-format
msgid "Previous state saved as theme \"%s\"; to restore: /theme apply %s"
msgstr ""
"État précédent sauvé sous le thème \"%s\"; pour restaurer: /theme apply %s"
#, c-format
msgid ""
"%sUnable to create theme backup; aborting reset (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
"%sImpossible de créer une sauvegarde du thème; abandon de la "
"réinitialisation (désactivez l'option weechat.look.theme_backup pour forcer)"
#, c-format
msgid "%sName \"%s\" is reserved for automatic backups"
msgstr "%sLe nom \"%s\" est réservé pour les sauvegardes automatiques"
#, c-format
msgid "%sName \"%s\" is reserved for a built-in theme"
msgstr "%sLe nom \"%s\" est réservé pour un thème intégré"
#, c-format
msgid "%sFailed to save theme \"%s\""
msgstr "%sÉchec de sauvegarde du thème \"%s\""
#, c-format
msgid "Theme saved to: %s"
msgstr "Thème sauvegardé vers: %s"
#, c-format
msgid "%sCannot rename built-in theme \"%s\""
msgstr "%sImpossible de renommer le thème intégré \"%s\""
#, c-format
msgid "%sNew name is the same as old name"
msgstr "%sLe nouveau nom est le même que l'ancien"
#, c-format
msgid "%sTheme \"%s\" already exists"
msgstr "%sLe thème \"%s\" existe déjà"
#, c-format
msgid "%sFailed to rename theme \"%s\" to \"%s\""
msgstr "%sImpossible de renommer le thème \"%s\" en \"%s\""
#, c-format
msgid "Theme \"%s\" renamed to \"%s\""
msgstr "Thème \"%s\" renommé en \"%s\""
#, c-format
msgid "%sCannot delete built-in theme \"%s\""
msgstr "%sImpossible de supprimer le thème intégré \"%s\""
#, c-format
msgid "%sFailed to delete theme \"%s\""
msgstr "%sImpossible de supprimer le thème \"%s\""
#, c-format
msgid "Theme deleted: %s"
msgstr "Thème supprimé : %s"
#, c-format
msgid "%sError upgrading WeeChat with file \"%s\":"
msgstr "%sErreur de mise à jour de WeeChat avec le fichier \"%s\" :"
@@ -7320,46 +7054,36 @@ msgstr "Fin du transfert d'URL '%s', transfert arrêté"
msgid "WeeChat is running in headless mode (ctrl-c to quit)."
msgstr "WeeChat tourne sans interface (ctrl-c pour quitter)."
msgid "Welcome to WeeChat!"
msgstr "Bienvenue dans WeeChat !"
msgid ""
"Welcome to WeeChat!\n"
"\n"
"If you are discovering WeeChat, it is recommended to read at least the "
"quickstart guide, and the user's guide if you have some time; they explain "
"main WeeChat concepts."
msgstr ""
"Si vous découvrez WeeChat, il est recommandé de lire au moins le guide de "
"démarrage rapide, et le guide utilisateur si vous avez le temps ; ils "
"expliquent les concepts principaux de WeeChat."
#, c-format
msgid "All WeeChat docs are available at: %s"
msgstr "Toutes les documentations WeeChat sont disponibles ici : %s"
msgid ""
"main WeeChat concepts.\n"
"All WeeChat docs are available at: https://weechat.org/doc/\n"
"\n"
"Moreover, there is inline help with /help on all commands and options (use "
"Tab key to complete the name)."
msgstr ""
"De plus, il y a de l'aide en ligne avec /help sur toutes les commandes et "
"options (utilisez la touche Tab pour compléter le nom)."
msgid "The command /fset can help to customize WeeChat."
msgstr "La commande /fset peut aider à paramétrer WeeChat."
msgid ""
"Tab key to complete the name).\n"
"The command /fset can help to customize WeeChat.\n"
"\n"
"You can add and connect to an IRC server with /server and /connect commands "
"(see /help server)."
msgstr ""
"Bienvenue dans WeeChat !\n"
"\n"
"Si vous découvrez WeeChat, il est recommandé de lire au moins le guide de "
"démarrage rapide, et le guide utilisateur si vous avez le temps ; ils "
"expliquent les concepts principaux de WeeChat.\n"
"Toutes les documentations WeeChat sont disponibles ici : https://weechat.org/"
"doc/\n"
"\n"
"De plus, il y a de l'aide en ligne avec /help sur toutes les commandes et "
"options (utilisez la touche Tab pour compléter le nom).\n"
"La commande /fset peut aider à paramétrer WeeChat.\n"
"\n"
"Vous pouvez ajouter et vous connecter à un serveur IRC avec les commandes /"
"server et /connect (voir /help server)."
msgid ""
"The \"light\" theme will be automatically applied. Use /theme reset to "
"switch back to the default dark theme."
msgstr ""
"Le thème \"light\" sera automatiquement appliqué. Utilisez /theme reset pour "
"revenir au thème sombre par défaut."
#. TRANSLATORS: the "under %s" can be "under screen" or "under tmux"
#, c-format
msgid ""
@@ -9163,13 +8887,10 @@ msgstr "> `f:xxx` : afficher seulement le fichier de configuration \"xxx\""
msgid ""
"> `t:xxx`: show only type \"xxx\" (bool/int/str/col/enum or boolean/integer/"
"string/color/enum); the special value \"themable\" can be used to show all "
"options that can be used in themes, regardless of type"
"string/color/enum)"
msgstr ""
"> `t:xxx` : afficher seulement le type \"xxx\" (bool/int/str/col/enum ou "
"boolean/integer/string/color/enum); la valeur spéciale \"themable\" peut "
"être utilisée pour afficher toutes les options qui peuvent être utilisées "
"dans des thèmes, peu importe le type"
"boolean/integer/string/color/enum)"
msgid "> `d`: show only changed options"
msgstr "> `d` : afficher seulement les options changées"
@@ -17461,9 +17182,6 @@ msgstr "1 si le script est chargé"
msgid "script name with extension"
msgstr "nom du script avec l'extension"
msgid "comma-separated list of plugin:extension with supported languages"
msgstr "liste de extension:extension_fichier avec les langages supportés"
msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr ""
"nom du script avec extension (le caractère joker \"*\" est autorisé) "
@@ -18116,12 +17834,10 @@ msgstr ""
msgid "> type `command_run`: command(s) (required)"
msgstr "> type `command_run` : commande(s) (obligatoire)"
msgid ""
"> type `timer`: interval (required, in milliseconds), align on second, max "
"calls"
msgid "> type `timer`: interval (required), align on second, max calls"
msgstr ""
"> type `timer` : intervalle (obligatoire, en millisecondes), alignement sur "
"la seconde, nombre max d'appels"
"> type `timer` : intervalle (obligatoire), alignement sur la seconde, nombre "
"max d'appels"
msgid "> type `config`: name(s) of option (required)"
msgstr "> type `config` : nom(s) de l'option (obligatoire)"
@@ -19043,51 +18759,3 @@ msgid ""
msgstr ""
"%s%s : impossible d'accepter de continuer le fichier \"%s\" (port : %d, "
"position de départ : %llu) : xfer non trouvé ou non prêt pour le transfert"
#~ msgid "Automatic backup written before /theme apply"
#~ msgstr "Sauvegarde automatique écrite avant /theme apply"
#~ msgid ""
#~ "Welcome to WeeChat!\n"
#~ "\n"
#~ "If you are discovering WeeChat, it is recommended to read at least the "
#~ "quickstart guide, and the user's guide if you have some time; they "
#~ "explain main WeeChat concepts.\n"
#~ "All WeeChat docs are available at: https://weechat.org/doc/\n"
#~ "\n"
#~ "Moreover, there is inline help with /help on all commands and options "
#~ "(use Tab key to complete the name).\n"
#~ "The command /fset can help to customize WeeChat.\n"
#~ "\n"
#~ "You can add and connect to an IRC server with /server and /connect "
#~ "commands (see /help server)."
#~ msgstr ""
#~ "Bienvenue dans WeeChat !\n"
#~ "\n"
#~ "Si vous découvrez WeeChat, il est recommandé de lire au moins le guide de "
#~ "démarrage rapide, et le guide utilisateur si vous avez le temps ; ils "
#~ "expliquent les concepts principaux de WeeChat.\n"
#~ "Toutes les documentations WeeChat sont disponibles ici : https://"
#~ "weechat.org/doc/\n"
#~ "\n"
#~ "De plus, il y a de l'aide en ligne avec /help sur toutes les commandes et "
#~ "options (utilisez la touche Tab pour compléter le nom).\n"
#~ "La commande /fset peut aider à paramétrer WeeChat.\n"
#~ "\n"
#~ "Vous pouvez ajouter et vous connecter à un serveur IRC avec les "
#~ "commandes /server et /connect (voir /help server)."
#~ msgid ""
#~ "raw[delete]: delete a user theme file (refuses to delete built-in themes, "
#~ "which have no file)"
#~ msgstr "raw[delete] : supprimer un fichier thème de l'utilisateur"
#~ msgid "No theme registered"
#~ msgstr "Aucun thème enregistré"
#~ msgid ""
#~ "raw[list]: list registered themes (default action with no argument); "
#~ "active theme is marked with \"->\""
#~ msgstr ""
#~ "raw[list] : afficher les thèmes enregistrés (sans paramètre, cette liste "
#~ "est affichée), le thème actif est marqué avec \"->\""
+11 -264
View File
@@ -22,7 +22,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-07-04 22:01+0200\n"
"POT-Creation-Date: 2026-05-30 14:00+0200\n"
"PO-Revision-Date: 2026-03-08 08:59+0100\n"
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
"Language-Team: Hungarian <weechat-dev@nongnu.org>\n"
@@ -991,48 +991,6 @@ msgstr "nincs a szobában"
msgid "%sFunction \"%s\" is not available on this system"
msgstr "%s a \"%s\" modul nem található\n"
#, fuzzy
msgid "No theme available"
msgstr " . típus: szám\n"
msgid "Themes:"
msgstr ""
#, c-format
msgid " %s %s%s%s (file)"
msgstr ""
#, fuzzy, c-format
msgid "%sTheme \"%s\" not found"
msgstr "%s a \"%s\" szerver nem található\n"
#, fuzzy, c-format
msgid "Theme \"%s%s%s\":"
msgstr "Felhasználók a %s%s%s szobában: %s["
#, fuzzy, c-format
msgid " source: %s"
msgstr " IRC(%s)\n"
msgid " source: built-in (in-memory)"
msgstr ""
#, fuzzy, c-format
msgid " description: %s"
msgstr " . leírás : %s\n"
#, fuzzy, c-format
msgid " date: %s"
msgstr " IRC(%s)\n"
#, fuzzy, c-format
msgid " WeeChat version: %s"
msgstr "WeeChat szlogen"
#, c-format
msgid " overrides: %d"
msgstr ""
#, fuzzy, c-format
msgid "%sFailed to unset option \"%s\""
msgstr "%s nem sikerült a modul opciókat elmenteni\n"
@@ -3553,75 +3511,6 @@ msgstr ""
msgid "number: number of processes to clean"
msgstr ""
#, fuzzy
msgid "manage color themes"
msgstr "Aliaszok listája:\n"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid ""
"[list [-backups]] || apply <name> || reset || save <name> || rename <old> "
"<new> || del <name> || info <name>"
msgstr ""
#, fuzzy
msgid ""
"raw[list]: list registered themes and any *.theme files in the WeeChat "
"configuration directory; the active theme (matching weechat.look.theme) is "
"marked with \"->\""
msgstr "Aliaszok listája:\n"
msgid "raw[-backups]: display backup theme files"
msgstr ""
msgid ""
"raw[apply]: apply a theme (set every themable option to the value from the "
"theme); if a file named <name>.theme exists in directory \"themes\" it "
"shadows any built-in theme of the same name"
msgstr ""
msgid ""
"raw[reset]: reset every themable option to its default value (restores the "
"original look shipped with WeeChat)"
msgstr ""
msgid ""
"raw[save]: save current themable options to a file <name>.theme in directory "
"\"themes\"; every themable option is written, so the file is self-contained; "
"the name must not match a built-in theme or start with \"backup-\""
msgstr ""
#, fuzzy
msgid "raw[rename]: rename a user theme file"
msgstr "Aliaszok listája:\n"
#, fuzzy
#| msgid "get/set channel topic"
msgid "raw[del]: delete a user theme file"
msgstr "szoba témájának olvasása/módosítása"
msgid ""
"raw[info]: display details on a theme (name, description, creation date, "
"WeeChat version, number of option overrides)"
msgstr ""
#, fuzzy
msgid "name: name of a theme"
msgstr "Aliaszok listája:\n"
msgid ""
"Themes are named bundles of option overrides. Built-in themes are registered "
"in memory by core/plugins/scripts; user themes are read from files in "
"directory \"themes\" inside the WeeChat configuration directory."
msgstr ""
msgid ""
"By default, `/theme apply` command creates a backup of current themable "
"values in directory \"themes\" before applying (file name: \"backup-"
"<timestamp>.theme\"); the previous state can be restored with: `/theme apply "
"backup-<timestamp>`. This is controlled by the option "
"weechat.look.theme_backup."
msgstr ""
#, fuzzy
msgid "toggle value of a config option"
msgstr "Nem található az opció\n"
@@ -4178,15 +4067,6 @@ msgstr ""
msgid "names of layouts"
msgstr "Aliaszok listája:\n"
msgid "names of themes (built-ins + user files + backups)"
msgstr ""
msgid "names of user theme files (without built-ins and backups)"
msgstr ""
msgid "names of theme files on disk (user files + backups, no built-ins)"
msgstr ""
msgid "names of secured data (file sec.conf, section data)"
msgstr ""
@@ -5026,20 +4906,6 @@ msgstr ""
msgid "number of spaces used to display tabs in messages"
msgstr "válasz ping üzenetre"
msgid ""
"name of the last theme applied with command /theme (set automatically, do "
"not change manually); informational only, the theme is not re-applied at "
"startup"
msgstr ""
msgid ""
"create a backup theme file with the current themable options before applying "
"a theme with command /theme; if the backup file cannot be written, the apply "
"is aborted (no option is changed); the backup file is written to directory "
"\"themes\" inside the WeeChat configuration directory and can be restored "
"with the command: `/theme apply backup-<timestamp>`"
msgstr ""
#, fuzzy
msgid ""
"time format for dates converted to strings and displayed in messages (see "
@@ -6000,104 +5866,6 @@ msgstr "%s a \"%s\" modul nem található\n"
msgid "Resource usage (see \"man getrusage\" for help):"
msgstr ""
msgid "WeeChat default theme for light-background terminals"
msgstr ""
msgid "Automatic backup"
msgstr ""
#, fuzzy, c-format
msgid "%sTheme: option \"%s\" not found, skipped"
msgstr "%s a \"%s\" szerver nem található\n"
#, fuzzy, c-format
msgid "%sTheme: option \"%s\" is not themable, skipped"
msgstr "%s a \"%s\" szerver nem található\n"
#, c-format
msgid "%s%s: line %d: malformed section header"
msgstr ""
#, fuzzy, c-format
msgid "%s%s: line %d: ignoring unknown section \"%s\""
msgstr "%s %s, %d. sor: ismeretlen csoportazonosító (\"%s\")\n"
#, c-format
msgid "%s%s: line %d: missing '=' separator"
msgstr ""
#, fuzzy, c-format
msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr "%s %s, %d. sor: ismeretlen csoportazonosító (\"%s\")\n"
#, fuzzy, c-format
msgid "%sFailed to parse theme file \"%s\""
msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n"
#, c-format
msgid ""
"%sUnable to create theme backup; aborting apply (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
#, c-format
msgid "Previous state saved as theme \"%s\"; to restore: /theme apply %s"
msgstr ""
#, c-format
msgid ""
"%sUnable to create theme backup; aborting reset (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
#, c-format
msgid "%sName \"%s\" is reserved for automatic backups"
msgstr ""
#, c-format
msgid "%sName \"%s\" is reserved for a built-in theme"
msgstr ""
#, fuzzy, c-format
msgid "%sFailed to save theme \"%s\""
msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n"
#, fuzzy, c-format
msgid "Theme saved to: %s"
msgstr "Felhasználók a %s%s%s szobában: %s["
#, fuzzy, c-format
msgid "%sCannot rename built-in theme \"%s\""
msgstr "%s nem sikerült a \"%s\" fájlt létrehozni\n"
#, c-format
msgid "%sNew name is the same as old name"
msgstr ""
#, fuzzy, c-format
msgid "%sTheme \"%s\" already exists"
msgstr "%s az ignore már létezik\n"
#, fuzzy, c-format
msgid "%sFailed to rename theme \"%s\" to \"%s\""
msgstr "%s ismeretlen opció a \"%s\" parancsnak\n"
#, fuzzy, c-format
msgid "Theme \"%s\" renamed to \"%s\""
msgstr "a felhasználók le lettek tiltva"
#, fuzzy, c-format
msgid "%sCannot delete built-in theme \"%s\""
msgstr "%s nem sikerült a \"%s\" fájlt létrehozni\n"
#, fuzzy, c-format
msgid "%sFailed to delete theme \"%s\""
msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n"
#, c-format
msgid "Theme deleted: %s"
msgstr ""
#, fuzzy, c-format
msgid "%sError upgrading WeeChat with file \"%s\":"
msgstr "WeeChat frissítése...\n"
@@ -6257,37 +6025,22 @@ msgstr ""
msgid "WeeChat is running in headless mode (ctrl-c to quit)."
msgstr ""
msgid "Welcome to WeeChat!"
msgstr ""
msgid ""
"Welcome to WeeChat!\n"
"\n"
"If you are discovering WeeChat, it is recommended to read at least the "
"quickstart guide, and the user's guide if you have some time; they explain "
"main WeeChat concepts."
msgstr ""
#, c-format
msgid "All WeeChat docs are available at: %s"
msgstr ""
msgid ""
"main WeeChat concepts.\n"
"All WeeChat docs are available at: https://weechat.org/doc/\n"
"\n"
"Moreover, there is inline help with /help on all commands and options (use "
"Tab key to complete the name)."
msgstr ""
msgid "The command /fset can help to customize WeeChat."
msgstr ""
msgid ""
"Tab key to complete the name).\n"
"The command /fset can help to customize WeeChat.\n"
"\n"
"You can add and connect to an IRC server with /server and /connect commands "
"(see /help server)."
msgstr ""
msgid ""
"The \"light\" theme will be automatically applied. Use /theme reset to "
"switch back to the default dark theme."
msgstr ""
#. TRANSLATORS: the "under %s" can be "under screen" or "under tmux"
#, c-format
msgid ""
@@ -7773,8 +7526,7 @@ msgstr "szerver konfigurációs fájljának újraolvastatása"
msgid ""
"> `t:xxx`: show only type \"xxx\" (bool/int/str/col/enum or boolean/integer/"
"string/color/enum); the special value \"themable\" can be used to show all "
"options that can be used in themes, regardless of type"
"string/color/enum)"
msgstr ""
msgid "> `d`: show only changed options"
@@ -15562,9 +15314,6 @@ msgstr "FIFO cső bezárva\n"
msgid "script name with extension"
msgstr "Aliaszok listája:\n"
msgid "comma-separated list of plugin:extension with supported languages"
msgstr ""
msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr ""
@@ -16158,9 +15907,7 @@ msgstr ""
msgid "> type `command_run`: command(s) (required)"
msgstr ""
msgid ""
"> type `timer`: interval (required, in milliseconds), align on second, max "
"calls"
msgid "> type `timer`: interval (required), align on second, max calls"
msgstr ""
msgid "> type `config`: name(s) of option (required)"
+11 -285
View File
@@ -22,7 +22,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-07-04 22:01+0200\n"
"POT-Creation-Date: 2026-05-30 14:00+0200\n"
"PO-Revision-Date: 2026-05-30 14:02+0200\n"
"Last-Translator: Esteban I. Ruiz Moreno <exio4.com@gmail.com>\n"
"Language-Team: Italian <weechat-dev@nongnu.org>\n"
@@ -999,54 +999,6 @@ msgid "%sFunction \"%s\" is not available on this system"
msgstr ""
"%s: attenzione: il dizionario \"%s\" non è disponibile su questo sistema"
#, fuzzy
msgid "No theme available"
msgstr "Variabili"
msgid "Themes:"
msgstr ""
#, c-format
msgid " %s %s%s%s (file)"
msgstr ""
#, fuzzy, c-format
#| msgid "%sKey \"%s\" not found"
msgid "%sTheme \"%s\" not found"
msgstr "%sTasto \"%s\" non trovato"
#, fuzzy, c-format
#| msgid "Option \"%s%s%s\":"
msgid "Theme \"%s%s%s\":"
msgstr "Opzione \"%s%s%s\":"
#, fuzzy, c-format
#| msgid " file: %s"
msgid " source: %s"
msgstr " file: %s"
msgid " source: built-in (in-memory)"
msgstr ""
#, fuzzy, c-format
#| msgid "description"
msgid " description: %s"
msgstr "descrizione"
#, fuzzy, c-format
#| msgid " file: %s"
msgid " date: %s"
msgstr " file: %s"
#, fuzzy, c-format
#| msgid "WeeChat version"
msgid " WeeChat version: %s"
msgstr "versione di WeeChat"
#, c-format
msgid " overrides: %d"
msgstr ""
#, c-format
msgid "%sFailed to unset option \"%s\""
msgstr "%sImpossibile disabilitare l'opzione \"%s\""
@@ -3730,78 +3682,6 @@ msgstr ""
msgid "number: number of processes to clean"
msgstr ""
#, fuzzy
#| msgid "list of bar items"
msgid "manage color themes"
msgstr "elenco degli elementi barra"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid ""
"[list [-backups]] || apply <name> || reset || save <name> || rename <old> "
"<new> || del <name> || info <name>"
msgstr ""
#, fuzzy
#| msgid "list of filters"
msgid ""
"raw[list]: list registered themes and any *.theme files in the WeeChat "
"configuration directory; the active theme (matching weechat.look.theme) is "
"marked with \"->\""
msgstr "elenco dei filtri"
msgid "raw[-backups]: display backup theme files"
msgstr ""
msgid ""
"raw[apply]: apply a theme (set every themable option to the value from the "
"theme); if a file named <name>.theme exists in directory \"themes\" it "
"shadows any built-in theme of the same name"
msgstr ""
msgid ""
"raw[reset]: reset every themable option to its default value (restores the "
"original look shipped with WeeChat)"
msgstr ""
msgid ""
"raw[save]: save current themable options to a file <name>.theme in directory "
"\"themes\"; every themable option is written, so the file is self-contained; "
"the name must not match a built-in theme or start with \"backup-\""
msgstr ""
#, fuzzy
#| msgid "names of filters"
msgid "raw[rename]: rename a user theme file"
msgstr "nomi dei filtri"
#, fuzzy
#| msgid "get/set channel topic"
msgid "raw[del]: delete a user theme file"
msgstr "legge/modifica argomento del canale"
msgid ""
"raw[info]: display details on a theme (name, description, creation date, "
"WeeChat version, number of option overrides)"
msgstr ""
#, fuzzy
msgid "name: name of a theme"
msgstr "abilita il supporto del mouse"
msgid ""
"Themes are named bundles of option overrides. Built-in themes are registered "
"in memory by core/plugins/scripts; user themes are read from files in "
"directory \"themes\" inside the WeeChat configuration directory."
msgstr ""
msgid ""
"By default, `/theme apply` command creates a backup of current themable "
"values in directory \"themes\" before applying (file name: \"backup-"
"<timestamp>.theme\"); the previous state can be restored with: `/theme apply "
"backup-<timestamp>`. This is controlled by the option "
"weechat.look.theme_backup."
msgstr ""
#, fuzzy
#| msgid "values for a configuration option"
msgid "toggle value of a config option"
@@ -4392,15 +4272,6 @@ msgstr "aree (\"chat\" o nome barra) per il movimento libero del cursore"
msgid "names of layouts"
msgstr "nomi dei layout"
msgid "names of themes (built-ins + user files + backups)"
msgstr ""
msgid "names of user theme files (without built-ins and backups)"
msgstr ""
msgid "names of theme files on disk (user files + backups, no built-ins)"
msgstr ""
#, fuzzy
msgid "names of secured data (file sec.conf, section data)"
msgstr "nome dei dati sensibili (file sec.conf, sezione data)"
@@ -5448,20 +5319,6 @@ msgstr ""
msgid "number of spaces used to display tabs in messages"
msgstr "locale usato per la traduzione dei messaggi"
msgid ""
"name of the last theme applied with command /theme (set automatically, do "
"not change manually); informational only, the theme is not re-applied at "
"startup"
msgstr ""
msgid ""
"create a backup theme file with the current themable options before applying "
"a theme with command /theme; if the backup file cannot be written, the apply "
"is aborted (no option is changed); the backup file is written to directory "
"\"themes\" inside the WeeChat configuration directory and can be restored "
"with the command: `/theme apply backup-<timestamp>`"
msgstr ""
msgid ""
"time format for dates converted to strings and displayed in messages (see "
"man strftime for date/time specifiers)"
@@ -6474,114 +6331,6 @@ msgstr "%s: errore: il dizionario \"%s\" non è disponibile su questo sistema"
msgid "Resource usage (see \"man getrusage\" for help):"
msgstr "Uso della memoria (consultare \"man mallinfo\" per aiuto):"
msgid "WeeChat default theme for light-background terminals"
msgstr ""
msgid "Automatic backup"
msgstr ""
#, fuzzy, c-format
#| msgid "%sKey \"%s\" not found"
msgid "%sTheme: option \"%s\" not found, skipped"
msgstr "%sTasto \"%s\" non trovato"
#, fuzzy, c-format
#| msgid "%s: script \"%s\" is not installed"
msgid "%sTheme: option \"%s\" is not themable, skipped"
msgstr "%s: script \"%s\" non installato"
#, c-format
msgid "%s%s: line %d: malformed section header"
msgstr ""
#, fuzzy, c-format
#| msgid "%sWarning: %s, line %d: unknown section identifier (\"%s\")"
msgid "%s%s: line %d: ignoring unknown section \"%s\""
msgstr ""
"%sAttenzione: %s, riga %d: identificatore di sezione sconosciuto (\"%s\")"
#, c-format
msgid "%s%s: line %d: missing '=' separator"
msgstr ""
#, fuzzy, c-format
#| msgid "%sWarning: %s, line %d: unknown option for section \"%s\": %s"
msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr ""
"%sAttenzione: %s, riga %d: opzione sconosciuta per la sezione \"%s\": %s"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to parse theme file \"%s\""
msgstr "%s%s: impossibile analizzare il file \"%s\""
#, c-format
msgid ""
"%sUnable to create theme backup; aborting apply (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
#, c-format
msgid "Previous state saved as theme \"%s\"; to restore: /theme apply %s"
msgstr ""
#, c-format
msgid ""
"%sUnable to create theme backup; aborting reset (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
#, c-format
msgid "%sName \"%s\" is reserved for automatic backups"
msgstr ""
#, c-format
msgid "%sName \"%s\" is reserved for a built-in theme"
msgstr ""
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to save theme \"%s\""
msgstr "%s%s: impossibile analizzare il file \"%s\""
#, fuzzy, c-format
#| msgid "Option \"%s%s%s\":"
msgid "Theme saved to: %s"
msgstr "Opzione \"%s%s%s\":"
#, fuzzy, c-format
msgid "%sCannot rename built-in theme \"%s\""
msgstr "%sErrore: impossibile creare il file \"%s\""
#, c-format
msgid "%sNew name is the same as old name"
msgstr ""
#, fuzzy, c-format
msgid "%sTheme \"%s\" already exists"
msgstr "%sErrore: il filtro \"%s\" esiste già"
#, fuzzy, c-format
msgid "%sFailed to rename theme \"%s\" to \"%s\""
msgstr "%sErrore: impossibile rinominare il filtro da \"%s\" a \"%s\""
#, fuzzy, c-format
msgid "Theme \"%s\" renamed to \"%s\""
msgstr "Filtro \"%s\" rinominato in \"%s\""
#, fuzzy, c-format
msgid "%sCannot delete built-in theme \"%s\""
msgstr "%sErrore: impossibile creare il file \"%s\""
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to delete theme \"%s\""
msgstr "%s%s: impossibile analizzare il file \"%s\""
#, c-format
msgid "Theme deleted: %s"
msgstr ""
#, c-format
msgid "%sError upgrading WeeChat with file \"%s\":"
msgstr "%sErrore durante l'aggiornamento di WeeChat con il file \"%s\":"
@@ -6746,37 +6495,22 @@ msgstr "Fine comando '%s', timeout raggiunto (%.1fs)"
msgid "WeeChat is running in headless mode (ctrl-c to quit)."
msgstr "1 se si sta aggiornando WeeChat (comando `/upgrade`)"
msgid "Welcome to WeeChat!"
msgstr ""
msgid ""
"Welcome to WeeChat!\n"
"\n"
"If you are discovering WeeChat, it is recommended to read at least the "
"quickstart guide, and the user's guide if you have some time; they explain "
"main WeeChat concepts."
msgstr ""
#, c-format
msgid "All WeeChat docs are available at: %s"
msgstr ""
msgid ""
"main WeeChat concepts.\n"
"All WeeChat docs are available at: https://weechat.org/doc/\n"
"\n"
"Moreover, there is inline help with /help on all commands and options (use "
"Tab key to complete the name)."
msgstr ""
msgid "The command /fset can help to customize WeeChat."
msgstr ""
msgid ""
"Tab key to complete the name).\n"
"The command /fset can help to customize WeeChat.\n"
"\n"
"You can add and connect to an IRC server with /server and /connect commands "
"(see /help server)."
msgstr ""
msgid ""
"The \"light\" theme will be automatically applied. Use /theme reset to "
"switch back to the default dark theme."
msgstr ""
#. TRANSLATORS: the "under %s" can be "under screen" or "under tmux"
#, c-format
msgid ""
@@ -8326,8 +8060,7 @@ msgstr "File di configurazione \"%s\" sconosciuto"
msgid ""
"> `t:xxx`: show only type \"xxx\" (bool/int/str/col/enum or boolean/integer/"
"string/color/enum); the special value \"themable\" can be used to show all "
"options that can be used in themes, regardless of type"
"string/color/enum)"
msgstr ""
msgid "> `d`: show only changed options"
@@ -16699,11 +16432,6 @@ msgstr "script %s caricati:"
msgid "script name with extension"
msgstr "elenco degli script"
#, fuzzy
#| msgid "comma separated list of file name extensions for plugins"
msgid "comma-separated list of plugin:extension with supported languages"
msgstr "elenco separato da virgole di estensioni dei nomi file per i plugin"
#, fuzzy
msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr ""
@@ -17337,9 +17065,7 @@ msgstr ""
msgid "> type `command_run`: command(s) (required)"
msgstr ""
msgid ""
"> type `timer`: interval (required, in milliseconds), align on second, max "
"calls"
msgid "> type `timer`: interval (required), align on second, max calls"
msgstr ""
msgid "> type `config`: name(s) of option (required)"
+24 -316
View File
@@ -22,7 +22,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-07-04 22:01+0200\n"
"POT-Creation-Date: 2026-05-30 14:00+0200\n"
"PO-Revision-Date: 2026-05-30 14:02+0200\n"
"Last-Translator: AYANOKOUZI, Ryuunosuke <i38w7i3@yahoo.co.jp>\n"
"Language-Team: Japanese <weechat-dev@nongnu.org>\n"
@@ -1004,55 +1004,6 @@ msgstr "作成されたオプション: "
msgid "%sFunction \"%s\" is not available on this system"
msgstr "%s: 警告: 辞書 \"%s\" がこのシステム上では利用できません"
#, fuzzy
#| msgid "no variable"
msgid "No theme available"
msgstr "変数がありません"
msgid "Themes:"
msgstr ""
#, c-format
msgid " %s %s%s%s (file)"
msgstr ""
#, fuzzy, c-format
#| msgid "%sKey \"%s\" not found"
msgid "%sTheme \"%s\" not found"
msgstr "%sキー \"%s\" が見つかりません"
#, fuzzy, c-format
#| msgid "Option \"%s%s%s\":"
msgid "Theme \"%s%s%s\":"
msgstr "オプション \"%s%s%s\":"
#, fuzzy, c-format
#| msgid " file: %s"
msgid " source: %s"
msgstr " ファイル: %s"
msgid " source: built-in (in-memory)"
msgstr ""
#, fuzzy, c-format
#| msgid "description"
msgid " description: %s"
msgstr "説明"
#, fuzzy, c-format
#| msgid " file: %s"
msgid " date: %s"
msgstr " ファイル: %s"
#, fuzzy, c-format
#| msgid "WeeChat version"
msgid " WeeChat version: %s"
msgstr "WeeChat のバージョン"
#, c-format
msgid " overrides: %d"
msgstr ""
#, c-format
msgid "%sFailed to unset option \"%s\""
msgstr "%sオプション \"%s\" の無効化に失敗しました"
@@ -3815,79 +3766,6 @@ msgstr ""
msgid "number: number of processes to clean"
msgstr ""
#, fuzzy
#| msgid "list of bar items"
msgid "manage color themes"
msgstr "バー要素のリスト"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid ""
"[list [-backups]] || apply <name> || reset || save <name> || rename <old> "
"<new> || del <name> || info <name>"
msgstr ""
#, fuzzy
#| msgid "list of filters"
msgid ""
"raw[list]: list registered themes and any *.theme files in the WeeChat "
"configuration directory; the active theme (matching weechat.look.theme) is "
"marked with \"->\""
msgstr "フィルタのリスト"
msgid "raw[-backups]: display backup theme files"
msgstr ""
msgid ""
"raw[apply]: apply a theme (set every themable option to the value from the "
"theme); if a file named <name>.theme exists in directory \"themes\" it "
"shadows any built-in theme of the same name"
msgstr ""
msgid ""
"raw[reset]: reset every themable option to its default value (restores the "
"original look shipped with WeeChat)"
msgstr ""
msgid ""
"raw[save]: save current themable options to a file <name>.theme in directory "
"\"themes\"; every themable option is written, so the file is self-contained; "
"the name must not match a built-in theme or start with \"backup-\""
msgstr ""
#, fuzzy
#| msgid "names of filters"
msgid "raw[rename]: rename a user theme file"
msgstr "フィルタ名"
#, fuzzy
#| msgid "get/set channel topic"
msgid "raw[del]: delete a user theme file"
msgstr "チャンネルトピックの取得/設定"
msgid ""
"raw[info]: display details on a theme (name, description, creation date, "
"WeeChat version, number of option overrides)"
msgstr ""
#, fuzzy
#| msgid "enable trigger support"
msgid "name: name of a theme"
msgstr "トリガサポートの有効化"
msgid ""
"Themes are named bundles of option overrides. Built-in themes are registered "
"in memory by core/plugins/scripts; user themes are read from files in "
"directory \"themes\" inside the WeeChat configuration directory."
msgstr ""
msgid ""
"By default, `/theme apply` command creates a backup of current themable "
"values in directory \"themes\" before applying (file name: \"backup-"
"<timestamp>.theme\"); the previous state can be restored with: `/theme apply "
"backup-<timestamp>`. This is controlled by the option "
"weechat.look.theme_backup."
msgstr ""
#, fuzzy
#| msgid "values for a configuration option"
msgid "toggle value of a config option"
@@ -4494,15 +4372,6 @@ msgstr "カーソルを自由に動かせるエリア (\"chat\" またはバー
msgid "names of layouts"
msgstr "レイアウトの名前"
msgid "names of themes (built-ins + user files + backups)"
msgstr ""
msgid "names of user theme files (without built-ins and backups)"
msgstr ""
msgid "names of theme files on disk (user files + backups, no built-ins)"
msgstr ""
msgid "names of secured data (file sec.conf, section data)"
msgstr "保護データの名前 (sec.conf ファイル、セクションデータ)"
@@ -5610,20 +5479,6 @@ msgstr ""
msgid "number of spaces used to display tabs in messages"
msgstr "メッセージに含まれるタブ文字を表示する際に使う空白文字の数"
msgid ""
"name of the last theme applied with command /theme (set automatically, do "
"not change manually); informational only, the theme is not re-applied at "
"startup"
msgstr ""
msgid ""
"create a backup theme file with the current themable options before applying "
"a theme with command /theme; if the backup file cannot be written, the apply "
"is aborted (no option is changed); the backup file is written to directory "
"\"themes\" inside the WeeChat configuration directory and can be restored "
"with the command: `/theme apply backup-<timestamp>`"
msgstr ""
msgid ""
"time format for dates converted to strings and displayed in messages (see "
"man strftime for date/time specifiers)"
@@ -6652,114 +6507,6 @@ msgstr "%s: エラー: 辞書 \"%s\" がシステム上に見つかりません"
msgid "Resource usage (see \"man getrusage\" for help):"
msgstr "メモリ使用量 (ヘルプを見るには \"man mallinfo\" を参照してください):"
msgid "WeeChat default theme for light-background terminals"
msgstr ""
msgid "Automatic backup"
msgstr ""
#, fuzzy, c-format
#| msgid "%sKey \"%s\" not found"
msgid "%sTheme: option \"%s\" not found, skipped"
msgstr "%sキー \"%s\" が見つかりません"
#, fuzzy, c-format
#| msgid "%s: script \"%s\" is not installed"
msgid "%sTheme: option \"%s\" is not themable, skipped"
msgstr "%s: スクリプト \"%s\" はインストールされていません"
#, c-format
msgid "%s%s: line %d: malformed section header"
msgstr ""
#, fuzzy, c-format
#| msgid "%sWarning: %s, line %d: unknown section identifier (\"%s\")"
msgid "%s%s: line %d: ignoring unknown section \"%s\""
msgstr "%s警告: %s、行 %d: セクションインジケータ (\"%s\") は未定義"
#, c-format
msgid "%s%s: line %d: missing '=' separator"
msgstr ""
#, fuzzy, c-format
#| msgid "%sWarning: %s, line %d: unknown option for section \"%s\": %s"
msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr "%s警告: %s、行 %d: セクション \"%s\" の無効なオプション: %s"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to parse theme file \"%s\""
msgstr "%s%s: ファイル \"%s\" を解析できません"
#, c-format
msgid ""
"%sUnable to create theme backup; aborting apply (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
#, c-format
msgid "Previous state saved as theme \"%s\"; to restore: /theme apply %s"
msgstr ""
#, c-format
msgid ""
"%sUnable to create theme backup; aborting reset (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
#, fuzzy, c-format
msgid "%sName \"%s\" is reserved for automatic backups"
msgstr "%sエラー: \"%s\" は WeeChat の予約名です"
#, fuzzy, c-format
msgid "%sName \"%s\" is reserved for a built-in theme"
msgstr "%sエラー: \"%s\" は WeeChat の予約名です"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to save theme \"%s\""
msgstr "%s%s: ファイル \"%s\" を解析できません"
#, fuzzy, c-format
#| msgid "Option \"%s%s%s\":"
msgid "Theme saved to: %s"
msgstr "オプション \"%s%s%s\":"
#, fuzzy, c-format
msgid "%sCannot rename built-in theme \"%s\""
msgstr "%sエラー: ファイル \"%s\" の作成に失敗"
#, c-format
msgid "%sNew name is the same as old name"
msgstr ""
#, fuzzy, c-format
#| msgid "%s%s: trigger \"%s\" already exists"
msgid "%sTheme \"%s\" already exists"
msgstr "%s%s: トリガ \"%s\" は既に存在します"
#, fuzzy, c-format
msgid "%sFailed to rename theme \"%s\" to \"%s\""
msgstr "%sエラー: フィルタ \"%s\" の名前を \"%s\" に変更できません"
#, fuzzy, c-format
#| msgid "Trigger \"%s\" renamed to \"%s\""
msgid "Theme \"%s\" renamed to \"%s\""
msgstr "トリガ \"%s\" の名前を \"%s\" に変更しました"
#, fuzzy, c-format
msgid "%sCannot delete built-in theme \"%s\""
msgstr "%sエラー: ファイル \"%s\" の作成に失敗"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to delete theme \"%s\""
msgstr "%s%s: ファイル \"%s\" を解析できません"
#, c-format
msgid "Theme deleted: %s"
msgstr ""
#, c-format
msgid "%sError upgrading WeeChat with file \"%s\":"
msgstr "%sファイル \"%s\" で WeeChat のアップグレード中にエラー:"
@@ -6928,36 +6675,34 @@ msgstr "コマンド '%s' の終了、タイムアウトになりました (%.1f
msgid "WeeChat is running in headless mode (ctrl-c to quit)."
msgstr "WeeChat をヘッドレスモードで実行中 (Ctrl-C で終了します)。"
msgid "Welcome to WeeChat!"
msgstr ""
msgid ""
"Welcome to WeeChat!\n"
"\n"
"If you are discovering WeeChat, it is recommended to read at least the "
"quickstart guide, and the user's guide if you have some time; they explain "
"main WeeChat concepts."
msgstr ""
#, c-format
msgid "All WeeChat docs are available at: %s"
msgstr ""
msgid ""
"main WeeChat concepts.\n"
"All WeeChat docs are available at: https://weechat.org/doc/\n"
"\n"
"Moreover, there is inline help with /help on all commands and options (use "
"Tab key to complete the name)."
msgstr ""
msgid "The command /fset can help to customize WeeChat."
msgstr ""
msgid ""
"Tab key to complete the name).\n"
"The command /fset can help to customize WeeChat.\n"
"\n"
"You can add and connect to an IRC server with /server and /connect commands "
"(see /help server)."
msgstr ""
msgid ""
"The \"light\" theme will be automatically applied. Use /theme reset to "
"switch back to the default dark theme."
msgstr ""
"WeeChat にようこそ!\n"
"\n"
"WeeChat を初めて使うのなら、少なくともクイックスタートガイドを、時間があるな"
"らユーザーズガイドを読むことをお勧めします。これらは WeeChat の主な構想を説明"
"しています。\n"
"WeeChat の文書は全てこのサイトから利用可能です: https://weechat.org/doc/\n"
"\n"
"さらに、すべてのコマンドとオプションには /help から見れるインラインヘルプが用"
"意されています (Tab キーで名前補完できます)。\n"
"WeeChat をカスタマイズするには /fset を使うと便利です。\n"
"\n"
"IRC サーバの設定を追加してサーバに接続するには /server と /connect コマンドを"
"使ってください (/help server 参照)。"
#. TRANSLATORS: the "under %s" can be "under screen" or "under tmux"
#, c-format
@@ -8616,8 +8361,7 @@ msgstr "設定ファイル \"%s\" が見つかりません"
msgid ""
"> `t:xxx`: show only type \"xxx\" (bool/int/str/col/enum or boolean/integer/"
"string/color/enum); the special value \"themable\" can be used to show all "
"options that can be used in themes, regardless of type"
"string/color/enum)"
msgstr ""
msgid "> `d`: show only changed options"
@@ -17252,11 +16996,6 @@ msgstr "ロードされた %s スクリプト:"
msgid "script name with extension"
msgstr "スクリプトの拡張子のリスト"
#, fuzzy
#| msgid "comma separated list of file name extensions for plugins"
msgid "comma-separated list of plugin:extension with supported languages"
msgstr "プラグインのファイル拡張子のコンマ区切りリスト"
msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr ""
"拡張子を含めたスクリプト名 (ワイルドカード \"*\" を使うことができます) (任意)"
@@ -17901,9 +17640,7 @@ msgstr ""
msgid "> type `command_run`: command(s) (required)"
msgstr ""
msgid ""
"> type `timer`: interval (required, in milliseconds), align on second, max "
"calls"
msgid "> type `timer`: interval (required), align on second, max calls"
msgstr ""
msgid "> type `config`: name(s) of option (required)"
@@ -18762,32 +18499,3 @@ msgid ""
msgstr ""
"%s%s: ファイル \"%s\" のリジュームが承認されませんでした (ポート: %d、開始位"
"置: %llu): xfer が見つからないか、転送準備が整っていません"
#~ msgid ""
#~ "Welcome to WeeChat!\n"
#~ "\n"
#~ "If you are discovering WeeChat, it is recommended to read at least the "
#~ "quickstart guide, and the user's guide if you have some time; they "
#~ "explain main WeeChat concepts.\n"
#~ "All WeeChat docs are available at: https://weechat.org/doc/\n"
#~ "\n"
#~ "Moreover, there is inline help with /help on all commands and options "
#~ "(use Tab key to complete the name).\n"
#~ "The command /fset can help to customize WeeChat.\n"
#~ "\n"
#~ "You can add and connect to an IRC server with /server and /connect "
#~ "commands (see /help server)."
#~ msgstr ""
#~ "WeeChat にようこそ!\n"
#~ "\n"
#~ "WeeChat を初めて使うのなら、少なくともクイックスタートガイドを、時間がある"
#~ "ならユーザーズガイドを読むことをお勧めします。これらは WeeChat の主な構想"
#~ "を説明しています。\n"
#~ "WeeChat の文書は全てこのサイトから利用可能です: https://weechat.org/doc/\n"
#~ "\n"
#~ "さらに、すべてのコマンドとオプションには /help から見れるインラインヘルプ"
#~ "が用意されています (Tab キーで名前補完できます)。\n"
#~ "WeeChat をカスタマイズするには /fset を使うと便利です。\n"
#~ "\n"
#~ "IRC サーバの設定を追加してサーバに接続するには /server と /connect コマン"
#~ "ドを使ってください (/help server 参照)。"
+29 -340
View File
@@ -1,5 +1,5 @@
#
# SPDX-FileCopyrightText: 2009-2026 Krzysztof Koroscik <soltys@soltys.info>
# SPDX-FileCopyrightText: 2009-2016 Krzysztof Koroscik <soltys1@gmail.com>
# SPDX-FileCopyrightText: 2010 B.J. Stobiecki <bartek@stobiecki.eu>
#
# SPDX-License-Identifier: GPL-3.0-or-later
@@ -19,14 +19,15 @@
# You should have received a copy of the GNU General Public License
# along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
#
# Krzysztof Korościk <soltys@soltys.info>, 2018, 2019, 2020.
msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-07-04 22:01+0200\n"
"PO-Revision-Date: 2026-06-28 08:55+0200\n"
"POT-Creation-Date: 2026-05-30 14:00+0200\n"
"PO-Revision-Date: 2026-05-30 14:02+0200\n"
"Last-Translator: Krzysztof Korościk <soltys@soltys.info>\n"
"Language-Team: Polish <soltys@soltys.info>\n"
"Language-Team: Polish <weechat-dev@nongnu.org>\n"
"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -980,55 +981,6 @@ msgstr "Opcja utworzona: "
msgid "%sFunction \"%s\" is not available on this system"
msgstr "%sFunkcja „%s” nie jest dostępna w tym systemie"
#, fuzzy
#| msgid "not available"
msgid "No theme available"
msgstr "niedostępne"
msgid "Themes:"
msgstr ""
#, c-format
msgid " %s %s%s%s (file)"
msgstr ""
#, fuzzy, c-format
#| msgid "%sKey \"%s\" not found"
msgid "%sTheme \"%s\" not found"
msgstr "%sKlawisz \"%s\" nie znaleziony"
#, fuzzy, c-format
#| msgid "Option \"%s%s%s\":"
msgid "Theme \"%s%s%s\":"
msgstr "Opcja \"%s%s%s\":"
#, fuzzy, c-format
#| msgid " file: %s"
msgid " source: %s"
msgstr " plik: %s"
msgid " source: built-in (in-memory)"
msgstr ""
#, fuzzy, c-format
#| msgid "description"
msgid " description: %s"
msgstr "opis"
#, fuzzy, c-format
#| msgid " file: %s"
msgid " date: %s"
msgstr " plik: %s"
#, fuzzy, c-format
#| msgid "WeeChat version"
msgid " WeeChat version: %s"
msgstr "Wersja WeeChat"
#, c-format
msgid " overrides: %d"
msgstr ""
#, c-format
msgid "%sFailed to unset option \"%s\""
msgstr "%sNie powiodło się wyzerowanie opcji \"%s\""
@@ -3925,85 +3877,6 @@ msgstr ""
msgid "number: number of processes to clean"
msgstr "numer: ilość procesów do wyczyszczenia"
#, fuzzy
#| msgid "manage custom bar items"
msgid "manage color themes"
msgstr "zarządza niestandardowymi elementami pasków"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid ""
"[list [-backups]] || apply <name> || reset || save <name> || rename <old> "
"<new> || del <name> || info <name>"
msgstr ""
#, fuzzy
#| msgid ""
#| "raw[list]: list remote relay servers (without argument, this list is "
#| "displayed)"
msgid ""
"raw[list]: list registered themes and any *.theme files in the WeeChat "
"configuration directory; the active theme (matching weechat.look.theme) is "
"marked with \"->\""
msgstr ""
"raw[list]: wyświetl pośredników (bez podania argumentu wyświetlana jest ta "
"lista)"
#, fuzzy
#| msgid "raw[tags]: display tags for lines"
msgid "raw[-backups]: display backup theme files"
msgstr "raw[tags]: wyświetl tagi dla linii"
msgid ""
"raw[apply]: apply a theme (set every themable option to the value from the "
"theme); if a file named <name>.theme exists in directory \"themes\" it "
"shadows any built-in theme of the same name"
msgstr ""
msgid ""
"raw[reset]: reset every themable option to its default value (restores the "
"original look shipped with WeeChat)"
msgstr ""
msgid ""
"raw[save]: save current themable options to a file <name>.theme in directory "
"\"themes\"; every themable option is written, so the file is self-contained; "
"the name must not match a built-in theme or start with \"backup-\""
msgstr ""
#, fuzzy
#| msgid "raw[rename]: rename a filter"
msgid "raw[rename]: rename a user theme file"
msgstr "raw[rename]: zmień nazwę filtra"
#, fuzzy
#| msgid "raw[del]: delete a server"
msgid "raw[del]: delete a user theme file"
msgstr "raw[del]: usuń serwer"
msgid ""
"raw[info]: display details on a theme (name, description, creation date, "
"WeeChat version, number of option overrides)"
msgstr ""
#, fuzzy
#| msgid "name: name of trigger"
msgid "name: name of a theme"
msgstr "nazwa: nazwa triggera"
msgid ""
"Themes are named bundles of option overrides. Built-in themes are registered "
"in memory by core/plugins/scripts; user themes are read from files in "
"directory \"themes\" inside the WeeChat configuration directory."
msgstr ""
msgid ""
"By default, `/theme apply` command creates a backup of current themable "
"values in directory \"themes\" before applying (file name: \"backup-"
"<timestamp>.theme\"); the previous state can be restored with: `/theme apply "
"backup-<timestamp>`. This is controlled by the option "
"weechat.look.theme_backup."
msgstr ""
msgid "toggle value of a config option"
msgstr "przełącza wartość opcji konfiguracyjnej"
@@ -4627,15 +4500,6 @@ msgstr ""
msgid "names of layouts"
msgstr "nazwy układów"
msgid "names of themes (built-ins + user files + backups)"
msgstr ""
msgid "names of user theme files (without built-ins and backups)"
msgstr ""
msgid "names of theme files on disk (user files + backups, no built-ins)"
msgstr ""
msgid "names of secured data (file sec.conf, section data)"
msgstr "nazwy zabezpieczonych danych (plik sec.conf, sekcja data)"
@@ -5768,20 +5632,6 @@ msgstr ""
msgid "number of spaces used to display tabs in messages"
msgstr "liczba spacji używana do wyświetlania tabulacji w wiadomościach"
msgid ""
"name of the last theme applied with command /theme (set automatically, do "
"not change manually); informational only, the theme is not re-applied at "
"startup"
msgstr ""
msgid ""
"create a backup theme file with the current themable options before applying "
"a theme with command /theme; if the backup file cannot be written, the apply "
"is aborted (no option is changed); the backup file is written to directory "
"\"themes\" inside the WeeChat configuration directory and can be restored "
"with the command: `/theme apply backup-<timestamp>`"
msgstr ""
msgid ""
"time format for dates converted to strings and displayed in messages (see "
"man strftime for date/time specifiers)"
@@ -6830,122 +6680,6 @@ msgstr "Funkcja systemowa \"%s\" nie jest dostępna"
msgid "Resource usage (see \"man getrusage\" for help):"
msgstr "Zużycie zasobów (zobacz \"man getrusage\"):"
msgid "WeeChat default theme for light-background terminals"
msgstr ""
msgid "Automatic backup"
msgstr ""
#, fuzzy, c-format
#| msgid "%sKey \"%s\" not found"
msgid "%sTheme: option \"%s\" not found, skipped"
msgstr "%sKlawisz \"%s\" nie znaleziony"
#, fuzzy, c-format
#| msgid "%s: script \"%s\" is not installed"
msgid "%sTheme: option \"%s\" is not themable, skipped"
msgstr "%s: skrypt \"%s\" nie zainstalowany"
#, c-format
msgid "%s%s: line %d: malformed section header"
msgstr ""
#, fuzzy, c-format
#| msgid "%sWarning: %s, line %d: ignoring unknown section identifier (\"%s\")"
msgid "%s%s: line %d: ignoring unknown section \"%s\""
msgstr ""
"%sOstrzeżenie: %s, linia %d: ignoruje nieznany identyfikator sekcji (\"%s\")"
#, c-format
msgid "%s%s: line %d: missing '=' separator"
msgstr ""
#, fuzzy, c-format
#| msgid ""
#| "%sWarning: %s, line %d: ignoring unknown option for section \"%s\": %s"
msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr ""
"%sOstrzeżenie: %s, linia %d: ignoruje nieznaną opcję dla sekcji \"%s\": %s"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to parse theme file \"%s\""
msgstr "%s%s: nie można przetworzyć pliku \"%s\""
#, c-format
msgid ""
"%sUnable to create theme backup; aborting apply (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
#, c-format
msgid "Previous state saved as theme \"%s\"; to restore: /theme apply %s"
msgstr ""
#, c-format
msgid ""
"%sUnable to create theme backup; aborting reset (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
#, fuzzy, c-format
#| msgid "%sBuffer name \"%s\" is reserved for WeeChat"
msgid "%sName \"%s\" is reserved for automatic backups"
msgstr "%sNazwa bufora \"%s\" jest zarezerwowana dla WeeChat"
#, fuzzy, c-format
#| msgid "%sBuffer name \"%s\" is reserved for WeeChat"
msgid "%sName \"%s\" is reserved for a built-in theme"
msgstr "%sNazwa bufora \"%s\" jest zarezerwowana dla WeeChat"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to save theme \"%s\""
msgstr "%s%s: nie można przetworzyć pliku \"%s\""
#, fuzzy, c-format
#| msgid "Option \"%s%s%s\":"
msgid "Theme saved to: %s"
msgstr "Opcja \"%s%s%s\":"
#, fuzzy, c-format
#| msgid "%sCannot create file \"%s\""
msgid "%sCannot rename built-in theme \"%s\""
msgstr "%sNie można utworzyć pliku \"%s\""
#, c-format
msgid "%sNew name is the same as old name"
msgstr ""
#, fuzzy, c-format
#| msgid "%sBar \"%s\" already exists"
msgid "%sTheme \"%s\" already exists"
msgstr "%sPasek \"%s\" już istnieje"
#, fuzzy, c-format
#| msgid "%sUnable to rename filter \"%s\" to \"%s\""
msgid "%sFailed to rename theme \"%s\" to \"%s\""
msgstr "%sNie można zmienić nazwy filtru z \"%s\" na \"%s\""
#, fuzzy, c-format
#| msgid "Trigger \"%s\" renamed to \"%s\""
msgid "Theme \"%s\" renamed to \"%s\""
msgstr "Zmieniono nazwę triggera z \"%s\" na \"%s\""
#, fuzzy, c-format
#| msgid "%sCannot create file \"%s\""
msgid "%sCannot delete built-in theme \"%s\""
msgstr "%sNie można utworzyć pliku \"%s\""
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to delete theme \"%s\""
msgstr "%s%s: nie można przetworzyć pliku \"%s\""
#, c-format
msgid "Theme deleted: %s"
msgstr ""
#, c-format
msgid "%sError upgrading WeeChat with file \"%s\":"
msgstr "%sBłąd przy uaktualnianiu WeeChat z użyciem pliku \"%s\":"
@@ -7105,36 +6839,35 @@ msgstr "Zakończono transfer URL '%s', transfer zatrzymany"
msgid "WeeChat is running in headless mode (ctrl-c to quit)."
msgstr "WeeChat działa w trybie bez interfejsu (naciśnij ctrl-c żeby wyjść)."
msgid "Welcome to WeeChat!"
msgstr ""
msgid ""
"Welcome to WeeChat!\n"
"\n"
"If you are discovering WeeChat, it is recommended to read at least the "
"quickstart guide, and the user's guide if you have some time; they explain "
"main WeeChat concepts."
msgstr ""
#, c-format
msgid "All WeeChat docs are available at: %s"
msgstr ""
msgid ""
"main WeeChat concepts.\n"
"All WeeChat docs are available at: https://weechat.org/doc/\n"
"\n"
"Moreover, there is inline help with /help on all commands and options (use "
"Tab key to complete the name)."
msgstr ""
msgid "The command /fset can help to customize WeeChat."
msgstr ""
msgid ""
"Tab key to complete the name).\n"
"The command /fset can help to customize WeeChat.\n"
"\n"
"You can add and connect to an IRC server with /server and /connect commands "
"(see /help server)."
msgstr ""
msgid ""
"The \"light\" theme will be automatically applied. Use /theme reset to "
"switch back to the default dark theme."
msgstr ""
"Witaj w WeeChat!\n"
"\n"
"Jeśli dopiero poznajesz WeeChat, zaleca się abyś przeczytał przynajmniej "
"szybki start i poradnik użytkownika jeśli znajdziesz na to chwilę; wyjaśnią "
"one główne założenia WeeChat.\n"
"Wszystkie dokumenty dotyczące WeeChat dostępne są pod adresem: https://"
"weechat.org/doc/\n"
"\n"
"Ponadto, dostępna jest wbudowana pomoc /help dla wszystkich komend i opcji "
"(klawisz Tab dopełnia nazwy).\n"
"Komenda /fset pomaga w dostosowaniu WeeChat do swoich preferencji.\n"
"\n"
"Możesz dodać i połączyć się z serwerem IRC za pomocą komend /server i /"
"connect (zobacz /help server)."
#. TRANSLATORS: the "under %s" can be "under screen" or "under tmux"
#, c-format
@@ -8873,14 +8606,9 @@ msgstr "> `xxx`: pokaż tylko opcje z „xxx” w nazwie"
msgid "> `f:xxx`: show only configuration file \"xxx\""
msgstr "> `f:xxx`: pokaż tylko plik konfiguracyjny „xxx”"
#, fuzzy
#| msgid ""
#| "> `t:xxx`: show only type \"xxx\" (bool/int/str/col/enum or boolean/"
#| "integer/string/color/enum)"
msgid ""
"> `t:xxx`: show only type \"xxx\" (bool/int/str/col/enum or boolean/integer/"
"string/color/enum); the special value \"themable\" can be used to show all "
"options that can be used in themes, regardless of type"
"string/color/enum)"
msgstr ""
"> `t:xxx`: pokaż tylko opcje typu „xxx” (bool/int/str/col/enum or boolean/"
"integer/string/color/enum)"
@@ -17019,11 +16747,6 @@ msgstr "1 jeśli skrypt jest załadowany"
msgid "script name with extension"
msgstr "nazwa skryptu z rozszerzeniem"
#, fuzzy
#| msgid "comma separated list of file name extensions for plugins"
msgid "comma-separated list of plugin:extension with supported languages"
msgstr "oddzielona przecinkami lista rozszerzeń nazw plików dla wtyczek"
msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr ""
"nazwa skryptu z rozszerzeniem (wildcard \"*\" jest dozwolony) (opcjonalne)\""
@@ -17660,11 +17383,7 @@ msgstr ""
msgid "> type `command_run`: command(s) (required)"
msgstr "> typ `command_run`: komenda(-y) (wymagane)"
#, fuzzy
#| msgid "> type `timer`: interval (required), align on second, max calls"
msgid ""
"> type `timer`: interval (required, in milliseconds), align on second, max "
"calls"
msgid "> type `timer`: interval (required), align on second, max calls"
msgstr ""
"> typ `timer`: interwał (wymagany), wyrównane do sekund, maksymalne wywołania"
@@ -18544,33 +18263,3 @@ msgid ""
msgstr ""
"%s%s: nie można zaakceptować wznowienia pliku \"%s\" (port: %d, pozycja "
"startowa: %llu): xfer nie znaleziony lub nie gotowy do transferu"
#~ msgid ""
#~ "Welcome to WeeChat!\n"
#~ "\n"
#~ "If you are discovering WeeChat, it is recommended to read at least the "
#~ "quickstart guide, and the user's guide if you have some time; they "
#~ "explain main WeeChat concepts.\n"
#~ "All WeeChat docs are available at: https://weechat.org/doc/\n"
#~ "\n"
#~ "Moreover, there is inline help with /help on all commands and options "
#~ "(use Tab key to complete the name).\n"
#~ "The command /fset can help to customize WeeChat.\n"
#~ "\n"
#~ "You can add and connect to an IRC server with /server and /connect "
#~ "commands (see /help server)."
#~ msgstr ""
#~ "Witaj w WeeChat!\n"
#~ "\n"
#~ "Jeśli dopiero poznajesz WeeChat, zaleca się abyś przeczytał przynajmniej "
#~ "szybki start i poradnik użytkownika jeśli znajdziesz na to chwilę; "
#~ "wyjaśnią one główne założenia WeeChat.\n"
#~ "Wszystkie dokumenty dotyczące WeeChat dostępne są pod adresem: https://"
#~ "weechat.org/doc/\n"
#~ "\n"
#~ "Ponadto, dostępna jest wbudowana pomoc /help dla wszystkich komend i "
#~ "opcji (klawisz Tab dopełnia nazwy).\n"
#~ "Komenda /fset pomaga w dostosowaniu WeeChat do swoich preferencji.\n"
#~ "\n"
#~ "Możesz dodać i połączyć się z serwerem IRC za pomocą komend /server i /"
#~ "connect (zobacz /help server)."
+28 -320
View File
@@ -22,10 +22,10 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-07-04 22:01+0200\n"
"PO-Revision-Date: 2026-06-28 08:48+0200\n"
"POT-Creation-Date: 2026-05-30 14:00+0200\n"
"PO-Revision-Date: 2026-05-30 14:02+0200\n"
"Last-Translator: Vasco Almeida <vascomalmeida@sapo.pt>\n"
"Language-Team: Portuguese <weechat-dev@nongnu.org>\n"
"Language-Team: Portuguese - Portugal <weechat-dev@nongnu.org>\n"
"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -1006,55 +1006,6 @@ msgstr "Opção criada: "
msgid "%sFunction \"%s\" is not available on this system"
msgstr "%s: aviso: o dicionário \"%s\" não está disponível no sistema"
#, fuzzy
#| msgid "no variable"
msgid "No theme available"
msgstr "nenhum variável"
msgid "Themes:"
msgstr ""
#, c-format
msgid " %s %s%s%s (file)"
msgstr ""
#, fuzzy, c-format
#| msgid "%sKey \"%s\" not found"
msgid "%sTheme \"%s\" not found"
msgstr "%sTecla \"%s\" não encontrada"
#, fuzzy, c-format
#| msgid "Option \"%s%s%s\":"
msgid "Theme \"%s%s%s\":"
msgstr "Opção \"%s%s%s\":"
#, fuzzy, c-format
#| msgid " file: %s"
msgid " source: %s"
msgstr " ficheiro: %s"
msgid " source: built-in (in-memory)"
msgstr ""
#, fuzzy, c-format
#| msgid "description"
msgid " description: %s"
msgstr "descrição"
#, fuzzy, c-format
#| msgid " file: %s"
msgid " date: %s"
msgstr " ficheiro: %s"
#, fuzzy, c-format
#| msgid "WeeChat version"
msgid " WeeChat version: %s"
msgstr "versão do WeeChat"
#, c-format
msgid " overrides: %d"
msgstr ""
#, c-format
msgid "%sFailed to unset option \"%s\""
msgstr "%sFalha ao reinicializar a opção \"%s\""
@@ -3824,79 +3775,6 @@ msgstr ""
msgid "number: number of processes to clean"
msgstr ""
#, fuzzy
#| msgid "list of bar items"
msgid "manage color themes"
msgstr "lista de itens da barra"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid ""
"[list [-backups]] || apply <name> || reset || save <name> || rename <old> "
"<new> || del <name> || info <name>"
msgstr ""
#, fuzzy
#| msgid "list of filters"
msgid ""
"raw[list]: list registered themes and any *.theme files in the WeeChat "
"configuration directory; the active theme (matching weechat.look.theme) is "
"marked with \"->\""
msgstr "lista de filtros"
msgid "raw[-backups]: display backup theme files"
msgstr ""
msgid ""
"raw[apply]: apply a theme (set every themable option to the value from the "
"theme); if a file named <name>.theme exists in directory \"themes\" it "
"shadows any built-in theme of the same name"
msgstr ""
msgid ""
"raw[reset]: reset every themable option to its default value (restores the "
"original look shipped with WeeChat)"
msgstr ""
msgid ""
"raw[save]: save current themable options to a file <name>.theme in directory "
"\"themes\"; every themable option is written, so the file is self-contained; "
"the name must not match a built-in theme or start with \"backup-\""
msgstr ""
#, fuzzy
#| msgid "names of filters"
msgid "raw[rename]: rename a user theme file"
msgstr "nomes dos filtros"
#, fuzzy
#| msgid "get/set channel topic"
msgid "raw[del]: delete a user theme file"
msgstr "obter/definir o tópico do canal"
msgid ""
"raw[info]: display details on a theme (name, description, creation date, "
"WeeChat version, number of option overrides)"
msgstr ""
#, fuzzy
#| msgid "enable trigger support"
msgid "name: name of a theme"
msgstr "ativar suporte de acionadores"
msgid ""
"Themes are named bundles of option overrides. Built-in themes are registered "
"in memory by core/plugins/scripts; user themes are read from files in "
"directory \"themes\" inside the WeeChat configuration directory."
msgstr ""
msgid ""
"By default, `/theme apply` command creates a backup of current themable "
"values in directory \"themes\" before applying (file name: \"backup-"
"<timestamp>.theme\"); the previous state can be restored with: `/theme apply "
"backup-<timestamp>`. This is controlled by the option "
"weechat.look.theme_backup."
msgstr ""
#, fuzzy
#| msgid "values for a configuration option"
msgid "toggle value of a config option"
@@ -4513,15 +4391,6 @@ msgstr "áreas (\"chat\" ou nome da barra) onde mover o cursor livremente"
msgid "names of layouts"
msgstr "nomes das disposições"
msgid "names of themes (built-ins + user files + backups)"
msgstr ""
msgid "names of user theme files (without built-ins and backups)"
msgstr ""
msgid "names of theme files on disk (user files + backups, no built-ins)"
msgstr ""
msgid "names of secured data (file sec.conf, section data)"
msgstr "nomes dos ficheiros protegidos (ficheiro sec.conf, secção de dados)"
@@ -5639,20 +5508,6 @@ msgstr ""
msgid "number of spaces used to display tabs in messages"
msgstr "número de espaços usados para apresentar tabulações nas mensagens"
msgid ""
"name of the last theme applied with command /theme (set automatically, do "
"not change manually); informational only, the theme is not re-applied at "
"startup"
msgstr ""
msgid ""
"create a backup theme file with the current themable options before applying "
"a theme with command /theme; if the backup file cannot be written, the apply "
"is aborted (no option is changed); the backup file is written to directory "
"\"themes\" inside the WeeChat configuration directory and can be restored "
"with the command: `/theme apply backup-<timestamp>`"
msgstr ""
msgid ""
"time format for dates converted to strings and displayed in messages (see "
"man strftime for date/time specifiers)"
@@ -6708,114 +6563,6 @@ msgstr "%s: erro: o dicionário \"%s\" não está disponível no sistema"
msgid "Resource usage (see \"man getrusage\" for help):"
msgstr "Utilização de memória (ver \"man mallingo\" para obter ajuda):"
msgid "WeeChat default theme for light-background terminals"
msgstr ""
msgid "Automatic backup"
msgstr ""
#, fuzzy, c-format
#| msgid "%sKey \"%s\" not found"
msgid "%sTheme: option \"%s\" not found, skipped"
msgstr "%sTecla \"%s\" não encontrada"
#, fuzzy, c-format
#| msgid "%s: script \"%s\" is not installed"
msgid "%sTheme: option \"%s\" is not themable, skipped"
msgstr "%s: o script \"%s\" não está instalado"
#, c-format
msgid "%s%s: line %d: malformed section header"
msgstr ""
#, fuzzy, c-format
#| msgid "%sWarning: %s, line %d: unknown section identifier (\"%s\")"
msgid "%s%s: line %d: ignoring unknown section \"%s\""
msgstr "%sAviso: %s, linha %d: identificador de secção desconhecido (\"%s\")"
#, c-format
msgid "%s%s: line %d: missing '=' separator"
msgstr ""
#, fuzzy, c-format
#| msgid "%sWarning: %s, line %d: unknown option for section \"%s\": %s"
msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr "%sAviso: %s, linha %d: opção desconhecida na secção \"%s\": %s"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to parse theme file \"%s\""
msgstr "%s%s: não foi possível analisar o ficheiro \"%s\""
#, c-format
msgid ""
"%sUnable to create theme backup; aborting apply (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
#, c-format
msgid "Previous state saved as theme \"%s\"; to restore: /theme apply %s"
msgstr ""
#, c-format
msgid ""
"%sUnable to create theme backup; aborting reset (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
#, c-format
msgid "%sName \"%s\" is reserved for automatic backups"
msgstr ""
#, c-format
msgid "%sName \"%s\" is reserved for a built-in theme"
msgstr ""
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to save theme \"%s\""
msgstr "%s%s: não foi possível analisar o ficheiro \"%s\""
#, fuzzy, c-format
#| msgid "Option \"%s%s%s\":"
msgid "Theme saved to: %s"
msgstr "Opção \"%s%s%s\":"
#, fuzzy, c-format
msgid "%sCannot rename built-in theme \"%s\""
msgstr "%sErro: não é possível criar o ficheiro \"%s\""
#, c-format
msgid "%sNew name is the same as old name"
msgstr ""
#, fuzzy, c-format
#| msgid "%s%s: trigger \"%s\" already exists"
msgid "%sTheme \"%s\" already exists"
msgstr "%s%s: o acionador \"%s\" já existe"
#, fuzzy, c-format
msgid "%sFailed to rename theme \"%s\" to \"%s\""
msgstr "%sErro: não foi possível mudar o nome do filtro \"%s\" para \"%s\""
#, fuzzy, c-format
#| msgid "Trigger \"%s\" renamed to \"%s\""
msgid "Theme \"%s\" renamed to \"%s\""
msgstr "O nome do acionador \"%s\" mudou para \"%s\""
#, fuzzy, c-format
msgid "%sCannot delete built-in theme \"%s\""
msgstr "%sErro: não é possível criar o ficheiro \"%s\""
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to delete theme \"%s\""
msgstr "%s%s: não foi possível analisar o ficheiro \"%s\""
#, c-format
msgid "Theme deleted: %s"
msgstr ""
#, c-format
msgid "%sError upgrading WeeChat with file \"%s\":"
msgstr "%sErro ao atualizar o WeeChat com o ficheiro \"%s\":"
@@ -6980,36 +6727,36 @@ msgstr "Fim do comando '%s', tempo limite atingido (%.1fs)"
msgid "WeeChat is running in headless mode (ctrl-c to quit)."
msgstr "1 se o WeeChat está a atualizar (comando `/upgrade`)"
msgid "Welcome to WeeChat!"
msgstr ""
#, fuzzy
msgid ""
"Welcome to WeeChat!\n"
"\n"
"If you are discovering WeeChat, it is recommended to read at least the "
"quickstart guide, and the user's guide if you have some time; they explain "
"main WeeChat concepts."
msgstr ""
#, c-format
msgid "All WeeChat docs are available at: %s"
msgstr ""
msgid ""
"main WeeChat concepts.\n"
"All WeeChat docs are available at: https://weechat.org/doc/\n"
"\n"
"Moreover, there is inline help with /help on all commands and options (use "
"Tab key to complete the name)."
msgstr ""
msgid "The command /fset can help to customize WeeChat."
msgstr ""
msgid ""
"Tab key to complete the name).\n"
"The command /fset can help to customize WeeChat.\n"
"\n"
"You can add and connect to an IRC server with /server and /connect commands "
"(see /help server)."
msgstr ""
msgid ""
"The \"light\" theme will be automatically applied. Use /theme reset to "
"switch back to the default dark theme."
msgstr ""
"Bem-vindo ao WeeChat!\n"
"\n"
"Se é a primeira vez que usa o WeeChat, recomenda-se que leia pelo menos o "
"guia de introdução, e o manual do utilizador se dispõe de algum tempo; estes "
"explicam os principais conceitos do WeeChat.\n"
"A documentação do WeeChat está disponível em: https://weechat.org/doc/\n"
"\n"
"Além disso, pode consultar a ajuda incorporada com /help sobre todos os "
"comandos e opções (use a tecla Tab para completar o nome).\n"
"O comando /iset (script iset.pl) pode ajudá-lo a personalizar o WeeChat: /"
"script install iset.pl\n"
"\n"
"Pode adicionar e conectar-se a um ser servidor de IRC pelos comandos /server "
"e /connect (ver /help server)."
#. TRANSLATORS: the "under %s" can be "under screen" or "under tmux"
#, c-format
@@ -8581,8 +8328,7 @@ msgstr "Ficheiro de configuração desconhecido \"%s\""
msgid ""
"> `t:xxx`: show only type \"xxx\" (bool/int/str/col/enum or boolean/integer/"
"string/color/enum); the special value \"themable\" can be used to show all "
"options that can be used in themes, regardless of type"
"string/color/enum)"
msgstr ""
msgid "> `d`: show only changed options"
@@ -17123,11 +16869,6 @@ msgstr "scripts %s carregados:"
msgid "script name with extension"
msgstr "lista de extensões de script"
#, fuzzy
#| msgid "comma separated list of file name extensions for plugins"
msgid "comma-separated list of plugin:extension with supported languages"
msgstr "lista de extensões de ficheiros separadas por vírgula para os plugins"
msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr ""
"nome do script com extensão (o caráter universal \"*\" é permitido) "
@@ -17789,9 +17530,7 @@ msgstr ""
msgid "> type `command_run`: command(s) (required)"
msgstr ""
msgid ""
"> type `timer`: interval (required, in milliseconds), align on second, max "
"calls"
msgid "> type `timer`: interval (required), align on second, max calls"
msgstr ""
msgid "> type `config`: name(s) of option (required)"
@@ -18665,34 +18404,3 @@ msgstr ""
"%s%s: não foi possível aceitar o ficheiro a retomar \"%s\" (porto: %d, "
"posição inicial: %llu): xfer não foi encontrado ou não está pronto para ser "
"transferido"
#, fuzzy
#~ msgid ""
#~ "Welcome to WeeChat!\n"
#~ "\n"
#~ "If you are discovering WeeChat, it is recommended to read at least the "
#~ "quickstart guide, and the user's guide if you have some time; they "
#~ "explain main WeeChat concepts.\n"
#~ "All WeeChat docs are available at: https://weechat.org/doc/\n"
#~ "\n"
#~ "Moreover, there is inline help with /help on all commands and options "
#~ "(use Tab key to complete the name).\n"
#~ "The command /fset can help to customize WeeChat.\n"
#~ "\n"
#~ "You can add and connect to an IRC server with /server and /connect "
#~ "commands (see /help server)."
#~ msgstr ""
#~ "Bem-vindo ao WeeChat!\n"
#~ "\n"
#~ "Se é a primeira vez que usa o WeeChat, recomenda-se que leia pelo menos o "
#~ "guia de introdução, e o manual do utilizador se dispõe de algum tempo; "
#~ "estes explicam os principais conceitos do WeeChat.\n"
#~ "A documentação do WeeChat está disponível em: https://weechat.org/doc/\n"
#~ "\n"
#~ "Além disso, pode consultar a ajuda incorporada com /help sobre todos os "
#~ "comandos e opções (use a tecla Tab para completar o nome).\n"
#~ "O comando /iset (script iset.pl) pode ajudá-lo a personalizar o WeeChat: /"
#~ "script install iset.pl\n"
#~ "\n"
#~ "Pode adicionar e conectar-se a um ser servidor de IRC pelos comandos /"
#~ "server e /connect (ver /help server)."
+13 -282
View File
@@ -46,10 +46,10 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-07-04 22:01+0200\n"
"PO-Revision-Date: 2026-06-28 08:49+0200\n"
"POT-Creation-Date: 2026-05-30 14:00+0200\n"
"PO-Revision-Date: 2026-05-30 14:02+0200\n"
"Last-Translator: Érico Nogueira <ericonr@disroot.org>\n"
"Language-Team: Portuguese (Brazil) <weechat-dev@nongnu.org>\n"
"Language-Team: Portuguese - Brazil <weechat-dev@nongnu.org>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -1025,54 +1025,6 @@ msgstr "Opção criada: "
msgid "%sFunction \"%s\" is not available on this system"
msgstr "%s: aviso: dicionário \"%s\" não está disponível em seu sistema"
#, fuzzy
msgid "No theme available"
msgstr "Variáveis"
msgid "Themes:"
msgstr ""
#, c-format
msgid " %s %s%s%s (file)"
msgstr ""
#, fuzzy, c-format
#| msgid "%sKey \"%s\" not found"
msgid "%sTheme \"%s\" not found"
msgstr "%sTecla \"%s\" não encontrada"
#, fuzzy, c-format
#| msgid "Option \"%s%s%s\":"
msgid "Theme \"%s%s%s\":"
msgstr "Opção \"%s%s%s\":"
#, fuzzy, c-format
#| msgid " file: %s"
msgid " source: %s"
msgstr " arquivo: %s"
msgid " source: built-in (in-memory)"
msgstr ""
#, fuzzy, c-format
#| msgid "description"
msgid " description: %s"
msgstr "descrição"
#, fuzzy, c-format
#| msgid " file: %s"
msgid " date: %s"
msgstr " arquivo: %s"
#, fuzzy, c-format
#| msgid "WeeChat version"
msgid " WeeChat version: %s"
msgstr "versão do WeeChat"
#, c-format
msgid " overrides: %d"
msgstr ""
#, c-format
msgid "%sFailed to unset option \"%s\""
msgstr "%sFalhou ao desabilitar a opção \"%s\""
@@ -3744,77 +3696,6 @@ msgstr ""
msgid "number: number of processes to clean"
msgstr ""
#, fuzzy
#| msgid "list of bar items"
msgid "manage color themes"
msgstr "lista de itens da barra"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid ""
"[list [-backups]] || apply <name> || reset || save <name> || rename <old> "
"<new> || del <name> || info <name>"
msgstr ""
#, fuzzy
#| msgid "list of filters"
msgid ""
"raw[list]: list registered themes and any *.theme files in the WeeChat "
"configuration directory; the active theme (matching weechat.look.theme) is "
"marked with \"->\""
msgstr "lista de filtros"
msgid "raw[-backups]: display backup theme files"
msgstr ""
msgid ""
"raw[apply]: apply a theme (set every themable option to the value from the "
"theme); if a file named <name>.theme exists in directory \"themes\" it "
"shadows any built-in theme of the same name"
msgstr ""
msgid ""
"raw[reset]: reset every themable option to its default value (restores the "
"original look shipped with WeeChat)"
msgstr ""
msgid ""
"raw[save]: save current themable options to a file <name>.theme in directory "
"\"themes\"; every themable option is written, so the file is self-contained; "
"the name must not match a built-in theme or start with \"backup-\""
msgstr ""
#, fuzzy
#| msgid "names of filters"
msgid "raw[rename]: rename a user theme file"
msgstr "nomes dos filtros"
#, fuzzy
msgid "raw[del]: delete a user theme file"
msgstr "lista de atalhos"
msgid ""
"raw[info]: display details on a theme (name, description, creation date, "
"WeeChat version, number of option overrides)"
msgstr ""
#, fuzzy
msgid "name: name of a theme"
msgstr "habilita suporte à mouse"
msgid ""
"Themes are named bundles of option overrides. Built-in themes are registered "
"in memory by core/plugins/scripts; user themes are read from files in "
"directory \"themes\" inside the WeeChat configuration directory."
msgstr ""
msgid ""
"By default, `/theme apply` command creates a backup of current themable "
"values in directory \"themes\" before applying (file name: \"backup-"
"<timestamp>.theme\"); the previous state can be restored with: `/theme apply "
"backup-<timestamp>`. This is controlled by the option "
"weechat.look.theme_backup."
msgstr ""
#, fuzzy
#| msgid "values for a configuration option"
msgid "toggle value of a config option"
@@ -4417,15 +4298,6 @@ msgstr ""
msgid "names of layouts"
msgstr "nomes das disposições"
msgid "names of themes (built-ins + user files + backups)"
msgstr ""
msgid "names of user theme files (without built-ins and backups)"
msgstr ""
msgid "names of theme files on disk (user files + backups, no built-ins)"
msgstr ""
msgid "names of secured data (file sec.conf, section data)"
msgstr ""
@@ -5395,20 +5267,6 @@ msgstr ""
msgid "number of spaces used to display tabs in messages"
msgstr "prefixo para mensagens de ação"
msgid ""
"name of the last theme applied with command /theme (set automatically, do "
"not change manually); informational only, the theme is not re-applied at "
"startup"
msgstr ""
msgid ""
"create a backup theme file with the current themable options before applying "
"a theme with command /theme; if the backup file cannot be written, the apply "
"is aborted (no option is changed); the backup file is written to directory "
"\"themes\" inside the WeeChat configuration directory and can be restored "
"with the command: `/theme apply backup-<timestamp>`"
msgstr ""
msgid ""
"time format for dates converted to strings and displayed in messages (see "
"man strftime for date/time specifiers)"
@@ -6375,111 +6233,6 @@ msgstr "%s: erro: dicionário \"%s\" não está disponível em seu sistema"
msgid "Resource usage (see \"man getrusage\" for help):"
msgstr "Uso de memória (veja \"man mallinfo\" para ajuda):"
msgid "WeeChat default theme for light-background terminals"
msgstr ""
msgid "Automatic backup"
msgstr ""
#, fuzzy, c-format
#| msgid "%sKey \"%s\" not found"
msgid "%sTheme: option \"%s\" not found, skipped"
msgstr "%sTecla \"%s\" não encontrada"
#, fuzzy, c-format
msgid "%sTheme: option \"%s\" is not themable, skipped"
msgstr "%s%s: script \"%s\" não carregado"
#, c-format
msgid "%s%s: line %d: malformed section header"
msgstr ""
#, fuzzy, c-format
#| msgid "%sWarning: %s, line %d: unknown section identifier (\"%s\")"
msgid "%s%s: line %d: ignoring unknown section \"%s\""
msgstr "%sAviso: %s, linha %d: identificador de seção desconhecido (\"%s\")"
#, c-format
msgid "%s%s: line %d: missing '=' separator"
msgstr ""
#, fuzzy, c-format
#| msgid "%sWarning: %s, line %d: unknown option for section \"%s\": %s"
msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr "%sAviso: %s, linha %d: opção \"%s\" desconhecido para seção \"%s\""
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to parse theme file \"%s\""
msgstr "%s%s: não foi possível interpretar arquivo \"%s\""
#, c-format
msgid ""
"%sUnable to create theme backup; aborting apply (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
#, c-format
msgid "Previous state saved as theme \"%s\"; to restore: /theme apply %s"
msgstr ""
#, c-format
msgid ""
"%sUnable to create theme backup; aborting reset (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
#, c-format
msgid "%sName \"%s\" is reserved for automatic backups"
msgstr ""
#, c-format
msgid "%sName \"%s\" is reserved for a built-in theme"
msgstr ""
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to save theme \"%s\""
msgstr "%s%s: não foi possível interpretar arquivo \"%s\""
#, fuzzy, c-format
#| msgid "Option \"%s%s%s\":"
msgid "Theme saved to: %s"
msgstr "Opção \"%s%s%s\":"
#, fuzzy, c-format
msgid "%sCannot rename built-in theme \"%s\""
msgstr "%sErro: não foi possível criar arquivo \"%s\""
#, c-format
msgid "%sNew name is the same as old name"
msgstr ""
#, fuzzy, c-format
msgid "%sTheme \"%s\" already exists"
msgstr "%sErro: filtro \"%s\" já existe"
#, fuzzy, c-format
msgid "%sFailed to rename theme \"%s\" to \"%s\""
msgstr "%sErro: não foi possível renomear filtro \"%s\" para \"%s\""
#, fuzzy, c-format
msgid "Theme \"%s\" renamed to \"%s\""
msgstr "Filtro \"%s\" renomeado para \"%s\""
#, fuzzy, c-format
msgid "%sCannot delete built-in theme \"%s\""
msgstr "%sErro: não foi possível criar arquivo \"%s\""
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to delete theme \"%s\""
msgstr "%s%s: não foi possível interpretar arquivo \"%s\""
#, c-format
msgid "Theme deleted: %s"
msgstr ""
#, c-format
msgid "%sError upgrading WeeChat with file \"%s\":"
msgstr ""
@@ -6637,37 +6390,22 @@ msgstr ""
msgid "WeeChat is running in headless mode (ctrl-c to quit)."
msgstr "1 se o WeeChat está sendo atualizado (comando `/upgrade`)"
msgid "Welcome to WeeChat!"
msgstr ""
msgid ""
"Welcome to WeeChat!\n"
"\n"
"If you are discovering WeeChat, it is recommended to read at least the "
"quickstart guide, and the user's guide if you have some time; they explain "
"main WeeChat concepts."
msgstr ""
#, c-format
msgid "All WeeChat docs are available at: %s"
msgstr ""
msgid ""
"main WeeChat concepts.\n"
"All WeeChat docs are available at: https://weechat.org/doc/\n"
"\n"
"Moreover, there is inline help with /help on all commands and options (use "
"Tab key to complete the name)."
msgstr ""
msgid "The command /fset can help to customize WeeChat."
msgstr ""
msgid ""
"Tab key to complete the name).\n"
"The command /fset can help to customize WeeChat.\n"
"\n"
"You can add and connect to an IRC server with /server and /connect commands "
"(see /help server)."
msgstr ""
msgid ""
"The \"light\" theme will be automatically applied. Use /theme reset to "
"switch back to the default dark theme."
msgstr ""
#. TRANSLATORS: the "under %s" can be "under screen" or "under tmux"
#, c-format
msgid ""
@@ -8200,8 +7938,7 @@ msgstr "Arquivo de configuração desconhecido \"%s\""
msgid ""
"> `t:xxx`: show only type \"xxx\" (bool/int/str/col/enum or boolean/integer/"
"string/color/enum); the special value \"themable\" can be used to show all "
"options that can be used in themes, regardless of type"
"string/color/enum)"
msgstr ""
msgid "> `d`: show only changed options"
@@ -16101,10 +15838,6 @@ msgstr "scripts %s carregados:"
msgid "script name with extension"
msgstr "list de scripts"
#, fuzzy
msgid "comma-separated list of plugin:extension with supported languages"
msgstr "lista de dicionários (separados por vírgula) para uso neste buffer"
#, fuzzy
msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr ""
@@ -16729,9 +16462,7 @@ msgstr ""
msgid "> type `command_run`: command(s) (required)"
msgstr ""
msgid ""
"> type `timer`: interval (required, in milliseconds), align on second, max "
"calls"
msgid "> type `timer`: interval (required), align on second, max calls"
msgstr ""
msgid "> type `config`: name(s) of option (required)"
+11 -264
View File
@@ -23,7 +23,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-07-04 22:01+0200\n"
"POT-Creation-Date: 2026-05-30 14:00+0200\n"
"PO-Revision-Date: 2026-03-08 08:59+0100\n"
"Last-Translator: Aleksey V Zapparov AKA ixti <ixti@member.fsf.org>\n"
"Language-Team: Russian <weechat-dev@nongnu.org>\n"
@@ -1012,48 +1012,6 @@ msgstr "не на канале"
msgid "%sFunction \"%s\" is not available on this system"
msgstr "%s plugin \"%s\" не найден\n"
#, fuzzy
msgid "No theme available"
msgstr " . тип: целочисленный\n"
msgid "Themes:"
msgstr ""
#, c-format
msgid " %s %s%s%s (file)"
msgstr ""
#, fuzzy, c-format
msgid "%sTheme \"%s\" not found"
msgstr "%s сервер \"%s\" не найден\n"
#, fuzzy, c-format
msgid "Theme \"%s%s%s\":"
msgstr "Ники %s%s%s: %s["
#, fuzzy, c-format
msgid " source: %s"
msgstr " IRC(%s)\n"
msgid " source: built-in (in-memory)"
msgstr ""
#, fuzzy, c-format
msgid " description: %s"
msgstr " . описание: %s\n"
#, fuzzy, c-format
msgid " date: %s"
msgstr " IRC(%s)\n"
#, fuzzy, c-format
msgid " WeeChat version: %s"
msgstr "слоган WeeChat"
#, c-format
msgid " overrides: %d"
msgstr ""
#, fuzzy, c-format
msgid "%sFailed to unset option \"%s\""
msgstr "%s не могу сохранить конфигурационный файл pluginов\n"
@@ -3577,75 +3535,6 @@ msgstr ""
msgid "number: number of processes to clean"
msgstr ""
#, fuzzy
msgid "manage color themes"
msgstr "Список сокращений:\n"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid ""
"[list [-backups]] || apply <name> || reset || save <name> || rename <old> "
"<new> || del <name> || info <name>"
msgstr ""
#, fuzzy
msgid ""
"raw[list]: list registered themes and any *.theme files in the WeeChat "
"configuration directory; the active theme (matching weechat.look.theme) is "
"marked with \"->\""
msgstr "Список сокращений:\n"
msgid "raw[-backups]: display backup theme files"
msgstr ""
msgid ""
"raw[apply]: apply a theme (set every themable option to the value from the "
"theme); if a file named <name>.theme exists in directory \"themes\" it "
"shadows any built-in theme of the same name"
msgstr ""
msgid ""
"raw[reset]: reset every themable option to its default value (restores the "
"original look shipped with WeeChat)"
msgstr ""
msgid ""
"raw[save]: save current themable options to a file <name>.theme in directory "
"\"themes\"; every themable option is written, so the file is self-contained; "
"the name must not match a built-in theme or start with \"backup-\""
msgstr ""
#, fuzzy
msgid "raw[rename]: rename a user theme file"
msgstr "Список сокращений:\n"
#, fuzzy
#| msgid "get/set channel topic"
msgid "raw[del]: delete a user theme file"
msgstr "получить/установить тему канала"
msgid ""
"raw[info]: display details on a theme (name, description, creation date, "
"WeeChat version, number of option overrides)"
msgstr ""
#, fuzzy
msgid "name: name of a theme"
msgstr "Список сокращений:\n"
msgid ""
"Themes are named bundles of option overrides. Built-in themes are registered "
"in memory by core/plugins/scripts; user themes are read from files in "
"directory \"themes\" inside the WeeChat configuration directory."
msgstr ""
msgid ""
"By default, `/theme apply` command creates a backup of current themable "
"values in directory \"themes\" before applying (file name: \"backup-"
"<timestamp>.theme\"); the previous state can be restored with: `/theme apply "
"backup-<timestamp>`. This is controlled by the option "
"weechat.look.theme_backup."
msgstr ""
#, fuzzy
msgid "toggle value of a config option"
msgstr "Не найден параметр\n"
@@ -4202,15 +4091,6 @@ msgstr ""
msgid "names of layouts"
msgstr "Список сокращений:\n"
msgid "names of themes (built-ins + user files + backups)"
msgstr ""
msgid "names of user theme files (without built-ins and backups)"
msgstr ""
msgid "names of theme files on disk (user files + backups, no built-ins)"
msgstr ""
msgid "names of secured data (file sec.conf, section data)"
msgstr ""
@@ -5060,20 +4940,6 @@ msgstr ""
msgid "number of spaces used to display tabs in messages"
msgstr "ответить на ping"
msgid ""
"name of the last theme applied with command /theme (set automatically, do "
"not change manually); informational only, the theme is not re-applied at "
"startup"
msgstr ""
msgid ""
"create a backup theme file with the current themable options before applying "
"a theme with command /theme; if the backup file cannot be written, the apply "
"is aborted (no option is changed); the backup file is written to directory "
"\"themes\" inside the WeeChat configuration directory and can be restored "
"with the command: `/theme apply backup-<timestamp>`"
msgstr ""
#, fuzzy
msgid ""
"time format for dates converted to strings and displayed in messages (see "
@@ -6037,104 +5903,6 @@ msgstr "%s plugin \"%s\" не найден\n"
msgid "Resource usage (see \"man getrusage\" for help):"
msgstr ""
msgid "WeeChat default theme for light-background terminals"
msgstr ""
msgid "Automatic backup"
msgstr ""
#, fuzzy, c-format
msgid "%sTheme: option \"%s\" not found, skipped"
msgstr "%s сервер \"%s\" не найден\n"
#, fuzzy, c-format
msgid "%sTheme: option \"%s\" is not themable, skipped"
msgstr "%s сервер \"%s\" не найден\n"
#, c-format
msgid "%s%s: line %d: malformed section header"
msgstr ""
#, fuzzy, c-format
msgid "%s%s: line %d: ignoring unknown section \"%s\""
msgstr "%s %s, строка %d: неизвестный идентификатор секции (\"%s\")\n"
#, c-format
msgid "%s%s: line %d: missing '=' separator"
msgstr ""
#, fuzzy, c-format
msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr "%s %s, строка %d: неизвестный идентификатор секции (\"%s\")\n"
#, fuzzy, c-format
msgid "%sFailed to parse theme file \"%s\""
msgstr "Не могу записать лог-файл \"%s\"\n"
#, c-format
msgid ""
"%sUnable to create theme backup; aborting apply (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
#, c-format
msgid "Previous state saved as theme \"%s\"; to restore: /theme apply %s"
msgstr ""
#, c-format
msgid ""
"%sUnable to create theme backup; aborting reset (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
#, c-format
msgid "%sName \"%s\" is reserved for automatic backups"
msgstr ""
#, c-format
msgid "%sName \"%s\" is reserved for a built-in theme"
msgstr ""
#, fuzzy, c-format
msgid "%sFailed to save theme \"%s\""
msgstr "Не могу записать лог-файл \"%s\"\n"
#, fuzzy, c-format
msgid "Theme saved to: %s"
msgstr "Ники %s%s%s: %s["
#, fuzzy, c-format
msgid "%sCannot rename built-in theme \"%s\""
msgstr "%s не могу создать файл \"%s\"\n"
#, c-format
msgid "%sNew name is the same as old name"
msgstr ""
#, fuzzy, c-format
msgid "%sTheme \"%s\" already exists"
msgstr "%s игнорирование уже существует\n"
#, fuzzy, c-format
msgid "%sFailed to rename theme \"%s\" to \"%s\""
msgstr "%s неизвестный параметр для команды \"%s\"\n"
#, fuzzy, c-format
msgid "Theme \"%s\" renamed to \"%s\""
msgstr "команда users отключена"
#, fuzzy, c-format
msgid "%sCannot delete built-in theme \"%s\""
msgstr "%s не могу создать файл \"%s\"\n"
#, fuzzy, c-format
msgid "%sFailed to delete theme \"%s\""
msgstr "Не могу записать лог-файл \"%s\"\n"
#, c-format
msgid "Theme deleted: %s"
msgstr ""
#, fuzzy, c-format
msgid "%sError upgrading WeeChat with file \"%s\":"
msgstr "Обновляю WeeChat...\n"
@@ -6294,37 +6062,22 @@ msgstr ""
msgid "WeeChat is running in headless mode (ctrl-c to quit)."
msgstr ""
msgid "Welcome to WeeChat!"
msgstr ""
msgid ""
"Welcome to WeeChat!\n"
"\n"
"If you are discovering WeeChat, it is recommended to read at least the "
"quickstart guide, and the user's guide if you have some time; they explain "
"main WeeChat concepts."
msgstr ""
#, c-format
msgid "All WeeChat docs are available at: %s"
msgstr ""
msgid ""
"main WeeChat concepts.\n"
"All WeeChat docs are available at: https://weechat.org/doc/\n"
"\n"
"Moreover, there is inline help with /help on all commands and options (use "
"Tab key to complete the name)."
msgstr ""
msgid "The command /fset can help to customize WeeChat."
msgstr ""
msgid ""
"Tab key to complete the name).\n"
"The command /fset can help to customize WeeChat.\n"
"\n"
"You can add and connect to an IRC server with /server and /connect commands "
"(see /help server)."
msgstr ""
msgid ""
"The \"light\" theme will be automatically applied. Use /theme reset to "
"switch back to the default dark theme."
msgstr ""
#. TRANSLATORS: the "under %s" can be "under screen" or "under tmux"
#, c-format
msgid ""
@@ -7814,8 +7567,7 @@ msgstr "перезагрузить конфигурационный файл с
msgid ""
"> `t:xxx`: show only type \"xxx\" (bool/int/str/col/enum or boolean/integer/"
"string/color/enum); the special value \"themable\" can be used to show all "
"options that can be used in themes, regardless of type"
"string/color/enum)"
msgstr ""
msgid "> `d`: show only changed options"
@@ -15615,9 +15367,6 @@ msgstr "FIFO pipe закрыт\n"
msgid "script name with extension"
msgstr "Список сокращений:\n"
msgid "comma-separated list of plugin:extension with supported languages"
msgstr ""
msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr ""
@@ -16210,9 +15959,7 @@ msgstr ""
msgid "> type `command_run`: command(s) (required)"
msgstr ""
msgid ""
"> type `timer`: interval (required, in milliseconds), align on second, max "
"calls"
msgid "> type `timer`: interval (required), align on second, max calls"
msgstr ""
msgid "> type `config`: name(s) of option (required)"
+65 -354
View File
@@ -22,10 +22,10 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-07-04 22:01+0200\n"
"PO-Revision-Date: 2026-06-28 08:52+0200\n"
"POT-Creation-Date: 2026-05-30 14:00+0200\n"
"PO-Revision-Date: 2026-05-30 14:02+0200\n"
"Last-Translator: Ivan Pešić <ivan.pesic@gmail.com>\n"
"Language-Team: Serbian <ivan.pesic@gmail.com>\n"
"Language-Team: Serbian <weechat-dev@nongnu.org>\n"
"Language: sr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -976,55 +976,6 @@ msgstr "Креирана опција: "
msgid "%sFunction \"%s\" is not available on this system"
msgstr "%sФункција „%s” није доступна на овом систему"
#, fuzzy
#| msgid "not available"
msgid "No theme available"
msgstr "није доступно"
msgid "Themes:"
msgstr ""
#, c-format
msgid " %s %s%s%s (file)"
msgstr ""
#, fuzzy, c-format
#| msgid "%sKey \"%s\" not found"
msgid "%sTheme \"%s\" not found"
msgstr "%sНије пронађен тастер „%s”"
#, fuzzy, c-format
#| msgid "Option \"%s%s%s\":"
msgid "Theme \"%s%s%s\":"
msgstr "Опција „%s%s%s”:"
#, fuzzy, c-format
#| msgid " file: %s"
msgid " source: %s"
msgstr " фајл: %s"
msgid " source: built-in (in-memory)"
msgstr ""
#, fuzzy, c-format
#| msgid "description"
msgid " description: %s"
msgstr "опис"
#, fuzzy, c-format
#| msgid " file: %s"
msgid " date: %s"
msgstr " фајл: %s"
#, fuzzy, c-format
#| msgid "WeeChat version"
msgid " WeeChat version: %s"
msgstr "верзија програма WeeChat"
#, c-format
msgid " overrides: %d"
msgstr ""
#, c-format
msgid "%sFailed to unset option \"%s\""
msgstr "%sНије успело уклањање опције „%s”"
@@ -3902,85 +3853,6 @@ msgstr ""
msgid "number: number of processes to clean"
msgstr "број: број процеса који треба да се очисти"
#, fuzzy
#| msgid "manage custom bar items"
msgid "manage color themes"
msgstr "управљање прилагођеним ставкама траке"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid ""
"[list [-backups]] || apply <name> || reset || save <name> || rename <old> "
"<new> || del <name> || info <name>"
msgstr ""
#, fuzzy
#| msgid ""
#| "raw[list]: list remote relay servers (without argument, this list is "
#| "displayed)"
msgid ""
"raw[list]: list registered themes and any *.theme files in the WeeChat "
"configuration directory; the active theme (matching weechat.look.theme) is "
"marked with \"->\""
msgstr ""
"raw[list]: листа сервера релеја удаљених (без аргумента се приказује ова "
"листа)"
#, fuzzy
#| msgid "raw[tags]: display tags for lines"
msgid "raw[-backups]: display backup theme files"
msgstr "raw[tags]: исписује ознаке за линије"
msgid ""
"raw[apply]: apply a theme (set every themable option to the value from the "
"theme); if a file named <name>.theme exists in directory \"themes\" it "
"shadows any built-in theme of the same name"
msgstr ""
msgid ""
"raw[reset]: reset every themable option to its default value (restores the "
"original look shipped with WeeChat)"
msgstr ""
msgid ""
"raw[save]: save current themable options to a file <name>.theme in directory "
"\"themes\"; every themable option is written, so the file is self-contained; "
"the name must not match a built-in theme or start with \"backup-\""
msgstr ""
#, fuzzy
#| msgid "raw[rename]: rename a filter"
msgid "raw[rename]: rename a user theme file"
msgstr "raw[rename]: мења име филтеру"
#, fuzzy
#| msgid "raw[del]: delete a server"
msgid "raw[del]: delete a user theme file"
msgstr "raw[del]: брисање сервера"
msgid ""
"raw[info]: display details on a theme (name, description, creation date, "
"WeeChat version, number of option overrides)"
msgstr ""
#, fuzzy
#| msgid "name: name of trigger"
msgid "name: name of a theme"
msgstr "име: име окидача"
msgid ""
"Themes are named bundles of option overrides. Built-in themes are registered "
"in memory by core/plugins/scripts; user themes are read from files in "
"directory \"themes\" inside the WeeChat configuration directory."
msgstr ""
msgid ""
"By default, `/theme apply` command creates a backup of current themable "
"values in directory \"themes\" before applying (file name: \"backup-"
"<timestamp>.theme\"); the previous state can be restored with: `/theme apply "
"backup-<timestamp>`. This is controlled by the option "
"weechat.look.theme_backup."
msgstr ""
msgid "toggle value of a config option"
msgstr "пребацује вредност опције конфигурације"
@@ -4602,15 +4474,6 @@ msgstr "површине („chat” или име траке) за слобод
msgid "names of layouts"
msgstr "имена распореда"
msgid "names of themes (built-ins + user files + backups)"
msgstr ""
msgid "names of user theme files (without built-ins and backups)"
msgstr ""
msgid "names of theme files on disk (user files + backups, no built-ins)"
msgstr ""
msgid "names of secured data (file sec.conf, section data)"
msgstr "имена обезбеђених података (фајл sec.conf, одељак data)"
@@ -5744,20 +5607,6 @@ msgstr ""
msgid "number of spaces used to display tabs in messages"
msgstr "број размака који се користи за приказ табулатора у порукама"
msgid ""
"name of the last theme applied with command /theme (set automatically, do "
"not change manually); informational only, the theme is not re-applied at "
"startup"
msgstr ""
msgid ""
"create a backup theme file with the current themable options before applying "
"a theme with command /theme; if the backup file cannot be written, the apply "
"is aborted (no option is changed); the backup file is written to directory "
"\"themes\" inside the WeeChat configuration directory and can be restored "
"with the command: `/theme apply backup-<timestamp>`"
msgstr ""
msgid ""
"time format for dates converted to strings and displayed in messages (see "
"man strftime for date/time specifiers)"
@@ -6812,122 +6661,6 @@ msgstr "Системска функција „%s” није доступна"
msgid "Resource usage (see \"man getrusage\" for help):"
msgstr "Употреба ресурса (за помоћ погледајте „man getrusage”):"
msgid "WeeChat default theme for light-background terminals"
msgstr ""
msgid "Automatic backup"
msgstr ""
#, fuzzy, c-format
#| msgid "%sKey \"%s\" not found"
msgid "%sTheme: option \"%s\" not found, skipped"
msgstr "%sНије пронађен тастер „%s”"
#, fuzzy, c-format
#| msgid "%s: script \"%s\" is not installed"
msgid "%sTheme: option \"%s\" is not themable, skipped"
msgstr "%s: скрипта „%s” није инсталирана"
#, c-format
msgid "%s%s: line %d: malformed section header"
msgstr ""
#, fuzzy, c-format
#| msgid "%sWarning: %s, line %d: ignoring unknown section identifier (\"%s\")"
msgid "%s%s: line %d: ignoring unknown section \"%s\""
msgstr ""
"%sУпозорење: %s, линија %d: игнорише се непознати идентификатор одељка („%s”)"
#, c-format
msgid "%s%s: line %d: missing '=' separator"
msgstr ""
#, fuzzy, c-format
#| msgid ""
#| "%sWarning: %s, line %d: ignoring unknown option for section \"%s\": %s"
msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr ""
"%sУпозорење: %s, линија %d: игнорише се непозната опција за одељак „%s”: %s"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to parse theme file \"%s\""
msgstr "%s%s: није успело парсирање фајла „%s”"
#, c-format
msgid ""
"%sUnable to create theme backup; aborting apply (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
#, c-format
msgid "Previous state saved as theme \"%s\"; to restore: /theme apply %s"
msgstr ""
#, c-format
msgid ""
"%sUnable to create theme backup; aborting reset (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
#, fuzzy, c-format
#| msgid "%sBuffer name \"%s\" is reserved for WeeChat"
msgid "%sName \"%s\" is reserved for automatic backups"
msgstr "%sИме бафера „%s” је резервисано за програм WeeChat"
#, fuzzy, c-format
#| msgid "%sBuffer name \"%s\" is reserved for WeeChat"
msgid "%sName \"%s\" is reserved for a built-in theme"
msgstr "%sИме бафера „%s” је резервисано за програм WeeChat"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to save theme \"%s\""
msgstr "%s%s: није успело парсирање фајла „%s”"
#, fuzzy, c-format
#| msgid "Option \"%s%s%s\":"
msgid "Theme saved to: %s"
msgstr "Опција „%s%s%s”:"
#, fuzzy, c-format
#| msgid "%sCannot create file \"%s\""
msgid "%sCannot rename built-in theme \"%s\""
msgstr "%sНе може да се креира фајл „%s”"
#, c-format
msgid "%sNew name is the same as old name"
msgstr ""
#, fuzzy, c-format
#| msgid "%sBar \"%s\" already exists"
msgid "%sTheme \"%s\" already exists"
msgstr "%sТрака „%s” већ постоји"
#, fuzzy, c-format
#| msgid "%sUnable to rename filter \"%s\" to \"%s\""
msgid "%sFailed to rename theme \"%s\" to \"%s\""
msgstr "%sНије успела промена име филтера „%s” на „%s”"
#, fuzzy, c-format
#| msgid "Trigger \"%s\" renamed to \"%s\""
msgid "Theme \"%s\" renamed to \"%s\""
msgstr "Окидачу „%s” је промењено име у „%s”"
#, fuzzy, c-format
#| msgid "%sCannot create file \"%s\""
msgid "%sCannot delete built-in theme \"%s\""
msgstr "%sНе може да се креира фајл „%s”"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to delete theme \"%s\""
msgstr "%s%s: није успело парсирање фајла „%s”"
#, c-format
msgid "Theme deleted: %s"
msgstr ""
#, c-format
msgid "%sError upgrading WeeChat with file \"%s\":"
msgstr "%sГрешка приликом ажурирања програма WeeChat фајлом „%s”:"
@@ -7087,36 +6820,35 @@ msgstr "Крај URL трансфера ’%s’, трансфер је заус
msgid "WeeChat is running in headless mode (ctrl-c to quit)."
msgstr "WeeChat се извршава у режиму без интерфејса (ctrl-c за излаз)."
msgid "Welcome to WeeChat!"
msgstr ""
msgid ""
"Welcome to WeeChat!\n"
"\n"
"If you are discovering WeeChat, it is recommended to read at least the "
"quickstart guide, and the user's guide if you have some time; they explain "
"main WeeChat concepts."
msgstr ""
#, c-format
msgid "All WeeChat docs are available at: %s"
msgstr ""
msgid ""
"main WeeChat concepts.\n"
"All WeeChat docs are available at: https://weechat.org/doc/\n"
"\n"
"Moreover, there is inline help with /help on all commands and options (use "
"Tab key to complete the name)."
msgstr ""
msgid "The command /fset can help to customize WeeChat."
msgstr ""
msgid ""
"Tab key to complete the name).\n"
"The command /fset can help to customize WeeChat.\n"
"\n"
"You can add and connect to an IRC server with /server and /connect commands "
"(see /help server)."
msgstr ""
msgid ""
"The \"light\" theme will be automatically applied. Use /theme reset to "
"switch back to the default dark theme."
msgstr ""
"Добродошли у WeeChat!\n"
"\n"
"Ако се тек упознајете са програмом WeeChat, препоручује се да прочитате "
"барем водич за брзи почетак, и корисничко упутство ако имате више времена; "
"они објашњавају основне концепте програма WeeChat.\n"
"Комплетна WeeChat документација је доступна на адреси: https://weechat.org/"
"doc/\n"
"\n"
"Такође је доступна и активна помоћ са /help за све команде и опције "
"(користите тастер Tab да довршите име).\n"
"Команда /fset може да вам помогне за прилагођавање програма WeeChat.\n"
"\n"
"Командама /server и /connect додајете и повезујете се на IRC сервер "
"(погледајте /help server)."
#. TRANSLATORS: the "under %s" can be "under screen" or "under tmux"
#, c-format
@@ -8865,14 +8597,9 @@ msgstr "> `xxx`: приказивање само опција са „xxx” у
msgid "> `f:xxx`: show only configuration file \"xxx\""
msgstr "> `f:xxx`: приказивање само конфигурационог фајла „xxx”"
#, fuzzy
#| msgid ""
#| "> `t:xxx`: show only type \"xxx\" (bool/int/str/col/enum or boolean/"
#| "integer/string/color/enum)"
msgid ""
"> `t:xxx`: show only type \"xxx\" (bool/int/str/col/enum or boolean/integer/"
"string/color/enum); the special value \"themable\" can be used to show all "
"options that can be used in themes, regardless of type"
"string/color/enum)"
msgstr ""
"> `t:xxx`: приказивање само типа „xxx” (bool/int/str/col/enum или boolean/"
"integer/string/color/enum)"
@@ -12937,14 +12664,16 @@ msgstr "%s%s: нисте повезани са сервером"
msgid "%s%s: this buffer is not a channel!"
msgstr "%s%s: овај бафер није канал!"
#, c-format
#, fuzzy, c-format
#| msgid ""
#| "%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
#| "channel, ($)=refresh, (q)=close buffer"
msgid ""
"%d channels (total: %d) | Filter: %s | Sort: %s | Keys: ctrl+j=join channel "
"| Input: $=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer"
msgstr ""
"%d канала (укупно: %d) | Филтер: %s | Сортирање: %s | Тастери: "
"ctrl+j=приступ каналу | Унос: $=освежавање, s:x,y=сортирање, *=ресет "
"филтера, q=затварање бафера"
"%d канала (укупно: %d) | Филтер: %s | Сортирање: %s | Тастер(унос): ctrl+j= "
"приступ каналу, ($)=освежавање, (q)=затварање бафера"
msgid "Empty list of channels, try \"$\" to refresh list"
msgstr "Празна листа канала, покушајте „$” да освежите листу"
@@ -15950,6 +15679,14 @@ msgstr ""
"relay.network.allow_empty_password) (напомена: садржај се израчунава, "
"погледајте /help eval)"
#, fuzzy
#| msgid ""
#| "comma separated list of hash algorithms used for password authentication "
#| "in weechat protocol, among these values: \"plain\" (password in plain "
#| "text, not hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", "
#| "\"pbkdf2+sha512\"), \"*\" means all algorithms, a name beginning with \"!"
#| "\" is a negative value to prevent an algorithm from being used, wildcard "
#| "\"*\" is allowed in names (examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgid ""
"comma separated list of hash algorithms used for password authentication in "
"\"api\" and \"weechat\" protocols, among these values: \"plain\" (password "
@@ -15959,22 +15696,28 @@ msgid ""
"is allowed in names (examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr ""
"листа хеш алгоритама раздвојених запетама који се користе за аутентификацију "
"лозинке у „api” и „weechat протоколима, који могу бити: „plain” (лозинка је "
"чисти текст, не хешира се), „sha256”, „sha512”, „pbkdf2+sha256”, "
"„pbkdf2+sha512”), „*” значи сви алгоритми, име које почиње са „!” је "
"негативна вредност којим се спречава употреба тог алгоритма, у именима је "
"дозвољена употреба џокера „*” (примери: „*”, „pbkdf2*”, „*,!plain”)"
"лозинке у weechat протоколу, могу бити: „plain” (лозинка је чисти текст, не "
"хешира се), „sha256”, „sha512”, „pbkdf2+sha256”, „pbkdf2+sha512”), „*” значи "
"сви алгоритми, име које почиње са „!” је негативна вредност којим се "
"спречава употреба тог алгоритма, у именима је дозвољена употреба џокера „*” "
"(примери: „*”, „pbkdf2*”, „*,!plain”)"
#, fuzzy
#| msgid ""
#| "number of iterations asked to the client in weechat protocol when a "
#| "hashed password with algorithm PBKDF2 is used for authentication; more "
#| "iterations is better in term of security but is slower to compute; this "
#| "number should not be too high if your CPU is slow"
msgid ""
"number of iterations asked to the client in \"api\" and \"weechat\" "
"protocols when a hashed password with algorithm PBKDF2 is used for "
"authentication; more iterations is better in term of security but is slower "
"to compute; this number should not be too high if your CPU is slow"
msgstr ""
"број итерација који се захтева од клијента у „api” и „weechat протоколима "
"када се за аутентификацију користи лозинка хеширана PBKDF2 алгоритмом; више "
"итерација је боље у смислу безбедности, али је спорије за израчунавање; ако "
"је ваш CPU спор, овај број не би требало да буде сувише велики"
"број итерација који се захтева од клијента у weechat протоколу када се за "
"аутентификацију користи лозинка хеширана PBKDF2 алгоритмом ; више итерација "
"је боље у смислу безбедности, али је спорије за израчунавање; ако је ваш CPU "
"спор, овај број не би требало да буде сувише велики"
msgid ""
"number of seconds to allow before and after the current time for the hash of "
@@ -16560,17 +16303,22 @@ msgstr "(ништа)"
msgid "Alt+key/input: v=back to list d=jump to diff"
msgstr "Alt+тастер/унос: v=назад на листу d=скок на diff"
#, c-format
#, fuzzy, c-format
#| msgid ""
#| "%d/%d scripts (filter: %s) | Sort: %s | Alt+key/input: i=install, "
#| "r=remove, l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view "
#| "script | Input: q=close, $=refresh, s:x,y=sort, words=filter, *=reset "
#| "filter | Mouse: left=select, right=install/remove"
msgid ""
"%d/%d scripts | Filter: %s | Sort: %s | Alt+key/input: i=install, r=remove, "
"l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view script | Input: "
"$=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer | Mouse: "
"left=select, right=install/remove"
msgstr ""
"%d/%d скрипти | Филтер: %s | Сортирање: %s | Alt+тастер/унос: i=инсталација, "
"%d/%d скрипти илтер: %s) | Сортирање: %s | Alt+тастер/унос: i=инсталација, "
"r=уклањање, l=учитавање, L=поновно учитавање, u=уклањање из меморије, "
"A=аутоучитавање, h=задржавање, v=преглед скрипте | Унос: q=затварање, "
"$=освежавање, s:x,y=сортирање, words=филтер, *=ресет филтера | Миш: "
"$=освежавање, s:x,y=сортирање, речи=филтер, *=ресет филтера | Миш: "
"леви=избор, десни=инсталација/уклањање"
msgid "Scripts"
@@ -16947,9 +16695,6 @@ msgstr "1 ако је скрипта учитана"
msgid "script name with extension"
msgstr "име скрипте са екстензијом"
msgid "comma-separated list of plugin:extension with supported languages"
msgstr "листа додатак:екстензија са подржаним језицима раздвојених запетама"
msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr "име скрипте са екстензијом (дозвољен је џокер „*”) (није обавезно)"
@@ -17583,12 +17328,8 @@ msgstr ""
msgid "> type `command_run`: command(s) (required)"
msgstr "> тип `command_run`: команд(а/е) (обавезно)"
msgid ""
"> type `timer`: interval (required, in milliseconds), align on second, max "
"calls"
msgstr ""
"> тип `timer`: интервал (обавезан, у милисекундама), поравнање на секунди, "
"макс позива"
msgid "> type `timer`: interval (required), align on second, max calls"
msgstr "> тип `timer`: интервал (обавезан), поравнање на секунди, макс позива"
msgid "> type `config`: name(s) of option (required)"
msgstr "> тип `config`: име(на) опције (обавезно)"
@@ -18467,33 +18208,3 @@ msgid ""
msgstr ""
"%s%s: не може да се прихвати настављање фајла „%s” (порт: %d, почетна "
"позиција: %llu): xfer није пронађен или није спреман за трансфер"
#~ msgid ""
#~ "Welcome to WeeChat!\n"
#~ "\n"
#~ "If you are discovering WeeChat, it is recommended to read at least the "
#~ "quickstart guide, and the user's guide if you have some time; they "
#~ "explain main WeeChat concepts.\n"
#~ "All WeeChat docs are available at: https://weechat.org/doc/\n"
#~ "\n"
#~ "Moreover, there is inline help with /help on all commands and options "
#~ "(use Tab key to complete the name).\n"
#~ "The command /fset can help to customize WeeChat.\n"
#~ "\n"
#~ "You can add and connect to an IRC server with /server and /connect "
#~ "commands (see /help server)."
#~ msgstr ""
#~ "Добродошли у WeeChat!\n"
#~ "\n"
#~ "Ако се тек упознајете са програмом WeeChat, препоручује се да прочитате "
#~ "барем водич за брзи почетак, и корисничко упутство ако имате више "
#~ "времена; они објашњавају основне концепте програма WeeChat.\n"
#~ "Комплетна WeeChat документација је доступна на адреси: https://"
#~ "weechat.org/doc/\n"
#~ "\n"
#~ "Такође је доступна и активна помоћ са /help за све команде и опције "
#~ "(користите тастер Tab да довршите име).\n"
#~ "Команда /fset може да вам помогне за прилагођавање програма WeeChat.\n"
#~ "\n"
#~ "Командама /server и /connect додајете и повезујете се на IRC сервер "
#~ "(погледајте /help server)."
+27 -327
View File
@@ -1,6 +1,6 @@
#
# SPDX-FileCopyrightText: 2013 Hasan Kiran <sunder67@hotmail.com>
# SPDX-FileCopyrightText: 2020-2026 Emir SARI <emir_sari@icloud.com>
# SPDX-FileCopyrightText: 2020-2025 Emir SARI <emir_sari@icloud.com>
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
@@ -23,10 +23,10 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-07-04 22:01+0200\n"
"PO-Revision-Date: 2026-06-28 08:53+0200\n"
"POT-Creation-Date: 2026-05-30 14:00+0200\n"
"PO-Revision-Date: 2026-05-30 14:02+0200\n"
"Last-Translator: Emir SARI <emir_sari@icloud.com>\n"
"Language-Team: Turkish <emir_sari@icloud.com>\n"
"Language-Team: Turkish <weechat-dev@nongnu.org>\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -971,55 +971,6 @@ msgstr "Seçenek oluşturuldu: "
msgid "%sFunction \"%s\" is not available on this system"
msgstr "%s\"%s\" işlevi sisteminizde kullanılabilir değil"
#, fuzzy
#| msgid "not available"
msgid "No theme available"
msgstr "kullanılamıyor"
msgid "Themes:"
msgstr ""
#, c-format
msgid " %s %s%s%s (file)"
msgstr ""
#, fuzzy, c-format
#| msgid "%sKey \"%s\" not found"
msgid "%sTheme \"%s\" not found"
msgstr "%s\"%s\" düğmesi bulunamadı"
#, fuzzy, c-format
#| msgid "Option \"%s%s%s\":"
msgid "Theme \"%s%s%s\":"
msgstr "\"%s%s%s\" seçeneği:"
#, fuzzy, c-format
#| msgid " file: %s"
msgid " source: %s"
msgstr " dosya: %s"
msgid " source: built-in (in-memory)"
msgstr ""
#, fuzzy, c-format
#| msgid "description"
msgid " description: %s"
msgstr "açıklama"
#, fuzzy, c-format
#| msgid " file: %s"
msgid " date: %s"
msgstr " dosya: %s"
#, fuzzy, c-format
#| msgid "WeeChat version"
msgid " WeeChat version: %s"
msgstr "WeeChat sürümü"
#, c-format
msgid " overrides: %d"
msgstr ""
#, c-format
msgid "%sFailed to unset option \"%s\""
msgstr "%s\"%s\" seçeneği kaldırılamadı"
@@ -3761,81 +3712,6 @@ msgstr ""
msgid "number: number of processes to clean"
msgstr ""
#, fuzzy
#| msgid "manage custom bar items"
msgid "manage color themes"
msgstr "özel çubuk ögelerini yönet"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid ""
"[list [-backups]] || apply <name> || reset || save <name> || rename <old> "
"<new> || del <name> || info <name>"
msgstr ""
#, fuzzy
#| msgid "list of filters"
msgid ""
"raw[list]: list registered themes and any *.theme files in the WeeChat "
"configuration directory; the active theme (matching weechat.look.theme) is "
"marked with \"->\""
msgstr "süzgeçlerin listesi"
#, fuzzy
#| msgid "raw[tags]: display tags for lines"
msgid "raw[-backups]: display backup theme files"
msgstr "raw[tags]: Satırlar için künyeleri görüntüle"
msgid ""
"raw[apply]: apply a theme (set every themable option to the value from the "
"theme); if a file named <name>.theme exists in directory \"themes\" it "
"shadows any built-in theme of the same name"
msgstr ""
msgid ""
"raw[reset]: reset every themable option to its default value (restores the "
"original look shipped with WeeChat)"
msgstr ""
msgid ""
"raw[save]: save current themable options to a file <name>.theme in directory "
"\"themes\"; every themable option is written, so the file is self-contained; "
"the name must not match a built-in theme or start with \"backup-\""
msgstr ""
#, fuzzy
#| msgid "raw[rename]: rename a filter"
msgid "raw[rename]: rename a user theme file"
msgstr "raw[rename]: Bir süzgeci yeniden adlandır"
#, fuzzy
#| msgid "get/set channel topic"
msgid "raw[del]: delete a user theme file"
msgstr "kanal konusunu al/ayarla"
msgid ""
"raw[info]: display details on a theme (name, description, creation date, "
"WeeChat version, number of option overrides)"
msgstr ""
#, fuzzy
#| msgid "name: name of trigger"
msgid "name: name of a theme"
msgstr "ad: Tetiğin adı"
msgid ""
"Themes are named bundles of option overrides. Built-in themes are registered "
"in memory by core/plugins/scripts; user themes are read from files in "
"directory \"themes\" inside the WeeChat configuration directory."
msgstr ""
msgid ""
"By default, `/theme apply` command creates a backup of current themable "
"values in directory \"themes\" before applying (file name: \"backup-"
"<timestamp>.theme\"); the previous state can be restored with: `/theme apply "
"backup-<timestamp>`. This is controlled by the option "
"weechat.look.theme_backup."
msgstr ""
msgid "toggle value of a config option"
msgstr "bir yapılandırma seçeneğinin değerini aç/kapat"
@@ -4428,15 +4304,6 @@ msgstr "serbest imleç hareketi için alanlar (\"chat\" veya çubuk adı)"
msgid "names of layouts"
msgstr "dizilim adları"
msgid "names of themes (built-ins + user files + backups)"
msgstr ""
msgid "names of user theme files (without built-ins and backups)"
msgstr ""
msgid "names of theme files on disk (user files + backups, no built-ins)"
msgstr ""
msgid "names of secured data (file sec.conf, section data)"
msgstr "güvenli veri adları (sec.conf dosyası, bölüm verisi)"
@@ -5564,20 +5431,6 @@ msgstr ""
msgid "number of spaces used to display tabs in messages"
msgstr "iletilerdeki sekmeleri görüntülemek için kullanılan boşluk sayısı"
msgid ""
"name of the last theme applied with command /theme (set automatically, do "
"not change manually); informational only, the theme is not re-applied at "
"startup"
msgstr ""
msgid ""
"create a backup theme file with the current themable options before applying "
"a theme with command /theme; if the backup file cannot be written, the apply "
"is aborted (no option is changed); the backup file is written to directory "
"\"themes\" inside the WeeChat configuration directory and can be restored "
"with the command: `/theme apply backup-<timestamp>`"
msgstr ""
msgid ""
"time format for dates converted to strings and displayed in messages (see "
"man strftime for date/time specifiers)"
@@ -6612,119 +6465,6 @@ msgstr "Sistem işlevi \"%s\" kullanılabilir değil"
msgid "Resource usage (see \"man getrusage\" for help):"
msgstr "Özkaynak kullanımı (yardım için bkz. \"man getrusage\"):"
msgid "WeeChat default theme for light-background terminals"
msgstr ""
msgid "Automatic backup"
msgstr ""
#, fuzzy, c-format
#| msgid "%sKey \"%s\" not found"
msgid "%sTheme: option \"%s\" not found, skipped"
msgstr "%s\"%s\" düğmesi bulunamadı"
#, fuzzy, c-format
#| msgid "%s: script \"%s\" is not installed"
msgid "%sTheme: option \"%s\" is not themable, skipped"
msgstr "%s: \"%s\" betiği kurulu değil"
#, c-format
msgid "%s%s: line %d: malformed section header"
msgstr ""
#, fuzzy, c-format
#| msgid "%sWarning: %s, line %d: unknown section identifier (\"%s\")"
msgid "%s%s: line %d: ignoring unknown section \"%s\""
msgstr "%sUyarı: %s, %d. satır: Bilinmeyen bölüm tanımlayıcısı (\"%s\")"
#, c-format
msgid "%s%s: line %d: missing '=' separator"
msgstr ""
#, fuzzy, c-format
#| msgid "%sWarning: %s, line %d: unknown option for section \"%s\": %s"
msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr "%sUyarı: %s, %d. satır: \"%s\" bölümü için bilinmeyen seçenek: %s"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to parse theme file \"%s\""
msgstr "%s%s: \"%s\" dosyası ayrıştırılamıyor"
#, c-format
msgid ""
"%sUnable to create theme backup; aborting apply (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
#, c-format
msgid "Previous state saved as theme \"%s\"; to restore: /theme apply %s"
msgstr ""
#, c-format
msgid ""
"%sUnable to create theme backup; aborting reset (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
#, fuzzy, c-format
#| msgid "%sBuffer name \"%s\" is reserved for WeeChat"
msgid "%sName \"%s\" is reserved for automatic backups"
msgstr "%s\"%s\" arabellek adı WeeChat için ayrılmış"
#, fuzzy, c-format
#| msgid "%sBuffer name \"%s\" is reserved for WeeChat"
msgid "%sName \"%s\" is reserved for a built-in theme"
msgstr "%s\"%s\" arabellek adı WeeChat için ayrılmış"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to save theme \"%s\""
msgstr "%s%s: \"%s\" dosyası ayrıştırılamıyor"
#, fuzzy, c-format
#| msgid "Option \"%s%s%s\":"
msgid "Theme saved to: %s"
msgstr "\"%s%s%s\" seçeneği:"
#, fuzzy, c-format
#| msgid "%sCannot create file \"%s\""
msgid "%sCannot rename built-in theme \"%s\""
msgstr "%s\"%s\" dosyası oluşturulamıyor"
#, c-format
msgid "%sNew name is the same as old name"
msgstr ""
#, fuzzy, c-format
#| msgid "%sBar \"%s\" already exists"
msgid "%sTheme \"%s\" already exists"
msgstr "%s\"%s\" çubuğu halihazırda var"
#, fuzzy, c-format
#| msgid "%sUnable to rename filter \"%s\" to \"%s\""
msgid "%sFailed to rename theme \"%s\" to \"%s\""
msgstr "%s\"%s\" süzgeci \"%s\" olarak yeniden adlandırılamıyor"
#, fuzzy, c-format
#| msgid "Trigger \"%s\" renamed to \"%s\""
msgid "Theme \"%s\" renamed to \"%s\""
msgstr "\"%s\" tetiği \"%s\" olarak yeniden adlandırıldı"
#, fuzzy, c-format
#| msgid "%sCannot create file \"%s\""
msgid "%sCannot delete built-in theme \"%s\""
msgstr "%s\"%s\" dosyası oluşturulamıyor"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to delete theme \"%s\""
msgstr "%s%s: \"%s\" dosyası ayrıştırılamıyor"
#, c-format
msgid "Theme deleted: %s"
msgstr ""
#, c-format
msgid "%sError upgrading WeeChat with file \"%s\":"
msgstr "%sWeeChat'i \"%s\" dosyası ile yükseltirken hata:"
@@ -6883,36 +6623,34 @@ msgstr "\"%s\" URL aktarımının sonu; aktarım durduruldu"
msgid "WeeChat is running in headless mode (ctrl-c to quit)."
msgstr "WeeChat başsız kipte çalışıyor (çıkmak için ctrl-c yapın)."
msgid "Welcome to WeeChat!"
msgstr ""
msgid ""
"Welcome to WeeChat!\n"
"\n"
"If you are discovering WeeChat, it is recommended to read at least the "
"quickstart guide, and the user's guide if you have some time; they explain "
"main WeeChat concepts."
msgstr ""
#, c-format
msgid "All WeeChat docs are available at: %s"
msgstr ""
msgid ""
"main WeeChat concepts.\n"
"All WeeChat docs are available at: https://weechat.org/doc/\n"
"\n"
"Moreover, there is inline help with /help on all commands and options (use "
"Tab key to complete the name)."
msgstr ""
msgid "The command /fset can help to customize WeeChat."
msgstr ""
msgid ""
"Tab key to complete the name).\n"
"The command /fset can help to customize WeeChat.\n"
"\n"
"You can add and connect to an IRC server with /server and /connect commands "
"(see /help server)."
msgstr ""
msgid ""
"The \"light\" theme will be automatically applied. Use /theme reset to "
"switch back to the default dark theme."
msgstr ""
"WeeChat'e hoş geldiniz!\n"
"\n"
"WeeChat'e yeniyseniz hızlı başlangıç kılavuzunu veya biraz daha vaktiniz "
"varsa kullanıcı kılavuzunu okumanız önerilir; bu belgeler WeeChat'in temel "
"konseptlerini açıklarlar.\n"
"Tüm WeeChat belgelendirmesi https://weechat.org/doc/ adresinde mevcuttur.\n"
"\n"
"Ek olarak, /help komutu ile doğrudan satır içi yardım alabilirsiniz (komutu "
"tamamlamak için Sekme düğmesini kullanın).\n"
"/fset komutu WeeChat'i özelleştirmenize yardımcı olur.\n"
"\n"
"IRC sunucularına /server ve /connect komutları ile bağlanabilirsiniz (bkz. /"
"help server)."
#. TRANSLATORS: the "under %s" can be "under screen" or "under tmux"
#, c-format
@@ -8571,8 +8309,7 @@ msgstr "Bilinmeyen yapılandırma dosyası \"%s\""
msgid ""
"> `t:xxx`: show only type \"xxx\" (bool/int/str/col/enum or boolean/integer/"
"string/color/enum); the special value \"themable\" can be used to show all "
"options that can be used in themes, regardless of type"
"string/color/enum)"
msgstr ""
msgid "> `d`: show only changed options"
@@ -17383,11 +17120,6 @@ msgstr "Hiçbir betik yüklenmedi"
msgid "script name with extension"
msgstr "betik uzantılarının listesi"
#, fuzzy
#| msgid "comma separated list of file name extensions for plugins"
msgid "comma-separated list of plugin:extension with supported languages"
msgstr "eklentiler için dosya adı uzantılarının virgülle ayrılmış listesi"
msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr "betik adı, uzantı ile (\"*\" jokerine izin verilir) (isteğe bağlı)"
@@ -18018,9 +17750,7 @@ msgstr ""
msgid "> type `command_run`: command(s) (required)"
msgstr ""
msgid ""
"> type `timer`: interval (required, in milliseconds), align on second, max "
"calls"
msgid "> type `timer`: interval (required), align on second, max calls"
msgstr ""
msgid "> type `config`: name(s) of option (required)"
@@ -18881,33 +18611,3 @@ msgid ""
msgstr ""
"%s%s: \"%s\" dosyası sürdürümü kabul edilemiyor (kapı: %d, başlangıç konumu: "
"%llu): xfer bulunamadı veya aktarım için hazır değil"
#~ msgid ""
#~ "Welcome to WeeChat!\n"
#~ "\n"
#~ "If you are discovering WeeChat, it is recommended to read at least the "
#~ "quickstart guide, and the user's guide if you have some time; they "
#~ "explain main WeeChat concepts.\n"
#~ "All WeeChat docs are available at: https://weechat.org/doc/\n"
#~ "\n"
#~ "Moreover, there is inline help with /help on all commands and options "
#~ "(use Tab key to complete the name).\n"
#~ "The command /fset can help to customize WeeChat.\n"
#~ "\n"
#~ "You can add and connect to an IRC server with /server and /connect "
#~ "commands (see /help server)."
#~ msgstr ""
#~ "WeeChat'e hoş geldiniz!\n"
#~ "\n"
#~ "WeeChat'e yeniyseniz hızlı başlangıç kılavuzunu veya biraz daha vaktiniz "
#~ "varsa kullanıcı kılavuzunu okumanız önerilir; bu belgeler WeeChat'in "
#~ "temel konseptlerini açıklarlar.\n"
#~ "Tüm WeeChat belgelendirmesi https://weechat.org/doc/ adresinde "
#~ "mevcuttur.\n"
#~ "\n"
#~ "Ek olarak, /help komutu ile doğrudan satır içi yardım alabilirsiniz "
#~ "(komutu tamamlamak için Sekme düğmesini kullanın).\n"
#~ "/fset komutu WeeChat'i özelleştirmenize yardımcı olur.\n"
#~ "\n"
#~ "IRC sunucularına /server ve /connect komutları ile bağlanabilirsiniz "
#~ "(bkz. /help server)."
+11 -257
View File
@@ -23,7 +23,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-07-04 22:01+0200\n"
"POT-Creation-Date: 2026-05-30 14:00+0200\n"
"PO-Revision-Date: 2014-08-16 10:27+0200\n"
"Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -926,47 +926,6 @@ msgstr ""
msgid "%sFunction \"%s\" is not available on this system"
msgstr ""
msgid "No theme available"
msgstr ""
msgid "Themes:"
msgstr ""
#, c-format
msgid " %s %s%s%s (file)"
msgstr ""
#, c-format
msgid "%sTheme \"%s\" not found"
msgstr ""
#, c-format
msgid "Theme \"%s%s%s\":"
msgstr ""
#, c-format
msgid " source: %s"
msgstr ""
msgid " source: built-in (in-memory)"
msgstr ""
#, c-format
msgid " description: %s"
msgstr ""
#, c-format
msgid " date: %s"
msgstr ""
#, c-format
msgid " WeeChat version: %s"
msgstr ""
#, c-format
msgid " overrides: %d"
msgstr ""
#, c-format
msgid "%sFailed to unset option \"%s\""
msgstr ""
@@ -3346,69 +3305,6 @@ msgstr ""
msgid "number: number of processes to clean"
msgstr ""
msgid "manage color themes"
msgstr ""
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid ""
"[list [-backups]] || apply <name> || reset || save <name> || rename <old> "
"<new> || del <name> || info <name>"
msgstr ""
msgid ""
"raw[list]: list registered themes and any *.theme files in the WeeChat "
"configuration directory; the active theme (matching weechat.look.theme) is "
"marked with \"->\""
msgstr ""
msgid "raw[-backups]: display backup theme files"
msgstr ""
msgid ""
"raw[apply]: apply a theme (set every themable option to the value from the "
"theme); if a file named <name>.theme exists in directory \"themes\" it "
"shadows any built-in theme of the same name"
msgstr ""
msgid ""
"raw[reset]: reset every themable option to its default value (restores the "
"original look shipped with WeeChat)"
msgstr ""
msgid ""
"raw[save]: save current themable options to a file <name>.theme in directory "
"\"themes\"; every themable option is written, so the file is self-contained; "
"the name must not match a built-in theme or start with \"backup-\""
msgstr ""
msgid "raw[rename]: rename a user theme file"
msgstr ""
msgid "raw[del]: delete a user theme file"
msgstr ""
msgid ""
"raw[info]: display details on a theme (name, description, creation date, "
"WeeChat version, number of option overrides)"
msgstr ""
msgid "name: name of a theme"
msgstr ""
msgid ""
"Themes are named bundles of option overrides. Built-in themes are registered "
"in memory by core/plugins/scripts; user themes are read from files in "
"directory \"themes\" inside the WeeChat configuration directory."
msgstr ""
msgid ""
"By default, `/theme apply` command creates a backup of current themable "
"values in directory \"themes\" before applying (file name: \"backup-"
"<timestamp>.theme\"); the previous state can be restored with: `/theme apply "
"backup-<timestamp>`. This is controlled by the option "
"weechat.look.theme_backup."
msgstr ""
msgid "toggle value of a config option"
msgstr ""
@@ -3921,15 +3817,6 @@ msgstr ""
msgid "names of layouts"
msgstr ""
msgid "names of themes (built-ins + user files + backups)"
msgstr ""
msgid "names of user theme files (without built-ins and backups)"
msgstr ""
msgid "names of theme files on disk (user files + backups, no built-ins)"
msgstr ""
msgid "names of secured data (file sec.conf, section data)"
msgstr ""
@@ -4729,20 +4616,6 @@ msgstr ""
msgid "number of spaces used to display tabs in messages"
msgstr ""
msgid ""
"name of the last theme applied with command /theme (set automatically, do "
"not change manually); informational only, the theme is not re-applied at "
"startup"
msgstr ""
msgid ""
"create a backup theme file with the current themable options before applying "
"a theme with command /theme; if the backup file cannot be written, the apply "
"is aborted (no option is changed); the backup file is written to directory "
"\"themes\" inside the WeeChat configuration directory and can be restored "
"with the command: `/theme apply backup-<timestamp>`"
msgstr ""
msgid ""
"time format for dates converted to strings and displayed in messages (see "
"man strftime for date/time specifiers)"
@@ -5594,104 +5467,6 @@ msgstr ""
msgid "Resource usage (see \"man getrusage\" for help):"
msgstr ""
msgid "WeeChat default theme for light-background terminals"
msgstr ""
msgid "Automatic backup"
msgstr ""
#, c-format
msgid "%sTheme: option \"%s\" not found, skipped"
msgstr ""
#, c-format
msgid "%sTheme: option \"%s\" is not themable, skipped"
msgstr ""
#, c-format
msgid "%s%s: line %d: malformed section header"
msgstr ""
#, c-format
msgid "%s%s: line %d: ignoring unknown section \"%s\""
msgstr ""
#, c-format
msgid "%s%s: line %d: missing '=' separator"
msgstr ""
#, c-format
msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr ""
#, c-format
msgid "%sFailed to parse theme file \"%s\""
msgstr ""
#, c-format
msgid ""
"%sUnable to create theme backup; aborting apply (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
#, c-format
msgid "Previous state saved as theme \"%s\"; to restore: /theme apply %s"
msgstr ""
#, c-format
msgid ""
"%sUnable to create theme backup; aborting reset (disable option "
"weechat.look.theme_backup to force)"
msgstr ""
#, c-format
msgid "%sName \"%s\" is reserved for automatic backups"
msgstr ""
#, c-format
msgid "%sName \"%s\" is reserved for a built-in theme"
msgstr ""
#, c-format
msgid "%sFailed to save theme \"%s\""
msgstr ""
#, c-format
msgid "Theme saved to: %s"
msgstr ""
#, c-format
msgid "%sCannot rename built-in theme \"%s\""
msgstr ""
#, c-format
msgid "%sNew name is the same as old name"
msgstr ""
#, c-format
msgid "%sTheme \"%s\" already exists"
msgstr ""
#, c-format
msgid "%sFailed to rename theme \"%s\" to \"%s\""
msgstr ""
#, c-format
msgid "Theme \"%s\" renamed to \"%s\""
msgstr ""
#, c-format
msgid "%sCannot delete built-in theme \"%s\""
msgstr ""
#, c-format
msgid "%sFailed to delete theme \"%s\""
msgstr ""
#, c-format
msgid "Theme deleted: %s"
msgstr ""
#, c-format
msgid "%sError upgrading WeeChat with file \"%s\":"
msgstr ""
@@ -5844,37 +5619,22 @@ msgstr ""
msgid "WeeChat is running in headless mode (ctrl-c to quit)."
msgstr ""
msgid "Welcome to WeeChat!"
msgstr ""
msgid ""
"Welcome to WeeChat!\n"
"\n"
"If you are discovering WeeChat, it is recommended to read at least the "
"quickstart guide, and the user's guide if you have some time; they explain "
"main WeeChat concepts."
msgstr ""
#, c-format
msgid "All WeeChat docs are available at: %s"
msgstr ""
msgid ""
"main WeeChat concepts.\n"
"All WeeChat docs are available at: https://weechat.org/doc/\n"
"\n"
"Moreover, there is inline help with /help on all commands and options (use "
"Tab key to complete the name)."
msgstr ""
msgid "The command /fset can help to customize WeeChat."
msgstr ""
msgid ""
"Tab key to complete the name).\n"
"The command /fset can help to customize WeeChat.\n"
"\n"
"You can add and connect to an IRC server with /server and /connect commands "
"(see /help server)."
msgstr ""
msgid ""
"The \"light\" theme will be automatically applied. Use /theme reset to "
"switch back to the default dark theme."
msgstr ""
#. TRANSLATORS: the "under %s" can be "under screen" or "under tmux"
#, c-format
msgid ""
@@ -7292,8 +7052,7 @@ msgstr ""
msgid ""
"> `t:xxx`: show only type \"xxx\" (bool/int/str/col/enum or boolean/integer/"
"string/color/enum); the special value \"themable\" can be used to show all "
"options that can be used in themes, regardless of type"
"string/color/enum)"
msgstr ""
msgid "> `d`: show only changed options"
@@ -14259,9 +14018,6 @@ msgstr ""
msgid "script name with extension"
msgstr ""
msgid "comma-separated list of plugin:extension with supported languages"
msgstr ""
msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr ""
@@ -14820,9 +14576,7 @@ msgstr ""
msgid "> type `command_run`: command(s) (required)"
msgstr ""
msgid ""
"> type `timer`: interval (required, in milliseconds), align on second, max "
"calls"
msgid "> type `timer`: interval (required), align on second, max calls"
msgstr ""
msgid "> type `config`: name(s) of option (required)"
+33 -31
View File
@@ -5537,7 +5537,7 @@ COMMAND_CALLBACK(print)
struct timeval tv_date;
char *tags, *pos, *text, *text2, empty_string[1] = { '\0' };
const char *prefix, *ptr_text;
long long value;
long value;
/* make C compiler happy */
(void) pointer;
@@ -5610,7 +5610,7 @@ COMMAND_CALLBACK(print)
i++;
if ((argv[i][0] == '-') || (argv[i][0] == '+'))
{
if (!util_parse_longlong (argv[i] + 1, 10, &value))
if (!util_parse_long (argv[i] + 1, 10, &value))
COMMAND_ERROR;
gettimeofday (&tv_date, NULL);
tv_date.tv_sec += (argv[i][0] == '+') ? value : value * -1;
@@ -7217,12 +7217,6 @@ command_theme_collect_file_cb (void *data, const char *filename)
arraylist_add (ctx->names, name);
}
/*
* Compare two theme file names (callback used by arraylist sort).
*
* Return negative, zero, or positive value (like strcmp).
*/
int
command_theme_strcmp_cb (void *data, struct t_arraylist *arraylist,
void *pointer1, void *pointer2)
@@ -7314,7 +7308,7 @@ COMMAND_CALLBACK(theme)
ptr_name = (const char *)arraylist_get (file_names, i);
gui_chat_printf (
NULL,
_(" %s %s%s%s (file)"),
" %s %s%s%s (file)",
(ptr_active && (strcmp (ptr_active, ptr_name) == 0))
? "->" : " ",
GUI_COLOR(GUI_COLOR_CHAT_BUFFER),
@@ -7359,10 +7353,10 @@ COMMAND_CALLBACK(theme)
return theme_rename (argv[2], argv[3]);
}
/* "/theme del <name>": remove a user theme file */
if (string_strcmp (argv[1], "del") == 0)
/* "/theme delete <name>": remove a user theme file */
if (string_strcmp (argv[1], "delete") == 0)
{
COMMAND_MIN_ARGS(3, "del");
COMMAND_MIN_ARGS(3, "delete");
return theme_delete (argv[2]);
}
@@ -7403,25 +7397,25 @@ COMMAND_CALLBACK(theme)
if (path)
{
gui_chat_printf (NULL,
_(" source: %s"), path);
_(" source : %s"), path);
}
else
{
gui_chat_printf (NULL,
_(" source: built-in (in-memory)"));
_(" source : built-in (in-memory)"));
}
gui_chat_printf (NULL,
_(" description: %s"),
_(" description : %s"),
(ptr_theme->description) ? ptr_theme->description : "");
gui_chat_printf (NULL,
_(" date: %s"),
_(" date : %s"),
(ptr_theme->date) ? ptr_theme->date : "");
gui_chat_printf (NULL,
_(" WeeChat version: %s"),
(ptr_theme->weechat_version)
? ptr_theme->weechat_version : "");
gui_chat_printf (NULL,
_(" overrides: %d"),
_(" overrides : %d"),
theme_overrides_count (ptr_theme));
free (path);
theme_free (file_theme);
@@ -7652,7 +7646,7 @@ command_upgrade_display (struct t_gui_buffer *buffer,
str_first_start[0] = '\0';
str_last_start[0] = '\0';
weechat_last_start_time = weechat_current_start_timeval.tv_sec;
weechat_last_start_time = (time_t)weechat_current_start_timeval.tv_sec;
if (translated_string)
{
@@ -10092,13 +10086,14 @@ command_init (void)
" || reset"
" || save <name>"
" || rename <old> <new>"
" || del <name>"
" || delete <name>"
" || info <name>"),
CMD_ARGS_DESC(
N_("raw[list]: list registered themes and any *.theme files in "
"the WeeChat configuration directory; the active theme "
"(matching weechat.look.theme) is marked with \"->\""),
N_("raw[-backups]: display backup theme files"),
"(matching weechat.look.theme) is marked with \"->\". By "
"default backup-*.theme files are hidden; pass \"-backups\" "
"to include them"),
N_("raw[apply]: apply a theme (set every themable option to the "
"value from the theme); if a file named <name>.theme "
"exists in directory \"themes\" it shadows any built-in "
@@ -10110,28 +10105,35 @@ command_init (void)
"option is written, so the file is self-contained; the "
"name must not match a built-in theme or start with "
"\"backup-\""),
N_("raw[rename]: rename a user theme file"),
N_("raw[del]: delete a user theme file"),
N_("raw[rename]: rename a user theme file (typically to "
"give an automatic backup a meaningful name); refuses to "
"rename built-in themes, refuses target names matching a "
"built-in or starting with \"backup-\", and refuses if "
"the target file already exists"),
N_("raw[delete]: delete a user theme file (refuses to delete "
"built-in themes, which have no file)"),
N_("raw[info]: display details on a theme (name, description, "
"creation date, WeeChat version, number of option overrides)"),
N_("name: name of a theme"),
"",
N_("Themes are named bundles of option overrides. Built-in themes "
"are registered in memory by core/plugins/scripts; user themes "
"are read from files in directory \"themes\" inside the WeeChat "
"configuration directory."),
N_("Themes are named bundles of color (and other themable) "
"option overrides. Built-in themes are registered in memory "
"by core/plugins/scripts; user themes are read from files "
"in directory \"themes\" inside the WeeChat configuration "
"directory."),
"",
N_("By default, `/theme apply` command creates a backup of current "
N_("By default, /theme apply creates a backup of current "
"themable values in directory \"themes\" before applying "
"(file name: \"backup-<timestamp>.theme\"); the previous "
"state can be restored with: `/theme apply backup-<timestamp>`. "
"This is controlled by the option weechat.look.theme_backup.")),
"state can be restored with: /theme apply "
"backup-<timestamp>. This is controlled by the option "
"weechat.look.theme_backup.")),
"list -backups"
" || apply %(theme_themes_all)"
" || reset"
" || save %(theme_themes_user)"
" || rename %(theme_themes_files)"
" || del %(theme_themes_user)"
" || delete %(theme_themes_user)"
" || info %(theme_themes_all)",
&command_theme, NULL, NULL);
hook_command (
+8 -8
View File
@@ -64,12 +64,6 @@
extern char **environ;
struct t_completion_theme_dir
{
struct t_gui_completion *completion;
int show_backups;
};
/*
* Add a word with quotes around to completion list.
@@ -1990,6 +1984,12 @@ completion_list_add_layouts_names_cb (const void *pointer, void *data,
* data[1] = int *show_backups
*/
struct t_completion_theme_dir
{
struct t_gui_completion *completion;
int show_backups;
};
void
completion_theme_add_file_cb (void *data, const char *filename)
{
@@ -2055,7 +2055,7 @@ completion_list_add_theme_themes_all_cb (const void *pointer, void *data,
/*
* Add user theme file names (excluding built-ins and backups) to the
* completion list; suitable for /theme save and /theme del.
* completion list; suitable for /theme save and /theme delete.
*/
int
@@ -2515,7 +2515,7 @@ completion_init (void)
N_("names of themes (built-ins + user files + backups)"),
&completion_list_add_theme_themes_all_cb, NULL, NULL);
hook_completion (NULL, "theme_themes_user",
N_("names of user theme files (without built-ins and backups)"),
N_("names of user theme files (excludes built-ins and backups)"),
&completion_list_add_theme_themes_user_cb, NULL, NULL);
hook_completion (NULL, "theme_themes_files",
N_("names of theme files on disk (user files + backups, "
+5 -6
View File
@@ -706,8 +706,8 @@ config_file_new_option (struct t_config_file *config_file,
{
struct t_config_option *new_option;
int var_type, int_value, argc, i, index_value, number, themable;
const char *pos, *ptr_type;
char *option_name, *parent_name, *type_name;
char *pos, *option_name, *parent_name, *type_name;
const char *ptr_type;
new_option = NULL;
option_name = NULL;
@@ -1123,13 +1123,12 @@ config_file_search_with_string (const char *option_name,
struct t_config_file **config_file,
struct t_config_section **section,
struct t_config_option **option,
const char **pos_option_name)
char **pos_option_name)
{
struct t_config_file *ptr_config;
struct t_config_section *ptr_section;
struct t_config_option *ptr_option;
const char *pos_section, *pos_option;
char *file_name, *section_name;
char *file_name, *pos_section, *section_name, *pos_option;
if (config_file)
*config_file = NULL;
@@ -2584,7 +2583,7 @@ config_file_option_set_with_string (const char *option_name, const char *value)
struct t_config_file *ptr_config;
struct t_config_section *ptr_section;
struct t_config_option *ptr_option;
const char *pos_option;
char *pos_option;
rc = WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND;
+1 -1
View File
@@ -288,7 +288,7 @@ extern void config_file_search_with_string (const char *option_name,
struct t_config_file **config_file,
struct t_config_section **section,
struct t_config_option **option,
const char **pos_option_name);
char **pos_option_name);
extern int config_file_string_to_boolean (const char *text);
extern int config_file_option_reset (struct t_config_option *option,
int run_callback);
+8 -12
View File
@@ -1712,7 +1712,7 @@ config_weechat_update_cb (const void *pointer, void *data,
int version_read,
struct t_hashtable *data_read)
{
const char *ptr_config, *ptr_section, *ptr_option, *ptr_value, *pos_option;
const char *ptr_config, *ptr_section, *ptr_option, *ptr_value;
char *new_commands[][2] = {
/* old command, new command */
{ "/input jump_smart", "/buffer jump smart" },
@@ -1742,7 +1742,7 @@ config_weechat_update_cb (const void *pointer, void *data,
{ "number_desc" "-buffer.number" },
{ NULL, NULL },
};
char *new_option, *new_value;
char *new_option, *new_value, *pos_option;
int changes, i;
/* make C compiler happy */
@@ -2265,8 +2265,7 @@ config_weechat_proxy_read_cb (const void *pointer, void *data,
struct t_config_section *section,
const char *option_name, const char *value)
{
const char *pos_option;
char *proxy_name;
char *pos_option, *proxy_name;
struct t_proxy *ptr_temp_proxy;
int index_option;
@@ -2345,8 +2344,7 @@ config_weechat_bar_read_cb (const void *pointer, void *data,
struct t_config_section *section,
const char *option_name, const char *value)
{
const char *pos_option;
char *bar_name;
char *pos_option, *bar_name;
struct t_gui_bar *ptr_temp_bar;
int index_option;
@@ -2426,8 +2424,7 @@ config_weechat_custom_bar_item_read_cb (const void *pointer, void *data,
struct t_config_section *section,
const char *option_name, const char *value)
{
const char *pos_option;
char *item_name;
char *pos_option, *item_name;
struct t_gui_bar_item_custom *ptr_temp_item;
int index_option;
@@ -2518,8 +2515,7 @@ config_weechat_layout_read_cb (const void *pointer, void *data,
const char *option_name, const char *value)
{
int argc, force_current_layout, number1, number2, number3, number4;
const char *pos;
char **argv, *layout_name;
char **argv, *pos, *layout_name;
const char *ptr_option_name;
struct t_gui_layout *ptr_layout;
struct t_gui_layout_window *parent;
@@ -4446,8 +4442,8 @@ config_weechat_init_options (void)
"the backup file cannot be written, the apply is aborted "
"(no option is changed); the backup file is written to "
"directory \"themes\" inside the WeeChat configuration "
"directory and can be restored with the command: `/theme apply "
"backup-<timestamp>`"),
"directory and can be restored with: /theme apply "
"backup-<timestamp>"),
NULL, 0, 0, "on", NULL, 0,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
config_look_time_format = config_file_new_option (
+9 -14
View File
@@ -508,8 +508,7 @@ eval_string_repeat (const char *text)
char *
eval_string_split (const char *text)
{
const char *pos, *pos2, *pos3;
char *str_number, *separators, **items, *value;
char *pos, *pos2, *pos3, *str_number, *separators, **items, *value;
char str_value[32], *str_flags, **list_flags, *strip_items, **ptr_flag;
int num_items, count_items, random_item, flags, max_items;
long number;
@@ -656,8 +655,7 @@ end:
char *
eval_string_split_shell (const char *text)
{
const char *pos;
char *str_number, **items, *value, str_value[32];
char *pos, *str_number, **items, *value, str_value[32];
int num_items, count_items, random_item;
long number;
@@ -1048,8 +1046,7 @@ eval_string_if (const char *text, struct t_eval_context *eval_context)
char *
eval_string_random (const char *text)
{
const char *pos;
char *tmp, result[128];
char *pos, *tmp, result[128];
long long min_number, max_number;
if (!text || !text[0])
@@ -1115,8 +1112,7 @@ eval_string_translate (const char *text)
void
eval_string_define (const char *text, struct t_eval_context *eval_context)
{
const char *pos;
char *name;
char *pos, *name;
pos = strchr (text, ',');
if (!pos)
@@ -1143,8 +1139,7 @@ eval_hdata_count (const char *text, struct t_eval_context *eval_context)
struct t_hdata *hdata;
unsigned long ptr_value;
void *pointer;
const char *pos1, *pos2;
char *value, *hdata_name, *pointer_name, str_count[64];
char *pos1, *pos2, *value, *hdata_name, *pointer_name, str_count[64];
int rc, count;
value = NULL;
@@ -1216,8 +1211,8 @@ char *
eval_hdata_get_value (struct t_hdata *hdata, void *pointer, const char *path,
struct t_eval_context *eval_context)
{
char *value, *var_name, str_value[128], *property;
const char *ptr_value, *hdata_name, *ptr_var_name, *pos, *pos_open_paren;
char *value, *var_name, str_value[128], *pos, *property;
const char *ptr_value, *hdata_name, *ptr_var_name, *pos_open_paren;
int type, debug_id;
struct t_hashtable *hashtable;
@@ -1544,8 +1539,8 @@ eval_syntax_highlight_add_markers (const char *prefix, const char *text,
char *
eval_syntax_highlight_colorize (const char *value)
{
const char *ptr_value, *pos;
char **result;
const char *ptr_value;
char **result, *pos;
int color;
if (!value)
+3 -4
View File
@@ -688,8 +688,7 @@ hdata_count (struct t_hdata *hdata, void *pointer)
void
hdata_get_index_and_name (const char *name, int *index, const char **ptr_name)
{
const char *pos;
char *str_index;
char *pos, *str_index;
int number;
if (index)
@@ -1313,9 +1312,9 @@ hdata_set (struct t_hdata *hdata, void *pointer, const char *name,
}
break;
case WEECHAT_HDATA_TIME:
if (util_parse_longlong (value, 10, &number_longlong) && (number_longlong >= 0))
if (util_parse_long (value, 10, &number_long) && (number_long >= 0))
{
*((time_t *)(pointer + var->offset)) = (time_t)number_longlong;
*((time_t *)(pointer + var->offset)) = (time_t)number_long;
return 1;
}
break;
+3 -8
View File
@@ -242,8 +242,8 @@ int
input_data (struct t_gui_buffer *buffer, const char *data,
const char *commands_allowed, int split_newline, int user_data)
{
const char *ptr_data_for_buffer;
char *pos, str_buffer[128], *new_data, *buffer_full_name, *ptr_data;
char *pos, str_buffer[128], *new_data, *buffer_full_name;
const char *ptr_data, *ptr_data_for_buffer;
int first_command, rc;
if (!buffer || !gui_buffer_valid (buffer) || !data)
@@ -272,13 +272,8 @@ input_data (struct t_gui_buffer *buffer, const char *data,
if (data[0] && new_data && !new_data[0])
goto end;
if (!new_data)
new_data = strdup (data);
if (!new_data)
goto end;
first_command = 1;
ptr_data = new_data;
ptr_data = (new_data) ? new_data : data;
while (ptr_data)
{
/*
+1 -19
View File
@@ -582,13 +582,7 @@ network_pass_socks5proxy (struct t_proxy *proxy, int sock, const char *address,
int port)
{
struct t_network_socks5 socks5;
/*
* buffer must be large enough for the username/password authentication
* request, which is the longest message sent/received here; according to
* RFC 1929 it is: version (1) + username length (1) + username (max 255)
* + password length (1) + password (max 255)
*/
unsigned char buffer[2 + 255 + 1 + 255];
unsigned char buffer[288];
int username_len, password_len, addr_len, addr_buffer_len;
unsigned char *addr_buffer;
char *username, *password;
@@ -637,18 +631,6 @@ network_pass_socks5proxy (struct t_proxy *proxy, int sock, const char *address,
username_len = strlen (username);
password_len = strlen (password);
/*
* username and password length are each stored on a single byte
* (RFC 1929), so they cannot exceed 255 bytes: reject longer values,
* otherwise the memcpy calls below would overflow the buffer
*/
if ((username_len > 255) || (password_len > 255))
{
free (username);
free (password);
return 0;
}
/* make username/password buffer */
buffer[0] = 1;
buffer[1] = (unsigned char) username_len;
+6 -6
View File
@@ -1686,8 +1686,9 @@ string_mask_to_regex (const char *mask)
const char *
string_regex_flags (const char *regex, int default_flags, int *flags)
{
const char *ptr_regex, *ptr_flags, *pos;
const char *ptr_regex, *ptr_flags;
int set_flag, flag;
char *pos;
if (flags)
*flags = default_flags;
@@ -2965,9 +2966,8 @@ char **
string_split_command (const char *command, char separator)
{
int nb_substr, arr_idx, str_idx, type;
const char *p;
char **array, **array2;
char *buffer;
char *buffer, *p;
const char *ptr;
if (!command || !command[0])
@@ -4138,7 +4138,8 @@ string_is_command_char (const char *string)
const char *
string_input_for_buffer (const char *string)
{
const char *pos_slash, *pos_space, *pos_newline, *next_char;
char *pos_slash, *pos_space, *pos_newline;
const char *next_char;
if (!string)
return NULL;
@@ -4475,8 +4476,7 @@ string_get_priority_and_name (const char *string,
int *priority, const char **name,
int default_priority)
{
const char *pos;
char *str_priority;
char *pos, *str_priority;
int number;
if (priority)
+6 -18
View File
@@ -26,8 +26,6 @@
#endif
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#include "weechat.h"
#include "core-hashtable.h"
@@ -89,17 +87,15 @@ struct t_theme_builtin_entry theme_builtin_light_core[] =
};
/*
* Build a hashtable of overrides from a NULL-terminated table and
* register it under the given theme name, with an optional description.
* Builds a hashtable of overrides from a NULL-terminated table and
* registers it under the given theme name.
*/
void
theme_builtin_register_entries (const char *name,
const char *description,
const struct t_theme_builtin_entry *entries)
{
struct t_hashtable *overrides;
struct t_theme *theme;
int i;
if (!name || !entries)
@@ -115,27 +111,19 @@ theme_builtin_register_entries (const char *name,
for (i = 0; entries[i].option; i++)
hashtable_set (overrides, entries[i].option, entries[i].value);
theme = theme_register (NULL, NULL, name, overrides);
if (theme && description)
{
free (theme->description);
theme->description = strdup (description);
}
theme_register (NULL, NULL, name, overrides);
hashtable_free (overrides);
}
/*
* Register all built-in themes contributed by core. Called once from
* weechat_init; plugins/scripts add their own contributions later via
* Registers all built-in themes contributed by core. Called once from
* theme_init; plugins/scripts add their own contributions later via
* weechat_theme_register.
*/
void
theme_builtin_init (void)
{
theme_builtin_register_entries (
"light",
_("WeeChat default theme for light-background terminals"),
theme_builtin_light_core);
theme_builtin_register_entries ("light", theme_builtin_light_core);
}
+25 -24
View File
@@ -98,8 +98,8 @@ theme_format_now (void)
}
/*
* Allocate a new theme with name and empty metadata; do not link it into
* the registry.
* Allocate a new theme with name and empty metadata; does not link it
* into the registry.
*
* Return the new theme, NULL on error.
*/
@@ -143,7 +143,7 @@ theme_contribution_free (struct t_theme_contribution *contribution)
}
/*
* Free a theme (do not unlink from registry; caller handles that).
* Free a theme without unlinking from registry.
*/
void
@@ -208,7 +208,7 @@ theme_search_contribution (struct t_theme *theme,
}
/*
* Allocate a new contribution and append it to a theme's list.
* Allocate a new contribution and appends it to a theme's list.
*
* Return the new contribution, NULL on error.
*/
@@ -423,7 +423,7 @@ theme_overrides_count (struct t_theme *theme)
/*
* Return the effective value of an option override across the theme's
* contributions (later contributions win). Returns NULL if no
* contributions (later contributions win). Return NULL if no
* contribution provides the key.
*/
@@ -487,9 +487,7 @@ theme_list (void)
}
/*
* Build the on-disk path for a user theme:
* "<weechat_config_dir>/themes/<name>.theme".
*
* Build the on-disk path for a user theme: "<weechat_config_dir>/themes/<name>.theme".
* Return NULL on error.
*
* Note: result must be freed after use.
@@ -509,7 +507,6 @@ theme_user_file_path (const char *name)
/*
* Build a unique backup theme name "backup-YYYYMMDD-HHMMSS-uuuuuu".
*
* Return NULL on error.
*
* Note: result must be freed after use.
@@ -625,7 +622,7 @@ theme_write_file (const char *name, const char *description)
/*
* Create a timestamped backup theme file with the current themable state.
*
* Return the backup name, NULL on failure.
* Return backup name, NULL on error.
*
* Note: result must be freed after use.
*/
@@ -692,9 +689,8 @@ theme_apply_set_option_cb (void *data,
/*
* Strip one optional pair of matching surrounding quotes (' or ") from
* the in-place string.
*
* Return a pointer that may differ from the input (advance past an opening quote).
* the in-place string; return a pointer that may differ from the input
* (advances past an opening quote).
*/
char *
@@ -750,8 +746,10 @@ theme_file_parse (const char *path)
fclose (file);
return NULL;
}
/* file themes carry a single anonymous (plugin=NULL, script=NULL)
contribution holding everything in the [options] section */
/*
* file themes carry a single anonymous (plugin=NULL, script=NULL)
* contribution holding everything in the [options] section
*/
contribution = theme_contribution_new (theme, NULL, NULL);
if (!contribution)
{
@@ -922,9 +920,8 @@ theme_file_parse (const char *path)
* change callbacks skip their gui refresh; a single refresh is performed
* at the end.
*
* Return:
* WEECHAT_RC_OK: success
* WEECHAT_RC_ERROR: theme name is unknown or the backup could not be created
* Return WEECHAT_RC_OK on success, WEECHAT_RC_ERROR if the theme name
* is unknown or the backup could not be created.
*/
int
@@ -991,10 +988,12 @@ theme_apply (const char *name)
}
}
/* Apply each contribution in order; per-option refreshes are
suppressed via the theme_applying flag (see config_change_color).
Later contributions naturally win for duplicate keys because
config_file_option_set is called for each in sequence. */
/*
* Apply each contribution in order; per-option refreshes are
* suppressed via the theme_applying flag (see config_change_color).
* Later contributions naturally win for duplicate keys because
* config_file_option_set is called for each in sequence.
*/
theme_applying = 1;
for (ptr_contribution = theme->contributions; ptr_contribution;
ptr_contribution = ptr_contribution->next_contribution)
@@ -1068,8 +1067,10 @@ theme_reset (void)
}
}
/* reset every themable option to its default value; per-option gui
refreshes are suppressed via theme_applying */
/*
* reset every themable option to its default value; per-option gui
* refreshes are suppressed via theme_applying
*/
theme_applying = 1;
for (ptr_config = config_files; ptr_config;
ptr_config = ptr_config->next_config)
-6
View File
@@ -143,10 +143,8 @@ struct t_url_constant url_auth[] =
struct t_url_constant url_authtype[] =
{
#if LIBCURL_VERSION_NUM < 0x081600 /* < 8.22.0 */
URL_DEF_CONST(_TLSAUTH, NONE),
URL_DEF_CONST(_TLSAUTH, SRP),
#endif
{ NULL, 0 },
};
@@ -411,11 +409,9 @@ struct t_url_option url_options[] =
URL_DEF_OPTION(PASSWORD, STRING, NULL),
URL_DEF_OPTION(PROXYUSERNAME, STRING, NULL),
URL_DEF_OPTION(PROXYPASSWORD, STRING, NULL),
#if LIBCURL_VERSION_NUM < 0x081600 /* < 8.22.0 */
URL_DEF_OPTION(TLSAUTH_TYPE, MASK, url_authtype),
URL_DEF_OPTION(TLSAUTH_USERNAME, STRING, NULL),
URL_DEF_OPTION(TLSAUTH_PASSWORD, STRING, NULL),
#endif
URL_DEF_OPTION(SASL_AUTHZID, STRING, NULL),
URL_DEF_OPTION(SASL_IR, LONG, NULL),
@@ -630,11 +626,9 @@ struct t_url_option url_options[] =
URL_DEF_OPTION(PROXY_SSL_OPTIONS, LONG, url_ssl_options),
URL_DEF_OPTION(PROXY_SSL_VERIFYHOST, LONG, NULL),
URL_DEF_OPTION(PROXY_SSL_VERIFYPEER, LONG, NULL),
#if LIBCURL_VERSION_NUM < 0x081600 /* < 8.22.0 */
URL_DEF_OPTION(PROXY_TLSAUTH_PASSWORD, STRING, NULL),
URL_DEF_OPTION(PROXY_TLSAUTH_TYPE, STRING, NULL),
URL_DEF_OPTION(PROXY_TLSAUTH_USERNAME, STRING, NULL),
#endif
URL_DEF_OPTION(TLS13_CIPHERS, LIST, NULL),
URL_DEF_OPTION(PROXY_TLS13_CIPHERS, LIST, NULL),
#if LIBCURL_VERSION_NUM >= 0x074700 /* 7.71.0 */
+2 -2
View File
@@ -416,8 +416,8 @@ util_strftimeval (char *string, int max, const char *format, struct timeval *tv)
int
util_parse_time (const char *datetime, struct timeval *tv)
{
const char *pos_colon, *pos_hyphen, *pos_dot;
char *pos, *pos2, *string, str_usec[16], str_date[128];
char *string, *pos, *pos2, *pos_colon, *pos_hyphen, *pos_dot;
char str_usec[16], str_date[128];
struct tm tm_date, tm_date_gm, tm_date_local, *local_time;
time_t time_now, time_gm, time_local;
long long value;
+2 -2
View File
@@ -597,8 +597,8 @@ hook_command_exec (struct t_gui_buffer *buffer, int any_plugin,
struct t_hook *hook_plugin, *hook_other_plugin, *hook_other_plugin2;
struct t_hook *hook_incomplete_command;
struct t_hook_exec_cb hook_exec_cb;
char **argv, **argv_eol, *command_name;
const char *ptr_string, *pos;
char **argv, **argv_eol, *command_name, *pos;
const char *ptr_string;
int argc, rc, length_command_name, allow_incomplete_commands;
int count_other_plugin, count_incomplete_commands, flags;
+1 -2
View File
@@ -132,8 +132,7 @@ void
hook_signal_extract_flags (const char *signal, const char **ptr_signal,
int *stop_on_error, int *ignore_eat)
{
const char *pos;
char *str_flags, **flags;
char *pos, *str_flags, **flags;
int i, num_flags;
if (!signal || !ptr_signal || !stop_on_error || !ignore_eat)
+6 -10
View File
@@ -98,6 +98,7 @@ char *weechat_argv0 = NULL; /* WeeChat binary file name (argv[0])*/
int weechat_upgrading = 0; /* =1 if WeeChat is upgrading */
int weechat_first_start = 0; /* first start of WeeChat? */
time_t weechat_first_start_time = 0; /* start time (used by /uptime cmd) */
int weechat_term_theme_light = 0; /* 1 if light theme detected */
int weechat_upgrade_count = 0; /* number of /upgrade done */
struct timeval weechat_current_start_timeval; /* start time used to display */
/* duration of /upgrade */
@@ -135,13 +136,10 @@ int weechat_auto_load_scripts = 1; /* auto-load scripts */
/*
* Display WeeChat startup message.
*
* If "term_theme_light" is set, a notice about the automatic "light" theme is
* displayed on first start.
*/
void
weechat_startup_message (int term_theme_light)
weechat_startup_message (void)
{
if (weechat_headless)
{
@@ -207,7 +205,7 @@ weechat_startup_message (int term_theme_light)
NULL,
_("You can add and connect to an IRC server with /server and "
"/connect commands (see /help server)."));
if (term_theme_light)
if (weechat_term_theme_light)
{
gui_chat_printf (
NULL,
@@ -376,8 +374,6 @@ weechat_init_gettext (void)
void
weechat_init (int argc, char *argv[], void (*gui_init_cb)(void))
{
int term_theme_light; /* 1 if a light terminal detected */
weechat_first_start_time = time (NULL); /* initialize start time */
gettimeofday (&weechat_current_start_timeval, NULL);
@@ -387,7 +383,7 @@ weechat_init (int argc, char *argv[], void (*gui_init_cb)(void))
^ getpid ());
/* detect the terminal theme, before initializing the GUI */
term_theme_light = gui_term_theme_is_light ();
weechat_term_theme_light = gui_term_theme_is_light ();
weeurl_init (); /* initialize URL */
string_init (); /* initialize string */
@@ -428,7 +424,7 @@ weechat_init (int argc, char *argv[], void (*gui_init_cb)(void))
weechat_upgrading = 0;
}
if (!weechat_doc_gen)
weechat_startup_message (term_theme_light); /* startup message */
weechat_startup_message (); /* display WeeChat startup message */
gui_chat_print_lines_waiting_buffer (NULL); /* display lines waiting */
weechat_term_check (); /* warning about wrong $TERM */
weechat_locale_check (); /* warning about wrong locale */
@@ -450,7 +446,7 @@ weechat_init (int argc, char *argv[], void (*gui_init_cb)(void))
if (weechat_first_start && isatty (STDOUT_FILENO) && !weechat_headless && !weechat_doc_gen)
{
/* switch to "light" theme if terminal background was detected as "light" */
if (term_theme_light)
if (weechat_term_theme_light)
theme_apply ("light");
}
}
+3 -4
View File
@@ -47,7 +47,7 @@ void
daemonize (void)
{
pid_t pid;
int fd, i, rc;
int fd, i;
printf ("%s ", _("Running WeeChat in background..."));
@@ -77,9 +77,8 @@ daemonize (void)
close (i);
}
fd = open ("/dev/null", O_RDWR);
rc = dup (fd);
rc = dup (fd);
(void) rc;
(void) dup (fd);
(void) dup (fd);
}
/*
+1 -2
View File
@@ -138,8 +138,7 @@ gui_bar_item_custom_search (const char *item_name)
struct t_gui_bar_item_custom *
gui_bar_item_custom_search_with_option_name (const char *option_name)
{
const char *pos_option;
char *item_name;
char *item_name, *pos_option;
struct t_gui_bar_item_custom *ptr_item;
if (!option_name)
+9 -9
View File
@@ -1880,9 +1880,9 @@ gui_bar_item_buffer_nicklist_cb (const void *pointer, void *data,
{
if (strchr (ptr_nick->prefix_color, '.'))
{
config_file_search_with_string (
ptr_nick->prefix_color,
NULL, NULL, &ptr_option, NULL);
config_file_search_with_string (ptr_nick->prefix_color,
NULL, NULL, &ptr_option,
NULL);
if (ptr_option)
{
string_dyn_concat (
@@ -1907,9 +1907,9 @@ gui_bar_item_buffer_nicklist_cb (const void *pointer, void *data,
{
if (strchr (ptr_nick->color, '.'))
{
config_file_search_with_string (
ptr_nick->color,
NULL, NULL, &ptr_option, NULL);
config_file_search_with_string (ptr_nick->color,
NULL, NULL, &ptr_option,
NULL);
if (ptr_option)
{
string_dyn_concat (
@@ -1940,9 +1940,9 @@ gui_bar_item_buffer_nicklist_cb (const void *pointer, void *data,
{
if (strchr (ptr_group->color, '.'))
{
config_file_search_with_string (
ptr_group->color,
NULL, NULL, &ptr_option, NULL);
config_file_search_with_string (ptr_group->color,
NULL, NULL, &ptr_option,
NULL);
if (ptr_option)
{
string_dyn_concat (
+1 -2
View File
@@ -515,8 +515,7 @@ gui_bar_search (const char *name)
struct t_gui_bar *
gui_bar_search_with_option_name (const char *option_name)
{
const char *pos_option;
char *bar_name;
char *bar_name, *pos_option;
struct t_gui_bar *ptr_bar;
if (!option_name)
+98 -70
View File
@@ -1764,13 +1764,17 @@ void
gui_buffer_set_notify (struct t_gui_buffer *buffer, const char *notify)
{
const char *ptr_notify;
int mute_old, number;
char *error;
long number;
int mute_old;
if (!buffer)
return;
ptr_notify = NULL;
if (util_parse_int (notify, 10, &number))
error = NULL;
number = strtol (notify, &error, 10);
if (error && !error[0])
{
if (number < GUI_BUFFER_NUM_NOTIFY)
{
@@ -2228,8 +2232,9 @@ void
gui_buffer_set_hotlist_max_level_nicks (struct t_gui_buffer *buffer,
const char *new_hotlist_max_level_nicks)
{
char **nicks, *pos;
int nicks_count, number, value, i;
char **nicks, *pos, *error;
int nicks_count, value, i;
long number;
if (!buffer)
return;
@@ -2255,10 +2260,13 @@ gui_buffer_set_hotlist_max_level_nicks (struct t_gui_buffer *buffer,
{
pos[0] = '\0';
pos++;
if (util_parse_int (pos, 10, &number))
value = number;
error = NULL;
number = strtol (pos, &error, 10);
if (error && !error[0])
value = (int)number;
}
hashtable_set (buffer->hotlist_max_level_nicks, nicks[i], &value);
hashtable_set (buffer->hotlist_max_level_nicks, nicks[i],
&value);
}
string_free_split (nicks);
}
@@ -2271,8 +2279,9 @@ void
gui_buffer_add_hotlist_max_level_nicks (struct t_gui_buffer *buffer,
const char *nicks_to_add)
{
char **nicks, *pos;
int nicks_count, number, value, i;
char **nicks, *pos, *error;
int nicks_count, value, i;
long number;
if (!buffer || !nicks_to_add)
return;
@@ -2293,10 +2302,13 @@ gui_buffer_add_hotlist_max_level_nicks (struct t_gui_buffer *buffer,
{
pos[0] = '\0';
pos++;
if (util_parse_int (pos, 10, &number))
value = number;
error = NULL;
number = strtol (pos, &error, 10);
if (error && !error[0])
value = (int)number;
}
hashtable_set (buffer->hotlist_max_level_nicks, nicks[i], &value);
hashtable_set (buffer->hotlist_max_level_nicks, nicks[i],
&value);
}
string_free_split (nicks);
}
@@ -2442,7 +2454,9 @@ void
gui_buffer_set_unread (struct t_gui_buffer *buffer, const char *argument)
{
struct t_gui_line *old_last_read_line;
int i, number, old_first_line_not_read;
int i, old_first_line_not_read;
long number;
char *error;
if (!buffer || (buffer->type != GUI_BUFFER_TYPE_FORMATTED))
return;
@@ -2465,7 +2479,9 @@ gui_buffer_set_unread (struct t_gui_buffer *buffer, const char *argument)
else if (argument[0] == '-')
{
/* move the unread marker N lines towards the first line */
if (util_parse_int (argument, 10, &number) && (number < 0))
error = NULL;
number = strtol (argument, &error, 10);
if (error && !error[0] && (number < 0))
{
for (i = 0; i > number; i--)
{
@@ -2491,7 +2507,9 @@ gui_buffer_set_unread (struct t_gui_buffer *buffer, const char *argument)
else if (argument[0] == '+')
{
/* move the unread marker N lines towards the last line */
if (util_parse_int (argument, 10, &number) && (number > 0))
error = NULL;
number = strtol (argument, &error, 10);
if (error && !error[0] && (number > 0))
{
for (i = 0; i < number; i++)
{
@@ -2515,7 +2533,9 @@ gui_buffer_set_unread (struct t_gui_buffer *buffer, const char *argument)
else
{
/* move the unread marker N lines from the end towards the first line */
if (util_parse_int (argument, 10, &number) && (number > 0))
error = NULL;
number = strtol (argument, &error, 10);
if (error && !error[0] && (number > 0))
{
buffer->lines->last_read_line = buffer->lines->last_line;
buffer->lines->first_line_not_read = 0;
@@ -2549,7 +2569,8 @@ void
gui_buffer_set (struct t_gui_buffer *buffer, const char *property,
const char *value)
{
int number;
long number;
char *error;
if (!property || !value)
return;
@@ -2563,7 +2584,9 @@ gui_buffer_set (struct t_gui_buffer *buffer, const char *property,
gui_add_hotlist = 1;
else if (buffer)
{
if (util_parse_int (value, 10, &number))
error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
{
if (number < 0)
{
@@ -2591,7 +2614,9 @@ gui_buffer_set (struct t_gui_buffer *buffer, const char *property,
/* properties that need a buffer */
if (strcmp (property, "hotlist_conditions") == 0)
{
if (util_parse_int (value, 10, &number))
error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
{
if (number < 0)
{
@@ -2625,7 +2650,9 @@ gui_buffer_set (struct t_gui_buffer *buffer, const char *property,
}
else if (strcmp (property, "hidden") == 0)
{
if (util_parse_int (value, 10, &number))
error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
{
if (number)
gui_buffer_hide (buffer);
@@ -2635,27 +2662,37 @@ gui_buffer_set (struct t_gui_buffer *buffer, const char *property,
}
else if (strcmp (property, "print_hooks_enabled") == 0)
{
if (util_parse_int (value, 10, &number))
error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
buffer->print_hooks_enabled = (number) ? 1 : 0;
}
else if (strcmp (property, "day_change") == 0)
{
if (util_parse_int (value, 10, &number))
error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
gui_buffer_set_day_change (buffer, number);
}
else if (strcmp (property, "clear") == 0)
{
if (util_parse_int (value, 10, &number))
error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
buffer->clear = (number) ? 1 : 0;
}
else if (strcmp (property, "filter") == 0)
{
if (util_parse_int (value, 10, &number))
error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
gui_buffer_set_filter (buffer, number);
}
else if (strcmp (property, "number") == 0)
{
if (util_parse_int (value, 10, &number) && (number >= 1))
error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0] && (number >= 1))
gui_buffer_move_to_number (buffer, number);
}
else if (strcmp (property, "name") == 0)
@@ -2687,22 +2724,30 @@ gui_buffer_set (struct t_gui_buffer *buffer, const char *property,
}
else if (strcmp (property, "time_for_each_line") == 0)
{
if (util_parse_int (value, 10, &number))
error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
gui_buffer_set_time_for_each_line (buffer, number);
}
else if (strcmp (property, "nicklist") == 0)
{
if (util_parse_int (value, 10, &number))
error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
gui_buffer_set_nicklist (buffer, number);
}
else if (strcmp (property, "nicklist_case_sensitive") == 0)
{
if (util_parse_int (value, 10, &number))
error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
gui_buffer_set_nicklist_case_sensitive (buffer, number);
}
else if (strcmp (property, "nicklist_display_groups") == 0)
{
if (util_parse_int (value, 10, &number))
error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
gui_buffer_set_nicklist_display_groups (buffer, number);
}
else if (strcmp (property, "highlight_words") == 0)
@@ -2771,27 +2816,37 @@ gui_buffer_set (struct t_gui_buffer *buffer, const char *property,
}
else if (strcmp (property, "input_pos") == 0)
{
if (util_parse_int (value, 10, &number))
error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
gui_input_set_pos (buffer, number);
}
else if (strcmp (property, "input_get_any_user_data") == 0)
{
if (util_parse_int (value, 10, &number))
error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
gui_buffer_set_input_get_any_user_data (buffer, number);
}
else if (strcmp (property, "input_get_unknown_commands") == 0)
{
if (util_parse_int (value, 10, &number))
error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
gui_buffer_set_input_get_unknown_commands (buffer, number);
}
else if (strcmp (property, "input_get_empty") == 0)
{
if (util_parse_int (value, 10, &number))
error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
gui_buffer_set_input_get_empty (buffer, number);
}
else if (strcmp (property, "input_multiline") == 0)
{
if (util_parse_int (value, 10, &number))
error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
gui_buffer_set_input_multiline (buffer, number);
}
else if (strncmp (property, "localvar_set_", 13) == 0)
@@ -3021,6 +3076,7 @@ gui_buffer_search (const char *plugin, const char *name)
struct t_gui_buffer *ptr_buffer;
int plugin_match, plugin_case_sensitive, name_case_sensitive;
long long id;
char *error;
if (!name || !name[0])
return gui_current_window->buffer;
@@ -3030,9 +3086,9 @@ gui_buffer_search (const char *plugin, const char *name)
if (plugin && (strcmp (plugin, "==id") == 0))
{
if (util_parse_longlong (name, 10, &id))
return gui_buffer_search_by_id (id);
return NULL;
error = NULL;
id = strtoll (name, &error, 10);
return (error && !error[0]) ? gui_buffer_search_by_id (id) : NULL;
}
plugin_case_sensitive = 1;
@@ -3261,13 +3317,16 @@ gui_buffer_search_by_id_number_name (const char *string)
{
struct t_gui_buffer *ptr_buffer;
long long number;
char *error;
if (!string || !string[0])
if (!string)
return NULL;
ptr_buffer = NULL;
if (util_parse_longlong (string, 10, &number))
error = NULL;
number = strtoll (string, &error, 10);
if (error && !error[0])
{
ptr_buffer = gui_buffer_search_by_id (number);
if (!ptr_buffer)
@@ -3775,7 +3834,6 @@ gui_buffer_close (struct t_gui_buffer *buffer)
gui_hotlist_remove_buffer (buffer, 1);
free (buffer->hotlist_removed);
buffer->hotlist_removed = NULL;
if (gui_hotlist_initial_buffer == buffer)
gui_hotlist_initial_buffer = NULL;
@@ -3794,85 +3852,55 @@ gui_buffer_close (struct t_gui_buffer *buffer)
/* free all lines */
gui_line_free_all (buffer);
free (buffer->own_lines);
buffer->own_lines = NULL;
free (buffer->mixed_lines);
buffer->mixed_lines = NULL;
/* free some data */
gui_buffer_undo_free_all (buffer);
gui_history_buffer_free (buffer);
gui_completion_free (buffer->completion);
buffer->completion = NULL;
gui_nicklist_remove_all (buffer);
gui_nicklist_remove_group (buffer, buffer->nicklist_root);
buffer->nicklist_root = NULL;
hashtable_free (buffer->hotlist_max_level_nicks);
buffer->hotlist_max_level_nicks = NULL;
gui_key_free_all (-1, &buffer->keys, &buffer->last_key,
&buffer->keys_count, 0);
gui_buffer_local_var_remove_all (buffer);
hashtable_free (buffer->local_variables);
buffer->local_variables = NULL;
free (buffer->plugin_name_for_upgrade);
buffer->plugin_name_for_upgrade = NULL;
free (buffer->name);
buffer->name = NULL;
free (buffer->full_name);
buffer->full_name = NULL;
free (buffer->old_full_name);
buffer->old_full_name = NULL;
free (buffer->short_name);
buffer->short_name = NULL;
free (buffer->title);
buffer->title = NULL;
free (buffer->modes);
buffer->modes = NULL;
free (buffer->input_prompt);
buffer->input_prompt = NULL;
free (buffer->input_buffer);
buffer->input_buffer = NULL;
free (buffer->input_undo_snap);
buffer->input_undo_snap = NULL;
free (buffer->text_search_input);
buffer->text_search_input = NULL;
if (buffer->text_search_regex_compiled)
{
regfree (buffer->text_search_regex_compiled);
free (buffer->text_search_regex_compiled);
buffer->text_search_regex_compiled = NULL;
}
free (buffer->highlight_words);
buffer->highlight_words = NULL;
free (buffer->highlight_disable_regex);
buffer->highlight_disable_regex = NULL;
if (buffer->highlight_disable_regex_compiled)
{
regfree (buffer->highlight_disable_regex_compiled);
free (buffer->highlight_disable_regex_compiled);
buffer->highlight_disable_regex_compiled = NULL;
}
free (buffer->highlight_regex);
buffer->highlight_regex = NULL;
if (buffer->highlight_regex_compiled)
{
regfree (buffer->highlight_regex_compiled);
free (buffer->highlight_regex_compiled);
buffer->highlight_regex_compiled = NULL;
}
free (buffer->highlight_tags_restrict);
buffer->highlight_tags_restrict = NULL;
string_free_split_tags (buffer->highlight_tags_restrict_array);
buffer->highlight_tags_restrict_array = NULL;
free (buffer->highlight_tags);
buffer->highlight_tags = NULL;
string_free_split_tags (buffer->highlight_tags_array);
buffer->highlight_tags_array = NULL;
free (buffer->input_callback_data);
buffer->input_callback_data = NULL;
free (buffer->close_callback_data);
buffer->close_callback_data = NULL;
free (buffer->nickcmp_callback_data);
buffer->nickcmp_callback_data = NULL;
/* remove buffer from buffers list */
if (buffer->prev_buffer)
+9 -5
View File
@@ -118,8 +118,8 @@ gui_chat_init (void)
void
gui_chat_prefix_build (void)
{
const char *ptr_prefix, *pos_color;
char prefix[512];
const char *ptr_prefix;
char prefix[512], *pos_color;
int prefix_color[GUI_CHAT_NUM_PREFIXES] =
{ GUI_COLOR_CHAT_PREFIX_ERROR, GUI_COLOR_CHAT_PREFIX_NETWORK,
GUI_COLOR_CHAT_PREFIX_ACTION, GUI_COLOR_CHAT_PREFIX_JOIN,
@@ -1400,7 +1400,7 @@ gui_chat_hsignal_quote_line_cb (const void *pointer, void *data,
struct timeval tv;
struct t_gui_line *ptr_line;
int is_nick, rc;
char str_time[128], *str;
char str_time[128], *str, *error;
/* make C compiler happy */
(void) pointer;
@@ -1415,7 +1415,9 @@ gui_chat_hsignal_quote_line_cb (const void *pointer, void *data,
hashtable_get (hashtable, "_chat_line_date") : NULL;
if (ptr_date)
{
if (util_parse_longlong (ptr_date, 10, &number))
error = NULL;
number = strtoll (ptr_date, &error, 10);
if (error && !error[0])
{
tv.tv_sec = (time_t)number;
tv.tv_usec = 0;
@@ -1423,7 +1425,9 @@ gui_chat_hsignal_quote_line_cb (const void *pointer, void *data,
hashtable_get (hashtable, "_chat_line_date_usec") : NULL;
if (ptr_date_usec)
{
if (util_parse_longlong (ptr_date_usec, 10, &number))
error = NULL;
number = strtoll (ptr_date_usec, &error, 10);
if (error && !error[0])
tv.tv_usec = (long)number;
}
util_strftimeval (str_time, sizeof (str_time),
+41 -17
View File
@@ -41,7 +41,6 @@
#include "../core/core-list.h"
#include "../core/core-string.h"
#include "../core/core-utf8.h"
#include "../core/core-util.h"
#include "../plugins/plugin.h"
#include "gui-color.h"
#include "gui-chat.h"
@@ -171,7 +170,8 @@ gui_color_search_config (const char *color_name)
/* search in any configuration file (example: "irc.color.message_quit") */
if (strchr (color_name, '.'))
{
config_file_search_with_string (color_name, NULL, NULL, &ptr_option, NULL);
config_file_search_with_string (color_name, NULL, NULL, &ptr_option,
NULL);
if (ptr_option)
return gui_color_from_option (ptr_option);
}
@@ -255,8 +255,8 @@ gui_color_get_custom (const char *color_name)
static char color[32][96];
static int index_color = 0;
char color_fg[32], color_bg[32];
char *str_fg, *color_attr;
const char *ptr_color_name, *pos_delim, *pos_bg;
char *pos_delim, *str_fg, *pos_bg, *error, *color_attr;
const char *ptr_color_name;
/* attribute or other color name (GUI dependent) */
index_color = (index_color + 1) % 32;
@@ -439,7 +439,9 @@ gui_color_get_custom (const char *color_name)
fg_term = gui_color_palette_get_alias (str_fg);
if (fg_term < 0)
{
if (util_parse_int (str_fg, 10, &term_color))
error = NULL;
term_color = (int)strtol (str_fg, &error, 10);
if (error && !error[0])
{
fg_term = term_color;
if (fg_term < 0)
@@ -456,7 +458,9 @@ gui_color_get_custom (const char *color_name)
bg_term = gui_color_palette_get_alias (pos_bg);
if (bg_term < 0)
{
if (util_parse_int (pos_bg, 10, &term_color))
error = NULL;
term_color = (int)strtol (pos_bg, &error, 10);
if (error && !error[0])
{
bg_term = term_color;
if (bg_term < 0)
@@ -1283,7 +1287,7 @@ char *
gui_color_encode_ansi (const char *string)
{
const unsigned char *ptr_string;
char **out, str_concat[128], str_color[8];
char **out, str_concat[128], str_color[8], *error;
int flag, color, length, ansi_color, fg, bg, attrs;
if (!string)
@@ -1317,7 +1321,9 @@ gui_color_encode_ansi (const char *string)
{
memcpy (str_color, ptr_string, 5);
str_color[5] = '\0';
if (util_parse_int (str_color, 10, &color))
error = NULL;
color = (int)strtol (str_color, &error, 10);
if (error && !error[0])
{
snprintf (str_concat, sizeof (str_concat),
"\x1B[38;5;%dm",
@@ -1338,7 +1344,9 @@ gui_color_encode_ansi (const char *string)
{
memcpy (str_color, ptr_string, 2);
str_color[2] = '\0';
if (util_parse_int (str_color, 10, &color))
error = NULL;
color = (int)strtol (str_color, &error, 10);
if (error && !error[0])
{
ansi_color = gui_color_weechat_to_ansi (color);
snprintf (str_concat, sizeof (str_concat),
@@ -1363,7 +1371,9 @@ gui_color_encode_ansi (const char *string)
{
memcpy (str_color, ptr_string, 5);
str_color[5] = '\0';
if (util_parse_int (str_color, 10, &color))
error = NULL;
color = (int)strtol (str_color, &error, 10);
if (error && !error[0])
{
snprintf (str_concat, sizeof (str_concat),
"\x1B[48;5;%dm",
@@ -1379,7 +1389,9 @@ gui_color_encode_ansi (const char *string)
{
memcpy (str_color, ptr_string, 2);
str_color[2] = '\0';
if (util_parse_int (str_color, 10, &color))
error = NULL;
color = (int)strtol (str_color, &error, 10);
if (error && !error[0])
{
ansi_color = gui_color_weechat_to_ansi (color);
snprintf (str_concat, sizeof (str_concat),
@@ -1409,7 +1421,9 @@ gui_color_encode_ansi (const char *string)
{
memcpy (str_color, ptr_string, 5);
str_color[5] = '\0';
if (util_parse_int (str_color, 10, &color))
error = NULL;
color = (int)strtol (str_color, &error, 10);
if (error && !error[0])
{
snprintf (str_concat, sizeof (str_concat),
"\x1B[38;5;%dm",
@@ -1430,7 +1444,9 @@ gui_color_encode_ansi (const char *string)
{
memcpy (str_color, ptr_string, 2);
str_color[2] = '\0';
if (util_parse_int (str_color, 10, &color))
error = NULL;
color = (int)strtol (str_color, &error, 10);
if (error && !error[0])
{
ansi_color = gui_color_weechat_to_ansi (color);
snprintf (str_concat, sizeof (str_concat),
@@ -1461,7 +1477,9 @@ gui_color_encode_ansi (const char *string)
{
memcpy (str_color, ptr_string, 5);
str_color[5] = '\0';
if (util_parse_int (str_color, 10, &color))
error = NULL;
color = (int)strtol (str_color, &error, 10);
if (error && !error[0])
{
snprintf (str_concat, sizeof (str_concat),
"\x1B[48;5;%dm",
@@ -1478,7 +1496,9 @@ gui_color_encode_ansi (const char *string)
{
memcpy (str_color, ptr_string, 2);
str_color[2] = '\0';
if (util_parse_int (str_color, 10, &color))
error = NULL;
color = (int)strtol (str_color, &error, 10);
if (error && !error[0])
{
ansi_color = gui_color_weechat_to_ansi (color);
snprintf (str_concat, sizeof (str_concat),
@@ -1502,7 +1522,9 @@ gui_color_encode_ansi (const char *string)
{
memcpy (str_color, ptr_string, 5);
str_color[5] = '\0';
if (util_parse_int (str_color, 10, &color))
error = NULL;
color = (int)strtol (str_color, &error, 10);
if (error && !error[0])
{
snprintf (str_concat, sizeof (str_concat),
"\x1B[38;5;%dm",
@@ -1574,7 +1596,9 @@ gui_color_encode_ansi (const char *string)
{
memcpy (str_color, ptr_string, 2);
str_color[2] = '\0';
if (util_parse_int (str_color, 10, &color)
error = NULL;
color = (int)strtol (str_color, &error, 10);
if (error && !error[0]
&& (color >= 0)
&& (color < GUI_COLOR_NUM_COLORS))
{
+2 -2
View File
@@ -366,8 +366,8 @@ gui_filter_new (int enabled, const char *name, const char *buffer_name,
{
struct t_gui_filter *new_filter;
regex_t *regex1, *regex2;
char *regex_prefix, buf[512], str_error[1024];
const char *ptr_start_regex, *pos_regex_message, *pos_tab;
char *pos_tab, *regex_prefix, buf[512], str_error[1024];
const char *ptr_start_regex, *pos_regex_message;
int rc;
if (!name || !buffer_name || !tags || !regex)
+9 -5
View File
@@ -32,7 +32,6 @@
#include "../core/core-hashtable.h"
#include "../core/core-hook.h"
#include "../core/core-string.h"
#include "../core/core-util.h"
#include "../plugins/plugin.h"
#include "gui-bar.h"
#include "gui-bar-window.h"
@@ -281,10 +280,11 @@ gui_focus_info_hashtable_gui_focus_info_cb (const void *pointer, void *data,
const char *info_name,
struct t_hashtable *hashtable)
{
struct t_gui_focus_info *focus_info;
struct t_hashtable *focus_hashtable, *ret_hashtable;
char *error;
const char *ptr_value;
int x, y;
struct t_gui_focus_info *focus_info;
struct t_hashtable *focus_hashtable, *ret_hashtable;
/* make C compiler happy */
(void) pointer;
@@ -298,13 +298,17 @@ gui_focus_info_hashtable_gui_focus_info_cb (const void *pointer, void *data,
ptr_value = hashtable_get (hashtable, "x");
if (!ptr_value)
return NULL;
if (!util_parse_int (ptr_value, 10, &x))
error = NULL;
x = (int)strtol (ptr_value, &error, 10);
if (!error || error[0])
return NULL;
ptr_value = hashtable_get (hashtable, "y");
if (!ptr_value)
return NULL;
if (!util_parse_int (ptr_value, 10, &y))
error = NULL;
y = (int)strtol (ptr_value, &error, 10);
if (!error || error[0])
return NULL;
/* get focus info */
+7 -3
View File
@@ -623,8 +623,10 @@ void
gui_hotlist_clear_level_string (struct t_gui_buffer *buffer,
const char *str_level_mask)
{
long level_mask;
char *error;
struct t_gui_hotlist *ptr_hotlist;
int level_mask, priority;
int priority;
if (str_level_mask)
{
@@ -663,9 +665,11 @@ gui_hotlist_clear_level_string (struct t_gui_buffer *buffer,
else
{
/* clear hotlist using a mask of levels */
if (util_parse_int (str_level_mask, 10, &level_mask) && (level_mask > 0))
error = NULL;
level_mask = strtol (str_level_mask, &error, 10);
if (error && !error[0] && (level_mask > 0))
{
gui_hotlist_clear (level_mask);
gui_hotlist_clear ((int)level_mask);
gui_hotlist_initial_buffer = buffer;
}
}
+6 -4
View File
@@ -44,7 +44,6 @@
#include "../core/core-log.h"
#include "../core/core-string.h"
#include "../core/core-utf8.h"
#include "../core/core-util.h"
#include "../plugins/plugin.h"
#include "gui-key.h"
#include "gui-bar.h"
@@ -194,7 +193,8 @@ gui_key_get_current_context (void)
void
gui_key_grab_init (int grab_command, const char *delay)
{
int milliseconds;
long milliseconds;
char *error;
gui_key_grab = 1;
gui_key_grab_count = 0;
@@ -203,7 +203,9 @@ gui_key_grab_init (int grab_command, const char *delay)
gui_key_grab_delay = CONFIG_INTEGER(config_look_key_grab_delay);
if (delay != NULL)
{
if (util_parse_int (delay, 10, &milliseconds) && (milliseconds >= 0))
error = NULL;
milliseconds = strtol (delay, &error, 10);
if (error && !error[0] && (milliseconds >= 0))
{
gui_key_grab_delay = milliseconds;
if (gui_key_grab_delay == 0)
@@ -1074,7 +1076,7 @@ gui_key_set_area_type_name (const char *area,
int *area_type, char **area_name)
{
int focus, length;
const char *pos_end;
char *pos_end;
for (focus = 0; focus < GUI_KEY_NUM_FOCUS; focus++)
{
+28 -24
View File
@@ -39,7 +39,6 @@
#include "../core/core-infolist.h"
#include "../core/core-log.h"
#include "../core/core-string.h"
#include "../core/core-util.h"
#include "../plugins/plugin.h"
#include "gui-line.h"
#include "gui-buffer.h"
@@ -1675,10 +1674,10 @@ gui_line_hook_update (struct t_gui_line *line,
const char *ptr_value, *ptr_value2;
struct t_gui_buffer *ptr_buffer;
unsigned long value_pointer;
long long value_longlong;
char *new_message, *pos_newline;
long value;
char *error, *new_message, *pos_newline;
int rc, tags_updated, notify_level_updated, highlight_updated;
int max_notify_level, value;
int max_notify_level;
tags_updated = 0;
notify_level_updated = 0;
@@ -1731,7 +1730,9 @@ gui_line_hook_update (struct t_gui_line *line,
ptr_value = hashtable_get (hashtable2, "y");
if (ptr_value)
{
if (util_parse_int (ptr_value, 10, &value) && (value >= 0))
error = NULL;
value = strtol (ptr_value, &error, 10);
if (error && !error[0] && (value >= 0))
line->data->y = value;
}
}
@@ -1739,8 +1740,9 @@ gui_line_hook_update (struct t_gui_line *line,
ptr_value2 = hashtable_get (hashtable2, "notify_level");
if (ptr_value2)
{
if (util_parse_int (ptr_value2, 10, &value)
&& (value >= -1) && (value <= GUI_HOTLIST_MAX))
error = NULL;
value = strtol (ptr_value2, &error, 10);
if (error && !error[0] && (value >= -1) && (value <= GUI_HOTLIST_MAX))
{
notify_level_updated = 1;
line->data->notify_level = value;
@@ -1750,7 +1752,9 @@ gui_line_hook_update (struct t_gui_line *line,
ptr_value2 = hashtable_get (hashtable2, "highlight");
if (ptr_value2)
{
if (util_parse_int (ptr_value2, 10, &value))
error = NULL;
value = strtol (ptr_value2, &error, 10);
if (error && !error[0])
{
highlight_updated = 1;
line->data->highlight = (value) ? 1 : 0;
@@ -1760,10 +1764,11 @@ gui_line_hook_update (struct t_gui_line *line,
ptr_value2 = hashtable_get (hashtable2, "date");
if (ptr_value2)
{
if (util_parse_longlong (ptr_value2, 10, &value_longlong)
&& (value_longlong >= 0))
error = NULL;
value = strtol (ptr_value2, &error, 10);
if (error && !error[0] && (value >= 0))
{
line->data->date = (time_t)value_longlong;
line->data->date = (time_t)value;
free (line->data->str_time);
line->data->str_time = gui_chat_get_time_string (
line->data->date,
@@ -1775,10 +1780,11 @@ gui_line_hook_update (struct t_gui_line *line,
ptr_value2 = hashtable_get (hashtable2, "date_usec");
if (ptr_value2)
{
if (util_parse_int (ptr_value2, 10, &value)
&& (value >= 0) && (value <= 999999))
error = NULL;
value = strtol (ptr_value2, &error, 10);
if (error && !error[0] && (value >= 0) && (value <= 999999))
{
line->data->date_usec = value;
line->data->date_usec = (int)value;
free (line->data->str_time);
line->data->str_time = gui_chat_get_time_string (
line->data->date,
@@ -1790,21 +1796,19 @@ gui_line_hook_update (struct t_gui_line *line,
ptr_value2 = hashtable_get (hashtable2, "date_printed");
if (ptr_value2)
{
if (util_parse_longlong (ptr_value2, 10, &value_longlong)
&& (value_longlong >= 0))
{
line->data->date_printed = (time_t)value_longlong;
}
error = NULL;
value = strtol (ptr_value2, &error, 10);
if (error && !error[0] && (value >= 0))
line->data->date_printed = (time_t)value;
}
ptr_value2 = hashtable_get (hashtable2, "date_usec_printed");
if (ptr_value2)
{
if (util_parse_int (ptr_value2, 10, &value)
&& (value >= 0) && (value <= 999999))
{
line->data->date_usec_printed = value;
}
error = NULL;
value = strtol (ptr_value2, &error, 10);
if (error && !error[0] && (value >= 0) && (value <= 999999))
line->data->date_usec_printed = (int)value;
}
ptr_value = hashtable_get (hashtable, "str_time");
+22 -9
View File
@@ -44,7 +44,6 @@
#include "../core/core-log.h"
#include "../core/core-string.h"
#include "../core/core-utf8.h"
#include "../core/core-util.h"
#include "../plugins/plugin.h"
#include "gui-nicklist.h"
#include "gui-buffer.h"
@@ -276,6 +275,7 @@ gui_nicklist_search_group (struct t_gui_buffer *buffer,
const char *name)
{
const char *ptr_name;
char *error;
long long id;
if ((!buffer && !from_group)
@@ -287,7 +287,8 @@ gui_nicklist_search_group (struct t_gui_buffer *buffer,
if (strncmp (name, "==id:", 5) == 0)
{
if (util_parse_longlong (name + 5, 10, &id))
id = strtoll (name + 5, &error, 10);
if (error && !error[0])
return gui_nicklist_search_group_id (buffer, from_group, id);
}
@@ -569,6 +570,7 @@ gui_nicklist_search_nick (struct t_gui_buffer *buffer,
const char *name)
{
long long id;
char *error;
if ((!buffer && !from_group)
|| !name
@@ -579,7 +581,8 @@ gui_nicklist_search_nick (struct t_gui_buffer *buffer,
if (strncmp (name, "==id:", 5) == 0)
{
if (util_parse_longlong (name + 5, 10, &id))
id = strtoll (name + 5, &error, 10);
if (error && !error[0])
return gui_nicklist_search_nick_id (buffer, from_group, id);
}
@@ -1033,7 +1036,9 @@ gui_nicklist_group_set (struct t_gui_buffer *buffer,
const char *property, const char *value)
{
long long id;
int group_changed, number;
long number;
char *error;
int group_changed;
if (!buffer || !group || !property || !value)
return;
@@ -1042,7 +1047,8 @@ gui_nicklist_group_set (struct t_gui_buffer *buffer,
if (strcmp (property, "id") == 0)
{
if (util_parse_longlong (value, 10, &id)
id = strtoll (value, &error, 10);
if (error && !error[0]
&& (id != group->id)
&& !gui_nicklist_search_group_id (buffer, NULL, id))
{
@@ -1058,7 +1064,9 @@ gui_nicklist_group_set (struct t_gui_buffer *buffer,
}
else if (strcmp (property, "visible") == 0)
{
if (util_parse_int (value, 10, &number))
error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
group->visible = (number) ? 1 : 0;
group_changed = 1;
}
@@ -1150,7 +1158,9 @@ gui_nicklist_nick_set (struct t_gui_buffer *buffer,
const char *property, const char *value)
{
long long id;
int nick_changed, number;
long number;
char *error;
int nick_changed;
if (!buffer || !nick || !property || !value)
return;
@@ -1159,7 +1169,8 @@ gui_nicklist_nick_set (struct t_gui_buffer *buffer,
if (strcmp (property, "id") == 0)
{
if (util_parse_longlong (value, 10, &id)
id = strtoll (value, &error, 10);
if (error && !error[0]
&& (id != nick->id)
&& !gui_nicklist_search_nick_id (buffer, NULL, id))
{
@@ -1187,7 +1198,9 @@ gui_nicklist_nick_set (struct t_gui_buffer *buffer,
}
else if (strcmp (property, "visible") == 0)
{
if (util_parse_int (value, 10, &number))
error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
nick->visible = (number) ? 1 : 0;
nick_changed = 1;
}
+10 -6
View File
@@ -43,7 +43,6 @@
#include "../core/core-log.h"
#include "../core/core-string.h"
#include "../core/core-utf8.h"
#include "../core/core-util.h"
#include "../plugins/plugin.h"
#include "gui-window.h"
#include "gui-bar.h"
@@ -1183,7 +1182,7 @@ gui_window_scroll (struct t_gui_window *window, char *scroll)
int direction, stop, count_msg, scroll_from_end_free_buffer;
char time_letter, saved_char;
time_t old_date, diff_date;
char *pos;
char *pos, *error;
long number;
struct t_gui_line *ptr_line;
struct tm *date_tmp, line_date, old_line_date;
@@ -1232,7 +1231,9 @@ gui_window_scroll (struct t_gui_window *window, char *scroll)
time_letter = pos[0];
saved_char = pos[0];
pos[0] = '\0';
if (!util_parse_long (scroll, 10, &number))
error = NULL;
number = strtol (scroll, &error, 10);
if (!error || error[0])
number = 0;
pos[0] = saved_char;
}
@@ -1429,8 +1430,9 @@ gui_window_scroll (struct t_gui_window *window, char *scroll)
void
gui_window_scroll_horiz (struct t_gui_window *window, char *scroll)
{
int direction, percentage, start_col, number;
char saved_char, *pos;
int direction, percentage, start_col;
char saved_char, *pos, *error;
long number;
if (!window || !window->buffer->lines->first_line)
return;
@@ -1462,7 +1464,9 @@ gui_window_scroll_horiz (struct t_gui_window *window, char *scroll)
percentage = (pos[0] == '%') ? 1 : 0;
saved_char = pos[0];
pos[0] = '\0';
if (!util_parse_int (scroll, 10, &number))
error = NULL;
number = strtol (scroll, &error, 10);
if (!error || error[0])
number = 0;
pos[0] = saved_char;
}
+20 -9
View File
@@ -40,8 +40,9 @@ struct t_hashtable *
buflist_focus_cb (const void *pointer, void *data, struct t_hashtable *info)
{
const char *ptr_bar_item_name, *ptr_bar_item_line, *keys, *ptr_value;
char str_value[128], **list_keys;
int i, item_index, item_line, num_keys, type;
long item_line;
char *error, str_value[128], **list_keys;
int i, item_index, num_keys, type;
struct t_gui_buffer *ptr_buffer;
/* make C compiler happy */
@@ -63,10 +64,15 @@ buflist_focus_cb (const void *pointer, void *data, struct t_hashtable *info)
ptr_bar_item_line = weechat_hashtable_get (info, "_bar_item_line");
if (!ptr_bar_item_line)
goto end;
if (!weechat_util_parse_int (ptr_bar_item_line, 10, &item_line)
|| (item_line < 0)
|| (item_line >= weechat_arraylist_size (buflist_list_buffers[item_index])))
error = NULL;
item_line = strtol (ptr_bar_item_line, &error, 10);
if (!error || error[0])
goto end;
if ((item_line < 0)
|| (item_line >= weechat_arraylist_size (buflist_list_buffers[item_index])))
{
goto end;
}
/* check if buffer pointer is still valid */
ptr_buffer = weechat_arraylist_get (buflist_list_buffers[item_index],
@@ -327,9 +333,10 @@ buflist_hsignal_cb (const void *pointer, void *data, const char *signal,
const char *ptr_key, *ptr_pointer, *ptr_number, *ptr_number2;
const char *ptr_full_name;
struct t_gui_buffer *ptr_buffer;
char str_command[1024];
char *error, str_command[1024];
long number, number2;
unsigned long value;
int rc, current_buffer_number, number, number2;
int rc, current_buffer_number;
/* make C compiler happy */
(void) pointer;
@@ -353,9 +360,13 @@ buflist_hsignal_cb (const void *pointer, void *data, const char *signal,
return WEECHAT_RC_OK;
ptr_buffer = (struct t_gui_buffer *)value;
if (!weechat_util_parse_int (ptr_number, 10, &number))
error = NULL;
number = strtol (ptr_number, &error, 10);
if (!error || error[0])
return WEECHAT_RC_OK;
if (!weechat_util_parse_int (ptr_number2, 10, &number2))
error = NULL;
number2 = strtol (ptr_number2, &error, 10);
if (!error || error[0])
return WEECHAT_RC_OK;
current_buffer_number = weechat_buffer_get_integer (
+2 -2
View File
@@ -54,7 +54,7 @@ const char *buflist_theme_light[][2] =
};
/*
* Register buflist's contribution to one theme from a NULL-terminated
* Registers buflist's contribution to one theme from a NULL-terminated
* table of {option, value} rows.
*/
@@ -83,7 +83,7 @@ buflist_theme_register (const char *name, const char *entries[][2])
}
/*
* Register all built-in theme contributions from buflist.
* Registers all built-in theme contributions from buflist.
*/
void
+5 -3
View File
@@ -185,7 +185,8 @@ exec_command_parse_options (struct t_exec_cmd_options *cmd_options,
int argc, char **argv, int start_arg,
int set_command_index)
{
int i, j, end, length, length_total, timeout;
int i, j, end, length, length_total;
char *error;
for (i = start_arg; i < argc; i++)
{
@@ -317,9 +318,10 @@ exec_command_parse_options (struct t_exec_cmd_options *cmd_options,
if (i + 1 >= argc)
return 0;
i++;
if (!weechat_util_parse_int (argv[i], 10, &timeout))
error = NULL;
cmd_options->timeout = strtol (argv[i], &error, 10);
if (!error || error[0])
return 0;
cmd_options->timeout = timeout;
}
else if (weechat_strcmp (argv[i], "-name") == 0)
{
-15
View File
@@ -32,12 +32,6 @@
#include "exec-theme.h"
/*
* exec contribution to the "light" theme: option values tuned for a
* light-background terminal. Each row is { option_full_name, value };
* the table is NULL-terminated.
*/
const char *exec_theme_light[][2] =
{
{ "exec.color.flag_finished", "red" },
@@ -45,11 +39,6 @@ const char *exec_theme_light[][2] =
{ NULL, NULL },
};
/*
* Register exec's contribution to one theme from a NULL-terminated
* table of {option, value} rows.
*/
void
exec_theme_register (const char *name, const char *entries[][2])
{
@@ -74,10 +63,6 @@ exec_theme_register (const char *name, const char *entries[][2])
weechat_hashtable_free (overrides);
}
/*
* Register all built-in theme contributions from exec.
*/
void
exec_theme_init (void)
{
+6 -3
View File
@@ -86,12 +86,15 @@ struct t_exec_cmd *
exec_search_by_id (const char *id)
{
struct t_exec_cmd* ptr_exec_cmd;
char *error;
long number;
if (!id)
return NULL;
if (!weechat_util_parse_long (id, 10, &number))
error = NULL;
number = strtol (id, &error, 10);
if (!error || error[0])
number = -1;
for (ptr_exec_cmd = exec_cmds; ptr_exec_cmd;
@@ -740,10 +743,10 @@ weechat_plugin_init (struct t_weechat_plugin *plugin, int argc, char *argv[])
if (!exec_config_init ())
return WEECHAT_RC_ERROR;
exec_config_read ();
exec_theme_init ();
exec_config_read ();
/* hook some signals */
weechat_hook_signal ("debug_dump", &exec_debug_dump_cb, NULL, NULL);
+7 -4
View File
@@ -60,12 +60,15 @@ int
fset_command_get_int_arg (int argc, char **argv, int arg_number,
int default_value)
{
int value;
long value;
char *error;
value = default_value;
if (argc > arg_number)
{
if (!weechat_util_parse_int (argv[arg_number], 10, &value))
error = NULL;
value = strtol (argv[arg_number], &error, 10);
if (!error || error[0])
value = default_value;
}
return (int)value;
@@ -700,8 +703,8 @@ fset_command_init (void)
N_("> `f:xxx`: show only configuration file \"xxx\""),
N_("> `t:xxx`: show only type \"xxx\" (bool/int/str/col/enum "
"or boolean/integer/string/color/enum); the special value "
"\"themable\" can be used to show all options that can be "
"used in themes, regardless of type"),
"\"themable\" matches all options with the themable flag, "
"regardless of type"),
N_("> `d`: show only changed options"),
N_("> `d:xxx`: show only changed options with \"xxx\" in "
"name"),
+14 -8
View File
@@ -42,10 +42,11 @@ struct t_hashtable *
fset_mouse_focus_cb (const void *pointer, void *data, struct t_hashtable *info)
{
const char *buffer;
int rc, format_number, y, option_index;
int rc, format_number;
unsigned long value;
struct t_gui_buffer *ptr_buffer;
char str_value[128];
long y, option_index;
char *error, str_value[128];
struct t_fset_option *ptr_fset_option;
/* make C compiler happy */
@@ -68,11 +69,13 @@ fset_mouse_focus_cb (const void *pointer, void *data, struct t_hashtable *info)
if (!ptr_buffer || (ptr_buffer != fset_buffer))
return info;
if (!weechat_util_parse_int (weechat_hashtable_get (info, "_chat_line_y"), 10, &y)
|| (y < 0))
{
error = NULL;
y = strtol (weechat_hashtable_get (info, "_chat_line_y"), &error, 10);
if (!error || error[0])
return info;
if (y < 0)
return info;
}
format_number = weechat_config_integer (fset_config_look_format_number);
option_index = y / fset_config_format_option_num_lines[format_number - 1];
@@ -84,7 +87,7 @@ fset_mouse_focus_cb (const void *pointer, void *data, struct t_hashtable *info)
snprintf (str_value, sizeof (str_value),
"0x%lx", (unsigned long)ptr_fset_option);
weechat_hashtable_set (info, "fset_option", str_value);
snprintf (str_value, sizeof (str_value), "%d", option_index);
snprintf (str_value, sizeof (str_value), "%ld", option_index);
weechat_hashtable_set (info, "fset_option_index", str_value);
weechat_hashtable_set (info, "fset_option_name", ptr_fset_option->name);
weechat_hashtable_set (info, "fset_option_parent_name", ptr_fset_option->parent_name);
@@ -134,12 +137,15 @@ fset_mouse_get_hashtable_int (struct t_hashtable *hashtable,
int default_value)
{
const char *ptr_value;
char *error;
int value;
ptr_value = weechat_hashtable_get (hashtable, variable);
if (!ptr_value)
return default_value;
if (!weechat_util_parse_int (ptr_value, 10, &value))
error = NULL;
value = (int)strtol (ptr_value, &error, 10);
if (!error || error[0])
return default_value;
return value;
+2 -2
View File
@@ -91,7 +91,7 @@ const char *fset_theme_light[][2] =
};
/*
* Register fset's contribution to one theme from a NULL-terminated
* Registers fset's contribution to one theme from a NULL-terminated
* table of {option, value} rows.
*/
@@ -120,7 +120,7 @@ fset_theme_register (const char *name, const char *entries[][2])
}
/*
* Register all built-in theme contributions from fset.
* Registers all built-in theme contributions from fset.
*/
void
+5 -5
View File
@@ -2122,7 +2122,7 @@ weechat_guile_api_print_date_tags (SCM buffer, SCM date, SCM tags, SCM message)
plugin_script_api_printf_date_tags (weechat_guile_plugin,
guile_current_script,
API_STR2PTR(API_SCM_TO_STRING(buffer)),
(time_t)scm_to_long_long (date),
(time_t)scm_to_long (date),
API_SCM_TO_STRING(tags),
"%s", API_SCM_TO_STRING(message));
@@ -2143,7 +2143,7 @@ weechat_guile_api_print_datetime_tags (SCM buffer, SCM date, SCM date_usec,
weechat_guile_plugin,
guile_current_script,
API_STR2PTR(API_SCM_TO_STRING(buffer)),
(time_t)scm_to_long_long (date),
(time_t)scm_to_long (date),
scm_to_int (date_usec),
API_SCM_TO_STRING(tags),
"%s", API_SCM_TO_STRING(message));
@@ -2182,7 +2182,7 @@ weechat_guile_api_print_y_date_tags (SCM buffer, SCM y, SCM date, SCM tags,
guile_current_script,
API_STR2PTR(API_SCM_TO_STRING(buffer)),
scm_to_int (y),
(time_t)scm_to_long_long (date),
(time_t)scm_to_long (date),
API_SCM_TO_STRING(tags),
"%s", API_SCM_TO_STRING(message));
@@ -2204,7 +2204,7 @@ weechat_guile_api_print_y_datetime_tags (SCM buffer, SCM y, SCM date,
guile_current_script,
API_STR2PTR(API_SCM_TO_STRING(buffer)),
scm_to_int (y),
(time_t)scm_to_long_long (date),
(time_t)scm_to_long (date),
scm_to_int (date_usec),
API_SCM_TO_STRING(tags),
"%s", API_SCM_TO_STRING(message));
@@ -4774,7 +4774,7 @@ weechat_guile_api_infolist_new_var_time (SCM item, SCM name, SCM value)
result = API_PTR2STR(weechat_infolist_new_var_time (API_STR2PTR(API_SCM_TO_STRING(item)),
API_SCM_TO_STRING(name),
(time_t)scm_to_long_long (value)));
(time_t)scm_to_long (value)));
API_RETURN_STRING(result);
}
+28 -15
View File
@@ -96,8 +96,8 @@ char *irc_color_string_decoded[32];
int
irc_color_convert_rgb2term (long rgb)
{
char str_color[64], *info_color;
int number;
char str_color[64], *info_color, *error;
long number;
if (rgb < 0)
return -1;
@@ -111,7 +111,9 @@ irc_color_convert_rgb2term (long rgb)
return -1;
}
if (!weechat_util_parse_int (info_color, 10, &number))
error = NULL;
number = strtol (info_color, &error, 10);
if (!error || error[0])
{
free (info_color);
return -1;
@@ -119,7 +121,7 @@ irc_color_convert_rgb2term (long rgb)
free (info_color);
return number;
return (int)number;
}
/*
@@ -131,8 +133,8 @@ irc_color_convert_rgb2term (long rgb)
int
irc_color_convert_rgb2irc (long rgb)
{
char str_color[64], *info_color;
int number;
char str_color[64], *error, *info_color;
long number;
if (rgb < 0)
return -1;
@@ -149,7 +151,9 @@ irc_color_convert_rgb2irc (long rgb)
return -1;
}
if (!weechat_util_parse_int (info_color, 10, &number)
error = NULL;
number = strtol (info_color, &error, 10);
if (!error || error[0]
|| (number < 0) || (number >= IRC_COLOR_TERM2IRC_NUM_COLORS))
{
free (info_color);
@@ -170,7 +174,7 @@ irc_color_convert_rgb2irc (long rgb)
int
irc_color_convert_term2irc (int color)
{
char str_color[64], *info_color;
char str_color[64], *error, *info_color;
long number;
snprintf (str_color, sizeof (str_color), "%d", color);
@@ -182,8 +186,9 @@ irc_color_convert_term2irc (int color)
return -1;
}
if (!weechat_util_parse_long (info_color, 10, &number)
|| (number < 0) || (number > 0xFFFFFF))
error = NULL;
number = strtol (info_color, &error, 10);
if (!error || error[0] || (number < 0) || (number > 0xFFFFFF))
{
free (info_color);
return -1;
@@ -206,7 +211,7 @@ irc_color_convert_term2irc (int color)
char *
irc_color_decode (const char *string, int keep_colors)
{
char **out;
char **out, *error;
char str_fg[16], str_bg[16], str_color[128], str_key[128], str_to_add[128];
const char *remapped_color;
unsigned char *ptr_string;
@@ -332,14 +337,18 @@ irc_color_decode (const char *string, int keep_colors)
bg = -1;
if (str_fg[0])
{
if (weechat_util_parse_int (str_fg, 10, &fg))
error = NULL;
fg = (int)strtol (str_fg, &error, 10);
if (error && !error[0])
fg %= IRC_NUM_COLORS;
else
fg = -1;
}
if (str_bg[0])
{
if (weechat_util_parse_int (str_bg, 10, &bg))
error = NULL;
bg = (int)strtol (str_bg, &error, 10);
if (error && !error[0])
bg %= IRC_NUM_COLORS;
else
bg = -1;
@@ -413,12 +422,16 @@ irc_color_decode (const char *string, int keep_colors)
bg_rgb = -1;
if (str_fg[0])
{
if (!weechat_util_parse_long (str_fg, 16, &fg_rgb))
error = NULL;
fg_rgb = strtol (str_fg, &error, 16);
if (!error || error[0])
fg_rgb = -1;
}
if (str_bg[0])
{
if (!weechat_util_parse_long (str_bg, 16, &bg_rgb))
error = NULL;
bg_rgb = strtol (str_bg, &error, 16);
if (!error || error[0])
bg_rgb = -1;
}
str_fg[0] = '\0';
+30 -15
View File
@@ -232,8 +232,9 @@ irc_command_mode_nicks (struct t_irc_server *server,
char **
irc_command_mode_masks_convert_ranges (char **argv, int arg_start)
{
char **str_masks, **masks, *pos, str_number[32];
int i, j, length, added, number1, number2;
char **str_masks, **masks, *error1, *error2, *pos, str_number[32];
int i, length, added;
long j, number1, number2;
if (!argv || (arg_start < 0))
return NULL;
@@ -254,8 +255,12 @@ irc_command_mode_masks_convert_ranges (char **argv, int arg_start)
&& (argv[i][length - 1] != '-'))
{
pos[0] = '\0';
if (weechat_util_parse_int (argv[i], 10, &number1)
&& weechat_util_parse_int (pos + 1, 10, &number2)
error1 = NULL;
number1 = strtol (argv[i], &error1, 10);
error2 = NULL;
number2 = strtol (pos + 1, &error2, 10);
if (error1 && !error1[0]
&& error2 && !error2[0]
&& (number1 > 0) && (number1 < 128)
&& (number2 > 0) && (number2 < 128)
&& (number1 < number2))
@@ -264,7 +269,8 @@ irc_command_mode_masks_convert_ranges (char **argv, int arg_start)
{
if ((*str_masks)[0])
weechat_string_dyn_concat (str_masks, " ", -1);
snprintf (str_number, sizeof (str_number), "%d", j);
snprintf (str_number, sizeof (str_number),
"%ld", j);
weechat_string_dyn_concat (str_masks, str_number, -1);
}
added = 1;
@@ -306,12 +312,14 @@ irc_command_mode_masks (struct t_irc_server *server,
const char *set, const char *mode,
char **argv, int pos_masks)
{
int max_modes, modes_added, msg_priority, number;
int max_modes, modes_added, msg_priority;
char **modes, **masks, *mask;
struct t_irc_channel *ptr_channel;
struct t_irc_nick *ptr_nick;
struct t_irc_modelist *ptr_modelist;
struct t_irc_modelist_item *ptr_item;
long number;
char *error;
if (irc_mode_get_chanmode_type (server, mode[0]) != 'A')
{
@@ -359,7 +367,9 @@ irc_command_mode_masks (struct t_irc_server *server,
/* use modelist item for number arguments */
if (ptr_modelist && (set[0] == '-'))
{
if (weechat_util_parse_int (argv[pos_masks], 10, &number))
error = NULL;
number = strtol (argv[pos_masks], &error, 10);
if (error && !error[0])
{
ptr_item = irc_modelist_item_search_number (ptr_modelist,
number - 1);
@@ -2612,8 +2622,9 @@ irc_command_ignore_display (struct t_irc_ignore *ignore)
IRC_COMMAND_CALLBACK(ignore)
{
struct t_irc_ignore *ptr_ignore;
char *mask, *regex, *regex2, *ptr_regex, *pos, *server, *channel;
int length, number, update;
char *mask, *regex, *regex2, *ptr_regex, *pos, *server, *channel, *error;
int length, update;
long number;
/* make C compiler happy */
(void) pointer;
@@ -2756,7 +2767,9 @@ IRC_COMMAND_CALLBACK(ignore)
}
else
{
if (weechat_util_parse_int (argv[2], 10, &number))
error = NULL;
number = strtol (argv[2], &error, 10);
if (error && !error[0])
{
ptr_ignore = irc_ignore_search_by_number (number);
if (ptr_ignore)
@@ -2912,8 +2925,7 @@ void
irc_command_join_server (struct t_irc_server *server, const char *arguments,
int manual_join, int noswitch)
{
const char *pos_space, *pos_keys;
char *new_args, **channels, **keys, *pos_channel;
char *new_args, **channels, **keys, *pos_space, *pos_keys, *pos_channel;
char *channel_name_lower;
int i, num_channels, num_keys, length;
time_t time_now;
@@ -3417,15 +3429,18 @@ int
irc_command_list_get_int_arg (int argc, char **argv, int arg_number,
int default_value)
{
int value;
long value;
char *error;
value = default_value;
if (argc > arg_number)
{
if (!weechat_util_parse_int (argv[arg_number], 10, &value))
error = NULL;
value = strtol (argv[arg_number], &error, 10);
if (!error || error[0])
value = default_value;
}
return value;
return (int)value;
}
/*
+2 -3
View File
@@ -470,7 +470,7 @@ irc_completion_modelist_masks_cb (const void *pointer, void *data,
struct t_gui_buffer *buffer,
struct t_gui_completion *completion)
{
const char *pos;
char *pos;
struct t_irc_modelist *ptr_modelist;
struct t_irc_modelist_item *ptr_item;
@@ -512,8 +512,7 @@ irc_completion_modelist_numbers_cb (const void *pointer, void *data,
struct t_gui_buffer *buffer,
struct t_gui_completion *completion)
{
const char *pos;
char str_number[32];
char *pos, str_number[32];
struct t_irc_modelist *ptr_modelist;
struct t_irc_modelist_item *ptr_item;
+15 -13
View File
@@ -201,8 +201,7 @@ struct t_irc_server *
irc_config_get_server_from_option_name (const char *name)
{
struct t_irc_server *ptr_server;
const char *pos_option;
char *server_name;
char *pos_option, *server_name;
ptr_server = NULL;
@@ -275,7 +274,7 @@ irc_config_compute_nick_colors (void)
int
irc_config_display_channel_modes_arguments (const char *modes)
{
const char *pos_space, *pos;
char *pos_space, *pos;
const char *ptr_mode;
pos_space = strchr (modes, ' ');
@@ -1288,8 +1287,10 @@ irc_config_server_check_value_cb (const void *pointer, void *data,
struct t_config_option *option,
const char *value)
{
int index_option, number, proxy_found;
int index_option, proxy_found;
const char *pos_error, *proxy_name;
char *error;
long number;
struct t_infolist *infolist;
/* make C compiler happy */
@@ -1362,7 +1363,9 @@ irc_config_server_check_value_cb (const void *pointer, void *data,
case IRC_SERVER_OPTION_SPLIT_MSG_MAX_LENGTH:
if (!value || !value[0])
break;
if (!weechat_util_parse_int (value, 10, &number))
error = NULL;
number = strtol (value, &error, 10);
if (!error || error[0])
{
/*
* not a valid number, but we return 1 (OK) to let WeeChat
@@ -2808,8 +2811,7 @@ irc_config_server_read_cb (const void *pointer, void *data,
{
struct t_irc_server *ptr_server;
int index_option, rc, i;
const char *pos_option;
char *server_name;
char *pos_option, *server_name;
/* make C compiler happy */
(void) pointer;
@@ -2938,9 +2940,9 @@ irc_config_update_cb (const void *pointer, void *data,
int version_read,
struct t_hashtable *data_read)
{
const char *ptr_config, *ptr_section, *ptr_option, *ptr_value, *pos_option;
const char *ptr_config, *ptr_section, *ptr_option, *ptr_value;
const char *option_autojoin_delay = "autojoin_delay";
char *new_option, *pos_new_option, *new_value;
char *new_option, *pos_option, *new_value;
int changes, length;
/* make C compiler happy */
@@ -2995,11 +2997,11 @@ irc_config_update_cb (const void *pointer, void *data,
new_option = strdup (ptr_option);
if (new_option)
{
pos_new_option = strrchr (new_option, '.');
if (pos_new_option)
pos_option = strrchr (new_option, '.');
if (pos_option)
{
pos_new_option++;
memcpy (pos_new_option, "tls", 3);
pos_option++;
memcpy (pos_option, "tls", 3);
weechat_printf (
NULL,
_("IRC option renamed: \"irc.%s.%s\" => \"irc.%s.%s\""),
+23 -20
View File
@@ -67,8 +67,8 @@ irc_info_info_irc_is_channel_cb (const void *pointer, void *data,
const char *info_name,
const char *arguments)
{
char *server;
const char *pos_channel, *pos_comma;
char *pos_comma, *server;
const char *pos_channel;
struct t_irc_server *ptr_server;
/* make C compiler happy */
@@ -106,8 +106,8 @@ irc_info_info_irc_is_nick_cb (const void *pointer, void *data,
const char *info_name,
const char *arguments)
{
char *server;
const char *pos_nick, *pos_comma;
char *pos_comma, *server;
const char *pos_nick;
struct t_irc_server *ptr_server;
/* make C compiler happy */
@@ -233,8 +233,8 @@ irc_info_info_irc_buffer_cb (const void *pointer, void *data,
const char *info_name,
const char *arguments)
{
char *server, *channel, *host;
const char *nick, *pos_comma, *pos_comma2;
char *pos_comma, *pos_comma2, *server, *channel, *host;
const char *nick;
struct t_irc_server *ptr_server;
struct t_irc_channel *ptr_channel;
@@ -332,8 +332,8 @@ irc_info_info_irc_server_isupport_cb (const void *pointer, void *data,
const char *info_name,
const char *arguments)
{
char *server;
const char *isupport_value, *pos_comma;
char *pos_comma, *server;
const char *isupport_value;
struct t_irc_server *ptr_server;
/* make C compiler happy */
@@ -373,8 +373,8 @@ irc_info_info_irc_server_isupport_value_cb (const void *pointer, void *data,
const char *info_name,
const char *arguments)
{
char *server;
const char *isupport_value, *pos_comma;
char *pos_comma, *server;
const char *isupport_value;
struct t_irc_server *ptr_server;
/* make C compiler happy */
@@ -414,8 +414,7 @@ irc_info_info_irc_server_cap_cb (const void *pointer, void *data,
const char *info_name,
const char *arguments)
{
char *server;
const char *pos_comma;
char *pos_comma, *server;
int has_cap;
struct t_irc_server *ptr_server;
@@ -456,8 +455,8 @@ irc_info_info_irc_server_cap_value_cb (const void *pointer, void *data,
const char *info_name,
const char *arguments)
{
char *server;
const char *cap_value, *pos_comma;
char *pos_comma, *server;
const char *cap_value;
struct t_irc_server *ptr_server;
/* make C compiler happy */
@@ -497,8 +496,8 @@ irc_info_info_irc_is_message_ignored_cb (const void *pointer, void *data,
const char *info_name,
const char *arguments)
{
char *server;
const char *pos_message, *pos_comma;
char *pos_comma, *server;
const char *pos_message;
struct t_irc_server *ptr_server;
/* make C compiler happy */
@@ -985,8 +984,9 @@ irc_info_infolist_irc_modelist_item_cb (const void *pointer, void *data,
struct t_irc_channel *ptr_channel;
struct t_irc_modelist *ptr_modelist;
struct t_irc_modelist_item *ptr_item;
char **argv;
int argc, number;
char **argv, *error;
int argc;
long number;
/* make C compiler happy */
(void) pointer;
@@ -1028,12 +1028,15 @@ irc_info_infolist_irc_modelist_item_cb (const void *pointer, void *data,
}
if (!obj_pointer && (argc >= 4))
{
if (!weechat_util_parse_int (argv[3], 10, &number) || (number < 0))
error = NULL;
number = strtol (argv[3], &error, 10);
if (!error || error[0] || (number < 0))
{
weechat_string_free_split (argv);
return NULL;
}
obj_pointer = irc_modelist_item_search_number (ptr_modelist, number);
obj_pointer = irc_modelist_item_search_number (ptr_modelist,
(int)number);
if (!obj_pointer)
{
weechat_string_free_split (argv);
+1 -1
View File
@@ -457,7 +457,7 @@ irc_input_send_cb (const void *pointer, void *data,
const char *type_data, void *signal_data)
{
const char *ptr_string, *ptr_message;
const char *pos_semicol1, *pos_semicol2, *pos_semicol3, *pos_semicol4;
char *pos_semicol1, *pos_semicol2, *pos_semicol3, *pos_semicol4;
char *server, *channel, *options, *tags, *data_with_colors, **list_options;
int i, num_options, flags, force_user_message;
struct t_irc_server *ptr_server;
+18 -13
View File
@@ -234,8 +234,9 @@ int
irc_list_channel_match_filter (struct t_irc_server *server,
struct t_irc_list_channel *channel)
{
char *result;
int match, number;
char *error, *result;
long number;
int match;
/* no filter? then any channel is matching */
if (!server->list->filter)
@@ -279,22 +280,25 @@ irc_list_channel_match_filter (struct t_irc_server *server,
else if (strncmp (server->list->filter, "u:>", 3) == 0)
{
/* filter by users (> N)*/
if (weechat_util_parse_int (server->list->filter + 3, 10, &number)
&& (channel->users > number))
error = NULL;
number = strtol (server->list->filter + 3, &error, 10);
if (error && !error[0] && channel->users > (int)number)
return 1;
}
else if (strncmp (server->list->filter, "u:<", 3) == 0)
{
/* filter by users (< N)*/
if (weechat_util_parse_int (server->list->filter + 3, 10, &number)
&& (channel->users < number))
error = NULL;
number = strtol (server->list->filter + 3, &error, 10);
if (error && !error[0] && channel->users < (int)number)
return 1;
}
else if (strncmp (server->list->filter, "u:", 2) == 0)
{
/* filter by users */
if (weechat_util_parse_int (server->list->filter + 2, 10, &number)
&& (channel->users >= number))
error = NULL;
number = strtol (server->list->filter + 2, &error, 10);
if (error && !error[0] && channel->users >= (int)number)
return 1;
}
else
@@ -371,9 +375,10 @@ int
irc_list_parse_messages (struct t_irc_server *server, const char *output)
{
struct t_irc_list_channel *channel;
char **irc_msgs, *command, **params;
char **irc_msgs, *command, **params, *error;
const char *ptr_name;
int i, count_irc_msgs, num_params, length, keep_colors, number;
int i, count_irc_msgs, num_params, length, keep_colors;
long number;
if (server->list->channels)
{
@@ -434,9 +439,9 @@ irc_list_parse_messages (struct t_irc_server *server, const char *output)
ptr_name++;
}
channel->name2 = strdup (ptr_name);
if (!weechat_util_parse_int (params[2], 10, &number))
number = 0;
channel->users = number;
error = NULL;
number = strtol (params[2], &error, 10);
channel->users = (error && !error[0]) ? number : 0;
channel->topic = (num_params > 3) ?
irc_color_decode (params[3], keep_colors) : NULL;
length = weechat_utf8_strlen_screen (channel->name);
+15 -12
View File
@@ -598,7 +598,8 @@ irc_message_parse_cap_multiline_value (struct t_irc_server *server,
{
struct t_hashtable *values;
const char *ptr_value;
int number;
char *error;
long number;
if (!server)
return;
@@ -616,14 +617,18 @@ irc_message_parse_cap_multiline_value (struct t_irc_server *server,
ptr_value = (const char *)weechat_hashtable_get (values, "max-bytes");
if (ptr_value)
{
if (weechat_util_parse_int (ptr_value, 10, &number))
error = NULL;
number = strtol (ptr_value, &error, 10);
if (error && !error[0])
server->multiline_max_bytes = number;
}
ptr_value = (const char *)weechat_hashtable_get (values, "max-lines");
if (ptr_value)
{
if (weechat_util_parse_int (ptr_value, 10, &number))
error = NULL;
number = strtol (ptr_value, &error, 10);
if (error && !error[0])
server->multiline_max_lines = number;
}
@@ -702,8 +707,8 @@ const char *
irc_message_get_nick_from_host (const char *host)
{
static char nick[128];
char host2[128];
const char *ptr_host, *pos_space, *pos;
char host2[128], *pos_space, *pos;
const char *ptr_host;
if (!host)
return NULL;
@@ -751,8 +756,8 @@ const char *
irc_message_get_address_from_host (const char *host)
{
static char address[256];
char host2[256];
const char *ptr_host, *pos_space, *pos;
char host2[256], *pos_space, *pos;
const char *ptr_host;
if (!host)
return NULL;
@@ -1177,9 +1182,8 @@ irc_message_split_join (struct t_irc_message_split_context *context,
{
int channels_count, keys_count, length, length_no_channel;
int length_to_add, index_channel;
char **channels, **keys, *str;
char **channels, **keys, *pos, *str;
char msg_to_send[16384], keys_to_add[16384];
const char *pos;
max_length -= 2; /* by default: 512 - 2 = 510 bytes */
@@ -1506,7 +1510,7 @@ irc_message_split_privmsg_notice (struct t_irc_message_split_context *context,
int
irc_message_split_005 (struct t_irc_message_split_context *context,
const char *tags, const char *host, const char *command,
const char *target, char *arguments,
const char *target, const char *arguments,
int max_length)
{
char *pos, suffix[4096];
@@ -1566,8 +1570,7 @@ irc_message_split (struct t_irc_server *server, const char *message)
{
struct t_irc_message_split_context split_context;
char **argv, **argv_eol, *tags, *host, *command, *arguments, target[4096];
char monitor_action[3];
const char *pos;
char *pos, monitor_action[3];
int split_ok, split_privmsg, argc, index_args, max_length_nick;
int max_length_user, max_length_host, max_length_nick_user_host;
int split_msg_max_length, multiline, multiline_max_bytes;
+2 -2
View File
@@ -104,8 +104,8 @@ irc_mode_get_arguments_colors (const char *arguments)
char
irc_mode_get_chanmode_type (struct t_irc_server *server, char chanmode)
{
char chanmode_type;
const char *chanmodes, *ptr_chanmodes, *pos;
char chanmode_type, *pos;
const char *chanmodes, *ptr_chanmodes;
/*
* assume it is type 'B' if mode is in prefix
+3 -2
View File
@@ -785,8 +785,9 @@ int
irc_notify_hsignal_cb (const void *pointer, void *data, const char *signal,
struct t_hashtable *hashtable)
{
const char *error, *server, *pattern, *command, *output, *ptr_args;
char **messages, **nicks_sent, **nicks_recv, *irc_cmd, *arguments, *pos;
const char *error, *server, *pattern, *command, *output;
char **messages, **nicks_sent, **nicks_recv, *irc_cmd, *arguments;
char *ptr_args, *pos;
int i, j, num_messages, num_nicks_sent, num_nicks_recv, nick_was_sent;
int away_message_updated, no_such_nick;
struct t_irc_server *ptr_server;
+39 -26
View File
@@ -2499,8 +2499,8 @@ IRC_PROTOCOL_CALLBACK(note)
IRC_PROTOCOL_CALLBACK(notice)
{
char *notice_args, end_char, *channel, str_tags[1024];
const char *pos, *pos_target, *pos_args, *nick_address;
char *notice_args, *pos, end_char, *channel, str_tags[1024];
const char *pos_target, *pos_args, *nick_address;
struct t_irc_channel *ptr_channel;
struct t_irc_nick *ptr_nick;
int notify_private, is_channel, is_channel_orig, display_host;
@@ -4061,8 +4061,9 @@ IRC_PROTOCOL_CALLBACK(001)
IRC_PROTOCOL_CALLBACK(005)
{
char *str_info, *isupport2;
int i, arg_last, length_isupport, length, casemapping, utf8mapping, value;
char *str_info, *error, *isupport2;
int i, arg_last, length_isupport, length, casemapping, utf8mapping;
long value;
IRC_PROTOCOL_MIN_PARAMS(2);
@@ -4080,26 +4081,34 @@ IRC_PROTOCOL_CALLBACK(005)
else if (strncmp (ctxt->params[i], "LINELEN=", 8) == 0)
{
/* save max message length */
if (weechat_util_parse_int (ctxt->params[i] + 8, 10, &value) && (value > 0))
ctxt->server->msg_max_length = value;
error = NULL;
value = strtol (ctxt->params[i] + 8, &error, 10);
if (error && !error[0] && (value > 0))
ctxt->server->msg_max_length = (int)value;
}
else if (strncmp (ctxt->params[i], "NICKLEN=", 8) == 0)
{
/* save max nick length */
if (weechat_util_parse_int (ctxt->params[i] + 8, 10, &value) && (value > 0))
ctxt->server->nick_max_length = value;
error = NULL;
value = strtol (ctxt->params[i] + 8, &error, 10);
if (error && !error[0] && (value > 0))
ctxt->server->nick_max_length = (int)value;
}
else if (strncmp (ctxt->params[i], "USERLEN=", 8) == 0)
{
/* save max user length */
if (weechat_util_parse_int (ctxt->params[i] + 8, 10, &value) && (value > 0))
ctxt->server->user_max_length = value;
error = NULL;
value = strtol (ctxt->params[i] + 8, &error, 10);
if (error && !error[0] && (value > 0))
ctxt->server->user_max_length = (int)value;
}
else if (strncmp (ctxt->params[i], "HOSTLEN=", 8) == 0)
{
/* save max host length */
if (weechat_util_parse_int (ctxt->params[i] + 8, 10, &value) && (value > 0))
ctxt->server->host_max_length = value;
error = NULL;
value = strtol (ctxt->params[i] + 8, &error, 10);
if (error && !error[0] && (value > 0))
ctxt->server->host_max_length = (int)value;
}
else if (strncmp (ctxt->params[i], "CASEMAPPING=", 12) == 0)
{
@@ -4135,8 +4144,10 @@ IRC_PROTOCOL_CALLBACK(005)
else if (strncmp (ctxt->params[i], "MONITOR=", 8) == 0)
{
/* save monitor (limit) */
if (weechat_util_parse_int (ctxt->params[i] + 8, 10, &value) && (value > 0))
ctxt->server->monitor = value;
error = NULL;
value = strtol (ctxt->params[i] + 8, &error, 10);
if (error && !error[0] && (value > 0))
ctxt->server->monitor = (int)value;
}
else if (strncmp (ctxt->params[i], "CLIENTTAGDENY=", 14) == 0)
{
@@ -4710,7 +4721,7 @@ IRC_PROTOCOL_CALLBACK(317)
min = ((idle_time % (60 * 60 * 24)) % (60 * 60)) / 60;
sec = ((idle_time % (60 * 60 * 24)) % (60 * 60)) % 60;
datetime = (time_t)(atoll (ctxt->params[3]));
datetime = (time_t)(atol (ctxt->params[3]));
ptr_buffer = irc_msgbuffer_get_target_buffer (ctxt->server, ctxt->params[1],
ctxt->command, "whois", NULL);
@@ -5066,7 +5077,7 @@ IRC_PROTOCOL_CALLBACK(329)
ptr_channel = irc_channel_search (ctxt->server, ctxt->params[1]);
datetime = (time_t)(atoll (ctxt->params[2]));
datetime = (time_t)(atol (ctxt->params[2]));
if (ptr_channel)
{
@@ -5290,7 +5301,8 @@ IRC_PROTOCOL_CALLBACK(333)
ptr_channel = irc_channel_search (ctxt->server, ctxt->params[1]);
ptr_nick = (ptr_channel) ?
irc_nick_search (ctxt->server, ptr_channel, topic_nick) : NULL;
datetime = (time_t)(atoll ((ctxt->num_params > 3) ? ctxt->params[3] : ctxt->params[2]));
datetime = (ctxt->num_params > 3) ?
(time_t)(atol (ctxt->params[3])) : (time_t)(atol (ctxt->params[2]));
if (!topic_nick && (datetime == 0))
return WEECHAT_RC_OK;
@@ -5597,7 +5609,7 @@ IRC_PROTOCOL_CALLBACK(346)
irc_message_get_address_from_host (ctxt->params[3]));
if (ctxt->num_params >= 5)
{
datetime = (time_t)(atoll (ctxt->params[4]));
datetime = (time_t)(atol (ctxt->params[4]));
if (ptr_modelist)
irc_modelist_item_new (ptr_modelist, ctxt->params[2], ctxt->params[3], datetime);
weechat_printf_datetime_tags (
@@ -5776,7 +5788,7 @@ IRC_PROTOCOL_CALLBACK(348)
irc_message_get_address_from_host (ctxt->params[3]));
if (ctxt->num_params >= 5)
{
datetime = (time_t)(atoll (ctxt->params[4]));
datetime = (time_t)(atol (ctxt->params[4]));
if (ptr_modelist)
irc_modelist_item_new (ptr_modelist, ctxt->params[2], ctxt->params[3], datetime);
weechat_printf_datetime_tags (
@@ -6806,7 +6818,7 @@ IRC_PROTOCOL_CALLBACK(367)
irc_message_get_address_from_host (ctxt->params[3]));
if (ctxt->num_params >= 5)
{
datetime = (time_t)(atoll (ctxt->params[4]));
datetime = (time_t)(atol (ctxt->params[4]));
if (ptr_modelist)
{
irc_modelist_item_new (ptr_modelist, ctxt->params[2], ctxt->params[3],
@@ -7381,7 +7393,7 @@ IRC_PROTOCOL_CALLBACK(728)
irc_message_get_address_from_host (ctxt->params[4]));
if (ctxt->num_params >= 6)
{
datetime = (time_t)(atoll (ctxt->params[5]));
datetime = (time_t)(atol (ctxt->params[5]));
if (ptr_modelist)
{
irc_modelist_item_new (ptr_modelist, ctxt->params[3], ctxt->params[4],
@@ -7909,11 +7921,12 @@ irc_protocol_recv_command (struct t_irc_server *server,
int ignore_batch_tag)
{
int i, cmd_found, return_code, ignored;
char *pos_space, *tags;
struct t_irc_channel *ptr_channel;
t_irc_recv_func *cmd_recv_func;
const char *ptr_msg_after_tags, *ptr_batch_ref, *ptr_tag_time;
const char *pos_space, *nick1, *address1, *host1;
char *tags, *host, *host_no_color, *pos_space_host;
const char *nick1, *address1, *host1;
char *host, *host_no_color;
struct t_irc_protocol_ctxt ctxt;
struct timeval tv;
@@ -8185,9 +8198,9 @@ irc_protocol_recv_command (struct t_irc_server *server,
host = (host1) ? strdup (host1) : NULL;
if (host)
{
pos_space_host = strchr (host, ' ');
if (pos_space_host)
pos_space_host[0] = '\0';
pos_space = strchr (host, ' ');
if (pos_space)
pos_space[0] = '\0';
}
host_no_color = (host) ? irc_color_decode (host, 0) : NULL;
ctxt.host = (host) ?
+18 -7
View File
@@ -404,8 +404,9 @@ irc_redirect_new_with_commands (struct t_irc_server *server,
const char *cmd_filter)
{
struct t_irc_redirect *new_redirect;
char **items[4], *item_upper, *pos;
int i, j, num_items[4], value;
char **items[4], *item_upper, *pos, *error;
int i, j, num_items[4];
long value;
struct t_hashtable *hash_cmd[4];
new_redirect = malloc (sizeof (*new_redirect));
@@ -459,7 +460,9 @@ irc_redirect_new_with_commands (struct t_irc_server *server,
if (pos)
{
pos[0] = '\0';
if (!weechat_util_parse_int (pos + 1, 10, &value))
error = NULL;
value = strtol (pos + 1, &error, 10);
if (!error || error[0])
value = -1;
}
item_upper = weechat_string_toupper (items[i][j]);
@@ -613,7 +616,7 @@ void
irc_redirect_init_command (struct t_irc_redirect *redirect,
const char *command)
{
const char *pos;
char *pos;
if (!redirect)
return;
@@ -1254,6 +1257,7 @@ irc_redirect_pattern_hsignal_cb (const void *pointer, void *data,
struct t_hashtable *hashtable)
{
const char *pattern, *str_timeout, *cmd_start, *cmd_stop, *cmd_extra;
char *error;
int number, timeout;
/* make C compiler happy */
@@ -1291,7 +1295,9 @@ irc_redirect_pattern_hsignal_cb (const void *pointer, void *data,
timeout = 0;
if (str_timeout && str_timeout[0])
{
if (weechat_util_parse_int (str_timeout, 10, &number))
error = NULL;
number = (int)strtol (str_timeout, &error, 10);
if (error && !error[0])
timeout = number;
}
@@ -1319,6 +1325,7 @@ irc_redirect_command_hsignal_cb (const void *pointer, void *data,
{
const char *server, *pattern, *redirect_signal, *str_count, *string;
const char *str_timeout, *cmd_filter;
char *error;
struct t_irc_server *ptr_server;
int number, count, timeout;
@@ -1359,14 +1366,18 @@ irc_redirect_command_hsignal_cb (const void *pointer, void *data,
count = 1;
if (str_count && str_count[0])
{
if (weechat_util_parse_int (str_count, 10, &number))
error = NULL;
number = (int)strtol (str_count, &error, 10);
if (error && !error[0])
count = number;
}
timeout = 0;
if (str_timeout && str_timeout[0])
{
if (weechat_util_parse_int (str_timeout, 10, &number))
error = NULL;
number = (int)strtol (str_timeout, &error, 10);
if (error && !error[0])
timeout = number;
}
+7 -5
View File
@@ -109,7 +109,7 @@ irc_sasl_mechanism_scram (struct t_irc_server *server,
const char *sasl_password,
char **sasl_error)
{
char *answer_base64, *string, *username, *username2, *data, **attrs;
char *answer_base64, *string, *username, *username2, *data, **attrs, *error;
char nonce_client[18], nonce_client_base64[24 + 1], *nonce_server;
char *salt_base64, *salt, *verifier_base64, *verifier, *attr_error;
char *auth_no_proof, *auth_message;
@@ -117,10 +117,10 @@ irc_sasl_mechanism_scram (struct t_irc_server *server,
char client_signature[512 / 8], client_proof[512 / 8];
char client_proof_base64[((512 / 8) * 4) + 1], server_key[512 / 8];
char server_signature[512 / 8];
int i, rc, length, num_attrs, iterations, number;
int salt_size, salted_password_size;
int i, rc, length, num_attrs, iterations, salt_size, salted_password_size;
int client_key_size, stored_key_size, client_signature_size;
int server_key_size, server_signature_size, verifier_size;
long number;
if (!server || !hash_algo || !data_base64 || !sasl_username
|| !sasl_password)
@@ -202,8 +202,10 @@ irc_sasl_mechanism_scram (struct t_irc_server *server,
}
else if (strncmp (attrs[i], "i=", 2) == 0)
{
if (weechat_util_parse_int (attrs[i] + 2, 10, &number))
iterations = number;
error = NULL;
number = strtol (attrs[i] + 2, &error, 10);
if (error && !error[0])
iterations = (int)number;
}
else if (strncmp (attrs[i], "v=", 2) == 0)
{
+169 -155
View File
@@ -588,7 +588,7 @@ irc_server_sasl_enabled (struct t_irc_server *server)
char *
irc_server_get_name_without_port (const char *name)
{
const char *pos;
char *pos;
if (!name)
return NULL;
@@ -676,9 +676,10 @@ int
irc_server_set_addresses (struct t_irc_server *server, const char *addresses,
int tls)
{
int rc, i, default_port, number;
char *pos, *addresses_eval;
int rc, i, default_port;
char *pos, *error, *addresses_eval;
const char *ptr_addresses;
long number;
if (!server)
return 0;
@@ -752,14 +753,19 @@ irc_server_set_addresses (struct t_irc_server *server, const char *addresses,
server->addresses_count * sizeof (server->retry_array[0]));
for (i = 0; i < server->addresses_count; i++)
{
server->ports_array[i] = default_port;
pos = strchr (server->addresses_array[i], '/');
if (pos)
{
pos[0] = 0;
pos++;
if (weechat_util_parse_int (pos, 10, &number))
server->ports_array[i] = number;
error = NULL;
number = strtol (pos, &error, 10);
server->ports_array[i] = (error && !error[0]) ?
number : default_port;
}
else
{
server->ports_array[i] = default_port;
}
server->retry_array[i] = 0;
}
@@ -1128,7 +1134,7 @@ void
irc_server_set_prefix_modes_chars (struct t_irc_server *server,
const char *prefix)
{
const char *pos;
char *pos;
int i, old_length_chars, length_modes, length_chars;
if (!server || !prefix)
@@ -1373,7 +1379,8 @@ irc_server_get_prefix_chars (struct t_irc_server *server)
int
irc_server_get_prefix_mode_index (struct t_irc_server *server, char mode)
{
const char *prefix_modes, *pos;
const char *prefix_modes;
char *pos;
if (server)
{
@@ -1398,7 +1405,8 @@ int
irc_server_get_prefix_char_index (struct t_irc_server *server,
char prefix_char)
{
const char *prefix_chars, *pos;
const char *prefix_chars;
char *pos;
if (server)
{
@@ -1512,14 +1520,18 @@ int
irc_server_get_max_modes (struct t_irc_server *server)
{
const char *support_modes;
int max_modes, number;
char *error;
long number;
int max_modes;
max_modes = 4;
support_modes = irc_server_get_isupport_value (server, "MODES");
if (support_modes)
{
if (weechat_util_parse_int (support_modes, 10, &number))
error = NULL;
number = strtol (support_modes, &error, 10);
if (error && !error[0])
{
max_modes = number;
if (max_modes < 1)
@@ -2431,8 +2443,8 @@ irc_server_copy (struct t_irc_server *server, const char *new_name)
{
struct t_irc_server *new_server;
struct t_infolist *infolist;
const char *option_name, *pos;
char *mask;
char *mask, *pos;
const char *option_name;
int index_option;
/* check if another server exists with this name */
@@ -2490,9 +2502,9 @@ irc_server_copy (struct t_irc_server *server, const char *new_name)
int
irc_server_rename (struct t_irc_server *server, const char *new_name)
{
char *mask, *new_option_name, charset_modifier[1024];
char *mask, *pos_option, *new_option_name, charset_modifier[1024];
char *buffer_name;
const char *option_name, *pos_option;
const char *option_name;
struct t_infolist *infolist;
struct t_config_option *ptr_option;
struct t_irc_channel *ptr_channel;
@@ -2987,8 +2999,8 @@ irc_server_send_one_msg (struct t_irc_server *server, int flags,
const char *tags)
{
static char buffer[4096];
const char *ptr_chan_nick;
char *new_msg, *ptr_msg, *pos, *tags_to_send, *msg_encoded;
const char *ptr_msg, *ptr_chan_nick;
char *new_msg, *pos, *tags_to_send, *msg_encoded;
char str_modifier[128], modifier_data[1024];
int first_message, queue_msg, pos_channel, pos_text, pos_encode;
struct t_irc_redirect *ptr_redirect;
@@ -3001,148 +3013,150 @@ irc_server_send_one_msg (struct t_irc_server *server, int flags,
server->name,
message);
/* message dropped? */
if (new_msg && !new_msg[0])
/* no changes in new message */
if (new_msg && (strcmp (message, new_msg) == 0))
{
free (new_msg);
new_msg = NULL;
}
/* message not dropped? */
if (!new_msg || new_msg[0])
{
first_message = 1;
ptr_msg = (new_msg) ? new_msg : message;
msg_encoded = NULL;
irc_message_parse (server,
ptr_msg,
NULL, /* tags */
NULL, /* message_without_tags */
NULL, /* nick */
NULL, /* user */
NULL, /* host */
NULL, /* command */
NULL, /* channel */
NULL, /* arguments */
NULL, /* text */
NULL, /* params */
NULL, /* num_params */
NULL, /* pos_command */
NULL, /* pos_arguments */
&pos_channel,
&pos_text);
switch (IRC_SERVER_OPTION_ENUM(server,
IRC_SERVER_OPTION_CHARSET_MESSAGE))
{
case IRC_SERVER_CHARSET_MESSAGE_MESSAGE:
pos_encode = 0;
break;
case IRC_SERVER_CHARSET_MESSAGE_CHANNEL:
pos_encode = (pos_channel >= 0) ? pos_channel : pos_text;
break;
case IRC_SERVER_CHARSET_MESSAGE_TEXT:
pos_encode = pos_text;
break;
default:
pos_encode = 0;
break;
}
if (pos_encode >= 0)
{
ptr_chan_nick = (channel) ? channel : nick;
if (ptr_chan_nick)
{
snprintf (modifier_data, sizeof (modifier_data),
"%s.%s.%s",
weechat_plugin->name,
server->name,
ptr_chan_nick);
}
else
{
snprintf (modifier_data, sizeof (modifier_data),
"%s.%s",
weechat_plugin->name,
server->name);
}
/*
* when UTF8ONLY is enabled, clients must not send non-UTF-8 data
* to the server; the charset encoding below is then done only if
* UTF8ONLY is *NOT* enabled
* (see: https://ircv3.net/specs/extensions/utf8-only)
*/
if (!server->utf8only)
{
msg_encoded = irc_message_convert_charset (ptr_msg, pos_encode,
"charset_encode",
modifier_data);
}
}
if (msg_encoded)
ptr_msg = msg_encoded;
while (ptr_msg && ptr_msg[0])
{
pos = strchr (ptr_msg, '\n');
if (pos)
pos[0] = '\0';
snprintf (buffer, sizeof (buffer), "%s\r\n", ptr_msg);
if (flags & IRC_SERVER_SEND_OUTQ_PRIO_IMMEDIATE)
queue_msg = 0;
else if (flags & IRC_SERVER_SEND_OUTQ_PRIO_HIGH)
queue_msg = 1;
else if (flags & IRC_SERVER_SEND_OUTQ_PRIO_LOW)
queue_msg = 2;
else
{
/*
* if connected to server (message 001 received), consider
* it's low priority (otherwise send immediately)
*/
queue_msg = (server->is_connected) ? 2 : 0;
}
tags_to_send = irc_server_get_tags_to_send (tags);
ptr_redirect = irc_redirect_search_available (server);
/* queue message (do not send anything now) */
irc_server_outqueue_add (server,
queue_msg,
command,
(new_msg && first_message) ? message : NULL,
buffer,
(new_msg) ? 1 : 0,
tags_to_send,
ptr_redirect);
/* mark redirect as "used" */
if (ptr_redirect)
ptr_redirect->assigned_to_command = 1;
free (tags_to_send);
if (pos)
{
pos[0] = '\n';
ptr_msg = pos + 1;
}
else
ptr_msg = NULL;
first_message = 0;
}
free (msg_encoded);
}
else
{
irc_raw_print (server, IRC_RAW_FLAG_SEND | IRC_RAW_FLAG_MODIFIED,
_("(message dropped)"));
free (new_msg);
return;
}
if (!new_msg)
new_msg = strdup (message);
if (!new_msg)
return;
first_message = 1;
ptr_msg = new_msg;
msg_encoded = NULL;
irc_message_parse (server,
ptr_msg,
NULL, /* tags */
NULL, /* message_without_tags */
NULL, /* nick */
NULL, /* user */
NULL, /* host */
NULL, /* command */
NULL, /* channel */
NULL, /* arguments */
NULL, /* text */
NULL, /* params */
NULL, /* num_params */
NULL, /* pos_command */
NULL, /* pos_arguments */
&pos_channel,
&pos_text);
switch (IRC_SERVER_OPTION_ENUM(server,
IRC_SERVER_OPTION_CHARSET_MESSAGE))
{
case IRC_SERVER_CHARSET_MESSAGE_MESSAGE:
pos_encode = 0;
break;
case IRC_SERVER_CHARSET_MESSAGE_CHANNEL:
pos_encode = (pos_channel >= 0) ? pos_channel : pos_text;
break;
case IRC_SERVER_CHARSET_MESSAGE_TEXT:
pos_encode = pos_text;
break;
default:
pos_encode = 0;
break;
}
if (pos_encode >= 0)
{
ptr_chan_nick = (channel) ? channel : nick;
if (ptr_chan_nick)
{
snprintf (modifier_data, sizeof (modifier_data),
"%s.%s.%s",
weechat_plugin->name,
server->name,
ptr_chan_nick);
}
else
{
snprintf (modifier_data, sizeof (modifier_data),
"%s.%s",
weechat_plugin->name,
server->name);
}
/*
* when UTF8ONLY is enabled, clients must not send non-UTF-8 data
* to the server; the charset encoding below is then done only if
* UTF8ONLY is *NOT* enabled
* (see: https://ircv3.net/specs/extensions/utf8-only)
*/
if (!server->utf8only)
{
msg_encoded = irc_message_convert_charset (ptr_msg, pos_encode,
"charset_encode",
modifier_data);
}
}
if (msg_encoded)
ptr_msg = msg_encoded;
while (ptr_msg && ptr_msg[0])
{
pos = strchr (ptr_msg, '\n');
if (pos)
pos[0] = '\0';
snprintf (buffer, sizeof (buffer), "%s\r\n", ptr_msg);
if (flags & IRC_SERVER_SEND_OUTQ_PRIO_IMMEDIATE)
queue_msg = 0;
else if (flags & IRC_SERVER_SEND_OUTQ_PRIO_HIGH)
queue_msg = 1;
else if (flags & IRC_SERVER_SEND_OUTQ_PRIO_LOW)
queue_msg = 2;
else
{
/*
* if connected to server (message 001 received), consider
* it's low priority (otherwise send immediately)
*/
queue_msg = (server->is_connected) ? 2 : 0;
}
tags_to_send = irc_server_get_tags_to_send (tags);
ptr_redirect = irc_redirect_search_available (server);
/* queue message (do not send anything now) */
irc_server_outqueue_add (server,
queue_msg,
command,
(new_msg && first_message) ? message : NULL,
buffer,
(new_msg) ? 1 : 0,
tags_to_send,
ptr_redirect);
/* mark redirect as "used" */
if (ptr_redirect)
ptr_redirect->assigned_to_command = 1;
free (tags_to_send);
if (pos)
{
pos[0] = '\n';
ptr_msg = pos + 1;
}
else
ptr_msg = NULL;
first_message = 0;
}
free (msg_encoded);
free (new_msg);
}
@@ -3436,7 +3450,7 @@ irc_server_msgq_add_unterminated (struct t_irc_server *server,
*/
void
irc_server_msgq_add_buffer (struct t_irc_server *server, char *buffer)
irc_server_msgq_add_buffer (struct t_irc_server *server, const char *buffer)
{
char *pos_cr, *pos_lf;
+1 -1
View File
@@ -427,7 +427,7 @@ extern struct t_arraylist *irc_server_sendf (struct t_irc_server *server,
const char *tags,
const char *format, ...);
extern void irc_server_msgq_add_buffer (struct t_irc_server *server,
char *buffer);
const char *buffer);
extern void irc_server_msgq_flush (void);
extern void irc_server_set_buffer_title (struct t_irc_server *server);
extern struct t_gui_buffer *irc_server_create_buffer (struct t_irc_server *server);
+2 -2
View File
@@ -54,7 +54,7 @@ const char *irc_theme_light[][2] =
};
/*
* Register IRC's contribution to one theme from a NULL-terminated
* Registers IRC's contribution to one theme from a NULL-terminated
* table of {option, value} rows.
*/
@@ -83,7 +83,7 @@ irc_theme_register (const char *name, const char *entries[][2])
}
/*
* Register all built-in theme contributions from IRC.
* Registers all built-in theme contributions from IRC.
*/
void
+24 -13
View File
@@ -356,10 +356,11 @@ irc_upgrade_read_cb (const void *pointer, void *data,
int object_id,
struct t_infolist *infolist)
{
int flags, sock, size, i, index, nicks_count, num_items, number, utf8mapping;
long long number_longlong;
int flags, sock, size, i, index, nicks_count, num_items, utf8mapping;
long number;
time_t join_time;
char *buf, option_name[64], **nicks, *nick_join, *pos, **items;
char *buf, option_name[64], **nicks, *nick_join, *pos, *error;
char **items;
const char *buffer_name, *str, *nick;
struct t_irc_server *ptr_server;
struct t_irc_nick *ptr_nick;
@@ -520,8 +521,10 @@ irc_upgrade_read_cb (const void *pointer, void *data,
"LINELEN");
if (str)
{
if (weechat_util_parse_int (str, 10, &number))
irc_upgrade_current_server->msg_max_length = number;
error = NULL;
number = strtol (str, &error, 10);
if (error && !error[0])
irc_upgrade_current_server->msg_max_length = (int)number;
}
}
irc_upgrade_current_server->nick_max_length = weechat_infolist_integer (infolist, "nick_max_length");
@@ -537,8 +540,10 @@ irc_upgrade_read_cb (const void *pointer, void *data,
"USERLEN");
if (str)
{
if (weechat_util_parse_int (str, 10, &number))
irc_upgrade_current_server->user_max_length = number;
error = NULL;
number = strtol (str, &error, 10);
if (error && !error[0])
irc_upgrade_current_server->user_max_length = (int)number;
}
}
/* "host_max_length" is new in WeeChat 2.6 */
@@ -553,8 +558,10 @@ irc_upgrade_read_cb (const void *pointer, void *data,
"HOSTLEN");
if (str)
{
if (weechat_util_parse_int (str, 10, &number))
irc_upgrade_current_server->host_max_length = number;
error = NULL;
number = strtol (str, &error, 10);
if (error && !error[0])
irc_upgrade_current_server->host_max_length = (int)number;
}
}
irc_upgrade_current_server->casemapping = weechat_infolist_integer (infolist, "casemapping");
@@ -614,8 +621,10 @@ irc_upgrade_read_cb (const void *pointer, void *data,
"MONITOR");
if (str)
{
if (weechat_util_parse_int (str, 10, &number))
irc_upgrade_current_server->monitor = number;
error = NULL;
number = strtol (str, &error, 10);
if (error && !error[0])
irc_upgrade_current_server->monitor = (int)number;
}
}
/* "clienttagdeny" is new in WeeChat 3.3 */
@@ -762,9 +771,11 @@ irc_upgrade_read_cb (const void *pointer, void *data,
pos - nicks[i]);
if (nick_join)
{
if (weechat_util_parse_longlong (pos + 1, 10, &number_longlong))
error = NULL;
number = strtol (pos + 1, &error, 10);
if (error && !error[0])
{
join_time = (time_t)number_longlong;
join_time = (time_t)number;
irc_channel_join_smart_filtered_add (irc_upgrade_current_channel,
nick_join,
join_time);
+4 -1
View File
@@ -3007,6 +3007,7 @@ API_FUNC(hook_signal)
API_FUNC(hook_signal_send)
{
char *error;
int number, rc;
API_INIT_FUNC(1, "hook_signal_send", "sss", API_RETURN_INT(WEECHAT_RC_ERROR));
@@ -3022,7 +3023,9 @@ API_FUNC(hook_signal_send)
}
else if (strcmp (*type_data, WEECHAT_HOOK_SIGNAL_INT) == 0)
{
if (weechat_util_parse_int (*signal_data, 10, &number))
error = NULL;
number = (int)strtol (*signal_data, &error, 10);
if (error && !error[0])
rc = weechat_hook_signal_send (*signal, *type_data, &number);
else
rc = WEECHAT_RC_ERROR;
-15
View File
@@ -32,12 +32,6 @@
#include "logger-theme.h"
/*
* logger contribution to the "light" theme: option values tuned for a
* light-background terminal. Each row is { option_full_name, value };
* the table is NULL-terminated.
*/
const char *logger_theme_light[][2] =
{
{ "logger.color.backlog_end", "darkgray" },
@@ -45,11 +39,6 @@ const char *logger_theme_light[][2] =
{ NULL, NULL },
};
/*
* Register logger's contribution to one theme from a NULL-terminated
* table of {option, value} rows.
*/
void
logger_theme_register (const char *name, const char *entries[][2])
{
@@ -74,10 +63,6 @@ logger_theme_register (const char *name, const char *entries[][2])
weechat_hashtable_free (overrides);
}
/*
* Register all built-in theme contributions from logger.
*/
void
logger_theme_init (void)
{
+5 -5
View File
@@ -2199,7 +2199,7 @@ API_FUNC(print)
API_FUNC(print_date_tags)
{
const char *buffer, *tags, *message;
long long date;
long date;
API_INIT_FUNC(1, "print_date_tags", API_RETURN_ERROR);
if (lua_gettop (L) < 4)
@@ -2223,7 +2223,7 @@ API_FUNC(print_date_tags)
API_FUNC(print_datetime_tags)
{
const char *buffer, *tags, *message;
long long date;
long date;
int date_usec;
API_INIT_FUNC(1, "print_datetime_tags", API_RETURN_ERROR);
@@ -2273,7 +2273,7 @@ API_FUNC(print_y_date_tags)
{
const char *buffer, *tags, *message;
int y;
long long date;
long date;
API_INIT_FUNC(1, "print_y_date_tags", API_RETURN_ERROR);
if (lua_gettop (L) < 5)
@@ -2300,7 +2300,7 @@ API_FUNC(print_y_datetime_tags)
{
const char *buffer, *tags, *message;
int y, date_usec;
long long date;
long date;
API_INIT_FUNC(1, "print_y_datetime_tags", API_RETURN_ERROR);
if (lua_gettop (L) < 6)
@@ -5034,7 +5034,7 @@ API_FUNC(infolist_new_var_time)
{
const char *item, *name;
const char *result;
long long value;
long value;
API_INIT_FUNC(1, "infolist_new_var_time", API_RETURN_EMPTY);
if (lua_gettop (L) < 3)
+5 -5
View File
@@ -2133,7 +2133,7 @@ API_FUNC(print_date_tags)
plugin_script_api_printf_date_tags (weechat_perl_plugin,
perl_current_script,
API_STR2PTR(buffer),
(time_t)(SvNV (ST (1))), /* date */
(time_t)(SvIV (ST (1))), /* date */
tags,
"%s", message);
@@ -2156,7 +2156,7 @@ API_FUNC(print_datetime_tags)
plugin_script_api_printf_datetime_tags (weechat_perl_plugin,
perl_current_script,
API_STR2PTR(buffer),
(time_t)(SvNV (ST (1))), /* date */
(time_t)(SvIV (ST (1))), /* date */
SvIV (ST (2)), /* date_usec */
tags,
"%s", message);
@@ -2202,7 +2202,7 @@ API_FUNC(print_y_date_tags)
perl_current_script,
API_STR2PTR(buffer),
SvIV (ST (1)), /* y */
(time_t)(SvNV (ST (2))), /* date */
(time_t)(SvIV (ST (2))), /* date */
tags,
"%s", message);
@@ -2226,7 +2226,7 @@ API_FUNC(print_y_datetime_tags)
perl_current_script,
API_STR2PTR(buffer),
SvIV (ST (1)), /* y */
(time_t)(SvNV (ST (2))), /* date */
(time_t)(SvIV (ST (2))), /* date */
SvIV (ST (3)), /* date_usec */
tags,
"%s", message);
@@ -4967,7 +4967,7 @@ API_FUNC(infolist_new_var_time)
result = API_PTR2STR(weechat_infolist_new_var_time (API_STR2PTR(item),
name,
(time_t)(SvNV (ST (2))))); /* value */
(time_t)(SvIV (ST (2))))); /* value */
API_RETURN_STRING(result);
}
+47 -29
View File
@@ -802,8 +802,7 @@ plugin_api_info_color_rgb2term_cb (const void *pointer, void *data,
const char *info_name,
const char *arguments)
{
const char *pos;
char value[32], *color;
char value[32], *pos, *color;
int rgb, limit;
/* make C compiler happy */
@@ -904,8 +903,9 @@ plugin_api_info_nick_color_ignore_case_cb (const void *pointer, void *data,
const char *info_name,
const char *arguments)
{
char **items, *result;
int num_items, case_range, number;
char **items, *result, *error;
int num_items, case_range;
long number;
/* make C compiler happy */
(void) pointer;
@@ -917,8 +917,10 @@ plugin_api_info_nick_color_ignore_case_cb (const void *pointer, void *data,
case_range = -1;
if (num_items >= 2)
{
if (util_parse_int (items[1], 10, &number))
case_range = number;
error = NULL;
number = strtol (items[1], &error, 10);
if (error && !error[0])
case_range = (int)number;
}
result = gui_nick_find_color (
@@ -940,8 +942,9 @@ plugin_api_info_nick_color_name_ignore_case_cb (const void *pointer, void *data,
const char *info_name,
const char *arguments)
{
char **items, *result;
int num_items, case_range, number;
char **items, *result, *error;
int num_items, case_range;
long number;
/* make C compiler happy */
(void) pointer;
@@ -953,8 +956,10 @@ plugin_api_info_nick_color_name_ignore_case_cb (const void *pointer, void *data,
case_range = -1;
if (num_items >= 2)
{
if (util_parse_int (items[1], 10, &number))
case_range = number;
error = NULL;
number = strtol (items[1], &error, 10);
if (error && !error[0])
case_range = (int)number;
}
result = gui_nick_find_color_name (
@@ -1042,7 +1047,7 @@ plugin_api_info_uptime_current_cb (const void *pointer, void *data,
(void) info_name;
return plugin_api_info_build_uptime (
weechat_current_start_timeval.tv_sec,
(time_t)weechat_current_start_timeval.tv_sec,
arguments);
}
@@ -1058,9 +1063,9 @@ plugin_api_info_totp_generate_cb (const void *pointer, void *data,
const char *info_name,
const char *arguments)
{
char **argv, *ptr_secret, *totp;
int argc, digits, number_int;
long long number_longlong;
char **argv, *ptr_secret, *error, *totp;
int argc, digits;
long number;
time_t totp_time;
/* make C compiler happy */
@@ -1088,15 +1093,19 @@ plugin_api_info_totp_generate_cb (const void *pointer, void *data,
if (argc > 1)
{
if (!util_parse_longlong (argv[1], 10, &number_longlong) || (number_longlong < 0))
error = NULL;
number = (int)strtol (argv[1], &error, 10);
if (!error || error[0] || (number < 0))
goto error;
totp_time = (time_t)number_longlong;
totp_time = (time_t)number;
}
if (argc > 2)
{
if (!util_parse_int (argv[2], 10, &number_int) || (number_int < 0))
error = NULL;
number = (int)strtol (argv[2], &error, 10);
if (!error || error[0] || (number < 0))
goto error;
digits = number_int;
digits = number;
}
totp = weecrypto_totp_generate (ptr_secret, totp_time, digits);
@@ -1125,9 +1134,9 @@ plugin_api_info_totp_validate_cb (const void *pointer, void *data,
const char *info_name,
const char *arguments)
{
char value[16], **argv, *ptr_secret, *ptr_otp;
int argc, window, rc, number_int;
long long number_longlong;
char value[16], **argv, *ptr_secret, *ptr_otp, *error;
int argc, window, rc;
long number;
time_t totp_time;
/* make C compiler happy */
@@ -1155,15 +1164,19 @@ plugin_api_info_totp_validate_cb (const void *pointer, void *data,
if (argc > 2)
{
if (!util_parse_longlong (argv[2], 10, &number_longlong) || (number_longlong < 0))
error = NULL;
number = (int)strtol (argv[2], &error, 10);
if (!error || error[0] || (number < 0))
goto error;
totp_time = (time_t)number_longlong;
totp_time = (time_t)number;
}
if (argc > 3)
{
if (!util_parse_int (argv[3], 10, &number_int) || (number_int < 0))
error = NULL;
number = (int)strtol (argv[3], &error, 10);
if (!error || error[0] || (number < 0))
goto error;
window = number_int;
window = number;
}
rc = weecrypto_totp_validate (ptr_secret, totp_time, window, ptr_otp);
@@ -1222,8 +1235,8 @@ plugin_api_info_window_cb (const void *pointer, void *data,
const char *arguments)
{
struct t_gui_window *ptr_window;
int number;
char value[64];
long number;
char *error, value[64];
/* make C compiler happy */
(void) pointer;
@@ -1233,7 +1246,9 @@ plugin_api_info_window_cb (const void *pointer, void *data,
if (!arguments || !arguments[0])
return NULL;
if (!util_parse_int (arguments, 10, &number))
error = NULL;
number = (int)strtol (arguments, &error, 10);
if (!error || error[0])
return NULL;
ptr_window = gui_window_search_by_number (number);
@@ -2025,6 +2040,7 @@ plugin_api_infolist_window_cb (const void *pointer, void *data,
struct t_infolist *ptr_infolist;
struct t_gui_window *ptr_window;
int number;
char *error;
/* make C compiler happy */
(void) pointer;
@@ -2068,7 +2084,9 @@ plugin_api_infolist_window_cb (const void *pointer, void *data,
return NULL;
}
/* check if argument is a window number */
if (util_parse_int (arguments, 10, &number))
error = NULL;
number = (int)strtol (arguments, &error, 10);
if (error && !error[0])
{
ptr_window = gui_window_search_by_number (number);
if (ptr_window)
+4 -3
View File
@@ -38,7 +38,6 @@
#include "../core/core-input.h"
#include "../core/core-proxy.h"
#include "../core/core-string.h"
#include "../core/core-util.h"
#include "../gui/gui-bar.h"
#include "../gui/gui-bar-item.h"
#include "../gui/gui-bar-window.h"
@@ -395,7 +394,7 @@ plugin_api_command_options (struct t_weechat_plugin *plugin,
struct t_gui_buffer *buffer, const char *command,
struct t_hashtable *options)
{
char *command2;
char *command2, *error;
const char *ptr_commands_allowed, *ptr_delay, *ptr_split_newline;
long delay;
int rc, split_newline;
@@ -413,7 +412,9 @@ plugin_api_command_options (struct t_weechat_plugin *plugin,
ptr_delay = hashtable_get (options, "delay");
if (ptr_delay)
{
if (!util_parse_long (ptr_delay, 10, &delay))
error = NULL;
delay = strtol (ptr_delay, &error, 10);
if (!error || error[0])
delay = 0;
}
ptr_split_newline = hashtable_get (options, "split_newline");
+14 -12
View File
@@ -2121,14 +2121,14 @@ API_FUNC(prnt)
API_FUNC(prnt_date_tags)
{
char *buffer, *tags, *message;
long long date;
long date;
API_INIT_FUNC(1, "prnt_date_tags", API_RETURN_ERROR);
buffer = NULL;
date = 0;
tags = NULL;
message = NULL;
if (!PyArg_ParseTuple (args, "sLss", &buffer, &date, &tags, &message))
if (!PyArg_ParseTuple (args, "slss", &buffer, &date, &tags, &message))
API_WRONG_ARGS(API_RETURN_ERROR);
plugin_script_api_printf_date_tags (weechat_python_plugin,
@@ -2144,7 +2144,7 @@ API_FUNC(prnt_date_tags)
API_FUNC(prnt_datetime_tags)
{
char *buffer, *tags, *message;
long long date;
long date;
int date_usec;
API_INIT_FUNC(1, "prnt_datetime_tags", API_RETURN_ERROR);
@@ -2153,7 +2153,7 @@ API_FUNC(prnt_datetime_tags)
date_usec = 0;
tags = NULL;
message = NULL;
if (!PyArg_ParseTuple (args, "sLiss", &buffer, &date, &date_usec, &tags,
if (!PyArg_ParseTuple (args, "sliss", &buffer, &date, &date_usec, &tags,
&message))
API_WRONG_ARGS(API_RETURN_ERROR);
@@ -2193,7 +2193,7 @@ API_FUNC(prnt_y_date_tags)
{
char *buffer, *tags, *message;
int y;
long long date;
long date;
API_INIT_FUNC(1, "prnt_y_date_tags", API_RETURN_ERROR);
buffer = NULL;
@@ -2201,7 +2201,7 @@ API_FUNC(prnt_y_date_tags)
date = 0;
tags = NULL;
message = NULL;
if (!PyArg_ParseTuple (args, "siLss", &buffer, &y, &date, &tags, &message))
if (!PyArg_ParseTuple (args, "silss", &buffer, &y, &date, &tags, &message))
API_WRONG_ARGS(API_RETURN_ERROR);
plugin_script_api_printf_y_date_tags (weechat_python_plugin,
@@ -2219,7 +2219,7 @@ API_FUNC(prnt_y_datetime_tags)
{
char *buffer, *tags, *message;
int y;
long long date;
long date;
int date_usec;
API_INIT_FUNC(1, "prnt_y_datetime_tags", API_RETURN_ERROR);
@@ -2229,7 +2229,7 @@ API_FUNC(prnt_y_datetime_tags)
date_usec = 0;
tags = NULL;
message = NULL;
if (!PyArg_ParseTuple (args, "siLiss", &buffer, &y, &date, &date_usec,
if (!PyArg_ParseTuple (args, "siliss", &buffer, &y, &date, &date_usec,
&tags, &message))
API_WRONG_ARGS(API_RETURN_ERROR);
@@ -3148,7 +3148,7 @@ API_FUNC(hook_signal)
API_FUNC(hook_signal_send)
{
char *signal, *type_data, *signal_data;
char *signal, *type_data, *signal_data, *error;
int number, rc;
API_INIT_FUNC(1, "hook_signal_send", API_RETURN_INT(WEECHAT_RC_ERROR));
@@ -3165,7 +3165,9 @@ API_FUNC(hook_signal_send)
}
else if (strcmp (type_data, WEECHAT_HOOK_SIGNAL_INT) == 0)
{
if (weechat_util_parse_int (signal_data, 10, &number))
error = NULL;
number = (int)strtol (signal_data, &error, 10);
if (error && !error[0])
rc = weechat_hook_signal_send (signal, type_data, &number);
else
rc = WEECHAT_RC_ERROR;
@@ -4932,13 +4934,13 @@ API_FUNC(infolist_new_var_time)
{
char *item, *name;
const char *result;
long long value;
long value;
API_INIT_FUNC(1, "infolist_new_var_time", API_RETURN_EMPTY);
item = NULL;
name = NULL;
value = 0;
if (!PyArg_ParseTuple (args, "ssL", &item, &name, &value))
if (!PyArg_ParseTuple (args, "ssl", &item, &name, &value))
API_WRONG_ARGS(API_RETURN_EMPTY);
result = API_PTR2STR(weechat_infolist_new_var_time (API_STR2PTR(item),
+1 -1
View File
@@ -635,7 +635,7 @@ def config_new_option(config_file: str, section: str, name: str, type: str, desc
"", "",
"", "")
option_str = weechat.config_new_option(config_file, section, "option_str", "string|themable",
option_str = weechat.config_new_option(config_file, section, "option_str", "string",
"My option, type string",
"", 0, 0, "test", "test", 1,
"option_str_check_value_cb", "",
-37
View File
@@ -848,40 +848,3 @@ relay_api_msg_hotlist_to_json (struct t_gui_hotlist *hotlist)
return json;
}
/*
* Create a JSON object with a script.
*/
cJSON *
relay_api_msg_script_to_json (struct t_hdata *hdata, void *script, const char *extension)
{
cJSON *json;
void *pointer;
const char *ptr_string;
char name[1024];
if (!hdata)
return NULL;
pointer = script;
json = cJSON_CreateObject ();
if (!json)
return NULL;
if (!script)
return json;
snprintf (name, sizeof (name),
"%s.%s",
weechat_hdata_string (hdata, script, "name"),
extension);
MSG_ADD_STR_BUF("name", name);
MSG_ADD_HDATA_STR("version", "version");
MSG_ADD_HDATA_STR("description", "description");
MSG_ADD_HDATA_STR("author", "author");
MSG_ADD_HDATA_STR("license", "license");
return json;
}

Some files were not shown because too many files have changed in this diff Show More