| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Opening the playlist used to jump to EMMS's selected track, which stays set while stopped, so the view opened deep in the list with point mid-row. It now lands on the playing track's row (beginning of line, upper third of the window) when a song is playing, and at the top of the list when stopped. Both entry points share the logic, and the playlist buffer gets hl-line so the current row stays findable on album art.
Also fixed: directory adds handed the raw tree to emms-add-directory-tree, which adds every file it finds. Cover art and liner notes became playlist rows. All three add paths now route through a filtered walk that keeps only accepted music extensions. The m3u loader applies the same filter to local paths (stream URLs pass through), so old playlists with saved cover lines stop re-importing them.
|
| |
|
|
|
|
|
|
| |
Re-enabling native-comp surfaced a suite-wide fragility. When a test redefines a C primitive (or a native-compiled function), native-comp routes native callers through a trampoline that calls the mock with the primitive's maximum arity. A fixed-arity mock narrower than the primitive then throws wrong-number-of-arguments, intermittently, as the eln-cache fills.
I swept every arity-narrow subr mock to append &rest _ (188 sites, preserving any named args the body uses), and added tests/test-meta-subr-mock-arity.el, which fails make test on any subr mock too narrow for the primitive's arity. The rule isn't "never mock a subr". The suite mocks message and completing-read freely. It's "a subr mock must accept the primitive's arity."
Background, the three failure modes, and the research are in docs/native-comp-subr-mocking.org.
|
|
|
music-config has a large sibling-test fleet for the pure helpers; the gap was a handful of small dispatchers and assertion guards.
13 new tests, EMMS primitives stubbed throughout:
- `cj/music--assert-m3u-files-exist`: passes a non-empty list through, errors on empty.
- `cj/music--sync-playlist-file`: sets the buffer-local file ref + resets point.
- `cj/music--select-m3u-file`: returns the chosen path, returns nil on Cancel, errors when no files exist.
- `cj/emms--setup`: no-ops when emms already loaded, requires when absent.
- `cj/music-playlist-clear`: stops playback, clears the playlist, nils the file ref.
- `cj/music-add-directory-recursive`: calls `emms-add-directory-tree` for an existing dir, user-errors for non-dirs.
- `cj/music--find-track-in-playlist`: returns the buffer position when present, nil when absent.
|