Commit Graph

656 Commits

Author SHA1 Message Date
Jonathan G Rennison
551d581215 Unix crash log: Fix stack trace formatting when using addr2line 2023-06-18 20:17:38 +01:00
Jonathan G Rennison
a7a8f4c695 Windows crash log: Don't bother writing raw stack if it can be decoded
The raw values are almost always useless
2023-06-18 15:46:13 +01:00
Jonathan G Rennison
bcab44dc98 Windows crash log: Fix stack overflow in crash dialog window setup
Excessive stack use for crash log text conversion buffers
2023-06-18 15:38:33 +01:00
Jonathan G Rennison
d211ef557a Windows crash log: Handle crash log faults (MSVC) 2023-06-18 15:38:26 +01:00
Jonathan G Rennison
8c507d6611 Crash log: Suppress messages from internal faults 2023-06-13 00:57:05 +01:00
Jonathan G Rennison
ad995cbebc Windows crash log: Use TerminateProcess instead of ExitProcess 2023-06-13 00:57:05 +01:00
Jonathan G Rennison
940656bb6c Windows crash log: Handle crash log faults (MinGW) 2023-06-13 00:57:05 +01:00
Jonathan G Rennison
b26a3fa41e Crash log: Write out crash log incrementally on Windows, MacOS 2023-06-13 00:57:05 +01:00
Jonathan G Rennison
76304c1f76 Crash log: Checkpoint each line of decoded stack trace 2023-06-12 19:03:37 +01:00
Jonathan G Rennison
da07c8ce51 Crash log: Move GDB/LLDB logging to its own section 2023-06-12 18:38:27 +01:00
Jonathan G Rennison
dd57fc6ecf Unix crash log: Generalise crash log fault handling to all sections 2023-06-12 18:34:37 +01:00
Jonathan G Rennison
7a9cf87ff8 Windows: Add fallback for DoOSAbort implementation 2023-06-11 17:04:15 +01:00
Jonathan G Rennison
417abcccff Windows: Handle abort exception in VectoredExceptionHandler
To make sure that it is definitely handled
2023-06-11 16:47:01 +01:00
Jonathan G Rennison
cca7c0ef0a Windows: Don't call abort, use RaiseException directly 2023-06-11 16:46:12 +01:00
Jonathan G Rennison
cb6f6f94e6 Fix string handling error in OTTDStringCompare Windows implementation
See: #542
2023-06-11 15:26:54 +01:00
Patric Stout
2618179664 Fix: Wayland crash on startup due to Pango also using FontConfig (#10916)
Basically, we haven't been a good neighbour. Turns out you shouldn't
actually call FcFini when you are done, as some library might still
want to use FontConfig. And they use a shared instance for their
administration.

The idea is that you call FcInit once, and use FcConfigReference
after that to get an instance, you can release. This entry is
ref-counted, and things happen automatically based on that.

At least, I think.

(cherry picked from commit cd751a598a)
2023-06-10 16:42:22 +01:00
PeterN
8034609368 Fix: Ask FontConfig for the face index when opening fonts. (#10878)
This allows selection of the correct face in truetype fonts containing
multiple faces.

(cherry picked from commit 876871157f)
2023-06-10 16:42:22 +01:00
Jonathan G Rennison
ac2f9a21e8 Move upstream saveload to src/saveload/, move jgrpp saveload to src/sl/
Leave afterload in src/saveload/
2023-06-08 00:01:40 +01:00
Jonathan G Rennison
3a47b421b0 Merge branch 'master' into jgrpp
# Conflicts:
#	src/company_cmd.cpp
#	src/core/overflowsafe_type.hpp
#	src/economy.cpp
#	src/engine_base.h
#	src/ground_vehicle.cpp
#	src/group_gui.cpp
#	src/industry_cmd.cpp
#	src/industry_gui.cpp
#	src/newgrf_commons.cpp
#	src/newgrf_engine.cpp
#	src/newgrf_industries.cpp
#	src/newgrf_object.cpp
#	src/newgrf_roadstop.cpp
#	src/newgrf_station.cpp
#	src/rail_gui.cpp
#	src/road_cmd.h
#	src/road_gui.cpp
#	src/saveload/afterload.cpp
#	src/script/api/script_log.cpp
#	src/script/api/script_log.hpp
#	src/settings_gui.cpp
#	src/settingsgen/settingsgen.cpp
#	src/station_cmd.cpp
#	src/station_cmd.h
#	src/station_gui.cpp
#	src/strgen/strgen.cpp
#	src/string_func.h
#	src/string_type.h
#	src/table/settings/network_private_settings.ini
#	src/tests/math_func.cpp
#	src/textfile_gui.cpp
#	src/timetable_gui.cpp
#	src/town_cmd.cpp
#	src/vehicle.cpp
#	src/waypoint_cmd.cpp
#	src/waypoint_cmd.h
#	src/widgets/dropdown.cpp
2023-06-03 19:16:57 +01:00
Jonathan G Rennison
02fe4af934 Merge branch 'master' into jgrpp
# Conflicts:
#	.github/workflows/release-windows.yml
#	src/company_base.h
#	src/company_cmd.cpp
#	src/company_gui.cpp
#	src/console_cmds.cpp
#	src/economy.cpp
#	src/economy_cmd.h
#	src/fios.h
#	src/goal.cpp
#	src/group_gui.cpp
#	src/network/core/config.h
#	src/network/network_admin.cpp
#	src/newgrf_config.cpp
#	src/os/windows/win32.cpp
#	src/saveload/afterload.cpp
#	src/saveload/company_sl.cpp
#	src/saveload/saveload.cpp
#	src/saveload/saveload_error.hpp
#	src/settings_gui.cpp
#	src/ship_cmd.cpp
#	src/stdafx.h
#	src/story.cpp
#	src/story_base.h
#	src/string.cpp
#	src/table/settings/economy_settings.ini
#	src/tests/CMakeLists.txt
#	src/tests/math_func.cpp
2023-05-30 00:49:24 +01:00
Jonathan G Rennison
fd4d4d341d Merge branch 'master' into jgrpp
# Conflicts:
#	src/animated_tile.cpp
#	src/cargopacket.h
#	src/cheat_gui.cpp
#	src/company_cmd.cpp
#	src/company_gui.cpp
#	src/date.cpp
#	src/disaster_vehicle.cpp
#	src/dock_gui.cpp
#	src/economy.cpp
#	src/engine.cpp
#	src/error_gui.cpp
#	src/fontcache/spritefontcache.cpp
#	src/game/game_gui.cpp
#	src/game/game_text.cpp
#	src/gfx.cpp
#	src/graph_gui.cpp
#	src/highscore_gui.cpp
#	src/industry_cmd.cpp
#	src/lang/dutch.txt
#	src/lang/english_AU.txt
#	src/lang/english_US.txt
#	src/lang/finnish.txt
#	src/lang/french.txt
#	src/lang/italian.txt
#	src/lang/portuguese.txt
#	src/lang/russian.txt
#	src/lang/turkish.txt
#	src/lang/vietnamese.txt
#	src/main_gui.cpp
#	src/misc_gui.cpp
#	src/network/network_gui.cpp
#	src/network/network_server.cpp
#	src/newgrf.cpp
#	src/newgrf.h
#	src/newgrf_generic.cpp
#	src/news_gui.cpp
#	src/openttd.cpp
#	src/os/unix/unix.cpp
#	src/os/windows/font_win32.cpp
#	src/os/windows/win32.cpp
#	src/rail_gui.cpp
#	src/road_gui.cpp
#	src/saveload/afterload.cpp
#	src/saveload/misc_sl.cpp
#	src/saveload/oldloader_sl.cpp
#	src/saveload/saveload.cpp
#	src/saveload/saveload.h
#	src/script/script_gui.cpp
#	src/settings_table.cpp
#	src/signs_gui.cpp
#	src/smallmap_gui.cpp
#	src/smallmap_gui.h
#	src/spritecache.cpp
#	src/spritecache.h
#	src/spriteloader/grf.cpp
#	src/station_cmd.cpp
#	src/statusbar_gui.cpp
#	src/stdafx.h
#	src/strgen/strgen_base.cpp
#	src/subsidy.cpp
#	src/table/settings/difficulty_settings.ini
#	src/texteff.cpp
#	src/timetable_cmd.cpp
#	src/timetable_gui.cpp
#	src/toolbar_gui.cpp
#	src/town_cmd.cpp
#	src/town_gui.cpp
#	src/townname.cpp
#	src/vehicle.cpp
#	src/waypoint_cmd.cpp
#	src/widgets/dropdown.cpp
#	src/window.cpp
2023-05-26 19:36:48 +01:00
Rubidium
68ff3fd062 Change: include fmt.h C++ headers in stdafx.h
This to prevent compilation issues between runs with and without precompiled
headers. Also remove the headers from the rest of the code base as they are
not needed there anymore, although they do relatively little harm.
2023-05-08 16:49:23 +02:00
Michael Lutz
b14c5aff1f Fix: [Win32] Text line breaking did not properly handle punctuation characters. (#10775) 2023-05-06 16:15:40 +00:00
Peter Nelson
00bf42353a Codechange: Place gamelog into its own class, along with internal data.
Data is now stored in vectors to avoid manual memory management and
passing lengths around.
2023-05-02 19:47:55 +01:00
Michael Lutz
908be59699 Fix: [Win32] Wrong multi-line text layout due to incorrect whitespace handling. 2023-05-01 16:31:59 +02:00
Michael Lutz
715234502c Fix: Typo in variable name. 2023-05-01 16:31:59 +02:00
Rubidium
3a822fcd01 Codechange: Make FiosItem's name and title std::string 2023-04-29 13:23:34 +02:00
Rubidium
c829930440 Codechange: replace strnatcmp with C++ string capable version 2023-04-29 12:07:45 +02:00
Rubidium
df19673fbd Codechange: let convert_to_fs accept std::string 2023-04-29 12:07:45 +02:00
Rubidium
4dd5f994be Codechange: replace strncasecmp with case ignoring variant of StrStarts/EndsWith 2023-04-29 10:25:25 +02:00
Rubidium
86786a7af6 Codechange: introduce StrEqualsIgnoreCase/StrCompareIgnoreCase to replace strcasecmp 2023-04-29 10:25:25 +02:00
Rubidium
f74e26ca7e Codechange: replace error/usererror printf variant with fmt variant and rename 2023-04-25 17:55:09 +02:00
Rubidium
f5f6306af3 Codechange: use string/fmt instead of printf for ShowInfo(F) 2023-04-24 17:51:54 +02:00
PeterN
e97bf271dc Codechange: Make SpriteType, CargoSortType, SourceType and ScriptType enum classes. (#10663)
This avoids a (soft) namespace conflict between the four ST_* enums.
2023-04-16 20:00:55 +01:00
Rubidium
9b56505fec Codechange: split building into a library and executable 2023-04-16 18:58:21 +02:00
Rubidium
9e89eb5726 Codechange: move main function(s) to separate files 2023-04-16 18:58:21 +02:00
Charles Pigott
6fc28d649e Cleanup: Unused alloca definitions and includes 2023-04-15 16:57:00 +01:00
Charles Pigott
b282664242 Codechange: Replace all usages of alloca/AllocaM with more modern/less discouraged alternatives 2023-04-15 16:57:00 +01:00
Jonathan G Rennison
cfb0d366f3 Unix: Trigger crash log handler on receiving SIGQUIT 2023-04-02 01:07:54 +01:00
Jonathan G Rennison
97acdfaa05 Crashlog: Unix: Use dladdr1 for symbol offset for addr2line
Subtract 1 from offset given to addr2line
2023-02-20 23:42:55 +00:00
PeterN
968709735d Fix #10477: Not enough space for text due to rounding down (OSX) (#10489)
(cherry picked from commit 2376112c77)
2023-02-20 17:32:31 +00:00
Jonathan G Rennison
588a92648d Fix fbfbaa11: gmtime replaccement in Windows exception handler 2023-02-20 09:29:51 +00:00
PeterN
2376112c77 Fix #10477: Not enough space for text due to rounding down (OSX) (#10489) 2023-02-18 05:50:20 -05:00
Jonathan G Rennison
fbfbaa118a Remove use of gmtime and asctime 2023-02-15 22:02:23 +00:00
Rubidium
d51d08ddcb Codechange: put stack variables in global variables for gamelog/crashlog 2023-01-28 17:23:30 +01:00
Jonathan G Rennison
1bfd96c7f2 Merge branch 'master' into jgrpp
# Conflicts:
#	src/3rdparty/fmt/core.h
#	src/command_type.h
#	src/console_cmds.cpp
#	src/core/overflowsafe_type.hpp
#	src/landscape.cpp
#	src/network/network.cpp
#	src/newgrf_object.h
#	src/object_cmd.cpp
#	src/order_gui.cpp
#	src/saveload/vehicle_sl.cpp
#	src/script/api/script_industrytype.cpp
#	src/script/api/script_object.hpp
#	src/script/api/script_town.cpp
#	src/table/object_land.h
#	src/timetable_cmd.cpp
#	src/tree_cmd.cpp
#	src/vehicle_gui.cpp
#	src/window.cpp
2023-01-15 19:28:37 +00:00
Peter Nelson
8149ba338f Change: Check glyph size before trying to render it.
This change of order ensures that the "Font glyph is foot large" occurs
even if the glyph is too large for an alloca() allocation.
2023-01-14 20:50:59 +00:00
Peter Nelson
fa0c67b10a Change: Remove guess-work from calls to GetGlyphOutline().
This API method is intended to be called twice, so don't attempt to guess
the required size.
2023-01-14 20:50:59 +00:00
Peter Nelson
5370e910d3 Change: Use std::vector for fallback font list. 2023-01-14 20:50:59 +00:00
Jonathan G Rennison
5b490b243d Merge branch 'master' into jgrpp
# Conflicts:
#	src/industry_cmd.cpp
#	src/landscape.cpp
#	src/object_cmd.cpp
#	src/rail_cmd.cpp
#	src/script/api/script_tile.cpp
#	src/table/settings/difficulty_settings.ini
#	src/table/settings/world_settings.ini
#	src/terraform_cmd.cpp
#	src/tilearea_type.h
#	src/tree_cmd.cpp
#	src/tree_cmd.h
#	src/tree_gui.cpp
#	src/water_cmd.cpp
2023-01-14 16:49:17 +00:00