1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-26 08:41:47 -07:00
Commit graph

48762 commits

Author SHA1 Message Date
Po Lu
81fc5d83fe Repair displaying compound glyph components with anchor points
* src/sfnt.c (sfnt_interpret_compound_glyph_1): Move
initialization of x and y out of conditional.
2023-08-23 12:09:27 +08:00
Po Lu
d2e8985b80 Fix compatibility problems with several fonts
* src/sfnt.c (sfnt_lookup_glyph_8): Perform binary search
instead of combing through each group if the table is large.
(sfnt_read_simple_glyph): Avoid losing if the last byte of a
vector is identical to the last byte of the glyph data.
(sfnt_read_gvar_table): Don't overwrite gvar table data while
reading shared coordinates.
2023-08-23 09:15:16 +08:00
Po Lu
8e51a3e3f8 Avoid crashes rescaling fonts with long names
* src/font.c (font_rescale_ratio): Check NAME is not nil before
matching it against a regexp.
2023-08-22 17:34:41 +08:00
Po Lu
269fd08dab ; Amend doc strings of two functions
* src/dispnew.c (syms_of_display):

* src/frame.c (Fwindow_system): Revise doc strings to mention
the `android' value.
2023-08-22 17:17:32 +08:00
Po Lu
7af94bacd7 Optimize format 12 cmap table lookup
* src/sfnt.c (sfnt_compare_char): New function.
(sfnt_lookup_glyph_12): Detect ``large'' cmap tables of format
12 and perform a binary search.  Such tables are frequently
provided by CJK fonts.
2023-08-22 16:45:35 +08:00
Jim Porter
357c2fba98 Merge from origin/emacs-29
3296031ad7 ; Another improvement for documentation of pixelwise scro...
baeb2d71ae Support defun navigation for DEFUN in c-ts-mode (bug#64442)
781ddd7e7d Fix touchpad scrolling on MS-Windows
c125bd060e Fix order in which package-vc dependencies are resolved
500ced133a Fix building of VC package manuals with relative org link...
456ecabe9e Fix the documentation of 'cl-flet'
f6ebd1ef0d ; * src/treesit.c (Ftreesit_node_parent): Improve comment...
fac0e2d533 Avoid false "wrong passphrase" messages in EPA
8f683b51d8 Fix jsx font-lock in older tree-sitter-js grammars
d9af79ae39 Fix cloning 'face-remapping-alist' for indirect buffers
636fb267c4 Improve documentation of case transfer in replacement com...
7856d51436 Fix horizontal scrolling of images with C-f
8cf5659ec2 ; Fix defcustom in completion.el
a8c8a4e368 ; * src/fns.c (Fcopy_sequence): Doc fix.  (Bug#64960)
205d87cdca Fix unpacking ZIP archives on MS-Windows
3712e8bc38 ; Fix typos in lisp/keymap.el doc strings (bug#65329).
21b2ecee66 Fix command example in Eshell manual
26949819df ; lisp/progmodes/csharp-mode.el (treesit-query-capture): ...
221ed70b90 ; Improve documentation of 'define-alternatives'
32280205e2 Add user options mentioned in the Eshell manual to the va...
cf3145a486 * Add missing alias to `native-comp-enable-subr-trampolin...
922b649028 * Add missing alias to `native-comp-enable-subr-trampolin...
6962823c83 ; * etc/PROBLEMS: Fix typo and clarify wording.

# Conflicts:
#	doc/misc/eshell.texi
2023-08-21 18:23:11 -07:00
Po Lu
fb5e1b21fb Properly enumerate GX fonts of the same family with divergent styles
* doc/emacs/android.texi (Android Fonts): Revise explanation of
GX font replacement during font enumeration.

* src/sfntfont.c (sfnt_replace_fonts_p): If PREV and DESC are of
the same family and both are GX fonts, restrict actions taken to
removing duplicate styles from PREV.  Reported by a user who
tried to install GX versions of Cascadia Mono, which are
distributed as two files providing the bold and italic variation
axes respectively.
2023-08-21 20:45:34 +08:00
Po Lu
722559155d ; Adjust commentary
* src/androidterm.c (android_text_to_string)
(android_update_selection, android_reset_conversion)
(android_set_build_fingerprint): Refine wording in commentary
and correct typos.
2023-08-21 16:03:54 +08:00
Po Lu
b1e498ac8c Enable providing icons for Android desktop notifications
* doc/lispref/os.texi (Desktop Notifications)
<android-notifications-notify>: Mention the :icon parameter.

* java/org/gnu/emacs/EmacsDesktopNotification.java
(EmacsDesktopNotification) <icon>: New field.
(<init>): New argument ICON.  Set this.icon to its value.
(display1): Use provided icon and always supply a pending intent
to open Emacs once the notification is clicked.

* java/res/layout/sdk8_notifications_view.xml
(sdk8_notifications_title, sdk8_notifications_content): Set
foreground color to #000000.

* src/androidselect.c (android_init_emacs_desktop_notification):
Update signature of <init>.
(android_locate_icon): New function.
(android_notifications_notify_1): New arg ICON.
(Fandroid_notifications_notify): New parameter icon.
(syms_of_androidselect): <QCicon>: New symbol.
2023-08-21 09:36:52 +08:00
Po Lu
4f714dc081 Support desktop notifications on Android
* doc/emacs/android.texi (Android Environment): Correct list of
permissions granted by default.

* doc/lispref/os.texi (Desktop Notifications): Document the new
function `android-notifications-notify' and its limitations.

* java/AndroidManifest.xml.in: Request notification permissions.

* java/org/gnu/emacs/EmacsDesktopNotification.java: New file.

* java/res/layout/sdk8_notifications_view.xml: New file holding
substitute notification widget definitions for Android versions
prior to 3.0.

* java/res/values/strings.xml: Remove inadvertently introduced
tag attribute.

* lisp/org/org-clock.el (haiku-notifications-notify): Correct
file name in function declaration.
(android-notifications-notify): New declaration.
(org-show-notification): Use `android-notifications-notify'.

* src/androidselect.c (android_init_emacs_desktop_notification)
(android_notifications_notify_1, Fandroid_notifications_notify):
New functions.
(init_androidselect, syms_of_androidselect): Initialize new
class and define new subr.
2023-08-20 20:25:53 +08:00
Po Lu
fd1479a0af Fix libselinux object leaks
* src/fileio.c (Fcopy_file, Fset_file_selinux_context): Call
freecon prior to signaling file errors.
2023-08-20 12:48:03 +08:00
Po Lu
15e498047f Update Android port
* src/sfnt.c (sfnt_decompose_compound_glyph): New argument
GET_METRICS.  Call this function to retrieve glyph metrics used
to compute phantom points when a component glyph's anchor point
is one.
(sfnt_decompose_glyph, sfnt_build_glyph_outline): Plumb
GET_METRICS these two functions.
(sfnt_interpret_shc): Don't shift the provided reference point.
(sfnt_transform_f26dot6): Eschew looping through X and Y if no
offsets are provided.
(sfnt_interpret_compound_glyph_2): Discontinue initializing
phantom points here.
(sfnt_interpret_compound_glyph_1): Do not incorporate phantom
points into the ultimately produced glyph outline.  Correctly
provide for phantom childanchor points.
(sfnt_test_get_metrics, main): Update tests.

* src/sfnt.h: Update prototypes.

* src/sfntfont.c (struct sfntfont_get_glyph_outline_dcontext):
New fields `hmtx', `hhea' and `maxp'.
(sfntfont_get_metrics): New function.
(sfntfont_get_glyph_outline): Provide new tables and the new
callback function.
2023-08-20 12:48:03 +08:00
Eli Zaretskii
781ddd7e7d Fix touchpad scrolling on MS-Windows
* src/w32term.c (w32_construct_mouse_wheel): The number of lines
to scroll should always be positive in wheel-scroll events.
Whether to scroll up or down is encoded in the modifiers, which
produce either wheel-up or wheel-down event.  (Bug#65070)

* doc/lispref/commands.texi (Misc Events): Clarify the
documentation of 'wheel-up' and 'wheel-down' events.
2023-08-19 17:01:18 +03:00
Eli Zaretskii
a85f31c4a4 ; * src/androidterm.c (android_text_to_string): Fix commentary. 2023-08-19 14:29:25 +03:00
Eli Zaretskii
8e8468c46d ; Cleanup comments and doc strings in textconv.c
* src/textconv.c (copy_buffer_text): Rename from 'copy_buffer'.
All callers changed.
(textconv_query, complete_edit_check, commit_text)
(finish_composing_text, set_composing_region)
(textconv_set_point_and_mark, delete_surrounding_text)
(request_point_update, textconv_barrier, get_extracted_text)
(get_surrounding_text, report_point_change)
(report_selected_window_change): Fix commentary.
(Fset_text_conversion_style, text-conversion-edits)
(overriding-text-conversion-style, text-conversion-face): Doc fix.
2023-08-19 13:32:48 +03:00
Eli Zaretskii
b12ce748d1 ; * src/fileio.c (Fset_file_acl): Don't leak memory. 2023-08-19 10:28:47 +03:00
Po Lu
b57a648648 ; * src/textconv.c (Fset_text_conversion_style): Fix typo. 2023-08-19 13:37:55 +08:00
Po Lu
2effd18c97 Make some file I/O operations more robust on Android
* src/android.h (android_readlinkat): New prototype.
* src/androidvfs.c (struct android_vops): New function pointer
`readlink'.
(unix_vfs_ops, android_unix_readlink, afs_vfs_ops)
(android_afs_readlink, content_vfs_ops, android_content_mkdir)
(android_content_chmod, authority_vfs_ops)
(android_authority_readlink, saf_root_vfs_ops)
(android_saf_root_readlink, saf_tree_vfs_ops)
(android_saf_tree_readlink, saf_file_vfs_ops, saf_new_vfs_ops)
(android_saf_new_readlink, root_vfs_ops): Implement new
`readlink' vops for each vnode type.
(android_readlinkat): New function.

* src/fileio.c (Fcopy_file): Be more flexible about SELinux
errors under Android.
(emacs_readlinkat): Use `android_readlink' when built as
libemacs.so.
2023-08-19 13:25:42 +08:00
Po Lu
ec8f330df6 ; Remove set but unused variable
* src/androidvfs.c (android_check_content_access): Delete
`length'.
2023-08-19 09:08:47 +08:00
Po Lu
449008a60f Disable text conversion inside read-char-exclusive
* src/lread.c (read_filtered_event): Disable text conversion if
merely ascii_required.  (bug#65370)
2023-08-19 08:51:44 +08:00
Po Lu
6a4b6c3e83 Disable text conversion within read-char-from-minibuffer
* lisp/subr.el (read-char-from-minibuffer): Disable text
conversion.  (bug#65370)
(y-or-n-p): Remove redundant binding of
`override-text-conversion-style', given that read-key already
disables text conversion.

* src/textconv.c (Fset_text_conversion_style): Always reset text
conversion for the selected frame in addition to any displaying
current_buffer.
2023-08-19 08:48:20 +08:00
Stefan Monnier
4f1ce5db12 (Fmake_local_variable): Fix bug#65209
* src/data.c (Fmake_local_variable): Don't delegate to `Fset` since
they have to obey `let_shadows_buffer_binding_p` whereas we don't.

* test/src/data-tests.el (data-tests--bug65209): New var.
(data-tests-make-local-bug65209): New test.
2023-08-18 19:22:17 -04:00
Eli Zaretskii
f6ebd1ef0d ; * src/treesit.c (Ftreesit_node_parent): Improve commentary. 2023-08-18 09:19:59 +03:00
Eli Zaretskii
3685387e60 Fix invocation with --debug-init and changes to debug-ignored-errors
* src/eval.c (syms_of_eval) <debug-ignored-errors>: Mention in the
doc string the caveat with removing errors from the standard value
while invoking Emacs with --debug-init.

* lisp/startup.el (startup--load-user-init-file): If the user's
init files add to the value of 'debug-ignored-errors', make sure
the additions are preserved after restoring the value we reset
during loading the init file, if Emacs was invoked with
"--debug-init".  (Bug#65267)
2023-08-17 21:35:20 +03:00
Po Lu
5856ea5e4e Introduce support for Desktop Notifications on Haiku
* doc/lispref/os.texi (Desktop Notifications): Document Haiku
desktop notifications.

* etc/NEWS: Announce this change.

* lisp/org/org-clock.el (haiku-notifications-notify): New
declaration.
(org-show-notification): Employ that function.

* src/haiku_io.c (haiku_len) <NOTIFICATION_CLICK_EVENT>: Return
the length for this type of event.

* src/haiku_select.cc (my_team_id, be_display_notification): New
functions.

* src/haiku_support.cc (my_team_id, ArgvReceived): New
functions.

* src/haiku_support.h (enum haiku_event_type): New event type
NOTIFICATION_CLICK_EVENT.
(struct haiku_notification_click_event): New structure.

* src/haikuselect.c (haiku_notifications_notify_1)
(Fhaiku_notifications_notify): New functions.
(syms_of_haikuselect): Register new defsubr.

* src/haikuterm.c (haiku_read_socket):
* src/haikuselect.h:
* src/termhooks.h: Add new events for notification clicks on
Haiku.
2023-08-17 08:34:32 +00:00
Eli Zaretskii
636fb267c4 Improve documentation of case transfer in replacement commands
* doc/emacs/search.texi (Replacement and Lax Matches):
* src/search.c (Freplace_match):
* lisp/replace.el (query-replace, query-replace-regexp): Clarify
in the doc string and the manual how letter-case is transferred
from the replaced text to the replacement text.  (Bug#65347)
2023-08-17 10:07:48 +03:00
Dmitry Gutov
9dff654432 * src/fileio.c (Ffile_name_concat): Improve docstring. 2023-08-17 04:16:09 +03:00
Gregory Heytings
9e9e11648d Simplify 'without-restriction'
This simplification is symmetrical to 01fb898420.

* src/editfns.c: (Finternal__labeled_widen): Add a call to
'Fwiden', and rename from 'internal--unlabel-restriction'.
(unwind_labeled_narrow_to_region): Use the renamed function, and
remove the call to 'Fwiden'.
(syms_of_editfns): Rename the symbol.

* lisp/subr.el (internal--without-restriction): Use the renamed
function.
2023-08-16 16:06:34 +00:00
Eli Zaretskii
a8c8a4e368 ; * src/fns.c (Fcopy_sequence): Doc fix. (Bug#64960) 2023-08-16 15:42:24 +03:00
Po Lu
f2f2e6a082 Update Android port
* configure.ac: Test for getpwent using gl_CHECK_FUNCS_ANDROID.
(bug#65319)

* etc/MACHINES (Android): Mention that a non-GUI build is also
possible on Android.

* lisp/loadup.el: Provide for regular builds on Android.
(bug#65339)

* lisp/wid-edit.el (widget-event-start): Remove function, since
event-start now does the same thing.
(widget-button--check-and-call-button, widget-button-click):
Adjust correspondingly.  Reported by Stefan Monnier
<monnier@iro.umontreal.ca>.

* src/sysdep.c (close_output_streams): Apply workarounds for the
file descriptor sanitizer on all builds where __ANDROID__ is
defined, not just Android port builds.  (bug#65340)
2023-08-16 20:32:38 +08:00
Po Lu
24886a2cc4 Remove get_boot_time from msdos.c
* src/msdos.c (get_boot_time): That all of the actual locking in
filelock.c is under #ifndef MSDOS escaped my notice.  Remove
this unused function.
2023-08-16 11:12:44 +08:00
Po Lu
6dacf5bce4 Fix display of compound glyphs that employ simple transforms
* src/sfnt.c (sfnt_transform_coordinates): Always compute an
affine transform matrix except if no scale is provided at all.
Unconditionally apply x_off and y_off.
(sfnt_decompose_compound_glyph): Delete arguments OF_X and
OFF_Y.  Apply component offsets after writing simple glyph
contours.
(sfnt_decompose_glyph): Modify for new calling convention.
(sfnt_transform_f26dot6): Modify analogously to
sfnt_decompose_compound_glyph.  Also correct anchor offset
computation to scale the unscaled component anchor coordinates
by the interpreter scale.
(sfnt_interpret_compound_glyph_1): Also modify for new calling
convention.
* src/sfnt.h (struct sfnt_compound_glyph_component): <u>: Make
scale fields signed.
2023-08-16 11:02:55 +08:00
Paul Eggert
cc5649bd28 Simplify get_boot_sec
* src/filelock.c (get_boot_sec):
Simplify by removing a special case for MS-DOS.
* src/msdos.c (get_boot_time): New dummy that always fails.
2023-08-15 15:55:40 -07:00
Po Lu
a8365aa841 Micro-optimize GXAXIS
* src/sfnt.c (GXAXIS): Check for the availability of naxis slot
elements in a single operation.
2023-08-15 08:59:03 +08:00
Stefan Kangas
17d3b70fbf Add native WebP support on macOS (Bug#59242)
* src/image.c (syms_of_image)
[HAVE_NATIVE_IMAGE_API && HAVE_NS && NS_IMPL_COCOA]:
Add webp as an image type.
* src/nsimage.m (ns_can_use_native_image_api)
[NS_IMPL_COCOA && !HAVE_WEBP]: Add webp to list of possible image
types in the native image support lookup.
2023-08-14 21:34:34 +02:00
Po Lu
9fb00904f9 Improve efficiency of checking for access to authority documents
* java/org/gnu/emacs/EmacsService.java (checkContentUri): Take a
string instead of a byte array.  Then, use
checkCallingUriPermission, in lieu of opening the file.
* src/android.c (android_check_content_access): Delete unused
function.
(android_init_emacs_service): Adjust for changes to
checkContentUri's signature.
* src/androidvfs.c (android_get_content_name): Return the file
name in a new buffer.
(android_check_content_access): Adjust correspondingly.
(android_authority_name): Verify NAME is a valid JNI string.
2023-08-14 13:15:08 +08:00
Po Lu
3895f88233 Remove workarounds for lib/boot-time.o failures
* configure.ac (UTMP_H_DEFINES_BOOT_TIME):
* src/conf_post.h [__ANDROID__]: Delete workarounds, now that
Gnulib has been corrected.
2023-08-14 09:16:24 +08:00
Stefan Kangas
6412ba2f1a ; Delete commented out variable in png_load_body
* src/image.c (png_load_body): Delete commented out variable.
2023-08-14 01:59:10 +02:00
Po Lu
7ca4c714cb ; * src/conf_post.h: Fix typo. 2023-08-13 13:05:38 +08:00
Po Lu
e09f60045e ; * src/conf_post.h: Fix typo. 2023-08-13 12:59:19 +08:00
Po Lu
0e44ab5f06 Temporary fixes for the Android build
* configure.ac:
* src/conf_post.h [__ANDROID__]: Define substitutes for functions
used by Gnulib that are occasionally absent.
2023-08-13 12:44:25 +08:00
Po Lu
5e0c200608 Fix the MS-DOS build
* msdos/sedlibmk.inp (OMIT_GNULIB_MODULE_boot-time): Define to
true.
* src/filelock.c (get_boot_sec) [MSDOS]: Return 0; this
information is probably unavailable.  It is also irrelevant as
MS-DOS is a single-process operating system.
2023-08-13 11:10:50 +08:00
Po Lu
b7c194c1ea ; Fix FSF address in some files' copyright notices
* src/sfnt.c:
* src/sfnt.h:
* src/sfntfont-android.c:
* src/sfntfont.c:
* src/sfntfont.h: Replace the old FSF address with a link to
gnu.org/licenses.  These addresses were inadvertently imported
when sfnt.c was copied to src.
2023-08-13 11:04:29 +08:00
Paul Eggert
5e736ca6cc Improve boot-time gathering
Simplify Emacs proper by using Gnulib’s boot-time module
instead of doing it all by hand.  This should port Emacs
better to obscurish hosts, as Bruno Haible has merged the
best of Emacs’s and Gnulib’s boot-time gathering.
* lib/boot-time-aux.h, lib/boot-time.c, lib/boot-time.h:
* lib/readutmp.h, m4/readutmp.m4: New files, copied from Gnulib.
* admin/merge-gnulib (GNULIB_MODULES): Add boot-time.
* configure.ac: Do not check for utmp.h;
the boot-time module now does this.
(BOOT_TIME_FILE): Remove; no longer used.
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
* src/filelock.c [__FreeBSD__]: Do not include <sys/sysctl.h>.
[HAVE_UTMP_H]: Do not include utmp.h.
Include boot-time instead: boot-time does the work now.
(BOOT_TIME) [HAVE_ANDROID && !ANDROID_STUBIFY]: Don’t undef.
(WTMP_FILE): Don’t define.
(boot_time, boot_time_initialized, get_boot_time_1, get_boot_time):
Remove.
(get_boot_sec): New function that simply calls Gnulib get_boot_time.
(lock_file_1, current_lock_owner): Use get_boot_sec instead
of get_boot_time.
2023-08-12 19:46:12 -07:00
Po Lu
d21e84d1e7 Employ careadlinkat in getProcName
* src/android.c (android_proc_name): Delete args BUFFER and
SIZE.  Return buffer allocated by careadlinkat.
(NATIVE_NAME): Adjust correspondingly.
2023-08-13 09:10:07 +08:00
Paul Eggert
f3868cb9d1 Update from Gnulib by running admin/merge-gnulib 2023-08-12 12:57:35 -07:00
Eli Zaretskii
3fc9793a26 Merge from origin/emacs-29
842dbf500e * Fix `batch-byte+native-compile' target directory.
8dbd5aa1ee Avoid crashes in 'display_count_lines' when current buffe...
47b4f4cf78 ; * doc/emacs/mini.texi (Completion Commands): Fix a typo...
78999d5213 Update csharp tree-sitter support due to upstream changes
556cb01b48 Substitute command keys in 'ielm-header' at use time
99367078e5 ; * etc/PROBLEMS: Add entry about XIM problems (bug#65205).
03e897c08f Fix rare crashes in redisplay due to problems with fontsets
b1ba06a1e4 Fix a typo in 'leuven-dark-theme.el'
e80a9dcabb ; * admin/git-bisect-start: Update failing commits
9091f42784 ; * admin/git-bisect-start: Update failing commits
344ac529ca ; * etc/PROBLEMS: Fix typo.
bccf848b26 Adapt Tramp test
71bc060e40 Properly expand the JSX indentation rules in 'js-ts-mode'
889cfb42ed * Add `emacs-lisp-native-compile' to easy-menu.
4535aafa8a * lisp/progmodes/elisp-mode.el (emacs-lisp-mode-menu): Si...
173af0cad5 * Introduce `emacs-lisp-native-compile'.
063d7d89d7 Fix the -x switch in non-X builds
5a7fb0b39b Document that `set-mouse-color' does not work everywhere
d06fc72496 ; * doc/emacs/dired.texi (Misc Dired Features): Fix last ...
97b8ac376b Fix the effects and documentation of 'dired-free-space'
75c72e59f6 ; Fix typo
6d11b7b300 Fix cross-reference to eldoc in eglot manual
913e50aba6 Add native-compilation to Emacs Lisp mode menu
b93107c20b Fix emacs-lisp-native-compile-and-load eln target directo...
2023-08-12 13:50:38 -04:00
Eli Zaretskii
b289f0769f Merge from origin/emacs-29
4767f5eaee Better fix for bug#65156
dd1d8414b3 Fix insert-file-contents with pipes and /dev/stdin
50649a6d1a ; * etc/PROBLEMS: Fix wording.
f0dda682ff ; * etc/NEWS.28: Add deletion of levents.el.
f4acae842c Fix bug#65042
e1874c4e8b * configure.ac (HAVE_TREE_SITTER): Set NEED_DYNLIB=yes (b...
ef8838c3a5 * etc/NEWS: Mention tramp-show-ad-hoc-proxies.
495bee253f * test/lisp/net/tramp-tests.el (tramp-test42-utf8): Skip ...
de1effd73b ; Fix last change
7c7966862b * test/lisp/net/tramp-tests.el (tramp-test10-write-region...
16205e8db6 ; Improve help-echo in package.el
a95e700698 ; Filter packages available for upgrade via menu bar
adff72dd1d Fix reverting Rmail buffers
2023-08-12 13:42:14 -04:00
Eli Zaretskii
8dbd5aa1ee Avoid crashes in 'display_count_lines' when current buffer was killed
* src/xdisp.c (Fformat_mode_line):
* src/fns.c (Fline_number_at_pos): Don't allow to count lines in a
dead buffer.  (Bug#65060)
2023-08-12 15:06:48 +03:00
Eli Zaretskii
7b57886346 Fix 'insert-file-contents' with non-regular files
* src/fileio.c (Finsert_file_contents): Fix the doc string.  Erase
only the accessible portion of the buffer, not the entire buffer.
(Bug#65156)
2023-08-12 11:02:52 +03:00