-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
811 lines (530 loc) · 25.7 KB
/
ChangeLog
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
2024-10-09 Michael Herstine <sp1ff@pobox.com>
Cut release 0.7.1; fix CI.
Fix a build error in winamp-genres.cc.
...by explicitly including `<algorithm>`.
2024-02-03 Michael Herstine <sp1ff@pobox.com>
Make pre-release updates.
This patch updates boilerplate throughout, updates the version
number, and so forth.
2024-02-02 Michael Herstine <sp1ff@pobox.com>
pretty-print frames
2024-01-31 Michael Herstine <sp1ff@pobox.com>
Commenting-out flakey test failing on MacOS
2024-01-28 Michael Herstine <sp1ff@pobox.com>
Update class `comments` to be mutable.
2024-01-27 Michael Herstine <sp1ff@pobox.com>
Update scribbu in multiple ways.
This commit has regrettably grown:
- added the `-e` flag to the `scribbu m3u` docs
- updated the scribbu manual generally, especially
the section on scriptiong
- updated the default pretty-printer to display comment language
- replaced `pop-frame` with `popm-frame` in module `(scribbu)`
2024-01-13 Michael Herstine <sp1ff@pobox.com>
Moved from c++ 17 to c++ 20; fix CI.
2024-01-10 Michael Herstine <sp1ff@pobox.com>
Correct docs; remove commented-out code
Cleaned-up compilation warnings
Pretty-print <id3v{1,2}-tag}
Fix the "delete" function in `scribbu text`.
This patch will fix a bug in the `-d` flag to `scribbu text`,
which is supposed to delete text frames. Previously, although
the code would erase the given frame from all lookup tables,
it would neglect to actually delete the frame from the
vector of frames in each tag type. This commit fixes that.
2024-01-04 Michael Herstine <sp1ff@pobox.com>
Cherry-picking a commit to fix CI.
2023-12-26 Michael Herstine <sp1ff@pobox.com>
Introduce PRIV & PRIV_2_4 frames.
This commit introduces ID3v2.3 & v2.4 models for the "PRIV" frame
as well as updates all pretty-printers for their display.
2023-12-22 Michael Herstine <sp1ff@pobox.com>
Improve both the `m3u` sub-command and the Scheme interface.
This patch is an accumulation of a few things:
- change the `m3u` sub-command to make progress on character
encoding failures
- add a new `m3u` option to help userse control character
encoding conversions
- add a check in the Scheme interface (alright-- this was
laying around in my local repo & I'm now picking it up)
2023-09-17 Michael Herstine <michael@lithic>
Place scribbu types & functions in module `(scribbu)`, even when defined in C.
This commit will place the snarfed functions provided by
libscribbu.so into module `(scribbu)` and updates
`scribbu.scm` to load the extension.
This commit also changes the linking between `scribbu` and
`libscribbu`.
I have squashed a number of commits on master-- this is generally
not a good idea, since I'm re-writing git history on a published
branch. That said, this project is obscure enough that I very much
doubt I'm inconveniencing anyone.
2023-07-03 Michael Herstine <sp1ff@pobox.com>
Fix several bugs in `write_id3v1_tag`.
Adds a GOOPS type check ensuring the argument is truly an
`<id3v1-tag>` instance.
Stops 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.
Finally, update the "Continuous Integration" workflow. I think I've
uncovered the correct `brew` incantations: the problem is they
keep exiting with non-zero status. The suggestion here:
<https://github.com/orgs/Homebrew/discussions/4612#discussioncomment-6339258>
is to simply ignore the errors. This allows the job to complete
succesfully, but I can't shake the feeling I'm going to be back
here in a few days fixing the workflow *again*.
2023-06-28 Michael Herstine <sp1ff@pobox.com>
Substantially improve the CI job, tidy the repo & fix two bugs
This commit will complete the CI Github Action by completing the
testing portion (i.e. running `make check` and `make distcheck`),
including certain lints that today I do by hand, and setting it to run
nightly.
Update a few `.gitignore`-s. Fix a typo. Update something in the
`macros` directory (which I don't understand).
Stop the `split` & `report` sub-commands parsing all SCRIBBU env vars
`boost::program_options::parse_environment()`, invoked with just
a prefix (such as "SCRIBBU") will examine _all_ env vars beginning
with that prefix. If any are found, and can't be interpreted as
command-line options, it will fail (with an inscrutable error message).
This commit brings these two commands in line with the rest in that
they either don't examine the environment at all, or they only
look for environment variables that map to valid command-line options.
2022-12-31 Michael Herstine <sp1ff@pobox.com>
Fixing release workflow
Updated boilerplate for 0.6.23
Updated version in .
Merge branch 'fix-issue-7'
2022-12-31 Michael Herstine <sp1ff@pobox.com>
Fixed the same bug in `play_count::reset_counter()`.
Removed test workflow since I got it working on ci.yml
This time, really closes #7.
2022-12-30 Michael Herstine <sp1ff@pobox.com>
Removed test workflow since I got it working on ci.yml
2022-12-30 Michael Herstine <sp1ff@pobox.com>
Fix a bug in `popularimeter::reset_counter()` where any argument greater than 255 would result in an infinite loops that would eventually exhaust memory.
Also commiting some changes to the packaging scripts that were
made while releasing 0.6.22.
Also committing some updates to the Github Workflows attempting
to set the locale (to enable running the unit tests as part
of CI).
Closes #7.
2022-12-05 Michael Herstine <sp1ff@pobox.com>
Fix release workflow
Fix release workflow
2022-12-04 Michael Herstine <sp1ff@pobox.com>
Fixing the release workflow... sigh.
scribbu release 0.6.22.
Updating boilerplate prior to releasing 0.6.22.
2022-12-04 Michael Herstine <sp1ff@pobox.com>
Remove boost::filesystem in favor of std::filesystem.
It turns-out that boost 1.74 introduced a bug in the
`filesystem` library method `copy_file()`
<https://github.com/boostorg/filesystem/issues/254>
that threw an `EXDEV` when *copying* across filesystems.
This was fixed in 1.77
<https://www.boost.org/users/history/version_1_77_0.html>,
but the Debian repos are back at 1.74
<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1017558>
This is really disappointing; renaming will generally fail across
filesystems, to which the standard response is to copy & then remove
the original. This would have broken a lot of code.
Experimenting showed that `std::filesystem` did *not* suffer from this
bug, so I replaced the boost implementation with the std version
throughout.
Also updated `ci.yml`.
2022-11-25 Michael Herstine <sp1ff@pobox.com>
Fix SIGSTKSZ.
Beginning with glibc 2.4, the constant SIGSTKSZ is no longer a
constant. Update `main()` to malloc the signal handler stack rather
than allocating it on the stack.
2021-12-18 Michael Herstine <sp1ff@pobox.com>
Hygiene commit.
- moved to boost 1.63 as the minimum version
- added a .zstd distribution
- added a category to the Texinfo `dir` entry
- updated the guile macro to work with version-suffixed installs
2021-07-19 Michael Herstine <sp1ff@pobox.com>
This commit normalizes assorted creation flags (for both frames and tags) among the sub-commands `xtag`, `genre`, `popm` and `text`.
It also extends the last to operate on ID3v1 tags, if they're
present and the frames being updated map naturally to an ID3v1
field.
It fixes a bug in my implementation of Damerau-Levenshtein
distance; which see
<https://github.com/sp1ff/damerau-levenshtein/issues/2>.
Finally, 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.
2021-07-05 Michael Herstine <sp1ff@pobox.com>
Unsynchronisation improvements.
This comment addresses 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.
The last of the "TODO"-s have been removed from the codebase, as well.
2021-05-21 Michael Herstine <sp1ff@pobox.com>
Fixing the Arch package build script.
2021-05-15 Michael Herstine <sp1ff@pobox.com>
Fixing release workflow
Fixing ci workflow
2021-05-03 Michael Herstine <sp1ff@pobox.com>
Missed the updated changelog in my last commit. Also, boost has moved the locations of their downloads-- updating ci.yml.
2021-05-02 Michael Herstine <sp1ff@pobox.com>
Preparing to release 0.6.18.
2021-05-01 Michael Herstine <sp1ff@pobox.com>
Improved 'm3u' sub-command, added 'encoding' sub-command.
This commit cleans-up my duration calculation (I stopped
using exceptions for control flow). It also added an
'encodings' sub-command for printing out the text encodings
scribbu supports.
It also adds documentation, a new unit test, and cleaned-out
a few "TODO"s from my source-code comments.
Finally, the 'report' sub-command will now print better
error messages on errors.
2021-04-20 Michael Herstine <sp1ff@pobox.com>
Adding duration.
This is a large commit. It adds the 'mp3_audio_frame' class,
builds on it to compute track duration, and adds a sub-command
to print M3U entries given files.
This is the initial commit; I'd like to improve the
implementation, add more testing, and write documentation.
2021-04-04 Michael Herstine <sp1ff@pobox.com>
Hygiene commit.
This commit:
1. improves the error messages when opening files
2. updates open_file to reutnr the istream, not a pointer
thereto
3. adds catch handlers to all my functions exported to Scheme
2021-03-12 Michael Herstine <sp1ff@pobox.com>
Packaging commits
release workflow working
2021-03-11 Michael Herstine <sp1ff@pobox.com>
Update boilerplate throughout.
Adding a release Github workflow.
This commit also adds a few utility scripts under 'admin'.
2021-03-10 Michael Herstine <sp1ff@pobox.com>
Fix the 'ci' workflow.
2021-03-10 Michael Herstine <sp1ff@pobox.com>
Arch package & a bug fix.
This commit does a few things:
1. adds support for building & packaging on Arch
2. fixes an Arch-specific build problem by adding <deque> to
the includes for src/command-utilities.h
3. fixes a nasty bug I finally tracked down in id3v1_tag::set_genre
2021-03-10 Michael Herstine <sp1ff@pobox.com>
Debian packaging commit.
This commit adds a few "admin" files for building Debian packages
for scribbu, as well as continuing to clean-up assorted "TODOs"
in the code.
Now building on a bare-bones Debian Docker image. Wrapped up a few "TODO" comments in the source.
This is a hygiene commit. It does a few things:
1. pulled the 'ci' workflow from master to 0.6 & augmented it
to run "make distcheck"
2. moved README.md to README.org
3. scripted my macOS builds
4. stopped bothering to generate LaTeX docs
5. cleaned up a bunch of "TODO" comments in the test suite
Address issue #5.
Also, upgrade to Guile 3.0 if it's available.
2021-03-10 Michael Herstine <sp1ff@pobox.com>
Work in progress.
This commit does the following:
1. fixed a bug in 'find_frame' which inverted the "hit" portion
of the return value
2. added a --get option to the 'genre' sub-command
2021-03-10 Michael Herstine <sp1ff@pobox.com>
Update the 'text' sub-command.
This commit re-implements the 'text' sub-command in terms of
'tagset_processor'. In so doing, it opens up the options of
creating an ID3v2 tag if none exist.
2021-03-10 Michael Herstine <sp1ff@pobox.com>
Improve 'scribbu dump'
This commit makes the following changes to 'scribbu dump'
1. dump the file's mtime
2. generates an error message on file-not-found
It also:
- begins stripping track data from test mp3 files
- adds a unit test to 'scribbu xtag'
2021-03-10 Michael Herstine <sp1ff@pobox.com>
BUGFIX: owner was not being written out correctly for `popm'.
This commit contains a few changes:
- a fix to the bug mentioned above
- maintenance: renamed autogen.sh, got rid of libtool.m4
- fixed a compilation bug on MacOS
2021-03-10 Michael Herstine <sp1ff@pobox.com>
Fixed a SEGV when creating new ID3v2 tags. Repaired the MacOS build.
Bugfix: handle rename errors when renaming across filestystems.
2021-03-10 Michael Herstine <sp1ff@pobox.com>
Final commit of the `genre' sub-command.
This commit completes the implementation of the `genre' sub-
command:
1. add'nl tests & fixes for the bugs found therefrom
2. moved the `xtag' sub-command over to the tagset_processor
framework
3. moved the `popm' sub-command over to the tagset_processor
framework
2021-03-10 Michael Herstine <sp1ff@pobox.com>
Initial commit for the `genre' sub-command.
This commit adds a new sub-command: `git genre' that allows the
user to update the "genre" in ID3v1 and/or v2 tags.
Assorted bug fixes:
- https://github.com/sp1ff/scribbu/issues/4: "id3v2_tag text frame
virtuals will SEGV if the relevant frame isn't there"
Initial commit for the 0.6 release; updating package version along with boilerplate throughout.
2020-11-29 Michael Herstine <sp1ff@pobox.com>
ci workflow not caching correctly
Adding a nightly build GitHub Action. Builds on Ubuntu & MacOS against a few versions of boost.
2019-11-06 Michael Herstine <sp1ff@pobox.com>
Release 0.5 of scribbu.
2019-11-05 Michael Herstine <sp1ff@pobox.com>
This commit makes a few minor changes prior to releasing:
1. new verbiage in the Texinfo manual on string character
encodings
2. replaced `bp.py' with `admin/update-boilerplate'
3. minor documentation updates
2019-10-18 Michael Herstine <sp1ff@pobox.com>
This commit adds information on how to use libscribbu from C++:
1. a new chapter on this in the Texinfo manual
2. a sample program
It also adds a minor test illustrating a shortcoming in the
convert_encoding API. & addresses a number of little bugs
in the documentation.
2019-09-27 Michael Herstine <sp1ff@pobox.com>
Bug squashing prior to 0.5:
This commit fixes:
1. https://github.com/sp1ff/scribbu/issues/1: `scribbu popm --create' will only create PCNT frames
2. https://github.com/sp1ff/scribbu/issues/2: `scribbu' help messages not working consistently
3. https://github.com/sp1ff/scribbu/issues/3: add $(datadir)/guile/site to %load-path
as well as adds the following features:
1. list all sub-commands in the `scribbu' usage message
2. change the default for `track-no' in `<id3v1-tag>' to '()
3. changes to the Winamp scale for mapping stars to POPM ratings (with a flag
for switching to a linear scale)
4. adds a new sub-command `text' for creating, updating & deleting assorted
ID3v2 text frames
as well as updating the documentation & help handling.
2019-08-18 Michael Herstine <sp1ff@pobox.com>
This commit contains the accessioning features.
It may be squashed into the prior commit at some point.
This commit:
1. Introduces the free functions `maybe_remove_id3v1' and
`replace_id3v1' for updating ID3v1 tags
2. Introduces the free function `maybe_emplace_tagset' and
its downstreams, for working with ID3v2 tagsets.
3. Introduces `<id3v1-tag>', my first GOOPS class in the
scribbu module, along with foreign functions for serde.
4. Introduces `<id3v2-tag>' & its associated frames classes,
along with the foreign functions for serde.
5. Introduces the {read,write}-tagset methods
6. adds the "tag cloud" ID3v2 frame
7. adds two new sub-commands `popm' & `xtag'
2019-01-06 Michael Herstine <sp1ff@pobox.com>
Initial commit of accessioning features.
This commit:
0. updates all copyright statements &c for 2019
1. updates all code & docs to release 0.5
2. brings CSV pretty-printing in line with RFC 4180
3. adds TDF and ASCII-delimited text pretty-printing
4. adds the filename, directory & size to `report' output
2018-12-28 Michael Herstine <sp1ff@pobox.com>
Support scribbu on MacOS.
scribbu is now buulding on MacOS (Darwin 18.20.0) using clang (i.e.
the native toolchain; *not* GNU gcc).
2018-12-07 Michael Herstine <sp1ff@pobox.com>
Initial commit of scribbu 0.5.
This commit adds a few minor updates.
2018-04-01 Michael Herstine <sp1ff@pobox.com>
Final 0.4 commit on the `find' feature branch.
This will be the final commit on the `find' feature branch. It
includes boilerplate updates, updates to NEWS, ChangeLog &c.
Corrected the behavior of --help on a few sub-commands.
2018-03-28 Michael Herstine <sp1ff@pobox.com>
Documentation update.
2018-03-24 Michael Herstine <sp1ff@pobox.com>
Scheme support update.
Cleared out a number of TODOs in scheme.cc; revamped write-tag
& added replace-tags.
Also cleared out TODOs in the codebase altogether preparatory
to merging this branch.
2018-03-17 Michael Herstine <sp1ff@pobox.com>
Boilerplate update.
This commit looks large, but other than whitespace the changes are
all to comments/boilerplate. My first run of `bp.py' resulted in:
- stripping trailing whitespace in all files
- adding standard headers to nearly all project files
- standardizing the version, author name & e-mail throughout
configure.ac, documentation & file headers
2018-03-17 Michael Herstine <sp1ff@pobox.com>
Finally split up 'RockTheJoint'.
I used scribbu to cut up a large file I'd ripped from a stream;
this involved a number of changes:
1. adding a few external functions
2. modifying classes comment & user_defined_text to have ctors
for use other than when deserializing
3. added a unit test for all this new logic
4. Fixed an error where Guile warning about source being newer
than compiled would erroneously cause tests to be marked as
failed.
5. Customized the welcome message when running the REPL.
6. Standardized boilerplate such as version & license terms.
2018-01-21 Michael Herstine <sp1ff@pobox.com>
Documentation updates & minor autoconf changes.
Moved man pages to `doc' sub-directory; added Info, as well (skeletal).
Changed the Guile macros I use in `configure.ac' while trying
(unsuccessfully) to get scribbu to build on MacOS.
2018-01-18 Michael Herstine <sp1ff@pobox.com>
Fix parsing ID3v2.4 tags with extended headers.
Audacity exports tracks with ID3v2.4 tags containing extended
headers. Since this is the first example I've come across of
this particular ID3v2 tag, it was the first time I was able to
exercise that code path in scribbu. Unsurprisingly, there were
mutliple issues. This commit fixes them.
2018-01-15 Michael Herstine <sp1ff@pobox.com>
Improve scribbu documentation preparatory to an update.
This commit includes several improvements to scribbu's documentation:
1. man pages for scribbu and all sub-commands
2018-01-01 Michael Herstine <sp1ff@pobox.com>
Corrected some assumptions regarding endianness & sizeof(size_t).
2017-12-29 Michael Herstine <sp1ff@pobox.com>
`test-cleanup-encoded-by' passing.
Now scripting scribbu from Scheme to update tags!
2017-12-28 Michael Herstine <sp1ff@pobox.com>
Mutability complete.
Re-implemented serialization. Tests for compression & unsynchronisation
added. Unit tests passing. `make distcheck' passes.
2017-12-25 Michael Herstine <sp1ff@pobox.com>
Miscellaneous bug fixes.
2017-12-10 Michael Herstine <sp1ff@pobox.com>
Yet more ID3v2 mutability.
This commit completely revamps ID3v2.{2,3,4} size computation,
serialization & unsynchronisation. Honestly, it's been so long since
I've committed that I've forgotten everything that went into this
commit.
There is more work to be done on adding mutability, but the unit
test suite, at least, passes.
2017-08-24 Michael Herstine <sp1ff@pobox.com>
More ID3v2 mutability.
This commit completes my first use case for tag mutability-- I can
now, in Scheme, walk a directory of tagged files, find those with
an ID3v1 comment of 'Ripped by Winamp...' and update the encoded-by
ID3v2 frame.
It is also my first commit integrating Guile into my autotools
setup.
There is still more work to be done, esp. in implementing mutability
in all ID3v2 tags.
2017-08-02 Michael Herstine <sp1ff@pobox.com>
Making ID3v2 tags mutable.
This commit marks the successful completion of what began as an
experiment to make id3v2_2_tag mutable, primarily through a
container-liker interface to its frames. I say container-like because
its mutable iterator dereferences to a proxy object (like bit_vector)
that can handle assignments & moves while keeping the tag's ancillary
datastructures consistent.
After this commit, I will merge this branch back into the 'find'
feature branch, extend mutability to the other tags & resume implementing
Scheme support for editing tags.
2017-07-22 Michael Herstine <sp1ff@pobox.com>
Mutable tags work-in-progress.
This is an intermediate check-in for my work on making ID3v2 tags
mutable. It contains:
1. A first, very crude implementation of mutable iterators for
ID3v2.2 tags
2. Skeletal implementations for new size(), needs_unsync() &
serialization support.
3. Working unit tests.
2017-07-04 Michael Herstine <sp1ff@pobox.com>
First implementations of foreign types & functions.
This commit contains my first, tentative, foreign functions & types
in Guile. I'm committing preparatory to pulling an experimental branch
for modifying tags (as opposed from simply reading them, as scribbu
has done until now).
2017-06-10 Michael Herstine <sp1ff@pobox.com>
Integrated with Guile.
This commit integrates Guile into scribbu. Running just 'scribbu'
will start up the Scheme interpreter. 'scribbu -e' & 'scribbu -f'
invokes stub functions.
2017-06-08 Michael Herstine <sp1ff@pobox.com>
Update compiler & Vagrant box.
This commit upgrades the Vagrant box to Ubuntu 16, g++ to
version 6, and boost to version 1.61. This involved a lot of
code tweaks, especially around operator<< & operator>>.
2017-06-07 Michael Herstine <sp1ff@pobox.com>
Minor housekeeping.
Moved README :=> README.md, added autogen.sh.
2017-06-02 Michael Herstine <sp1ff@pobox.com>
Pre-merge commit.
Updated README, NEWS & ChangeLog. Turned off automatic core dumps.
Ready to merge.
2017-06-01 Michael Herstine <sp1ff@pobox.com>
Doc updates.
(Very) minor updates to scribbu documentation.
2017-05-29 Michael Herstine <sp1ff@pobox.com>
More testing...
This commit adds more unit tests; especially some lifted
from the taglib test suite.
2017-05-27 Michael Herstine <sp1ff@pobox.com>
Added unit tests.
Small commit adding a few more unit tests.
2017-05-26 Michael Herstine <sp1ff@pobox.com>
Continued test improvement.
Added tests, fixed:
1. multiple ID3v2 tags in a file
2. corrupt/incorrectly written ID3v2 tag
3. multiple bugs in the 'dump' sub-command
4. POPM bug-- had ID PCNT
2017-05-24 Michael Herstine <sp1ff@pobox.com>
More code cleanup.
This commit does two things:
1. Cleared up most of the TODO comments (exceptions & test-
related stuff excepted)
2. Fixed bugs in reading track data & ID3v1 tags where the
stream state wasn't being checked.
2017-05-23 sp1ff <sp1ff@pobox.com>
Ongoing improvements to the 'dump' branch.
This commit does a few things:
1. Improves the 'dump' sub-command to handle directory trees
2. Fixes a few bugs I found trying to dump my entire .mp3 collection
3. Finished implementing the pretty printer
4. Cleaned up a slew of "TODO" comments throughout the codebase
Unfortunately, I'm on battery in a plane over the middle of the Pacific
ocean right now, so I'm committing without going through my entire
C/L. Specifically, I didn't run 'make distcheck' & I didn't generate
docs (I *did* run 'make check').
2017-05-21 sp1ff <sp1ff@pobox.com>
Fixed a few bugs & added doxygen.
This commit fixes a few bugs that came up:
1. Permitted multiple copies of text frames in ID3v2 tags
2. Trimmed trailing spaces in convert_encoding
It also adds doxygen support to my autotools configuration.
2017-05-19 sp1ff <sp1ff@pobox.com>
Committing the 'dump' sub-command.
This commit adds the 'dump' sub-command, which turned out to be
considerably more complex than I'd anticipated. There are still a
lot of "TODO" comments in the code, and the code base needs to be
more thoroughly tested overall.
2017-04-16 Michael Herstine <sp1ff@pobox.com>
Tweak the sub-command structure & get 'distcheck' working.
This commit does two things:
1. Replaced the 'command' enum with a static auto-register approach,
which allowed me to remove some code.
2. Got "make distcheck" working; I had to:
a) use BUILT_SOURCES to tell automake that the lexer header file
was required & tell it how to make it
b) include all my test data in the distribution tarball
c) rename several files therein to remove spaces, which automake
can't handle
2016-06-12 Michael Herstine <mgh@Saramac.local>
Merge branch 'master' of github.com:sp1ff/scribbu
Initial fetch of project prior to my initial push.
Initial commit
2016-03-07 sp1ff <sp1ff@pobox.com>
Initial commit