@@ -504,6 +504,7 @@ static void f_ceil(typval_T *argvars, typval_T *rettv);
504504#endif
505505#ifdef FEAT_CHANNEL
506506static void f_ch_close(typval_T *argvars, typval_T *rettv);
507+ static void f_ch_log(typval_T *argvars, typval_T *rettv);
507508static void f_ch_logfile(typval_T *argvars, typval_T *rettv);
508509static void f_ch_open(typval_T *argvars, typval_T *rettv);
509510static void f_ch_readraw(typval_T *argvars, typval_T *rettv);
@@ -8124,6 +8125,7 @@ static struct fst
81248125#endif
81258126#ifdef FEAT_CHANNEL
81268127 {"ch_close", 1, 1, f_ch_close},
8128+ {"ch_log", 1, 2, f_ch_log},
81278129 {"ch_logfile", 1, 2, f_ch_logfile},
81288130 {"ch_open", 1, 2, f_ch_open},
81298131 {"ch_readraw", 1, 2, f_ch_readraw},
@@ -8973,7 +8975,7 @@ f_abs(typval_T *argvars, typval_T *rettv)
89738975 static void
89748976f_acos(typval_T *argvars, typval_T *rettv)
89758977{
8976- float_T f;
8978+ float_T f = 0.0 ;
89778979
89788980 rettv->v_type = VAR_FLOAT;
89798981 if (get_float_arg(argvars, &f) == OK)
@@ -9402,7 +9404,7 @@ f_assert_true(typval_T *argvars, typval_T *rettv UNUSED)
94029404 static void
94039405f_asin(typval_T *argvars, typval_T *rettv)
94049406{
9405- float_T f;
9407+ float_T f = 0.0 ;
94069408
94079409 rettv->v_type = VAR_FLOAT;
94089410 if (get_float_arg(argvars, &f) == OK)
@@ -9432,7 +9434,7 @@ f_atan(typval_T *argvars, typval_T *rettv)
94329434 static void
94339435f_atan2(typval_T *argvars, typval_T *rettv)
94349436{
9435- float_T fx, fy;
9437+ float_T fx = 0.0 , fy = 0.0 ;
94369438
94379439 rettv->v_type = VAR_FLOAT;
94389440 if (get_float_arg(argvars, &fx) == OK
@@ -9840,7 +9842,7 @@ f_call(typval_T *argvars, typval_T *rettv)
98409842 static void
98419843f_ceil(typval_T *argvars, typval_T *rettv)
98429844{
9843- float_T f;
9845+ float_T f = 0.0 ;
98449846
98459847 rettv->v_type = VAR_FLOAT;
98469848 if (get_float_arg(argvars, &f) == OK)
@@ -9949,6 +9951,21 @@ f_ch_close(typval_T *argvars, typval_T *rettv UNUSED)
99499951 channel_close(channel);
99509952}
99519953
9954+ /*
9955+ * "ch_log()" function
9956+ */
9957+ static void
9958+ f_ch_log(typval_T *argvars, typval_T *rettv UNUSED)
9959+ {
9960+ char_u *msg = get_tv_string(&argvars[0]);
9961+ channel_T *channel = NULL;
9962+
9963+ if (argvars[1].v_type != VAR_UNKNOWN)
9964+ channel = get_channel_arg(&argvars[1]);
9965+
9966+ ch_log(channel, (char *)msg);
9967+ }
9968+
99529969/*
99539970 * "ch_logfile()" function
99549971 */
@@ -10440,7 +10457,7 @@ f_copy(typval_T *argvars, typval_T *rettv)
1044010457 static void
1044110458f_cos(typval_T *argvars, typval_T *rettv)
1044210459{
10443- float_T f;
10460+ float_T f = 0.0 ;
1044410461
1044510462 rettv->v_type = VAR_FLOAT;
1044610463 if (get_float_arg(argvars, &f) == OK)
@@ -10455,7 +10472,7 @@ f_cos(typval_T *argvars, typval_T *rettv)
1045510472 static void
1045610473f_cosh(typval_T *argvars, typval_T *rettv)
1045710474{
10458- float_T f;
10475+ float_T f = 0.0 ;
1045910476
1046010477 rettv->v_type = VAR_FLOAT;
1046110478 if (get_float_arg(argvars, &f) == OK)
@@ -11003,7 +11020,7 @@ f_exists(typval_T *argvars, typval_T *rettv)
1100311020 static void
1100411021f_exp(typval_T *argvars, typval_T *rettv)
1100511022{
11006- float_T f;
11023+ float_T f = 0.0 ;
1100711024
1100811025 rettv->v_type = VAR_FLOAT;
1100911026 if (get_float_arg(argvars, &f) == OK)
@@ -11584,7 +11601,7 @@ f_findfile(typval_T *argvars, typval_T *rettv)
1158411601 static void
1158511602f_float2nr(typval_T *argvars, typval_T *rettv)
1158611603{
11587- float_T f;
11604+ float_T f = 0.0 ;
1158811605
1158911606 if (get_float_arg(argvars, &f) == OK)
1159011607 {
@@ -11603,7 +11620,7 @@ f_float2nr(typval_T *argvars, typval_T *rettv)
1160311620 static void
1160411621f_floor(typval_T *argvars, typval_T *rettv)
1160511622{
11606- float_T f;
11623+ float_T f = 0.0 ;
1160711624
1160811625 rettv->v_type = VAR_FLOAT;
1160911626 if (get_float_arg(argvars, &f) == OK)
@@ -11618,7 +11635,7 @@ f_floor(typval_T *argvars, typval_T *rettv)
1161811635 static void
1161911636f_fmod(typval_T *argvars, typval_T *rettv)
1162011637{
11621- float_T fx, fy;
11638+ float_T fx = 0.0 , fy = 0.0 ;
1162211639
1162311640 rettv->v_type = VAR_FLOAT;
1162411641 if (get_float_arg(argvars, &fx) == OK
@@ -14622,9 +14639,30 @@ f_job_start(typval_T *argvars UNUSED, typval_T *rettv)
1462214639 cmd = ga.ga_data;
1462314640#endif
1462414641 }
14642+
1462514643#ifdef USE_ARGV
14644+ # ifdef FEAT_CHANNEL
14645+ if (ch_log_active())
14646+ {
14647+ garray_T ga;
14648+ int i;
14649+
14650+ ga_init2(&ga, (int)sizeof(char), 200);
14651+ for (i = 0; i < argc; ++i)
14652+ {
14653+ if (i > 0)
14654+ ga_concat(&ga, (char_u *)" ");
14655+ ga_concat(&ga, (char_u *)argv[i]);
14656+ }
14657+ ch_logs(NULL, "Starting job: %s", ga.ga_data);
14658+ ga_clear(&ga);
14659+ }
14660+ # endif
1462614661 mch_start_job(argv, job, &options);
1462714662#else
14663+ # ifdef FEAT_CHANNEL
14664+ ch_logs(NULL, "Starting job: %s", cmd);
14665+ # endif
1462814666 mch_start_job((char *)cmd, job, &options);
1462914667#endif
1463014668
@@ -15041,7 +15079,7 @@ get_maparg(typval_T *argvars, typval_T *rettv, int exact)
1504115079 static void
1504215080f_log(typval_T *argvars, typval_T *rettv)
1504315081{
15044- float_T f;
15082+ float_T f = 0.0 ;
1504515083
1504615084 rettv->v_type = VAR_FLOAT;
1504715085 if (get_float_arg(argvars, &f) == OK)
@@ -15056,7 +15094,7 @@ f_log(typval_T *argvars, typval_T *rettv)
1505615094 static void
1505715095f_log10(typval_T *argvars, typval_T *rettv)
1505815096{
15059- float_T f;
15097+ float_T f = 0.0 ;
1506015098
1506115099 rettv->v_type = VAR_FLOAT;
1506215100 if (get_float_arg(argvars, &f) == OK)
@@ -15852,7 +15890,7 @@ f_perleval(typval_T *argvars, typval_T *rettv)
1585215890 static void
1585315891f_pow(typval_T *argvars, typval_T *rettv)
1585415892{
15855- float_T fx, fy;
15893+ float_T fx = 0.0 , fy = 0.0 ;
1585615894
1585715895 rettv->v_type = VAR_FLOAT;
1585815896 if (get_float_arg(argvars, &fx) == OK
@@ -17143,7 +17181,7 @@ vim_round(float_T f)
1714317181 static void
1714417182f_round(typval_T *argvars, typval_T *rettv)
1714517183{
17146- float_T f;
17184+ float_T f = 0.0 ;
1714717185
1714817186 rettv->v_type = VAR_FLOAT;
1714917187 if (get_float_arg(argvars, &f) == OK)
@@ -18315,7 +18353,7 @@ f_simplify(typval_T *argvars, typval_T *rettv)
1831518353 static void
1831618354f_sin(typval_T *argvars, typval_T *rettv)
1831718355{
18318- float_T f;
18356+ float_T f = 0.0 ;
1831918357
1832018358 rettv->v_type = VAR_FLOAT;
1832118359 if (get_float_arg(argvars, &f) == OK)
@@ -18330,7 +18368,7 @@ f_sin(typval_T *argvars, typval_T *rettv)
1833018368 static void
1833118369f_sinh(typval_T *argvars, typval_T *rettv)
1833218370{
18333- float_T f;
18371+ float_T f = 0.0 ;
1833418372
1833518373 rettv->v_type = VAR_FLOAT;
1833618374 if (get_float_arg(argvars, &f) == OK)
@@ -18916,7 +18954,7 @@ f_split(typval_T *argvars, typval_T *rettv)
1891618954 static void
1891718955f_sqrt(typval_T *argvars, typval_T *rettv)
1891818956{
18919- float_T f;
18957+ float_T f = 0.0 ;
1892018958
1892118959 rettv->v_type = VAR_FLOAT;
1892218960 if (get_float_arg(argvars, &f) == OK)
@@ -19978,7 +20016,7 @@ f_test(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
1997820016 static void
1997920017f_tan(typval_T *argvars, typval_T *rettv)
1998020018{
19981- float_T f;
20019+ float_T f = 0.0 ;
1998220020
1998320021 rettv->v_type = VAR_FLOAT;
1998420022 if (get_float_arg(argvars, &f) == OK)
@@ -19993,7 +20031,7 @@ f_tan(typval_T *argvars, typval_T *rettv)
1999320031 static void
1999420032f_tanh(typval_T *argvars, typval_T *rettv)
1999520033{
19996- float_T f;
20034+ float_T f = 0.0 ;
1999720035
1999820036 rettv->v_type = VAR_FLOAT;
1999920037 if (get_float_arg(argvars, &f) == OK)
@@ -20182,7 +20220,7 @@ f_tr(typval_T *argvars, typval_T *rettv)
2018220220 static void
2018320221f_trunc(typval_T *argvars, typval_T *rettv)
2018420222{
20185- float_T f;
20223+ float_T f = 0.0 ;
2018620224
2018720225 rettv->v_type = VAR_FLOAT;
2018820226 if (get_float_arg(argvars, &f) == OK)
0 commit comments