• last updated 12 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Flush the whole key pattern, now that the key can end either in true or false

Fixes locale__test_lang_conn_browser_locale automated test

Fixed unreviewed commit, which might lead to hard-to-spot errors

The last change assumed that "nls_language" can be hard-wired to

contain most 5 characters. While this not backed by the OpenACS data

model, the standard (RFC 5646) explicitly states that there is no

upper limit on the size of language tags. The tree letter language

codes have been standard since 2001 (RFC 4646).

The change accepts now all defined locales. When the specified locale

is not enabled, it provides a log notice, when the locale is not

defined at all, it provides a warning and falls back to "en_US".

  1. … 3 more files in changeset.
Return the system locale as the user locale also when user preferences are there for the user, but the locale is empty

Cleanup private interface lang::system::timezone_support_p: ref-timezones has been made a dependency of acs-lang long ago

  1. … 5 more files in changeset.
Allow to specify a user for lang::user::language, default to the package default locale when a locale for user+package is not found

  1. … 1 more file in changeset.
Fallback here as well to en_US when no supported locale is found

use cookie namespace also for stored locales

  1. … 1 more file in changeset.
Constrain the language we return for the connection to the ones we support: could happen on system that have supposted a language in the past and still have users set it as their preferred language

Reuse computation of lang::conn::locale when invoked again in the same request

This reduces stress on the util_memoize cache for those installation that invoke this api often.

use per_thread_cache for flusing rather than raw variables

Keep using ad_conn in lang::conn::timezone as set_get_timezone needs to simulate lack of connection and ad_conn allows to override the "real" value

prefer "ns_conn isconnected" over "ad_conn isconnected", since the latter might not notice changes in the connect state

  1. … 18 more files in changeset.
use dot instead of colon as separator between package name and cache key to ease readability

  1. … 10 more files in changeset.
acs::per_thread_cache: standardize per-thread caching

- added per-thread cache based on namespaced Tcl variables.

- use per-thread-cache on several occasions

- bump version number of acs-tcl to 5.10.0d34

  1. … 14 more files in changeset.
Fix typo

make lang::conn::language able to run running disconnected; improve documentation

make lang::conn::locale more robust when running disconnected

improve handling of invalid (hacked) ad_locale cookies.

Previously, invalid ad_locale cookies lead to an error, which in turn

prevented all communication with OpenACS. So, a user had to delete the

cookie manually. Now, we just produce a warning, ignore and delete such

broken cookies.

  1. … 1 more file in changeset.
Fix for issue #3409

Tolerate wrong locales from browsers by assuming our default one

Remove deprecated proc 'ad_locale_get_label', scheduled to be removed in 5.3, and used nowhere.

Whitespace changes

  1. … 1 more file in changeset.
Harmonize parameter names in proc documentation removing unexistent ones

Delete thread cache variable as well when setting a new locale and use this corrected api to repair broken test

  1. … 1 more file in changeset.
set lang::system::get_locales to per-thead cache as indicated

cache system locales in a per-thread cache

Revert massive replacement of empty list creation sentences. The use of '[list]' instead of '{}' adds semantics that could be used for performance improvements in the future, such as using a different internal representation. There is already work in this direction, avoiding the generation of the string representation during comparison of empty strings (huge thanks to Stefan Sobernig for the pointer: https://core.tcl.tk/tcl/info/44527c632ed609c2).

  1. … 475 more files in changeset.
Prefer '{}' to '[list]' when creating empty lists

  1. … 71 more files in changeset.
remove conditions, which are always true

remove parens

  1. … 5 more files in changeset.
Reduce stress on util_memoize_cache by removing the - by far - most often reused

item in the cache (apm_package_installed_p_not_cached ref-timezones). Instead,

we fall back to the (per-thread) caching of apm_package_id_from_key.