-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS
119 lines (78 loc) · 4.72 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
scribbu News -- history of user-visible changes -*- outline -*-
* Changes in scribbu 0.7
** Bug Fixes
*** Fix a build error in `winamp-genres.cc`
* Changes in scribbu 0.6
** Bug Fixes
*** renamed pop-frame to popm-frame in scribbu.scm
*** `scribbu text -d` doesn't actually delete the given frames
*** Scheme function & types defined in C are now in module (scribbu)
*** fixed several bugs in `write_id3v1_tag`
- Added a GOOPS type check ensuring the argument is truly an
`<id3v1-tag>` instance.
- Stopped calling `scm_null_p()` in favor of `scm_is_null()` which
returns an int.
- Changed `emplace_strategy::reduce_padding_evently` to
`only_with_full_padding`. While not strictly a bug, this results
in more intuitive behavior for Scheme callers.
*** the `split` and `rename` sub-commands no longer look for "SCRIBBU"-prefixed env vars indiscriminately
`scribbu` can parse options from the environment. The environment variables examined all have a prefix of "SCRIBBU_". If there is such a variable in the environment with such a prefix, that does not correspond to a known command-line argument, `split` & `rename` would error-out. This build fixes that.
*** fixed issue #7: scribbu popm hangs and eventually OOMs when given a playcount > 255
*** SIGSTKSZ is no longer constant
Address the fact that with glibc 2.34 SIGSTKSZ is no longer a constant; in the process, remove boost::filesystem.
*** fix bug in computation of Demerau-Levenshtein distance
See <https://github.com/sp1ff/damerau-levenshtein/issues/2>.
*** check that vectors are not empty before taking address of first element
There were a number of places in which the address of a vector's elements was passed as `&(vec[0])` without checking that `vec` was non-empty. In every case, that address was passed along with the size (e.g. `foo(&(vec[0]), vec.size())`) and so taking the address of the "first" element of an empty vector was generally harmless. That said, "Accessing a nonexistent element through [operator[]] is undefined behavior." per <https://en.cppreference.com/w/cpp/container/vector/operator_at>.
The most recent implementation of the Standard C++ Library on my Arch image, however, includes an assertion that the passed index is legit in `operator[]`, which broke quite a few unit tests. To repair them, I wrapped all such invocations with a check that the vector is non-empty.
*** added docs for missing flags
.. in the `genre`, `popm` and `text` sub-commands.
*** treat trailing 0xff-s as false syncs
Address a lingering issue with unsynchronisation: when the last frame in an ID3v2.{3,4} tag ends in 0xff, and there is no padding, that should be treated as a false sync.
*** improved error messages when failing to open files
*** no longer terminates on error in functions exported to Guile
*** fixed a bug in id3v1_tag::set_year
Was calling `strlen` on a string that may not be null-terminated.
*** fixed issue #5: `scribbu popm -C N` fails when there is no PCNT frame
<https://github.com/sp1ff/scribbu/issues/5>
*** fixed a bug in copying ID3v2 tags to ID3v1
*** `scribbu text' will now, optionally, create an ID3v2 tag if there isn't one already
*** `scribbu dump' fails silently on file-not-found
*** owner not being written out by `scribbu popm' in some cases
*** id3v2_tag text frame virtuals will SEGV if the relevant frame isn't there
https://github.com/sp1ff/scribbu/issues/4
*** handle problems when renaming across filesystems
** New Features
*** tags & frames are now pretty-printed
*** class `comments` is now mutable
*** updated the default pretty-printer to list the language field
*** updated the manual
Especially the section on scripting.
*** `scribbu dump` now prints PRIV frames
*** `scribbu text` now operates on existing ID3v1 tags, when possible
*** the `create-frame` short flag for `popm` changed from -A to -f.
*** `encodings' sub-command added
*** `m3u' sub-command added
*** Arch & Debian packages now provided
*** `scribbu genre' now takes a '--get' flag
*** `scribbu dump' will now list mtime
*** builds on MacOS
*** new sub-command `genre'
`scribbu genre' lets you set the "genre" for your file by updating the relevant fields in the file's ID3v1 and/or -2 tags.
* Changes in scribbu 0.5
** Bug Fixes
*** CSV pretty-printing is now RFC 4180-compliant
** New Features
*** scribbu now builds on MacOS using the native toolchain
*** `scribbu report' now offers {tab,ascii}-delimited output
*** `scribbu report' now includes the filename, directory & overall size
*** Scheme API completely re-written
*** New sub-commands `scribbu popm', `scribbu xtag' & `scribbu text'
* Changes in scribbu 0.4
** New Features
*** made ID3v2 tags mutable
*** embedded Guile
*** added man pages & Texinfo manual
* Changes in scribbu 0.2
** New Features
*** 'dump' sub-command