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

67115 commits

Author SHA1 Message Date
Stefan Monnier
28e8e49e08 * lisp/cedet/semantic: Silence some warnings
* lisp/cedet/semantic/db-el.el (emacs-lisp-mode)
(semanticdb-get-database-tables): Use make-instance to silence warnings.

* lisp/cedet/semantic/symref.el: Require semantic/find since we use
some macros from there.  Silence compilation warnings:
Replace initargs with slot names in oref/oset.
Move `SYMREF TOOLS' section earlier so definitions precede their use.
2016-05-12 13:08:34 -04:00
Lars Ingebrigtsen
73071b4cdb Support srcset in <img>
* lisp/net/shr.el (shr--preferred-image): Allow <img> tags
with srcset specifiers (bug#23459).
2016-05-12 17:45:27 +02:00
Michael Albinus
9872736ab7 Do not autoload some functions of tramp.el
* lisp/net/tramp.el (tramp-completion-file-name-handler):
Autoload a shortened version of this function, avoid recursive load.
(tramp-completion-file-name-handler-alist)
(tramp-completion-mode-p)
(tramp-completion-handle-expand-file-name)
(tramp-completion-handle-file-name-all-completions)
(tramp-completion-handle-file-name-completion): Do not autoload.
2016-05-12 13:01:11 +02:00
Michael Albinus
a8be7c1ec4 Avoid recursive load of tramp.el
* lisp/net/tramp.el (tramp-completion-file-name-handler):
Autoload a shortened version of this function, avoid recursive load.
2016-05-12 10:57:10 +02:00
Michael Albinus
d32f204856 ; Remove instrumentation of tramp.el 2016-05-11 16:50:56 +02:00
Paul Eggert
62d7acae74 Pacify byte-compiler in lisp/vc
* lisp/vc/vc-bzr.el, lisp/vc/vc-cvs.el, lisp/vc/vc-hg.el:
* lisp/vc/vc-rcs.el, lisp/vc/vc-src.el:
Declare functions defined elsewhere, to forestall “might not
be defined at runtime” warnings.
2016-05-10 13:40:52 -07:00
Paul Eggert
6d0703a01d Merge from origin/emacs-25
d0d9f55 Allow newlines inside cl function arglists
963541a Publicize cl--generic-all-functions
3c581d5 ; Fix typo
e58f900 Add some "safe-local-variable" declarations for compatibility...
2016-05-10 07:44:28 -07:00
Paul Eggert
433d366dc7 'text-quoting-style' now affects only ` and '
Change 'text-quoting-style' so that it no longer affects
formatting of curved quotes in format arguments to functions like
'message'.  In particular, when this variable's value is 'grave',
all quotes in formats are output as-is.
* doc/lispref/help.texi (Keys in Documentation):
* doc/lispref/strings.texi (Formatting Strings):
* doc/lispref/tips.texi (Documentation Tips):
* etc/NEWS:
* src/doc.c (syms_of_doc): Document this.
* lisp/help-fns.el (describe-function-1):
* src/doc.c (text_quoting_style, Fsubstitute_command_keys)
(syms_of_doc):
* src/editfns.c (styled_format): Omit now-unnecessary code.
* src/lisp.h (LEAVE_QUOTING_STYLE): Remove.
2016-05-10 07:41:40 -07:00
Alan Mackenzie
8939ae68d4 Revert "Fix spurious fontification of "for (; a * b;)" in CC Mode."
This reverts commit 89d1776b81.  It is
being reverted because it slowed down CC Mode's fontification too much
(factor ~3).  It was the fix to bug #7918.
2016-05-10 14:36:02 +00:00
Dmitry Gutov
d0d9f55b63 Allow newlines inside cl function arglists
* lisp/help.el (help-add-fundoc-usage): Allow newlines inside
ARGLIST (bug#21839).
2016-05-10 02:53:20 +03:00
Dmitry Gutov
963541a654 Publicize cl--generic-all-functions
* lisp/emacs-lisp/cl-generic.el (cl-generic-all-functions):
Rename from cl--generic-all-functions.  Update both callers.

* lisp/cedet/semantic/db-el.el
(semanticdb-find-tags-external-children-of-type-method):
And use it here (bug#23042).
2016-05-10 01:16:06 +03:00
Lars Ingebrigtsen
c20cc0986c Move "Recent messages" earlier in report-emacs-bug
* lisp/mail/emacsbug.el (report-emacs-bug): Move the "Recent
messages" part earlier so that users can see it and remove it
if they want.
2016-05-09 22:07:06 +02:00
Michael Albinus
a88f22bdde Pacify byte compiler in tramp.el
* lisp/net/tramp.el (tramp-time-diff): Use `tramp-compat-funcall'.
2016-05-09 21:08:51 +02:00
Alan Mackenzie
e58f900e6d Add some "safe-local-variable" declarations for compatibility with master.
These enable C files from the master repository to be visited in Emacs 25
without generating irritating questions about configuration variable safety.

* lisp/progmodes/cc-vars.el: (c-string-list-p, c-string-or-string-list-p): New
functions.
(c-noise-macro-names, c-noise-macro-with-parens-names): give the
safe-local-variable property c-string-list-p.
(c-macro-names-with-semicolon): give the safe-local-variable property
c-string-or-string-list-p.
2016-05-09 18:12:52 +00:00
Paul Eggert
c8b7a6abd9 Merge from origin/emacs-25
3b47898 Fix doc string in `insert'
b479dea * doc/misc/emacs-mime.texi (time-date): Document now-builtins...
cd27f73 Say 'All results processed' at the end
4ffec91 Document automatic adjustment of process' logical window dime...
dc66271 ; Fix typos and stylistic glitches in NEWS
2016-05-09 10:59:29 -07:00
Michael Albinus
d6dac367cc ; Instrument tramp.el 2016-05-09 19:55:49 +02:00
Alan Mackenzie
a8231e00cb CC Mode now uses the new :after-hook feature of define-derived-mode
It now runs internal variable setting functions after the mode hooks, no
longer runs the mode hooks twice, and declares the configuration variables for
noise macros and macros with semicolons as safe variables (when given suitable
arguments).

Fixes bug #16759 and bug #23476.

* .dir-locals: Put the c-noise-macros-with-paren-names setting back into the C
Mode value.

* lisp/progmodes/cc-mode.el: (c-basic-common-init): Remove the call to
c-make-macro-with-semi-re.
(c-mode, c++-mode, objc-mode, java-mode, idl-mode, pike-mode, awk-mode): Move
c-make-noise-macro-regexps and c-make-macro-with-semi-re (where appropriate)
and c-update-modeline into the :after-hook form.  Remove the explicit settings
of the syntax table, the abbreviation table and the local key map, since they
duplicate forms generated by define-derived-mode.  Remove the explicit
invocation of each mode's mode hook, since they duplicate ones generated by
define-derived-mode.

* lisp/progmodes/cc-vars.el: (c-string-list-p, c-string-or-string-list-p): New
functions.
(c-noise-macro-names, c-noise-macro-with-parens-names): give the
save-local-variable property c-string-list-p.
(c-macro-names-with-semicolon): give the save-local-variable property
c-string-or-string-list-p.

* doc/misc/cc-mode.texi: (Macros with ;, Noise Macros): Note that it's not
necessary to call the regexp generating functions after setting the pertinent
configuration values in a mode hook.
2016-05-09 17:49:45 +00:00
Michael Albinus
60e9b006b5 Extend completion candidates in tramp.el
* lisp/net/tramp.el (tramp-parse-default-user-host): New defun.
(tramp-get-completion-function): Use it.
2016-05-09 09:20:34 +02:00
Michael Albinus
001d59c604 Revert e2f785991d for tramp.el
* lisp/net/tramp.el (tramp-time-diff): Revert previous change due to backwards
compatibility.
2016-05-09 09:18:50 +02:00
Paul Eggert
e2f785991d Simplify now that float-time etc. are built-in
This was prompted by warnings about calls to now-obsolete functions.
* lisp/calendar/time-date.el (encode-time-value):
Use setq rather than a recursive call, to avoid a warning
about calling this obsolete function.
* lisp/calendar/time-date.el (encode-time-value)
(with-decoded-time-value, time-to-seconds, time-to-number-of-days):
* lisp/erc/erc.el (erc-emacs-time-to-erc-time):
* lisp/net/rcirc.el (rcirc-float-time):
* lisp/org/org-compat.el (org-float-time):
Simplify now that time-add and float-time are now built-in.
* lisp/calendar/time-date.el (time-add, time-subtract, time-less-p):
* lisp/net/newst-backend.el (time-add):
* lisp/org/org.el (time-subtract):
Remove backward-compatibility definitions; they are now built-in.
* lisp/calendar/timeclock.el (timeclock-time-to-seconds)
(timeclock-seconds-to-time):
* lisp/net/rcirc.el (rcirc-float-time):
* lisp/org/org-compat.el (org-float-time):
Now obsolete, since callers can just use float-time and
seconds-to-time.  All uses changed.
* lisp/emacs-lisp/ert.el (ert-results-pop-to-timings):
* lisp/gnus/gnus-art.el (article-lapsed-string):
* lisp/gnus/gnus-diary.el (gnus-user-format-function-d):
* lisp/gnus/gnus-group.el (gnus-group-timestamp-delta):
* lisp/gnus/nndiary.el (nndiary-compute-reminders):
* lisp/net/tramp.el (tramp-time-diff):
* lisp/org/org-clock.el (org-clock-timestamps-change):
Prefer the time-subtract builtin to the subtract-time alias.
* lisp/files.el (dir-locals-find-file, dir-locals-read-from-dir):
* test/lisp/character-fold-tests.el (character-fold--speed-test):
Prefer the float-time builtin to the time-to-seconds alias.
* lisp/org/org-agenda.el, lisp/org/org-clock.el, lisp/org/org-list.el:
* lisp/org/org-timer.el, lisp/org/org.el:
Adjust to org-float-time deprecation.
2016-05-08 12:46:22 -07:00
Alan Mackenzie
2eb6817ba9 Add :after-hook facility to define-derived-mode.
This allow a form to be evaluated _after_ a major mode's hooks have been run.
It is needed to solve some problems in CC Mode, including bug #16759 and
bug #23476.

* lisp/emacs-lisp/derived.el (define-derived-mode): introduce the new argument
`:after-hook', and generate the requisite code for it.
(derived-mode-make-docstring): Take account of the possibility of :after-hook.

* lisp/subr.el (delayed-after-hook-forms): New variable.
(run-mode-hooks): As the last thing evaluate the forms in
delayed-after-hook-forms.

* doc/lispref/modes.texi (Derived Modes): Document :after-hook.
(Mode Hooks): Document the new feature in run-mode-hooks.

* etc/NEWS: Note the new feature.
2016-05-08 13:24:20 +00:00
Michael Albinus
344eb61ab3 Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs 2016-05-08 11:47:33 +02:00
Michael Albinus
6ef5944516 Fix recursive load of tramp.elc
* lisp/net/tramp.el (tramp-completion-file-name-handler):
Check also for `tramp-completion-mode-p'.
(tramp-completion-mode, tramp-completion-mode-p): Autoload them.
2016-05-08 11:47:08 +02:00
Paul Eggert
e8bda380bb Prefer grep -E/-F to egrep/fgrep
POSIX marked egrep and fgrep as legacy apps in SUSv2 (1997) and
withdrew them in SUSv3 (2001), and these days grep -E and grep -F
are probably more portable.
* lib-src/etags.c (main):
* lisp/eshell/em-unix.el (eshell-grep, eshell/egrep)
(eshell/fgrep):
* lisp/cedet/semantic/symref.el (semantic-symref-find-text):
* lisp/eshell/esh-var.el (eshell-apply-indices):
* lisp/progmodes/ada-xref.el (ada-xref-search-with-egrep)
(ada-find-in-src-path):
* lisp/textmodes/ispell.el (ispell-grep-command):
(ispell-lookup-words):
Use or document grep -E and grep -F instead of egrep and fgrep.
* lisp/textmodes/ispell.el (ispell-grep-options):
Use -Ei on all platforms, not just MS-Windows.
2016-05-07 18:40:55 -07:00
Dmitry Gutov
4c175a6af5 Avoid unnecessary work if a chunk is empty
* lisp/jit-lock.el (jit-lock-fontify-now): Avoid unnecessary work
if a chunk is empty (bug#23278).
2016-05-08 02:09:36 +03:00
Dmitry Gutov
cd27f7396b Say 'All results processed' at the end
* lisp/progmodes/xref.el (xref--query-replace-1):
Say 'All results processed' at the end if the user hadn't
cancelled the process (bug#23284).
2016-05-08 00:29:44 +03:00
Michael Albinus
97776f295d Continue to fix Bug#10085
* lisp/net/tramp.el (tramp-completion-file-name-handler-alist)
<expand-file-name>: Add handler.
(tramp-completion-handle-expand-file-name): New defun.
(tramp-handle-file-name-as-directory): Handle completion mode case.

* test/lisp/net/tramp-tests.el (tramp-test06-directory-file-name):
Fix test.
(tramp-test24-file-name-completion): Extend test.
2016-05-07 22:52:30 +02:00
Alan Mackenzie
23a071d87d * lisp/emacs-lisp/edebug.el (edebug-sit-on-break): Give it a version number. 2016-05-07 17:10:36 +00:00
Alan Mackenzie
ed5282d239 Add an option in Edebug to prevent pauses after h', 'f', and o'.
Requested by Paul Pogonyshev.  Also add in documentation for Edebug config
variables which was missing.

* lisp/emacs-lisp/edebug.el (edebug-sit-on-break): New customizable option.
(edebug--display-1): Test edebug-sit-on-break before pausing 1 second.

* doc/lispref/edebug.texi (Jumping): Document the effect of the new option.
(Edebug Options): Document the new option.  Also add documentation for
edebug-eval-macro-args, edebug-print-length, edebug-print-level,
edebug-print-circle, edebug-sit-for-seconds.

* etc/NEWS: Note the new feature.
2016-05-07 06:42:29 +00:00
Jorgen Schaefer
bf7fc7a804 scheme.el: Turn literal tabs into \t
* lisp/progmodes/scheme.el: The last change to turn tabs into spaces
also caught some literal tabs in character classes. Fix this by
adding \t to those classes.
2016-05-07 12:24:27 +02:00
Tino Calancha
4a6d39b395 Make 'backtab' work in table-mode on text terminals
* lisp/textmodes/table.el (table-cell-bindings): Bind 'backtab'
explicitly.  (Bug#23456)
2016-05-07 11:19:26 +03:00
Alan Mackenzie
26171e0277 Correct hack-local-variables change from Thu May 5 11:05:49 2016 +0000
Prevent hack-local-variables being called from the fundamental-mode mode call
early in normal-mode.  This fixes bug #23460 and bug #23463.

* lisp/files.el (normal-mode) Replace call to fundamental-mode with calls to
the things it calls, with the exception of hack-local-variables.

* etc/NEWS: Add an entry to note the calling of hack-local-variables at each
major mode initialization.
2016-05-06 18:58:49 +00:00
Michael Albinus
c760a600da tramp-sh.el: Work around a stat bug (backport from master)
* lisp/net/tramp-sh.el (tramp-get-remote-stat): Do not use
stat versions which produce shell quoted output.  See also
coreutils Bug#23422.

(cherry picked from commit 6aad36ace9)
2016-05-06 08:13:08 +02:00
Paul Eggert
89ce83b202 Merge from origin/emacs-25
50650cb Doc fixes for fclist and grep
5e814e0 Minor doc fixes for quoting
3347a73 `nreverse' the marker pairs list
1a4127d Use save-excursion in xref-location-marker more
ab3ba91 shell-quote-argument DIR when appropriate
922c7a3 Rework xref-query-replace-in-results
3fe3510 * lisp/replace.el (query-replace-read-from): Use minibuffer-w...
0932b94 Fix todo-mode bug involving archived items (bug#23447)
e68ad1f ; * etc/NEWS: Tiny edit. (Bug#23432)
adc80b7 ; * test/automated/xref-tests.el: Add copyright and license.
4d8fd9c Handle "empty line" regexp in xref searches
f559b37 Add tests for xref-collect-matches
6428aa0 Use grep-find-ignored-directories instead of vc-directory-exc...
6f82d8e Clear buffer-undo-list when showing xrefs
c68a091 Note the quote translation in `message' in section "incompati...
52f86a7 * etc/NEWS: Mention (message "%s" (format ...)).
93703c5 (Common Keywords): Correct what missing :group means
79e5800 Improve documentation of Dired's 'A' and 'Q' commands
2ea2a2f Doc fixes for quoting
8544b98 posnp doc clarification
805204f Mention what a missing :group does
ec554d7 Fix documentation of dired-aux search/replace commands
2016-05-05 23:11:11 -07:00
Paul Eggert
50650cb688 Doc fixes for fclist and grep
A newline is needed between two fc-list calls.
egrep and fgrep have been withdrawn from POSIX,
so document grep -E and grep -F instead.
2016-05-05 12:50:01 -07:00
Simen Heggestøyl
d546ed13b0 Support completion of HTML tags in CSS selectors
* lisp/textmodes/css-mode.el (css--html-tags): New variable holding a
list of HTML tags for completion.
(css--nested-selectors-allowed): New variable for determining whether
nested selectors are allowed in the current mode.
(css--complete-selector): New function for completing part of a CSS
selector.
(css-completion-at-point): Support completion of selectors.
(scss-mode): Allow nested selectors.
2016-05-05 21:22:36 +02:00
Lars Ingebrigtsen
67fa7f13d4 Make `R' in eww work more reliably
* lisp/net/eww.el (eww-score-readability): Protect against
null children.
2016-05-05 19:41:21 +02:00
Dmitry Gutov
3347a733e0 `nreverse' the marker pairs list
* lisp/progmodes/xref.el (xref--buf-pairs-iterator): `nreverse'
the marker pairs list for each buffer before returning.
2016-05-05 16:01:52 +03:00
Alan Mackenzie
25f455815b Call hack-local-variables from major modes rather than from file visiting
This prevents file/directory local variables from being lost when the major
mode is set or changed.

This fixes bug #15577 and bug #23407.

* lisp/files.el (normal-mode): Call `hack-local-variables' when the major mode
function hasn't already done so.
(hack-local-variables): Rename parameter `mode-only' to `handle-mode', make
its previous non-nil setting be t, and introduce the following action for a
non-nil non-t value: apply all settings apart from `mode'.

* lisp/subr.el (run-mode-hooks): call `hack-local-variables' for buffers
which are visiting files.

* doc/emacs/custom.texi (File Variables): Note that setting a major mode also
sets file variables.
(Directory Variables): Note that `mode', `eval', and `unibyte' can be set as
dir local variables, but `coding' can't.

* doc/lispref/modes.texi (Major Mode Conventions): Say that `run-mode-hooks'
also calls `hack-local-variables'.
(Auto Major Mode): Say that `find-file' no longer runs `hack-local-variables',
as from 25.2.  Remove vagueness from `normal-mode' and `set-auto-mode' by
saying that the mode IS SET, not merely "selected" or "chosen".
(Mode Hooks): Document change to `run-mode-hooks'.

* doc/lispref/variables.texi (File Local Variables): Document change to
`hack-local-variables'.
2016-05-05 11:05:49 +00:00
Michael Albinus
6aad36ace9 tramp-sh.el: Work around a stat bug
* lisp/net/tramp-sh.el (tramp-get-remote-stat): Do not use
stat versions which produce shell quoted output.  See also
coreutils Bug#23422.
2016-05-05 10:23:06 +02:00
Dmitry Gutov
1a4127dbd6 Use save-excursion in xref-location-marker more
* lisp/progmodes/elisp-mode.el (xref-location-marker): Use
save-excursion, in order not to alter the value of point if the
buffer is currently open in the background (problem reported by
Robert Weiner).

* lisp/progmodes/etags.el (xref-location-marker): Same.
2016-05-05 04:28:14 +03:00
Dmitry Gutov
ab3ba912fc shell-quote-argument DIR when appropriate
* lisp/progmodes/project.el (project-file-completion-table):
`shell-quote-argument' DIR as well.

* lisp/progmodes/xref.el (xref--rgrep-command): Pass DIR through
`shell-quote-argument' (bug#23453).  Thanks for Kaushal Modi for
pointing out the problem.  Assert that DIR doesn't start with `~'.
2016-05-05 04:15:23 +03:00
Dmitry Gutov
922c7a3e48 Rework xref-query-replace-in-results
* lisp/progmodes/xref.el (xref-query-replace-in-results): Collect
all xrefs from the buffer first, then delegate most of the
processing to the value returned by xref--buf-pairs-iterator.
(xref--buf-pairs-iterator): New function.  Return an "iterator"
which partitions returned markers into buffers, and only processes
markers from one buffer at a time.  When an xref is out of date,
skip it with a message instead of signaling error (bug#23284).
(xref--outdated-p): Extract from xref--buf-pairs-iterator.  Trim
CR from both strings before comparing.
(xref--query-replace-1): Remove the variable current-buf, no need
to track it anymore.  Simplify the filter-predicate and search
functions accordingly.  Iterate over buffer-markers pairs returned
by the iterator, and call `perform-replace' for each of them.  Use
multi-query-replace-map (bug#23284).  Use `switch-to-buffer' every
time after the first, in order not to jump between windows.

* test/automated/xref-tests.el
(xref--buf-pairs-iterator-groups-markers-by-buffers-1)
(xref--buf-pairs-iterator-groups-markers-by-buffers-2)
(xref--buf-pairs-iterator-cleans-up-markers): New tests.
2016-05-05 03:26:04 +03:00
Juri Linkov
3fe3510728 * lisp/replace.el (query-replace-read-from): Use minibuffer-with-setup-hook
to set minibuffer-local value of text-property-default-nonsticky.
(Bug#23418, bug#23127)
2016-05-04 23:05:33 +03:00
Alan Mackenzie
32f5bf0c29 Allow text-quoting-style' to be leave', i.e. no translation of quotes.
* lisp/help-fns.el (describe-function-1): Don't set coding system to UTF-8
when text-quoting-style is `leave'.

* src/lisp.h (enum text_quoting_style): Add identifier LEAVE_QUOTING_STYLE.

* src/doc.c (syms_of_doc): New symbol "leave".  Amend doc string of
`text_quoting_style'.
(text_quoting_style): Handle `leave' by returning LEAVE_QUOTING_STYLE.
(Fsubstitute_command_keys): Don't translate quotes when quoting_style is
LEAVE_QUOTING_STYLE.

* src/editfns.c (styled_format): Set quoting_style to -1 when
text-quoting-style is `leave'.
2016-05-04 19:59:50 +00:00
Stephen Berman
0932b94897 Fix todo-mode bug involving archived items (bug#23447)
* lisp/calendar/todo-mode.el (todo-jump-to-category): When jumping
from Todo Categories mode to a category with only archived items
and todo-skip-archived-categories is non-nil, make sure the
archive file buffer is in Todo Archive mode to prevent
todo-category-select from raising an error, and don't set
todo-current-todo-file, since that makes todo-show display the
archived category.  Remove a no-op call to kill-buffer, which is
already called in todo-insert-category-line.
2016-05-04 21:52:32 +02:00
Stefan Monnier
088acab383 * lisp/emulation/viper(-cmd)?.el: Use lexical-binding.
* lisp/emulation/viper-cmd.el: Use lexical-binding.
(viper-change-state-to-vi, viper-change-state-to-emacs): Allow dummy
args, for use in advice-add.
(viper--init-message): Rename from init-message.
(viper-minibuffer-standard-hook): Adjust accordingly.
(viper-undo): Remove unused var `modified'.
(viper-read-string-with-history, viper-set-searchstyle-toggling-macros):
Don't use dynamic vars as args.
(viper-submit-report): Clarify use of dynamic vars.

* lisp/emulation/viper.el: Use lexical-binding and nadvice.
Remove redundant :group keywords.  Group the (if viper-mode) at top-level.
Use add-function rather than a `(lambda ...).
(viper--advice-list): New var.
(viper--advice-add, viper--deactivate-advice-list): New funs.
(viper-go-away, viper-set-hooks, viper-non-hook-settings): Use them.
(viper-non-hook-settings): Don't hook into find-file any more.
2016-05-04 11:09:01 -04:00
Stefan Monnier
3d8b29bbf6 * lisp/vc/ediff-util.el: Use lexical-binding. 2016-05-04 09:12:49 -04:00
Stefan Monnier
4deb5bd9b1 * lisp/progmodes/js.el (js-syntax-propertize): Recognize shebang line. 2016-05-04 08:53:00 -04:00
Lars Ingebrigtsen
9ec81c5a6e Add an animation sanity check
* lisp/image.el (image-multi-frame-p): Give up on animations
if it seems like they are too slow (bug#23431).
2016-05-04 01:37:01 +02:00