patch 9.1.1366: v9.1.1364 unintentionally changed sign.c and sound.c

Problem:  v9.1.1364 unintentionally changed sign.c and sound.c
Solution: revert those parts, adjust the test (Hirohito Higashi)

closes: #17264

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Hirohito Higashi
2025-05-06 18:13:29 +02:00
committed by Christian Brabandt
parent 0fb6ceac4c
commit 38972d8b1a
4 changed files with 1283 additions and 1278 deletions

2348
src/sign.c

File diff suppressed because it is too large Load Diff

View File

@ -48,23 +48,23 @@ get_sound_callback(typval_T *arg)
soundcb_T *soundcb;
if (arg->v_type == VAR_UNKNOWN)
return NULL;
return NULL;
callback = get_callback(arg);
if (callback.cb_name == NULL)
return NULL;
return NULL;
soundcb = ALLOC_ONE(soundcb_T);
if (soundcb == NULL)
{
free_callback(&callback);
return NULL;
free_callback(&callback);
return NULL;
}
soundcb->snd_next = first_callback;
first_callback = soundcb;
set_callback(&soundcb->snd_callback, &callback);
if (callback.cb_free_name)
vim_free(callback.cb_name);
vim_free(callback.cb_name);
return soundcb;
}
@ -97,16 +97,16 @@ delete_sound_callback(soundcb_T *soundcb)
soundcb_T *prev = NULL;
for (p = first_callback; p != NULL; prev = p, p = p->snd_next)
if (p == soundcb)
{
if (prev == NULL)
first_callback = p->snd_next;
else
prev->snd_next = p->snd_next;
free_callback(&p->snd_callback);
vim_free(p);
break;
}
if (p == soundcb)
{
if (prev == NULL)
first_callback = p->snd_next;
else
prev->snd_next = p->snd_next;
free_callback(&p->snd_callback);
vim_free(p);
break;
}
}
# if defined(HAVE_CANBERRA) || defined(PROTO)
@ -139,24 +139,24 @@ static soundcb_queue_T *callback_queue = NULL;
*/
static void
sound_callback(ca_context *c UNUSED,
uint32_t id,
int error_code,
void *userdata)
uint32_t id,
int error_code,
void *userdata)
{
soundcb_T *soundcb = (soundcb_T *)userdata;
soundcb_queue_T *scb;
scb = ALLOC_ONE(soundcb_queue_T);
if (scb == NULL)
return;
return;
scb->scb_next = callback_queue;
callback_queue = scb;
scb->scb_id = id;
scb->scb_result = error_code == CA_SUCCESS ? 0
: error_code == CA_ERROR_CANCELED ||
error_code == CA_ERROR_DESTROYED
? 1
: 2;
: error_code == CA_ERROR_CANCELED ||
error_code == CA_ERROR_DESTROYED
? 1
: 2;
scb->scb_callback = soundcb;
}
@ -179,13 +179,13 @@ invoke_sound_callback(void)
while (callback_queue != NULL)
{
scb = callback_queue;
callback_queue = scb->scb_next;
scb = callback_queue;
callback_queue = scb->scb_next;
call_sound_callback(scb->scb_callback, scb->scb_id, scb->scb_result);
call_sound_callback(scb->scb_callback, scb->scb_id, scb->scb_result);
delete_sound_callback(scb->scb_callback);
vim_free(scb);
delete_sound_callback(scb->scb_callback);
vim_free(scb);
}
redraw_after_callback(TRUE, FALSE);
}
@ -194,12 +194,12 @@ static void
sound_play_common(typval_T *argvars, typval_T *rettv, int playfile)
{
if (in_vim9script() && check_for_string_arg(argvars, 0) == FAIL)
return;
return;
if (context == NULL)
ca_context_create(&context);
ca_context_create(&context);
if (context == NULL)
return;
return;
soundcb_T *soundcb = get_sound_callback(&argvars[1]);
int res = CA_ERROR_INVALID;
@ -207,34 +207,34 @@ sound_play_common(typval_T *argvars, typval_T *rettv, int playfile)
++sound_id;
if (soundcb == NULL)
{
res = ca_context_play(context, sound_id,
playfile ? CA_PROP_MEDIA_FILENAME
: CA_PROP_EVENT_ID,
tv_get_string(&argvars[0]),
CA_PROP_CANBERRA_CACHE_CONTROL, "volatile", NULL);
res = ca_context_play(context, sound_id,
playfile ? CA_PROP_MEDIA_FILENAME
: CA_PROP_EVENT_ID,
tv_get_string(&argvars[0]),
CA_PROP_CANBERRA_CACHE_CONTROL, "volatile", NULL);
}
else
{
static ca_proplist *proplist = NULL;
static ca_proplist *proplist = NULL;
ca_proplist_create(&proplist);
if (proplist != NULL)
{
if (playfile)
ca_proplist_sets(proplist, CA_PROP_MEDIA_FILENAME,
(char *)tv_get_string(&argvars[0]));
else
ca_proplist_sets(proplist, CA_PROP_EVENT_ID,
(char *)tv_get_string(&argvars[0]));
ca_proplist_sets(proplist, CA_PROP_CANBERRA_CACHE_CONTROL,
"volatile");
res = ca_context_play_full(context, sound_id, proplist,
sound_callback, soundcb);
if (res != CA_SUCCESS)
delete_sound_callback(soundcb);
ca_proplist_create(&proplist);
if (proplist != NULL)
{
if (playfile)
ca_proplist_sets(proplist, CA_PROP_MEDIA_FILENAME,
(char *)tv_get_string(&argvars[0]));
else
ca_proplist_sets(proplist, CA_PROP_EVENT_ID,
(char *)tv_get_string(&argvars[0]));
ca_proplist_sets(proplist, CA_PROP_CANBERRA_CACHE_CONTROL,
"volatile");
res = ca_context_play_full(context, sound_id, proplist,
sound_callback, soundcb);
if (res != CA_SUCCESS)
delete_sound_callback(soundcb);
ca_proplist_destroy(proplist);
}
ca_proplist_destroy(proplist);
}
}
rettv->vval.v_number = res == CA_SUCCESS ? sound_id : 0;
}
@ -261,10 +261,10 @@ void
f_sound_stop(typval_T *argvars, typval_T *rettv UNUSED)
{
if (in_vim9script() && check_for_number_arg(argvars, 0) == FAIL)
return;
return;
if (context != NULL)
ca_context_cancel(context, tv_get_number(&argvars[0]));
ca_context_cancel(context, tv_get_number(&argvars[0]));
}
/*
@ -274,7 +274,7 @@ void
f_sound_clear(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
{
if (context == NULL)
return;
return;
ca_context_destroy(context);
context = NULL;
}
@ -286,17 +286,17 @@ sound_free(void)
soundcb_queue_T *scb;
if (context != NULL)
ca_context_destroy(context);
ca_context_destroy(context);
while (first_callback != NULL)
delete_sound_callback(first_callback);
delete_sound_callback(first_callback);
while (callback_queue != NULL)
{
scb = callback_queue;
callback_queue = scb->scb_next;
delete_sound_callback(scb->scb_callback);
vim_free(scb);
scb = callback_queue;
callback_queue = scb->scb_next;
delete_sound_callback(scb->scb_callback);
vim_free(scb);
}
}
# endif
@ -316,25 +316,25 @@ sound_wndproc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
switch (message)
{
case MM_MCINOTIFY:
for (p = first_callback; p != NULL; p = p->snd_next)
if (p->snd_device_id == (MCIDEVICEID)lParam)
{
char buf[32];
case MM_MCINOTIFY:
for (p = first_callback; p != NULL; p = p->snd_next)
if (p->snd_device_id == (MCIDEVICEID)lParam)
{
char buf[32];
vim_snprintf(buf, sizeof(buf), "close sound%06ld",
p->snd_id);
mciSendStringA(buf, NULL, 0, 0);
vim_snprintf(buf, sizeof(buf), "close sound%06ld",
p->snd_id);
mciSendStringA(buf, NULL, 0, 0);
long result = wParam == MCI_NOTIFY_SUCCESSFUL ? 0
: wParam == MCI_NOTIFY_ABORTED ? 1
: 2;
call_sound_callback(p, p->snd_id, result);
long result = wParam == MCI_NOTIFY_SUCCESSFUL ? 0
: wParam == MCI_NOTIFY_ABORTED ? 1
: 2;
call_sound_callback(p, p->snd_id, result);
delete_sound_callback(p);
redraw_after_callback(TRUE, FALSE);
}
break;
delete_sound_callback(p);
redraw_after_callback(TRUE, FALSE);
}
break;
}
return DefWindowProc(hwnd, message, wParam, lParam);
@ -345,12 +345,12 @@ sound_window(void)
{
if (g_hWndSound == NULL)
{
LPCSTR clazz = "VimSound";
WNDCLASS wndclass = { 0, sound_wndproc, 0, 0, g_hinst, NULL, 0,
0, NULL, clazz };
RegisterClass(&wndclass);
g_hWndSound = CreateWindow(clazz, NULL, 0, 0, 0, 0, 0, HWND_MESSAGE,
NULL, g_hinst, NULL);
LPCSTR clazz = "VimSound";
WNDCLASS wndclass = { 0, sound_wndproc, 0, 0, g_hinst, NULL, 0,
0, NULL, clazz };
RegisterClass(&wndclass);
g_hWndSound = CreateWindow(clazz, NULL, 0, 0, 0, 0, 0, HWND_MESSAGE,
NULL, g_hinst, NULL);
}
return g_hWndSound;
@ -362,14 +362,14 @@ f_sound_playevent(typval_T *argvars, typval_T *rettv)
WCHAR *wp;
if (in_vim9script() && check_for_string_arg(argvars, 0) == FAIL)
return;
return;
wp = enc_to_utf16(tv_get_string(&argvars[0]), NULL);
if (wp == NULL)
return;
return;
if (PlaySoundW(wp, NULL, SND_ASYNC | SND_ALIAS))
rettv->vval.v_number = ++sound_id;
rettv->vval.v_number = ++sound_id;
free(wp);
}
@ -385,7 +385,7 @@ f_sound_playfile(typval_T *argvars, typval_T *rettv)
MCIERROR err;
if (in_vim9script() && check_for_string_arg(argvars, 0) == FAIL)
return;
return;
filename = tv_get_string(&argvars[0]);
@ -393,25 +393,25 @@ f_sound_playfile(typval_T *argvars, typval_T *rettv)
p = alloc(len);
if (p == NULL)
{
return;
return;
}
vim_snprintf((char *)p, len, "open \"%s\" alias sound%06ld", filename,
newid);
newid);
wp = enc_to_utf16((char_u *)p, NULL);
free(p);
if (wp == NULL)
return;
return;
err = mciSendStringW(wp, NULL, 0, sound_window());
free(wp);
if (err != 0)
return;
return;
vim_snprintf(buf, sizeof(buf), "play sound%06ld notify", newid);
err = mciSendStringA(buf, NULL, 0, sound_window());
if (err != 0)
goto failure;
goto failure;
sound_id = newid;
rettv->vval.v_number = sound_id;
@ -419,9 +419,9 @@ f_sound_playfile(typval_T *argvars, typval_T *rettv)
soundcb = get_sound_callback(&argvars[1]);
if (soundcb != NULL)
{
vim_snprintf(buf, sizeof(buf), "sound%06ld", newid);
soundcb->snd_id = newid;
soundcb->snd_device_id = mciGetDeviceID(buf);
vim_snprintf(buf, sizeof(buf), "sound%06ld", newid);
soundcb->snd_id = newid;
soundcb->snd_device_id = mciGetDeviceID(buf);
}
return;
@ -437,7 +437,7 @@ f_sound_stop(typval_T *argvars, typval_T *rettv UNUSED)
char buf[32];
if (in_vim9script() && check_for_number_arg(argvars, 0) == FAIL)
return;
return;
id = tv_get_number(&argvars[0]);
vim_snprintf(buf, sizeof(buf), "stop sound%06ld", id);
@ -458,7 +458,7 @@ sound_free(void)
CloseWindow(g_hWndSound);
while (first_callback != NULL)
delete_sound_callback(first_callback);
delete_sound_callback(first_callback);
}
# endif
@ -469,7 +469,7 @@ static void
sound_play_common(typval_T *argvars, typval_T *rettv, bool playfile)
{
if (in_vim9script() && check_for_string_arg(argvars, 0) == FAIL)
return;
return;
char_u *sound_name = tv_get_string(&argvars[0]);
soundcb_T *soundcb = get_sound_callback(&argvars[1]);
@ -479,7 +479,7 @@ sound_play_common(typval_T *argvars, typval_T *rettv, bool playfile)
bool play_success = sound_mch_play(sound_name, sound_id, soundcb, playfile);
if (!play_success && soundcb)
{
delete_sound_callback(soundcb);
delete_sound_callback(soundcb);
}
rettv->vval.v_number = play_success ? sound_id : 0;
}
@ -500,7 +500,7 @@ void
f_sound_stop(typval_T *argvars, typval_T *rettv UNUSED)
{
if (in_vim9script() && check_for_number_arg(argvars, 0) == FAIL)
return;
return;
sound_mch_stop(tv_get_number(&argvars[0]));
}
@ -516,7 +516,7 @@ sound_free(void)
{
sound_mch_free();
while (first_callback != NULL)
delete_sound_callback(first_callback);
delete_sound_callback(first_callback);
}
# endif

View File

@ -166,6 +166,9 @@ enddef
def Test_indent_of_source_files()
for fname in glob('../*.[ch]', 0, 1) + ['../xxd/xxd.c']
execute 'tabnew ' .. fname
if &expandtab
continue
endif
for lnum in range(1, line('$'))
var name: string = synIDattr(synID(lnum, 1, 0), 'name')
if -1 == index(['cComment', 'cCommentStart'], name)
@ -173,7 +176,7 @@ def Test_indent_of_source_files()
var indent: string = matchstr(line, '^\s*')
var tailing: string = matchstr(line, '\s*$')
if !empty(indent)
if indent !~# '^\t* \{0,7\}$'
if indent !~# '^\t* \{0,7}$'
ReportError('testdir/' .. fname, lnum, 'invalid indent')
endif
endif

View File

@ -704,6 +704,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1366,
/**/
1365,
/**/