mirror of
https://github.com/libretro/RetroArch
synced 2025-03-23 10:20:57 +00:00
Work around C89 string literal length limitations
This commit is contained in:
parent
8e2b04d556
commit
e19f82988c
@ -868,26 +868,35 @@ int menu_hash_get_help_de(uint32_t hash, char *s, size_t len)
|
||||
switch (driver_hash)
|
||||
{
|
||||
case MENU_LABEL_INPUT_DRIVER_UDEV:
|
||||
snprintf(s, len,
|
||||
"udev-Eingabetreiber. \n"
|
||||
" \n"
|
||||
"Dieser Treiber kann ohne X ausgeführt werden. \n"
|
||||
" \n"
|
||||
"Er verwende die neue evdev-Joypad-API \n"
|
||||
"für die Joystick-Unterstützung und unterstützt \n"
|
||||
"auch Hotplugging und Force-Feedback (wenn das \n"
|
||||
"Gerät dies unterstützt). \n"
|
||||
" \n"
|
||||
"Der Treiber liest evdev-Ereigniss für Tastatur- \n"
|
||||
"Unterstützung und kann auch mit Tastatur-Callbacks, \n"
|
||||
"Mäusen und Touchpads umgehen. \n"
|
||||
" \n"
|
||||
"Standardmäßig sind die /dev/input-Dateien in den \n"
|
||||
"meisten Linux-Distribution nur für den Root- \n"
|
||||
"Benutzer lesbar (mode 600). Du kannst eine udev- \n"
|
||||
"Regel erstellen, die auch den Zugriff für andere \n"
|
||||
"Benutzer erlaubt."
|
||||
);
|
||||
{
|
||||
/* Work around C89 limitations */
|
||||
char u[501];
|
||||
char t[501];
|
||||
|
||||
snprintf(t, sizeof(t),
|
||||
"udev-Eingabetreiber. \n"
|
||||
" \n"
|
||||
"Dieser Treiber kann ohne X ausgeführt werden. \n"
|
||||
" \n"
|
||||
"Er verwende die neue evdev-Joypad-API \n"
|
||||
"für die Joystick-Unterstützung und unterstützt \n"
|
||||
"auch Hotplugging und Force-Feedback (wenn das \n"
|
||||
"Gerät dies unterstützt). \n"
|
||||
" \n"
|
||||
);
|
||||
snprintf(u, sizeof(u),
|
||||
"Der Treiber liest evdev-Ereigniss für Tastatur- \n"
|
||||
"Unterstützung und kann auch mit Tastatur-Callbacks, \n"
|
||||
"Mäusen und Touchpads umgehen. \n"
|
||||
" \n"
|
||||
"Standardmäßig sind die /dev/input-Dateien in den \n"
|
||||
"meisten Linux-Distribution nur für den Root- \n"
|
||||
"Benutzer lesbar (mode 600). Du kannst eine udev- \n"
|
||||
"Regel erstellen, die auch den Zugriff für andere \n"
|
||||
"Benutzer erlaubt.");
|
||||
strlcat(s, t, len);
|
||||
strlcat(s, u, len);
|
||||
}
|
||||
break;
|
||||
case MENU_LABEL_INPUT_DRIVER_LINUXRAW:
|
||||
snprintf(s, len,
|
||||
|
@ -931,32 +931,41 @@ int menu_hash_get_help_es(uint32_t hash, char *s, size_t len)
|
||||
switch (hash)
|
||||
{
|
||||
case MENU_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING_DESC:
|
||||
snprintf(s, len,
|
||||
"RetroArch utiliza un formato único para \n"
|
||||
"sincronizar vídeo y sonido que necesita \n"
|
||||
"calibrarse con la frecuencia de \n"
|
||||
"actualización de tu monitor para obtener \n"
|
||||
"el mejor rendimiento. \n"
|
||||
" \n"
|
||||
"Si notas cortes de sonido o en la imagen,\n"
|
||||
"lo normal es que necesites calibrar estos\n"
|
||||
"ajustes. Aquí van algunas opciones:\n"
|
||||
" \n"
|
||||
"a) Ve a '%s' -> '%s' y activa\n"
|
||||
"'Vídeo por hilos'. En este modo la tasa\n"
|
||||
"de refresco es irrelevante, habrá más fps,\n"
|
||||
"'Vídeo multinúcleo'. En este modo la \n"
|
||||
"frecuencia es irrelevante, habrá más fps,\n"
|
||||
"pero la imagen podría ser menos fluida.\n"
|
||||
"b) Ve a '%s' -> '%s' y busca\n"
|
||||
"'%s'. Deja que se ejecute durante\n"
|
||||
"2048 fotogramas y selecciona Aceptar.",
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_SETTINGS),
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_VIDEO_SETTINGS),
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_SETTINGS),
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_VIDEO_SETTINGS),
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_VIDEO_REFRESH_RATE_AUTO)
|
||||
);
|
||||
{
|
||||
/* Work around C89 limitations */
|
||||
char u[501];
|
||||
char t[501];
|
||||
|
||||
strlcpy(t,
|
||||
"RetroArch utiliza un formato único para \n"
|
||||
"sincronizar vídeo y sonido que necesita \n"
|
||||
"calibrarse con la frecuencia de \n"
|
||||
"actualización de tu monitor para obtener \n"
|
||||
"el mejor rendimiento. \n"
|
||||
" \n"
|
||||
"Si notas cortes de sonido o en la imagen,\n"
|
||||
"lo normal es que necesites calibrar estos\n"
|
||||
"ajustes. Aquí van algunas opciones:\n"
|
||||
" \n", sizeof(t));
|
||||
snprintf(u, sizeof(u),
|
||||
"a) Ve a '%s' -> '%s' y activa\n"
|
||||
"'Vídeo por hilos'. En este modo la tasa\n"
|
||||
"de refresco es irrelevante, habrá más fps,\n"
|
||||
"'Vídeo multinúcleo'. En este modo la \n"
|
||||
"frecuencia es irrelevante, habrá más fps,\n"
|
||||
"pero la imagen podría ser menos fluida.\n"
|
||||
"b) Ve a '%s' -> '%s' y busca\n"
|
||||
"'%s'. Deja que se ejecute durante\n"
|
||||
"2048 fotogramas y selecciona Aceptar.",
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_SETTINGS),
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_VIDEO_SETTINGS),
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_SETTINGS),
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_VIDEO_SETTINGS),
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_VIDEO_REFRESH_RATE_AUTO)
|
||||
);
|
||||
strlcat(s, t, len);
|
||||
strlcat(s, u, len);
|
||||
}
|
||||
break;
|
||||
case MENU_LABEL_VALUE_HELP_SCANNING_CONTENT_DESC:
|
||||
snprintf(s, len,
|
||||
@ -1008,26 +1017,37 @@ int menu_hash_get_help_es(uint32_t hash, char *s, size_t len)
|
||||
switch (driver_hash)
|
||||
{
|
||||
case MENU_LABEL_INPUT_DRIVER_UDEV:
|
||||
snprintf(s, len,
|
||||
"Controlador de entrada udev. \n"
|
||||
" \n"
|
||||
"Este controlador puede funcionar sin X. \n"
|
||||
" \n"
|
||||
"Utiliza la API más reciente para joypads \n"
|
||||
"evdec para dar compatibilidad con joysticks. \n"
|
||||
"Permite conexión en caliente y force \n"
|
||||
"feedback (si lo admite el dispositivo). \n"
|
||||
" \n"
|
||||
"El controlador lee los eventos evdev para \n"
|
||||
"dar compatibilidad con teclados. También \n"
|
||||
"es compatible con retrollamadas de teclado, \n"
|
||||
"ratones y pantallas táctiles. \n"
|
||||
" \n"
|
||||
"La mayoría de las distros tienen los nodos \n"
|
||||
"/dev/input en modo root-only (modo 600). \n"
|
||||
"Puedes configurar una regla udev que los haga \n"
|
||||
"accesibles fuera de la raíz."
|
||||
);
|
||||
{
|
||||
/* Work around C89 limitations */
|
||||
char u[501];
|
||||
char t[501];
|
||||
|
||||
strlcpy(t,
|
||||
"Controlador de entrada udev. \n"
|
||||
" \n"
|
||||
"Este controlador puede funcionar sin X. \n"
|
||||
" \n"
|
||||
"Utiliza la API más reciente para joypads \n"
|
||||
"evdec para dar compatibilidad con joysticks. \n"
|
||||
"Permite conexión en caliente y force \n"
|
||||
"feedback (si lo admite el dispositivo). \n",
|
||||
sizeof(t));
|
||||
strlcpy(u,
|
||||
" \n"
|
||||
"El controlador lee los eventos evdev para \n"
|
||||
"dar compatibilidad con teclados. También \n"
|
||||
"es compatible con retrollamadas de teclado, \n"
|
||||
"ratones y pantallas táctiles. \n"
|
||||
" \n"
|
||||
"La mayoría de las distros tienen los nodos \n"
|
||||
"/dev/input en modo root-only (modo 600). \n"
|
||||
"Puedes configurar una regla udev que los haga \n"
|
||||
"accesibles fuera de la raíz.", sizeof(u)
|
||||
);
|
||||
|
||||
strlcat(s, t, len);
|
||||
strlcat(s, u, len);
|
||||
}
|
||||
break;
|
||||
case MENU_LABEL_INPUT_DRIVER_LINUXRAW:
|
||||
snprintf(s, len,
|
||||
@ -1513,27 +1533,36 @@ int menu_hash_get_help_es(uint32_t hash, char *s, size_t len)
|
||||
"implementaciones de núcleos libretro.");
|
||||
break;
|
||||
case MENU_LABEL_VIDEO_REFRESH_RATE_AUTO:
|
||||
snprintf(s, len,
|
||||
"Frecuencia de actualización automática.\n"
|
||||
" \n"
|
||||
"La frecuencia de actualización precisa del \n"
|
||||
"monitor (en Hz). Se utiliza para calcular \n"
|
||||
"la frecuencia de entrada de sonido con esta \n"
|
||||
"fórmula: \n"
|
||||
" \n"
|
||||
"audio_input_rate = veloc. de entrada de juego \n"
|
||||
"* frecuencia de actualización de pantalla / \n"
|
||||
"frecuencia de actualización de juego \n"
|
||||
" \n"
|
||||
"Si la implementación no indica un valor, se \n"
|
||||
"asumirá de forma predeterminada el sistema \n"
|
||||
"NTSC por compatibilidad.\n"
|
||||
" \n"
|
||||
"Este valor debería ser lo más similar a 60Hz \n"
|
||||
"para evitar cambios en el tono. Si tu \n"
|
||||
"monitor no funciona a 60Hz o similar, \n"
|
||||
"desactiva la sincronía vertical y deja \n"
|
||||
"esta opción en su valor predeterminado.");
|
||||
{
|
||||
/* Work around C89 limitations */
|
||||
char u[501];
|
||||
char t[501];
|
||||
|
||||
strlcpy(t,
|
||||
"Frecuencia de actualización automática.\n"
|
||||
" \n"
|
||||
"La frecuencia de actualización precisa del \n"
|
||||
"monitor (en Hz). Se utiliza para calcular \n"
|
||||
"la frecuencia de entrada de sonido con esta \n"
|
||||
"fórmula: \n"
|
||||
" \n"
|
||||
"audio_input_rate = veloc. de entrada de juego \n"
|
||||
"* frecuencia de actualización de pantalla / \n"
|
||||
"frecuencia de actualización de juego \n"
|
||||
" \n", sizeof(t));
|
||||
strlcpy(u,
|
||||
"Si la implementación no indica un valor, se \n"
|
||||
"asumirá de forma predeterminada el sistema \n"
|
||||
"NTSC por compatibilidad.\n"
|
||||
" \n"
|
||||
"Este valor debería ser lo más similar a 60Hz \n"
|
||||
"para evitar cambios en el tono. Si tu \n"
|
||||
"monitor no funciona a 60Hz o similar, \n"
|
||||
"desactiva la sincronía vertical y deja \n"
|
||||
"esta opción en su valor predeterminado.", sizeof(u));
|
||||
strlcat(s, t, len);
|
||||
strlcat(s, u, len);
|
||||
}
|
||||
break;
|
||||
case MENU_LABEL_VIDEO_ROTATION:
|
||||
snprintf(s, len,
|
||||
|
@ -1336,24 +1336,32 @@ int menu_hash_get_help_pt(uint32_t hash, char *s, size_t len)
|
||||
"implementações de cores libretro.");
|
||||
break;
|
||||
case MENU_LABEL_VIDEO_REFRESH_RATE_AUTO:
|
||||
snprintf(s, len,
|
||||
"Taxa de Atualização Automática.\n"
|
||||
" \n"
|
||||
"A taxa de atualização exata de nosso monitor (Hz).\n"
|
||||
"É usada para calcular a taxa de entrada de áudio \n"
|
||||
"com a fórmula: \n"
|
||||
" \n"
|
||||
"audio_input_rate = game input rate * display \n"
|
||||
"refresh rate / game refresh rate\n"
|
||||
" \n"
|
||||
"Se a implementação não informar valores, \n"
|
||||
"valores NTSC serão assumidos por questão de \n"
|
||||
"compatibilidade.\n"
|
||||
" \n"
|
||||
"Esse valor deve ficar próximo de 60Hz para \n"
|
||||
"evitar grande mudanças de pitch. Se o monitor \n"
|
||||
"não rodar a 60Hz, ou algo próximo a isso, desative\n"
|
||||
"o VSync, e deixe-o com valores padrão.");
|
||||
{
|
||||
/* Work around C89 limitations */
|
||||
char u[501];
|
||||
char t[501];
|
||||
snprintf(u, sizeof(u),
|
||||
"Taxa de Atualização Automática.\n"
|
||||
" \n"
|
||||
"A taxa de atualização exata de nosso monitor (Hz).\n"
|
||||
"É usada para calcular a taxa de entrada de áudio \n"
|
||||
"com a fórmula: \n"
|
||||
" \n"
|
||||
"audio_input_rate = game input rate * display \n"
|
||||
"refresh rate / game refresh rate\n"
|
||||
" \n");
|
||||
snprintf(t, sizeof(t),
|
||||
"Se a implementação não informar valores, \n"
|
||||
"valores NTSC serão assumidos por questão de \n"
|
||||
"compatibilidade.\n"
|
||||
" \n"
|
||||
"Esse valor deve ficar próximo de 60Hz para \n"
|
||||
"evitar grande mudanças de pitch. Se o monitor \n"
|
||||
"não rodar a 60Hz, ou algo próximo a isso, desative\n"
|
||||
"o VSync, e deixe-o com valores padrão.");
|
||||
strlcat(s, u, len);
|
||||
strlcat(s, t, len);
|
||||
}
|
||||
break;
|
||||
case MENU_LABEL_VIDEO_ROTATION:
|
||||
snprintf(s, len,
|
||||
|
@ -1545,7 +1545,8 @@ int menu_hash_get_help_us(uint32_t hash, char *s, size_t len)
|
||||
/* Work around C89 limitations */
|
||||
char u[501];
|
||||
char t[501];
|
||||
strlcpy(u,
|
||||
|
||||
strlcpy(t,
|
||||
"RetroArch relies on an unique form of\n"
|
||||
"audio/video synchronization where it needs to be\n"
|
||||
"calibrated against the refresh rate of your\n"
|
||||
@ -1554,8 +1555,8 @@ int menu_hash_get_help_us(uint32_t hash, char *s, size_t len)
|
||||
"If you experience any audio crackling or video\n"
|
||||
"tearing, usually it means that you need to\n"
|
||||
"calibrate the settings. Some choices below:\n"
|
||||
" \n", sizeof(u));
|
||||
snprintf(t, sizeof(t),
|
||||
" \n", sizeof(t));
|
||||
snprintf(u, sizeof(u),
|
||||
"a) Go to '%s' -> '%s', and enable\n"
|
||||
"'Threaded Video'. Refresh rate will not matter\n"
|
||||
"in this mode, framerate will be higher,\n"
|
||||
@ -1568,8 +1569,8 @@ int menu_hash_get_help_us(uint32_t hash, char *s, size_t len)
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_SETTINGS),
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_VIDEO_SETTINGS),
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_VIDEO_REFRESH_RATE_AUTO));
|
||||
strlcat(s, u, len);
|
||||
strlcat(s, t, len);
|
||||
strlcat(s, u, len);
|
||||
}
|
||||
break;
|
||||
case MENU_LABEL_VALUE_HELP_SCANNING_CONTENT_DESC:
|
||||
|
Loading…
x
Reference in New Issue
Block a user