Commit graph

1414 commits

Author SHA1 Message Date
Paul Joannon 484f664331 Change 'Build Project' button style in Mono panel
Address #15208
2018-01-10 21:03:07 +01:00
Rémi Verschelde a60896869e
Merge pull request #15537 from PJB3005/18-01-09-fix-color-string-constructor-mono
Fixes Mono color creation from string being 0-255 instead of 0-1.
2018-01-10 14:50:26 +01:00
Pieter-Jan Briers 6e14cf991a Fixes Mono color creation from string.
Fixes #15468

Also improves the error messages if the string isn't hex, because saying that the color value is negative is just a side effect of the implementation and tells you nothing.
2018-01-10 13:56:30 +01:00
Rémi Verschelde aebdc4c212
Merge pull request #15541 from neikeq/look-all-i-want-to-tell-you-is
Mono: Some fixes for #15463
2018-01-10 10:39:20 +01:00
Emmanuel Leblond 58f3ad69c7
Fix warning when editor resource preview try to read pluginscript resource 2018-01-09 23:12:39 +01:00
Ignacio Etcheverry f7de51b3a6 Mono: Some fixes for #15463 2018-01-09 22:27:55 +01:00
Emmanuel Leblond 72d50b4185
Fix crash in pluginscript complete_code 2018-01-09 21:12:24 +01:00
Rémi Verschelde c037f6339f
Merge pull request #15463 from neikeq/the-stack-frame-madness
Mono: Implement stack info for errors and exceptions
2018-01-09 19:44:10 +01:00
Ignacio Etcheverry 252702a304 Mono: Fix iteration order of object types when generating bindings 2018-01-09 19:06:59 +01:00
Ignacio Etcheverry 1c6269f2dd External editor fixes
- Fix VS Code opening on the previous line to the desired one.
- Fix running MonoDevelop without the line and column parameters.
- Fix `ScriptEditor::_goto_script_line` not working with language overriden external editors.
2018-01-09 17:25:23 +01:00
Ignacio Etcheverry 5be356b72f Mono: Implement stack info for errors and exceptions 2018-01-09 17:19:03 +01:00
Rémi Verschelde d2f4964f58
Merge pull request #15490 from AndreaCatania/kin
Fixed #15417 kinematics char jumping
2018-01-08 20:13:27 +01:00
AndreaCatania c507a4988d Removed useless error print on bullet shapes 2018-01-08 16:49:04 +01:00
AndreaCatania 50c99370d2 Fixed Bullet collision shapes scale 2018-01-08 16:44:33 +01:00
Rémi Verschelde e7400a0f4e
Merge pull request #15426 from poke1024/fix15409
Fixes RegEx::sub injecting null character (issue 15409)
2018-01-08 09:07:55 +01:00
Bernhard Liebl 57e77db0ed Fixes RegEx::sub injecting null character (issue 15409) 2018-01-07 15:00:33 +01:00
Rémi Verschelde 29e68aa40e doc: Sync classref with current source 2018-01-07 01:37:45 +01:00
Ian bce2d2c297 Filesystem and Visual Script Members keyboard shortcuts fix 2018-01-06 15:46:32 -05:00
karroffel 66eed7b859 [GDNative] fix reloading of non-reloadable libraries 2018-01-06 21:10:01 +01:00
Juan Linietsky 50b975548d Removed PBM bitmap loader, added abiliy to importi mages as bitmap. Fixes #14828 2018-01-06 16:38:36 -03:00
karroffel 34cdcf5cd0 [GDNative] added reload property 2018-01-06 12:31:30 +01:00
Rémi Verschelde 0e6e98a65f Fix build of GDMonoField
Closes #15385.
2018-01-06 11:06:05 +01:00
Rémi Verschelde e4213e66b2 Add missing copyright headers and fix formatting
Using `misc/scripts/fix_headers.py` on all Godot files.
Some missing header guards were added, and the header inclusion order
was fixed in the Bullet module.
2018-01-05 01:22:23 +01:00
Rémi Verschelde 0f8ac21592
Merge pull request #15346 from neikeq/properties-are-overrated
Mono: Add properties support in scripts
2018-01-04 21:50:04 +01:00
Ignacio Etcheverry 119a910bc6 Mono: Add properties support in scripts 2018-01-04 21:16:22 +01:00
Emmanuel Leblond c1eba93cae
Disable lto for gdnative wrapper 2018-01-04 20:29:47 +01:00
Rémi Verschelde df04f462fc
Merge pull request #15326 from robfram/issue-15303
Fix Issue#15303 FreeBSD compilation error in thekla_atlas
2018-01-04 16:05:25 +01:00
robfram f2afddbc52 Fix Issue#15303 FreeBSD compilation error in thekla_atlas due to wrong definition of NV_OS_LINUX instead NV_OS_FREEBSD 2018-01-04 15:31:08 +01:00
Rémi Verschelde f8b58784bc
Merge pull request #13257 from AndreaCatania/master
Fixed kinematic movement stuck, Changed how shape scale works.
2018-01-04 15:26:23 +01:00
Rémi Verschelde c4c1ca9cb1
Merge pull request #15223 from ibrahn/ogg-data-leak-fix
free associated audio data on AudioStreamOGGVorbis destruction
2018-01-04 15:25:20 +01:00
Rémi Verschelde 8d03cafd7c doc: Sync classref with current source 2018-01-03 13:45:03 +01:00
samvila 6188279eeb Remove too verbose printf statements from VideoStreamTheora 2018-01-03 13:29:17 +01:00
Rémi Verschelde 5519481803
Merge pull request #15114 from capnm/fix-bad-lightmap-crash
Avoid thekla_unwrap crash
2018-01-03 12:36:47 +01:00
Rémi Verschelde fa9320cfc6
Merge pull request #15120 from AndreaCatania/gridm
Added layer and mask in the gridmap node
2018-01-03 11:19:09 +01:00
Rémi Verschelde 3db1c6a6f5
Merge pull request #15089 from poke1024/funcref-warn
Warn about funcref creation
2018-01-03 11:03:03 +01:00
George Marques c9005ca7fd
Merge pull request #15246 from vnen/uwp-gdnative
Make GDNative DLLs work on UWP
2018-01-01 22:47:22 -02:00
George Marques 2a023a425d
Make GDNative DLLs work on UWP 2018-01-01 13:59:14 -02:00
Rémi Verschelde b50a9114b1 Update copyright statements to 2018
Happy new year to the wonderful Godot community!
2018-01-01 14:40:47 +01:00
Rémi Verschelde defdb5761d
Merge pull request #15232 from neikeq/issue-15138-and-more
Mono fixes
2018-01-01 11:46:14 +01:00
Ignacio Etcheverry fe391393d4 Mono: Change BindingsGenerator singleton to avoid StringName leaks 2018-01-01 03:05:19 +01:00
Ignacio Etcheverry b271aa48e4 Mono: Script lifetime fixes
- alloc_language_binding: Use strong GC handle as well for references. Fixes #15138
- Set the native instance field of Godot.Object to IntPtr.Zero when it's freed.
- Create weak handles without tracking resurrection (that was causing trouble). This means we have to call notification predelete before queueing a native Object for deletion, and use the MonoObject* passed by the finalizer because the weak GC handle target will return NULL at this point.
2018-01-01 03:05:13 +01:00
Ignacio Etcheverry d6a1125254
Merge pull request #15136 from neikeq/issue-15128
Mono: Bindings no longer relie on DocData for accessors
2017-12-31 22:30:25 +01:00
Ibrahn Sahir 12efcb665a free associated audio data on AudioStreamOGGVorbis destruction 2017-12-31 16:51:55 +00:00
firefly2442 ac2b084fdc fix typo in switch statement 2017-12-30 21:49:04 -07:00
Martin Capitanio 1df63bf3cb Avoid thekla_unwrap crash
Godot crashed here sometimes by generating the uv map.
2017-12-31 00:43:32 +01:00
Ignacio Etcheverry e350a56efd Mono: Bindings no longer relie on DocData for accessors 2017-12-29 02:18:46 +01:00
AndreaCatania 5a15e6e75c Added layer and mask in the gridmap node 2017-12-28 16:13:45 +01:00
Noshyaar ab444a8ca9
Merge pull request #14996 from neikeq/enums-mono
Mono: Make the bindings generator output enums
2017-12-27 10:29:00 +07:00
Bernhard Liebl 29f7f48c42 Warn about funcref creation 2017-12-26 23:16:41 +01:00
Ignacio Etcheverry 8b0ad17b76
Merge pull request #14997 from neikeq/issue-14988
Marshal NULL MonoString* as empty Godot string
2017-12-24 17:50:28 +01:00
Juan Linietsky e1da261844 Restored opus build since WebM needs it, but disabled it from code. 2017-12-24 09:37:51 -03:00
Juan Linietsky 021f3c924b -Removed OpenMP support, replaced by a custom class.
-Disabled Opus, implementation is wrong.
2017-12-24 09:32:12 -03:00
Noshyaar 83182ea4a1
Merge pull request #14982 from GodotExplorer/more-translate-text
Add more translatable text for editor plugins.
2017-12-24 18:28:46 +07:00
Ignacio Etcheverry 0a0a44da8d Mono: Make the bindings generator output enums
- Switch to PascalCase for constants names
2017-12-24 04:20:41 +01:00
Ignacio Etcheverry 6e3d4ee9a6 Marshal NULL MonoString* as empty Godot string 2017-12-24 03:32:40 +01:00
AndreaCatania f4b96cc0a9 Fixed kinematic movement stuck, Changed how shape scale works, Optimized 2017-12-23 18:23:12 +01:00
Colin Kinloch 853b1daa49 Fixed android arm64v8 2017-12-23 16:49:04 +00:00
Juan Linietsky 9969c5c6a1
Merge pull request #14978 from AndreaCatania/intshap
Fixed dispatch callback
2017-12-23 11:55:15 -03:00
geequlim 52ad2e5418 Add more translatable text for editor plugins. 2017-12-23 22:40:15 +08:00
AndreaCatania 0f5c87bfa4 Fixed dispatch callback 2017-12-23 12:36:51 +01:00
Rémi Verschelde 5463b5e348
Merge pull request #14965 from AndreaCatania/intshap
Fixed bullet intersect_shape crash, Fixed bullet sleeping
2017-12-23 11:18:30 +01:00
AndreaCatania aea1b2e6c3 Fixed rigidbody sleping, Fixes #13952 2017-12-23 05:13:39 +01:00
AndreaCatania 512c60f1d8 Fixed intersect_shape crash, closes #13697 2017-12-23 00:04:53 +01:00
Juan Linietsky 360449a094 Fix gridmap disappearing after editing after bake, closes #14868 2017-12-20 11:10:27 -03:00
PJB3005 7368a0e0f0 Fix fatal mono logs not getting logged to disk.
They aborted the application without flushing the log file.

Also there was a typo.
2017-12-19 17:36:33 +01:00
Juan Linietsky 8b01b2e85c -Fix some crashes in unwrapper
-Add emission lighting to raytrace mode, fixes #14686
2017-12-19 12:16:55 -03:00
Juan Linietsky 1eb1837d0c Should no longer crash after rebaking, may be a solution to #14795
Not sure if this is the same problem, as reported, please test.
2017-12-19 09:58:02 -03:00
geequlim 13bd5c22c6 Add plugin to edit GDNativeLibrary
Rename GDNativeLibraryEditor to GDNativeLibrarySingletonEditor
2017-12-18 23:23:29 +08:00
Rémi Verschelde abf20709af doc: Sync classref with current source 2017-12-18 08:13:58 +01:00
Juan Linietsky e96c40f94a Added baked light support for gridmaps. 2017-12-18 00:35:20 -03:00
Rémi Verschelde 4e442b0648
Merge pull request #14788 from mrcdk/ogg_pop_noise_fix
Fix ogg looping pop noise. Closes #11468
2017-12-17 23:59:09 +01:00
Rémi Verschelde e83c502939
Merge pull request #14754 from willnationsdev/dictionary-copy
Added 'duplicate' function for Dictionary in C++ and API.
2017-12-17 23:58:59 +01:00
Will Nations f19fc83546 Dictionary::copy -> ::duplicate 2017-12-17 16:07:15 -06:00
MrCdK 1ccfb01cbc Fix ogg looping pop noise. Closes #11468 2017-12-17 22:30:28 +01:00
Daniel J. Ramirez c8c280a68a Now every variant type has its icon. 2017-12-17 14:06:11 -06:00
Daniel J. Ramirez 756c033adb General use Variant type icons, plus other icon updates. 2017-12-17 13:19:09 -06:00
Rémi Verschelde 8f25a2dc11 Cleanup some #if 0'd code 2017-12-17 15:40:24 +01:00
Rémi Verschelde 1b9c8daf7b
Merge pull request #12845 from remorse107/Array-Dictionary-Fix
Fix issue #11400.  Fixes issue with arrays and dictionary acting as static objects between different instances of objects.
2017-12-16 15:49:07 +01:00
Ruslan Mustakov 9d6d20e67c Remove get_stack_bottom
It's not used in godot-nim any longer and there were no other uses for
it.
2017-12-16 13:10:26 +07:00
Rémi Verschelde dcdf9008ae
Merge pull request #14676 from NathanWarden/nav_create_to_add
Renamed navmesh_create to navmesh_add since no navmesh is created.
2017-12-16 00:36:47 +01:00
Rémi Verschelde cf7bd1a7e3
Merge pull request #14708 from Faless/get_packet_not_const_rebased
Remove "const" from PacketPeer get_packet/get_var, move windows network related stuff to drivers
2017-12-16 00:05:18 +01:00
Juan Linietsky e946fb8cb0 Made built-in identifiers properly constant in shaders. Fixes #14449, closes #14629 2017-12-15 18:24:30 -03:00
Nathan Warden 38caa4126f Renamed navmesh/poly_create to navmesh/poly_add since no navmesh is created. 2017-12-15 15:09:06 -05:00
Fabio Alessandrelli 92067b4714 Remove "const" from PacketPeer get_packet/get_var
They are NOT constant methods, as state by the comment message,
they fetch the last packet and then forget about it, actively
changing the state of the object.
2017-12-15 17:14:17 +01:00
Thomas Herzog f680c6fab0
Merge pull request #14679 from touilleMan/add-godot_get_global_constants-to-gdnative-wrapper
[GDnative] missing godot_get_stack_bottom and godot_get_global_constants
2017-12-15 10:54:48 +01:00
bruvzg f55162ac1d
Fixes thekla atlas mingw-w64 build 2017-12-15 09:04:51 +02:00
Emmanuel Leblond 29df438f9a
Add missing godot_get_stack_bottom and godot_get_global_constants in gdnative_api.json 2017-12-15 00:37:46 +01:00
Juan Linietsky 93a63a5e1a GDScript files are converted to binary on export now. 2017-12-14 15:34:47 -03:00
Juan Linietsky f3ad14224e -Add lightmapper
-Fixes to unwrapper (remove degenerates), makes Thekla not crash
-Added optional cancel button in EditorProgress
-Added function to force processing of events (needed for cancel button)
2017-12-14 09:01:27 -03:00
Rémi Verschelde 1c0007ba71
Merge pull request #14626 from Hinsbart/module_env
Scons: Build modules in seperate env.
2017-12-13 16:57:12 +01:00
Andreas Haas 0e624234da
Scons: Build modules in seperate env. 2017-12-13 15:46:35 +01:00
Rémi Verschelde 88a3e15981
Merge pull request #14587 from hoelzl/pr-no-std-arg-on-msvc
Don't pass -std=gnu++11 to MSVC
2017-12-13 08:37:33 +01:00
Rémi Verschelde 729af16aa9
Merge pull request #14591 from mhilbrunner/patch-6
Small fix in stream_peer_openssl: missing break, formatting
2017-12-13 08:37:13 +01:00
Rémi Verschelde a104a9b95b
Merge pull request #14593 from Hinsbart/mono_env
Mono: Build in cloned env.
2017-12-13 08:36:57 +01:00
Matthias Hoelzl 26a1621678 Change -std=gnu++11 to -stc=c++11 and don't pass flag to MSVC 2017-12-12 18:58:51 +01:00
Hein-Pieter van Braam 5387613c7b Fix mingw build for thekla_atlas 2017-12-12 17:30:43 +01:00
Andreas Haas e7c1255b06
Mono: Build in cloned env.
Use a cloned env, so that toggling glue_enabled doesn't force a full rebuild as mentioned in #14584.
2017-12-12 16:20:34 +01:00
Max Hilbrunner d5df834b89
stream_peer_openssl: add missing break & format 2017-12-12 13:35:34 +01:00
Rémi Verschelde 8cd4b9bf27
Merge pull request #14555 from bojidar-bg/14324-nested-ternary
Properly support nested ternary expressions
2017-12-12 00:14:36 +01:00
Rémi Verschelde 3a07860311
Merge pull request #14561 from volzhs/libwebp-0.6.1
Update libwebp to 0.6.1
2017-12-12 00:14:26 +01:00
volzhs 043103fe6a Update libwebp to 0.6.1
* lossless performance and compression improvements + a new 'cruncher' mode (-m 6 -q 100)
* ARM performance improvements with clang (15-20% w/ndk r15c)
* webp-js: emscripten/webassembly based javascript decoder
* miscellaneous bug & build fixes
2017-12-12 02:55:47 +09:00
Bojidar Marinov 2c190b975e
Properly support nested ternary expressions
Fixes 14324.
2017-12-11 15:36:32 +02:00
Rémi Verschelde dfb3634c34
Merge pull request #13836 from AndreaCatania/scale
Fixed bullet scale on get_transform and joints
2017-12-11 10:35:09 +01:00
Rémi Verschelde 5cfafaf09e
Merge pull request #14516 from AndreaCatania/patch-2
Implemented physics linear and angular lock
2017-12-11 00:13:06 +01:00
AndreaCatania 5dee44bbc1 Implemented physics linear and angular lock 2017-12-10 17:21:14 +01:00
AndreaCatania 785173e899 Ray cast return shape id. Fixes #14473 2017-12-10 12:20:36 +01:00
Rémi Verschelde a845411454 Style: Re-apply clang-format over recent invalid additions 2017-12-10 01:27:02 +01:00
Rémi Verschelde aeae05a2f4 Fix missing parenthesis 2017-12-09 23:36:41 +01:00
Rémi Verschelde 2b91a2059b GDNative: Fix warning when gdnative/singletons is missing 2017-12-09 23:32:40 +01:00
AndreaCatania b546cd50a3 Changed how 6DOF limits works 2017-12-09 19:53:08 +01:00
Rémi Verschelde bdf0c93a9f
Merge pull request #14459 from vnen/gdscript-object-export
Make GDScript parser raise error when exporting Object
2017-12-09 19:04:57 +01:00
George Marques 3d8dd7b327
Make GDScript parser raise error when exporting Object 2017-12-09 15:35:02 -02:00
Juan Linietsky 65fb961b8b -Ability to and unwrap lightmap coordinates on import
-Added unwrap functionality to Mesh
-Ability to display and debug mesh UVs
-Added multiline draw, so it's easier and faster to draw UVs
-Many fixes to SurfaceTool
-Fixes to Thekla Unwrap, but it's a piece of ass and it keeps crashing. Will have to go away
2017-12-09 14:18:14 -03:00
Rémi Verschelde 48d0336882
Merge pull request #14358 from RandomShaper/fix-vscript
Fix function arg count not considered in VisualScript
2017-12-09 14:18:26 +01:00
Rémi Verschelde 25b36f18d3
Merge pull request #12756 from Stratos695/master
Allowing double-axis lock in RigidBody & KinematicBody (Fixes #12500)
2017-12-09 13:01:41 +01:00
AndreaCatania 32408f3bfd Fixed joint scale 2017-12-09 01:22:36 +01:00
AndreaCatania 5cfc98cace Fixed bullet get_transform scale 2017-12-08 16:46:41 +01:00
Hein-Pieter van Braam a974464629 Fix thekla_atlas build
clang doesn't like c++ versions being supplied to build c source files.
2017-12-08 16:18:36 +01:00
Hein-Pieter van Braam bf05309af7 Import thekla_atlas
As requested by reduz, an import of thekla_atlas into thirdparty/
2017-12-08 15:47:15 +01:00
Juan Linietsky dcab01618a Fixed is_playing funtion (was reporting wrong), closes #13928
Made error reporting to opcode_set in gdscript a bit clearer
2017-12-07 18:14:39 -03:00
Rémi Verschelde 96dbf19093
Merge pull request #14332 from akien-mga/clang-format
Update style for clang-format 5.0.0, new min required version
2017-12-07 09:18:11 +01:00
Rémi Verschelde 624a2b08f3 doc: Sync classref after a496dd4d, removing NOEDITOR properties from doc 2017-12-07 08:29:38 +01:00
Rémi Verschelde 13c2ff9320 Style: Apply new clang-format 5.0 style to all files 2017-12-07 08:02:00 +01:00
Rémi Verschelde d5ca9e2f6f Style: Apply clang-format again on all files
Fixes issues introduced by newer clang-format versions or commits
pushed directly without using the clang-format pre-commit hook.
2017-12-07 08:02:00 +01:00
Pedro J. Estébanez c68300b88d Fix function arg count not considered in VisualScript 2017-12-07 02:19:56 +01:00
Rémi Verschelde 8b907365d0
Merge pull request #14006 from akien-mga/tinyexr
Fix TinyEXR import bug and update to current master
2017-12-07 00:22:10 +01:00
Rémi Verschelde c2031fc813
Merge pull request #13436 from hoelzl/pr-vs-yield-signal-oneshot
Connect signal for VisualScript "Yield Signal" using oneshot mode
2017-12-06 23:43:27 +01:00
Rémi Verschelde e35e45a788
Merge pull request #13427 from hoelzl/pr-vs-enable-yield
Make VisualScriptFunctionState instantiable
2017-12-06 23:41:34 +01:00
Rémi Verschelde 7d9f14e9e4 TinyEXR: Fix EXR header when parsing pixels encoded as HALF
Also free the header and image properly after usage.
Fixes #13490.
2017-12-05 22:50:17 +01:00
Unknown fd1b94e307 Improve slang, especially in user-visible parts 2017-12-05 15:41:38 +01:00
Rémi Verschelde c7f9d8a059
Merge pull request #13992 from ISylvox/substract-to-subtract
Fix Typo: Substract to Subtract
2017-12-05 09:16:10 +01:00
Indah Sylvia 3996a05324 Fixed typo: substract to subtract 2017-12-05 11:34:46 +07:00
George Marques 6af42c536a
GDNative: Save singletons only if there's a change
Ensures that the Project Settings are saved only if the list of
singletons actually changed.
2017-12-05 00:25:29 -02:00
Nathan Warden 0c22447ebe Exported variables now show in the correct order. 2017-12-02 21:01:58 -05:00
Matthias Hoelzl c825a58fe0 Connect signal for VisualScript "Yield Signal" using oneshot mode
Since the first call to a VisualScriptFunctionState invalidates the
state, any further call results in errors.
2017-12-01 04:44:47 +01:00
Matthias Hoelzl 70190e7428 Make VisualScriptFunctionState instantiable 2017-11-30 23:11:32 +01:00
Andrea Catania 2336927043
Fixed bullet server null pointer check
Fixed bullet server null pointer check
2017-11-30 20:38:57 +01:00
Juan Linietsky 9678231b10 Changed the dynamic library open function to allow setting the path of the library to open extra libraries. 2017-11-30 10:00:55 -03:00
Rhody Lugo a65c0939fd disable caching for targets using helper functions 2017-11-28 23:24:12 -04:00
Bastiaan Olij f00b60860c Set real world position, not virtual world position! 2017-11-28 23:28:35 +11:00
Rhody Lugo a4a222d62d use the same cache for all branches for appveyor 2017-11-28 03:23:33 -04:00
Marcin Zawiejski 57f34abea1 Fix constant node value edit 2017-11-25 22:28:59 +01:00
Emmanuel Leblond 6e3d78c94c
[GDNative] disable -fPIC flag with msvc compiler 2017-11-25 20:26:42 +01:00
Rémi Verschelde aa5f7e0ff2 Fix mono build after bc2e8d99 2017-11-25 12:16:58 +01:00
Juan Linietsky bc2e8d99e5 Made Vector::ptrw explicit for writing, compiler was sometimes using the wrong function,
leading to unnecesary copy on writes and reduced performance.
2017-11-25 00:09:40 -03:00
Rémi Verschelde 7dfba3cda9 doc: Fix enum tags thanks to 2bc6db6 2017-11-24 23:16:30 +01:00
Rémi Verschelde 92f07fefcd doc: Remove setters and getters now exposed via properties/members 2017-11-24 18:10:32 +01:00
Rémi Verschelde bc75fae579 doc: Update header version for 3.0-beta 2017-11-24 09:16:52 +01:00
Rémi Verschelde 15ada56d73 doc: Sync classref with current source 2017-11-24 09:16:27 +01:00
AndreaCatania 0a0800ebec Removed shape margin 2017-11-23 14:42:28 +01:00