I've got some good news and some Fun news.
First off, let me say I
love the potential of the macro system.
I made a macro that lets me designate my entire housing district at a single push without having to use a third party app.
Secondly, I crashed it while adding a new command to a macro. Below is the memory and stack dump. It looks like it died inside a vector object while inserting a new command into the vector for the macro. So far I haven't managed to duplicate it. Does not initially appear to be related to either the number of macros or the number of commands in a macro.
Also, if they are not already in your plans there are three features that I would very much love to see.
The ability to name the macro.
The ability to Delete(!) a macro.
The ability to alter the position of commands in the macro.
(Had to delete half a macro because I missed a command.)
*** glibc detected *** ./dwarfort.exe: double free or corruption (!prev): 0x0fe0ed30 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xb6e5b604]
/lib/tls/i686/cmov/libc.so.6(cfree+0x96)[0xb6e5d5b6]
./libs/libstdc++.so.6(_ZdlPv+0x21)[0xb703cca1]
./libs/libgraphics.so(_ZNSt6vectorI12MacroCommandSaIS0_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS0_S2_EERKS0_+0x126)[0xb70caa16]
./libs/libgraphics.so(_ZN14macrobindingst10AddCommandE12MacroCommand+0x6e)[0xb70c748e]
./libs/libgraphics.so(_ZN24viewscreen_keybindingsst5inputEv+0x7f9)[0xb70ca069]
./libs/libgraphics.so(_ZN11interfacest4loopEv+0x1b8)[0xb70c3158]
./dwarfort.exe(_Z8mainloopv+0xf)[0x82bb0cf]
./libs/libgraphics.so(_ZN9enablerst4loopEv+0x4e8)[0xb70b69e8]
./libs/libgraphics.so(main+0x16e)[0xb70b72be]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe5)[0xb6e02775]
./dwarfort.exe[0x804df91]
======= Memory map: ========
08048000-0877f000 r-xp 00000000 08:11 139771 /home/rnordst/df/df_linux/dwarfort.exe
0877f000-08780000 r--p 00736000 08:11 139771 /home/rnordst/df/df_linux/dwarfort.exe
08780000-08781000 rw-p 00737000 08:11 139771 /home/rnordst/df/df_linux/dwarfort.exe
08781000-0928b000 rw-p 08781000 00:00 0
0a8fa000-0fe8f000 rw-p 0a8fa000 00:00 0 [heap]
a9e7b000-ab204000 rw-p a9e7b000 00:00 0
ab4c8000-ab788000 rw-p ab4c8000 00:00 0
ac11e000-ac31e000 rw-s 1f362000 00:0f 11215 /dev/nvidia0
ac706000-ac83d000 rw-p ac706000 00:00 0
ac882000-acdc8000 rw-p ac882000 00:00 0
acdc8000-acfc8000 rw-s 046f2000 00:0f 11215 /dev/nvidia0
acfeb000-ad099000 rw-p acfeb000 00:00 0
ad174000-ad1c6000 rw-p ad174000 00:00 0
ad29c000-ad49c000 rw-s 1eb35000 00:0f 11215 /dev/nvidia0
ad49c000-ad59c000 rw-s 1b3a4000 00:0f 11215 /dev/nvidia0
ad59c000-ad5dc000 rw-s 1e9ba000 00:0f 11215 /dev/nvidia0
ad5dc000-ad682000 rw-p ad5dc000 00:00 0
ad682000-ad6cc000 rw-p 00000000 00:0f 739 /dev/zero
ad6cc000-ad700000 rw-p ad6cc000 00:00 0
ad700000-ad721000 rw-p ad700000 00:00 0
ad721000-ad800000 ---p ad721000 00:00 0
ad809000-ad82a000 rw-s 00000000 00:09 0 /SYSV00000000 (deleted)
ad82a000-af256000 rw-p ad82a000 00:00 0
af257000-af258000 ---p af257000 00:00 0
af258000-afa58000 rwxp af258000 00:00 0
afa58000-afa59000 ---p afa58000 00:00 0
afa59000-b0259000 rwxp afa59000 00:00 0
b0259000-b025a000 ---p b0259000 00:00 0
b025a000-b0a5a000 rwxp b025a000 00:00 0
b0a5a000-b4a5b000 rw-s 00000000 00:15 4278387 /dev/shm/pulse-shm-118021796
b4a5b000-b4ab8000 r-xp 00000000 08:11 735847 /usr/lib/libpulse.so.0.7.1
b4ab8000-b4ab9000 r--p 0005c000 08:11 735847 /usr/lib/libpulse.so.0.7.1
b4ab9000-b4aba000 rw-p 0005d000 08:11 735847 /usr/lib/libpulse.so.0.7.1
b4aba000-b4c03000 rw-p b4aba000 00:00 0
b4c34000-b4c94000 rw-s 00000000 00:09 7667740 /SYSV00000000 (deleted)
b4c94000-b4dc9000 r-xp 00000000 08:11 735915 /usr/lib/libxml2.so.2.6.32
b4dc9000-b4dca000 ---p 00135000 08:11 735915 /usr/lib/libxml2.so.2.6.32
b4dca000-b4dce000 r--p 00135000 08:11 735915 /usr/lib/libxml2.so.2.6.32
b4dce000-b4dcf000 rw-p 00139000 08:11 735915 /usr/lib/libxml2.so.2.6.32
b4dcf000-b4dd0000 rw-p b4dcf000 00:00 0
b4dd0000-b4e01000 r-xp 00000000 08:11 737211 /usr/lib/libcroco-0.6.so.3.0.1
b4e01000-b4e04000 rw-p 00030000 08:11 737211 /usr/lib/libcroco-0.6.so.3.0.1
b4e04000-b4e37000 r-xp 00000000 08:11 736582 /usr/lib/libgsf-1.so.114.0.11
b4e37000-b4e38000 ---p 00033000 08:11 736582 /usr/lib/libgsf-1.so.114.0.11
b4e38000-b4e3a000 r--p 00033000 08:11 736582 /usr/lib/libgsf-1.so.114.0.11
b4e3a000-b4e3b000 rw-p 00035000 08:11 736582 /usr/lib/libgsf-1.so.114.0.11
b4e3b000-b4e3c000 rw-p b4e3b000 00:00 0
b4e3c000-b4e4b000 r-xp 00000000 08:11 758894 /usr/lib/gio/modules/libgioremote-volume-monitor.so
b4e4b000-b4e4c000 r--p 0000e000 08:11 758894 /usr/lib/gio/modules/libgioremote-volume-monitor.so
b4e4c000-b4e4d000 rw-p 0000f000 08:11 758894 /usr/lib/gio/modules/libgioremote-volume-monitor.so
b4e4d000-b4e5f000 r-xp 00000000 08:11 734798 /usr/lib/libgvfscommon.so.0.0.0
b4e5f000-b4e60000 r--p 00012000 08:11 734798 /usr/lib/libgvfscommon.so.0.0.0
b4e60000-b4e61000 rw-p 00013000 08:11 734798 /usr/lib/libgvfscommon.so.0.0.0
b4e61000-b4e97000 r-xp 00000000 08:11 16442 /lib/libdbus-1.so.3.4.0
b4e97000-b4e98000 r--p 00035000 08:11 16442 /lib/libdbus-1.so.3.4.0
b4e98000-b4e99000 rw-p 00036000 08:11 16442 /lib/libdbus-1.so.3.4.0
b4ea1000-b4eb6000 r-xp 00000000 08:11 737010 /usr/lib/libICE.so.6.3.0
b4eb6000-b4eb7000 rw-p 00014000 08:11 737010 /usr/lib/libICE.so.6.3.0
b4eb7000-b4eb9000 rw-p b4eb7000 00:00 0
b4eb9000-b4eea000 r-xp 00000000 08:11 109581 /usr/lib/librsvg-2.so.2.26.0
b4eea000-b4eeb000 r--p 00031000 08:11 109581 /usr/lib/librsvg-2.so.2.26.0
b4eeb000-b4eec000 rw-p 00032000 08:11 109581 /usr/lib/librsvg-2.so.2.26.0
b4eec000-b4f84000 r--p 00000000 08:11 122828 /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf
b4f84000-b4f85000 ---p b4f84000 00:00 0
b4f85000-b5785000 rwxp b4f85000 00:00 0
b5785000-b57bf000 rw-p b57bf000 00:00 0
b57c0000-b57c4000 r-xp 00000000 08:11 16392 /lib/libattr.so.1.1.0
b57c4000-b57c5000 r--p 00003000 08:11 16392 /lib/libattr.so.1.1.0
b57c5000-b57c6000 rw-p 00004000 08:11 16392 /lib/libattr.so.1.1.0
b57c6000-b57c9000 r-xp 00000000 08:11 16369 /lib/libuuid.so.1.2
b57c9000-b57ca000 r--p 00002000 08:11 16369 /lib/libuuid.so.1.2
b57ca000-b57cb000 rw-p 00003000 08:11 16369 /lib/libuuid.so.1.2
b57cb000-b57e5000 r-xp 00000000 08:11 758895 /usr/lib/gio/modules/libgvfsdbus.so
b57e5000-b57e6000 r--p 00019000 08:11 758895 /usr/lib/gio/modules/libgvfsdbus.so
b57e6000-b57e7000 rw-p 0001a000 08:11 758895 /usr/lib/gio/modules/libgvfsdbus.so
b57e8000-b57ed000 r-xp 00000000 08:11 736556 /usr/lib/libgdbm.so.3.0.0
b57ed000-b57ee000 r--p 00004000 08:11 736556 /usr/lib/libgdbm.so.3.0.0
b57ee000-b57ef000 rw-p 00005000 08:11 736556 /usr/lib/libgdbm.so.3.0.0
b57ef000-b57f6000 r-xp 00000000 08:11 735177 /usr/lib/libSM.so.6.0.0
b57f6000-b57f7000 r--p 00006000 08:11 735177 /usr/lib/libSM.so.6.0.0
b57f7000-b57f8000 rw-p 00007000 08:11 735177 /usr/lib/libSM.so.6.0.0
b57fa000-b57fb000 rw-p b57fa000 00:00 0
b57fb000-b57ff000 rw-s 1d3ac000 00:0f 11215 /dev/nvidia0
b57ff000-b5803000 rw-s 24c61000 00:0f 11215 /dev/nvidia0
b5803000-b5804000 rw-s d0021000 00:0f 11215 /dev/nvidia0
b5804000-b5805000 rw-s 246c9000 00:0f 11215 /dev/nvidia0
b5805000-b5806000 rw-s 1f31e000 00:0f 11215 /dev/nvidia0
b5806000-b5807000 rw-s fac08000 00:0f 11215 /dev/nvidia0
b5807000-b5816000 r-xp 00000000 08:11 16416 /lib/libbz2.so.1.0.4
b5816000-b5817000 r--p 0000f000 08:11 16416 /lib/libbz2.so.1.0.4
b5817000-b5818000 rw-p 00010000 08:11 16416 /lib/libbz2.so.1.0.4
b5818000-b5819000 rw-s fa641000 00:0f 11215 /dev/nvidia0
b5819000-b581a000 rw-s 23ff2000 00:0f 11215 /dev/nvidia0
b581a000-b581b000 rw-s fa060000 00:0f 11215 /dev/nvidia0
b581b000-b581e000 r-xp 00000000 08:11 16350 /lib/libcap.so.2.11
b581e000-b581f000 r--p 00002000 08:11 16350 /lib/libcap.so.2.11
b581f000-b5820000 rw-p 00003000 08:11 16350 /lib/libcap.so.2.11
b5820000-b5825000 r-xp 00000000 08:11 751541 /usr/lib/alsa-lib/libasound_module_pcm_pulse.so
b5825000-b5826000 r--p 00004000 08:11 751541 /usr/lib/alsa-lib/libasound_module_pcm_pulse.so
b5826000-b5827000 rw-p 00005000 08:11 751541 /usr/lib/alsa-lib/libasound_module_pcm_pulse.so
b5827000-b5828000 r-xp 00000000 08:11 761002 /usr/lib/gtk-2.0/2.10.0/loaders/svg_loader.so
b5828000-b5829000 r--p 00000000 08:11 761002 /usr/lib/gtk-2.0/2.10.0/loaders/svg_loader.so
b5829000-b582a000 rw-p 00001000 08:11 761002 /usr/lib/gtk-2.0/2.10.0/loaders/svg_loader.so
b582a000-b582e000 r-xp 00000000 08:11 759550 /usr/lib/gtk-2.0/2.10.0/loaders/libpixbufloader-png.so
b582e000-b582f000 r--p 00003000 08:11 759550 /usr/lib/gtk-2.0/2.10.0/loaders/libpixbufloader-png.so
b582f000-b5830000 rw-p 00004000 08:11 759550 /usr/lib/gtk-2.0/2.10.0/loaders/libpixbufloader-png.so
b5830000-b5848000 r--s 00000000 08:11 73701 /usr/share/mime/mime.cache
b5848000-b5849000 r--s 00000000 08:11 255072 /home/rnordst/.local/share/mime/mime.cache
b5849000-b584b000 r-xp 00000000 08:11 50996 /usr/lib/pango/1.6.0/modules/pango-basic-fc.so
b584b000-b584c000 r--p 00001000 08:11 50996 /usr/lib/pango/1.6.0/modules/pango-basic-fc.so
b584c000-b584d000 rw-p 00002000 08:11 50996 /usr/lib/pango/1.6.0/modules/pango-basic-fc.so
b584d000-b5853000 r--s 00000000 08:11 394313 /var/cache/fontconfig/945677eb7aeaf62f1d50efc3fb3ec7d8-x86.cache-2
b5853000-b5856000 r--s 00000000 08:11 392350 /var/cache/fontconfig/e383d7ea5fbe662a33d9b44caf393297-x86.cache-2
b5856000-b5859000 r--s 00000000 08:11 393436 /var/cache/fontconfig/6eb3985aa4124903f6ff08ba781cd364-x86.cache-2
b5859000-b585a000 r--s 00000000 08:11 394312 /var/cache/fontconfig/4c73fe0c47614734b17d736dbde7580a-x86.cache-2
b5Aborted
Edit: Crashed it again, same place. Have not noticed a pattern yet but it seems to happen only after I've been mucking with the macro system for a bit.
Edit #2: Just noticed that the scan keys I had saved for my macros did not cleanly load. I was using shift+ctrl+# Where # was 1-4 for the four macros I had saved. The value showing for the key binding on load for all four macro's is Ctrl+None
Edit #3:Oooh Just looked at how the macro's were saved... To heck with editing them in the game!