Skip to content

Commit 3db4202

Browse files
cocoaui: uppercase unknown keys before displaying in trkproperties
1 parent de5642d commit 3db4202

File tree

1 file changed

+28
-8
lines changed

1 file changed

+28
-8
lines changed

plugins/cocoaui/TrackProperties/TrackPropertiesWindowController.m

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,24 @@ - (void)buildTrackListForCtx:(int)ctx forPlaylist:(ddb_playlist_t *)plt {
234234
}.mutableCopy];
235235
}
236236

237+
static char *
238+
_formatted_title_for_unknown_key(const char *key) {
239+
size_t l = strlen (key);
240+
char *title = malloc(l*4);
241+
title[0] = '<';
242+
char *t = title + 1;
243+
const char *p = key;
244+
while (*p) {
245+
int32_t size = 0;
246+
u8_nextchar (p, &size);
247+
int outsize = u8_toupper((const signed char *)p, size, t);
248+
t += outsize;
249+
p += size;
250+
}
251+
*t++ = '>';
252+
*t++ = 0;
253+
return title;
254+
}
237255

238256
- (void)fillMeta {
239257
[self.store removeAllObjects];
@@ -261,10 +279,10 @@ - (void)fillMeta {
261279
continue;
262280
}
263281

264-
size_t l = strlen (keys[k]);
265-
char title[l + 3];
266-
snprintf (title, sizeof (title), "<%s>", keys[k]);
282+
char *title = _formatted_title_for_unknown_key(keys[k]);
267283
add_field (self.store, keys[k], title, 0, self.tracks, self.numtracks);
284+
free (title);
285+
title = NULL;
268286
}
269287
if (keys) {
270288
free (keys);
@@ -296,10 +314,10 @@ - (void)fillMetadata {
296314
if (trkproperties_hc_props[i]) {
297315
continue;
298316
}
299-
size_t l = strlen (keys[k]) + 2;
300-
char title[l];
301-
snprintf (title, sizeof (title), "<%s>", keys[k]+1);
317+
char *title = _formatted_title_for_unknown_key(keys[k]);
302318
add_field (self.propstore, keys[k], title, 1, self.tracks, self.numtracks);
319+
free (title);
320+
title = NULL;
303321
}
304322
if (keys) {
305323
free (keys);
@@ -963,8 +981,10 @@ - (IBAction)addNewField:(id)sender {
963981
}
964982
}
965983

966-
NSString *title = [NSString stringWithFormat:@"<%@>", key];
967-
add_field (self.store, key.UTF8String, title.UTF8String, 0, self.tracks, self.numtracks);
984+
char *title = _formatted_title_for_unknown_key(key.UTF8String);
985+
add_field (self.store, key.UTF8String, title, 0, self.tracks, self.numtracks);
986+
free (title);
987+
title = NULL;
968988
self.modified = YES;
969989
[self.metadataTableView reloadData];
970990
}];

0 commit comments

Comments
 (0)