mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 03:24:45 +01:00
ALSA: jack: Improve string handling in jack_kctl_name_gen
If appending " Jack" is not necessary, replace snprintf("%s", ...) with
the faster strscpy().
Additionally, rename 'need_cat' to the clearer 'append_suf', use local
variables for the suffix and its length, remove the confusing comment,
compare strncmp() to 0, and use 'size_t' for the 'size' function
parameter.
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
Link: https://patch.msgid.link/20260125155159.98720-1-thorsten.blum@linux.dev
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
cc051fbd7f
commit
bfa514c461
1 changed files with 11 additions and 7 deletions
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/export.h>
|
||||
#include <linux/string.h>
|
||||
#include <sound/core.h>
|
||||
#include <sound/control.h>
|
||||
|
||||
|
|
@ -46,17 +47,20 @@ static int get_available_index(struct snd_card *card, const char *name)
|
|||
return sid.index;
|
||||
}
|
||||
|
||||
static void jack_kctl_name_gen(char *name, const char *src_name, int size)
|
||||
static void jack_kctl_name_gen(char *name, const char *src_name, size_t size)
|
||||
{
|
||||
size_t count = strlen(src_name);
|
||||
bool need_cat = true;
|
||||
const char *suf = " Jack";
|
||||
size_t suf_len = strlen(suf);
|
||||
bool append_suf = true;
|
||||
|
||||
/* remove redundant " Jack" from src_name */
|
||||
if (count >= 5)
|
||||
need_cat = strncmp(&src_name[count - 5], " Jack", 5) ? true : false;
|
||||
|
||||
snprintf(name, size, need_cat ? "%s Jack" : "%s", src_name);
|
||||
if (count >= suf_len)
|
||||
append_suf = strncmp(&src_name[count - suf_len], suf, suf_len) != 0;
|
||||
|
||||
if (append_suf)
|
||||
snprintf(name, size, "%s%s", src_name, suf);
|
||||
else
|
||||
strscpy(name, src_name, size);
|
||||
}
|
||||
|
||||
struct snd_kcontrol *
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue