Hello community, here is the log from the commit of package schismtracker for openSUSE:Factory checked in at 2020-07-05 01:16:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/schismtracker (Old) and /work/SRC/openSUSE:Factory/.schismtracker.new.3060 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "schismtracker" Sun Jul 5 01:16:49 2020 rev:14 rq:818403 version:20200412 Changes: -------- --- /work/SRC/openSUSE:Factory/schismtracker/schismtracker.changes 2019-08-19 21:42:02.576282761 +0200 +++ /work/SRC/openSUSE:Factory/.schismtracker.new.3060/schismtracker.changes 2020-07-05 01:17:36.516886932 +0200 @@ -1,0 +2,10 @@ +Thu Jul 2 18:48:18 UTC 2020 - Mathias Homann <[email protected]> + +- Update to new upstream release 20200412 + + * Fix problem with switching tabs on the Instrument List page using the keyboard, introduced in 20190722 release. + * Implement incremental search on Load Instrument page, like on the Load Sample and Load Module pages. + * Correctly display size of exported mono files before exporting. + * Add "AudioVideo" category to Linux desktop entry. + +------------------------------------------------------------------- Old: ---- 20190805.tar.gz New: ---- 20200412.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ schismtracker.spec ++++++ --- /var/tmp/diff_new_pack.DJPQ5B/_old 2020-07-05 01:17:38.344892758 +0200 +++ /var/tmp/diff_new_pack.DJPQ5B/_new 2020-07-05 01:17:38.348892770 +0200 @@ -1,7 +1,7 @@ # # spec file for package schismtracker # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: schismtracker -Version: 20190805 +Version: 20200412 Release: 0 Summary: Music editor that matches the look and feel of Impulse Tracker License: GPL-2.0-or-later ++++++ 20190805.tar.gz -> 20200412.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schismtracker-20190805/fmt/it.c new/schismtracker-20200412/fmt/it.c --- old/schismtracker-20190805/fmt/it.c 2019-08-01 21:41:37.000000000 +0200 +++ new/schismtracker-20200412/fmt/it.c 2020-05-12 16:45:03.000000000 +0200 @@ -679,7 +679,7 @@ } else if ((hdr.cwtv >> 12) == 1) { tid = NULL; strcpy(song->tracker_id, "Schism Tracker "); - ver_decode_cwtv(hdr.cwtv, song->tracker_id + strlen(song->tracker_id)); + ver_decode_cwtv(hdr.cwtv, hdr.reserved, song->tracker_id + strlen(song->tracker_id)); } else if ((hdr.cwtv >> 12) == 0 && hist != 0 && hdr.reserved != 0) { // early catch to exclude possible false positives without repeating a bunch of stuff. } else if (hdr.cwtv == 0x0214 && hdr.cmwt == 0x0200 && hdr.flags == 9 && hdr.special == 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schismtracker-20190805/fmt/s3m.c new/schismtracker-20200412/fmt/s3m.c --- old/schismtracker-20190805/fmt/s3m.c 2019-08-01 21:41:37.000000000 +0200 +++ new/schismtracker-20200412/fmt/s3m.c 2020-05-12 16:45:03.000000000 +0200 @@ -80,6 +80,7 @@ uint16_t trkvers; uint16_t flags; uint16_t special; + uint16_t reserved; uint32_t adlib = 0; // bitset int uc; const char *tid = NULL; @@ -140,10 +141,11 @@ if (slurp_getc(fp) != 0xfc) misc &= ~S3M_CHANPAN; /* stored pan values */ - /* Interesting: Impulse Tracker appears to leave some junk data in this unused section, and what's - more, it always seems to follow the same general pattern. So it's actually possible to identify - whether a song was saved in IT, then loaded and re-saved in ST3. */ - slurp_seek(fp, 8, SEEK_CUR); + /* Extended Schism Tracker version information */ + slurp_read(fp, &reserved, 2); + reserved = bswapLE16(reserved); + /* Impulse Tracker hides its edit timer in the next four bytes. */ + slurp_seek(fp, 6, SEEK_CUR); slurp_read(fp, &special, 2); // field not used by st3 special = bswapLE16(special); @@ -415,7 +417,7 @@ case 4: tid = NULL; strcpy(song->tracker_id, "Schism Tracker "); - ver_decode_cwtv(trkvers, song->tracker_id + strlen(song->tracker_id)); + ver_decode_cwtv(trkvers, reserved, song->tracker_id + strlen(song->tracker_id)); break; case 5: tid = "OpenMPT %d.%02x"; @@ -492,7 +494,9 @@ uint16_t flags, cwtv, ffi; // 0, 0x4nnn, 2 for unsigned char scrm[4]; // "SCRM" uint8_t gv, is, it, mv, uc, dp; // gv is half range of IT, uc should be 8/12/16, dp is 252 - uint8_t junk[10]; // last 2 bytes are "special", which means "more junk" + uint16_t reserved; // extended version information is stored here + uint32_t reserved2; // Impulse Tracker hides its edit timer here + uint8_t junk[4]; // last 2 bytes are "special", which means "more junk" }; struct s3i_header { @@ -899,6 +903,7 @@ hdr.mv |= 128; hdr.uc = 16; // ultraclick (the "Waste GUS channels" option) hdr.dp = 252; + hdr.reserved = bswapLE16(ver_reserved); /* The sample data parapointers are 24+4 bits, whereas pattern data and sample headers are only 16+4 bits -- so while the sample data can be written up to 268 MB within the file (starting at 0xffffff0), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schismtracker-20190805/include/it_defs.h new/schismtracker-20200412/include/it_defs.h --- old/schismtracker-20190805/include/it_defs.h 2019-08-01 21:41:37.000000000 +0200 +++ new/schismtracker-20200412/include/it_defs.h 2020-05-12 16:45:03.000000000 +0200 @@ -24,7 +24,7 @@ uint8_t pwd; uint16_t msglength; uint32_t msgoffset; - uint32_t reserved2; + uint32_t reserved; uint8_t chnpan[64]; uint8_t chnvol[64]; }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schismtracker-20190805/include/version.h new/schismtracker-20200412/include/version.h --- old/schismtracker-20190805/include/version.h 2019-08-01 21:41:37.000000000 +0200 +++ new/schismtracker-20200412/include/version.h 2020-05-12 16:45:03.000000000 +0200 @@ -26,7 +26,8 @@ /* various boilerplate defined in version.c */ extern const char *ver_short_copyright; extern const char *ver_short_based_on; -extern short ver_cwtv; /* lower 12 bits of the IT/S3M cwtv field */ +extern unsigned short ver_cwtv; /* lower 12 bits of the IT/S3M cwtv field */ +extern unsigned short ver_reserved; /* full version number in case 12 bits are not enough */ extern const char *schism_banner(int classic) __attribute__((pure)); @@ -34,8 +35,8 @@ /* little hack, need to call this at startup */ void ver_init(void); -/* get yyyy-mm-dd or 0.nn version from cwtv (buf should be >=11 chars) */ -void ver_decode_cwtv(uint16_t cwtv, char *buf); +/* get yyyy-mm-dd or 0.nn version from cwtv + reserved (buf should be >=11 chars) */ +void ver_decode_cwtv(uint16_t cwtv, uint32_t reserved, char *buf); #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schismtracker-20190805/schism/audio_loadsave.c new/schismtracker-20200412/schism/audio_loadsave.c --- old/schismtracker-20190805/schism/audio_loadsave.c 2019-08-01 21:41:37.000000000 +0200 +++ new/schismtracker-20200412/schism/audio_loadsave.c 2020-05-12 16:45:03.000000000 +0200 @@ -692,7 +692,7 @@ hdr.msgoffset = bswapLE32(extra + 0xc0 + nord + 4 * (nins + nsmp + npat)); hdr.msglength = bswapLE16(msglen); } - // hdr.reserved2 + hdr.reserved = bswapLE32(ver_reserved); for (n = 0; n < 64; n++) { hdr.chnpan[n] = ((current_song->channels[n].flags & CHN_SURROUND) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schismtracker-20190805/schism/disko.c new/schismtracker-20200412/schism/disko.c --- old/schismtracker-20190805/schism/disko.c 2019-08-01 21:41:37.000000000 +0200 +++ new/schismtracker-20200412/schism/disko.c 2020-05-12 16:45:03.000000000 +0200 @@ -828,7 +828,7 @@ strcpy(strrchr(fmt, '%'), "ten seconds flat"); } log_appendf(5, fmt, - ((double) samples_0 * (disko_output_bits / 8) * disko_output_channels * num_files) / 1048576.0, + ((double) samples_0 * (disko_output_bits / 8) * export_dwsong.mix_channels * num_files) / 1048576.0, samples_0 / disko_output_rate / 60, (samples_0 / disko_output_rate) % 60, elapsed); break; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schismtracker-20190805/schism/page_loadinst.c new/schismtracker-20200412/schism/page_loadinst.c --- old/schismtracker-20190805/schism/page_loadinst.c 2019-08-01 21:41:37.000000000 +0200 +++ new/schismtracker-20200412/schism/page_loadinst.c 2020-05-12 16:45:03.000000000 +0200 @@ -371,7 +371,9 @@ static int file_list_handle_key(struct key_event * k) { + dmoz_file_t *f; int new_file = current_file; + int c = unicode_to_ascii(k->unicode); new_file = CLAMP(new_file, 0, flist.num_files - 1); @@ -386,64 +388,34 @@ new_file = top_file + (k->y - 13); } } - } else if (slash_search_mode > -1) { - int c = unicode_to_ascii(k->unicode); - if (k->sym == SDLK_RETURN || k->sym == SDLK_ESCAPE) { + } + switch (k->sym) { + case SDLK_UP: new_file--; slash_search_mode = -1; break; + case SDLK_DOWN: new_file++; slash_search_mode = -1; break; + case SDLK_PAGEUP: new_file -= 35; slash_search_mode = -1; break; + case SDLK_PAGEDOWN: new_file += 35; slash_search_mode = -1; break; + case SDLK_HOME: new_file = 0; slash_search_mode = -1; break; + case SDLK_END: new_file = flist.num_files - 1; slash_search_mode = -1; break; + + case SDLK_ESCAPE: + if (slash_search_mode < 0) { + if (k->state == KEY_RELEASE && NO_MODIFIER(k->mod)) + set_page(PAGE_SAMPLE_LIST); + return 1; + } /* else fall through */ + case SDLK_RETURN: + if (slash_search_mode < 0) { if (k->state == KEY_PRESS) - return 1; + return 0; + handle_enter_key(); slash_search_mode = -1; - status.flags |= NEED_UPDATE; - return 1; - } else if (k->sym == SDLK_BACKSPACE) { - if (k->state == KEY_RELEASE) + } else { + if (k->state == KEY_PRESS) return 1; - slash_search_mode--; + slash_search_mode = -1; status.flags |= NEED_UPDATE; - reposition_at_slash_search(); - return 1; - } else if (c >= 32) { - if (k->state == KEY_RELEASE) - return 1; - if (slash_search_mode < PATH_MAX) { - slash_search_str[ slash_search_mode ] = c; - slash_search_mode++; - reposition_at_slash_search(); - status.flags |= NEED_UPDATE; - } return 1; } - } - - switch (k->sym) { - case SDLK_UP: - new_file--; - slash_search_mode = -1; - break; - case SDLK_DOWN: - new_file++; - slash_search_mode = -1; - break; - case SDLK_PAGEUP: - new_file -= 35; - slash_search_mode = -1; - break; - case SDLK_PAGEDOWN: - new_file += 35; - slash_search_mode = -1; - break; - case SDLK_HOME: - new_file = 0; - slash_search_mode = -1; - break; - case SDLK_END: - new_file = flist.num_files - 1; - slash_search_mode = -1; - break; - case SDLK_RETURN: - if (k->state == KEY_PRESS) - return 0; - handle_enter_key(); - slash_search_mode = -1; return 1; case SDLK_DELETE: if (k->state == KEY_RELEASE) @@ -452,23 +424,40 @@ if (flist.num_files > 0) dialog_create(DIALOG_OK_CANCEL, "Delete file?", do_delete_file, NULL, 1, NULL); return 1; - case SDLK_ESCAPE: - slash_search_mode = -1; - if (k->state == KEY_RELEASE && NO_MODIFIER(k->mod)) - set_page(PAGE_INSTRUMENT_LIST); - return 1; - case SDLK_SLASH: - if (k->orig_sym == SDLK_SLASH) { - if (status.flags & CLASSIC_MODE) return 0; + case SDLK_BACKSPACE: + if (slash_search_mode > -1) { if (k->state == KEY_RELEASE) - return 0; - slash_search_mode = 0; + return 1; + slash_search_mode--; status.flags |= NEED_UPDATE; + reposition_at_slash_search(); return 1; } - default: - if (k->mouse == MOUSE_NONE) + case SDLK_SLASH: + if (slash_search_mode < 0) { + if (k->orig_sym == SDLK_SLASH) { + if (k->state == KEY_PRESS) + return 0; + slash_search_mode = 0; + status.flags |= NEED_UPDATE; + return 1; + } return 0; + } /* else fall through */ + default: + f = flist.files[current_file]; + if (c >= 32 && (slash_search_mode > -1 || (f && (f->type & TYPE_DIRECTORY)))) { + if (k->state == KEY_RELEASE) + return 1; + if (slash_search_mode < 0) slash_search_mode = 0; + if (slash_search_mode < PATH_MAX) { + slash_search_str[slash_search_mode++] = c; + reposition_at_slash_search(); + status.flags |= NEED_UPDATE; + } + return 1; + } + if (!k->mouse) return 0; } if (k->mouse == MOUSE_CLICK) { @@ -484,7 +473,6 @@ } new_file = CLAMP(new_file, 0, flist.num_files - 1); - if (new_file < 0) new_file = 0; if (new_file != current_file) { current_file = new_file; file_list_reposition(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schismtracker-20190805/schism/version.c new/schismtracker-20200412/schism/version.c --- old/schismtracker-20190805/schism/version.c 2019-08-01 21:41:37.000000000 +0200 +++ new/schismtracker-20200412/schism/version.c 2020-05-12 16:45:03.000000000 +0200 @@ -49,8 +49,10 @@ 0x052 = (0x052 - 0x050) + 2009-10-31 = 2009-11-02 0x14f = (0x14f - 0x050) + 2009-10-31 = 2010-07-13 0xffe = (0xfff - 0x050) + 2009-10-31 = 2020-10-27 - = 0xfff: a non-value indicating a date after 2020-10-27 (assuming Schism Tracker still exists then) */ -short ver_cwtv; + = 0xfff: a non-value indicating a date after 2020-10-27. in this case, the full version number is stored in a reserved header field. + this field follows the same format, using the same epoch, but without adding 0x50. */ +unsigned short ver_cwtv; +unsigned short ver_reserved; /* these should be 50 characters or shorter, as they are used in the startup dialog */ const char *ver_short_copyright = @@ -123,6 +125,7 @@ epoch_sec = mktime(&epoch); version_sec = mktime(&version); ver_cwtv = 0x050 + (version_sec - epoch_sec) / 86400; + ver_reserved = ver_cwtv < 0xfff ? 0 : (ver_cwtv - 0x050); ver_cwtv = CLAMP(ver_cwtv, 0x050, 0xfff); /* show build date if we don't know last commit date (no git) */ @@ -137,7 +140,7 @@ top_banner_normal[sizeof(top_banner_normal) - 1] = '\0'; /* to be sure */ } -void ver_decode_cwtv(uint16_t cwtv, char *buf) +void ver_decode_cwtv(uint16_t cwtv, uint32_t reserved, char *buf) { struct tm version; time_t version_sec; @@ -145,7 +148,7 @@ cwtv &= 0xfff; if (cwtv > 0x050) { // Annoyingly, mktime uses local time instead of UTC. Why etc. - version_sec = ((cwtv - 0x050) * 86400) + epoch_sec; + version_sec = ((cwtv < 0xfff ? (cwtv - 0x050) : reserved) * 86400) + epoch_sec; if (localtime_r(&version_sec, &version)) { sprintf(buf, "%04d-%02d-%02d", version.tm_year + 1900, version.tm_mon + 1, version.tm_mday); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schismtracker-20190805/schism/widget.c new/schismtracker-20200412/schism/widget.c --- old/schismtracker-20190805/schism/widget.c 2019-08-01 21:41:37.000000000 +0200 +++ new/schismtracker-20200412/schism/widget.c 2020-05-12 16:45:03.000000000 +0200 @@ -417,12 +417,9 @@ if (!group) return; /* assert */ - for (i = 0; group[i] >= 0; i++) { + for (i = 0; group[i] >= 0; i++) p_widgets[group[i]].d.togglebutton.state = 0; - p_widgets[group[i]].depressed = 0; - } p_widgets[widget].d.togglebutton.state = 1; - p_widgets[widget].depressed = 1; if (do_callback) { if (p_widgets[widget].changed) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schismtracker-20190805/sys/fd.org/schism.desktop new/schismtracker-20200412/sys/fd.org/schism.desktop --- old/schismtracker-20190805/sys/fd.org/schism.desktop 2019-08-01 21:41:37.000000000 +0200 +++ new/schismtracker-20200412/sys/fd.org/schism.desktop 2020-05-12 16:45:03.000000000 +0200 @@ -9,7 +9,7 @@ Exec=schismtracker %f Type=Application Icon=schism-icon-128 -Categories=Audio;Midi;Sequencer;Player;Music; +Categories=AudioVideo;Audio;Midi;Sequencer;Player;Music; MimeType=audio/x-it;audio/x-s3m;audio/x-xm;audio/x-mod; Keywords=impulse;module;midi;music; ++++++ schism-nodate.diff ++++++ --- /var/tmp/diff_new_pack.DJPQ5B/_old 2020-07-05 01:17:38.504893268 +0200 +++ /var/tmp/diff_new_pack.DJPQ5B/_new 2020-07-05 01:17:38.508893281 +0200 @@ -8,14 +8,14 @@ uses just a heuristic - excessive rebuilds should not actually be happening. --- - schism/version.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) + schism/version.c | 11 +++++------ + 1 file changed, 5 insertions(+), 6 deletions(-) -Index: schismtracker-20170910/schism/version.c +Index: schismtracker-20200412/schism/version.c =================================================================== ---- schismtracker-20170910.orig/schism/version.c -+++ schismtracker-20170910/schism/version.c -@@ -90,6 +90,10 @@ Information at our disposal: +--- schismtracker-20200412.orig/schism/version.c ++++ schismtracker-20200412/schism/version.c +@@ -92,6 +92,10 @@ Information at our disposal: */ @@ -26,7 +26,7 @@ static int get_version_tm(struct tm *version) { char *ret; -@@ -99,10 +103,6 @@ static int get_version_tm(struct tm *ver +@@ -101,10 +105,6 @@ static int get_version_tm(struct tm *ver if (ret && !*ret) return 1; /* Argh. */ @@ -37,7 +37,15 @@ /* Give up; we don't know anything. */ return 0; } -@@ -131,7 +131,7 @@ void ver_init(void) +@@ -118,7 +118,6 @@ void ver_init(void) + if (get_version_tm(&version)) { + version_sec = mktime(&version); + } else { +- printf("help, I am very confused about myself\n"); + version_sec = epoch_sec; + } + +@@ -134,7 +133,7 @@ void ver_init(void) "Schism Tracker %s", ver); } else { snprintf(top_banner_normal, sizeof(top_banner_normal) - 1,
