@@ -65,8 +65,10 @@ static char *APIAstro(char *city) {
65
65
66
66
char url [4096 ];
67
67
memset (url , 0 , 4096 );
68
+ char * city_conv = curl_easy_escape (handle , city , 128 );
68
69
sprintf (url , "https://api.weatherapi.com/v1/astronomy.json"
69
- "?key=%s&q=%s&dt=%s" , key , city , datestr );
70
+ "?key=%s&q=%s&dt=%s" , key , city_conv , datestr );
71
+ curl_free (city_conv );
70
72
free (key );
71
73
curl_easy_setopt (handle , CURLOPT_URL , url );
72
74
@@ -192,8 +194,10 @@ static char *APIForecast(char *city) {
192
194
193
195
char url [4096 ];
194
196
memset (url , 0 , 4096 );
197
+ char * city_conv = curl_easy_escape (handle , city , 128 );
195
198
sprintf (url , "https://api.weatherapi.com/v1/forecast.json"
196
- "?key=%s&q=%s&days=3&aqi=no&alerts=no" , key , city );
199
+ "?key=%s&q=%s&days=3&aqi=no&alerts=no" , key , city_conv );
200
+ curl_free (city_conv );
197
201
free (key );
198
202
curl_easy_setopt (handle , CURLOPT_URL , url );
199
203
@@ -389,8 +393,10 @@ static char *APITime(char *city) {
389
393
390
394
char url [4096 ];
391
395
memset (url , 0 , 4096 );
396
+ char * city_conv = curl_easy_escape (handle , city , 128 );
392
397
sprintf (url , "https://api.weatherapi.com/v1/timezone.json"
393
- "?key=%s&q=%s" , key , city );
398
+ "?key=%s&q=%s" , key , city_conv );
399
+ curl_free (city_conv );
394
400
free (key );
395
401
curl_easy_setopt (handle , CURLOPT_URL , url );
396
402
@@ -485,8 +491,10 @@ static char *APIWeather(char *city) {
485
491
486
492
char url [4096 ];
487
493
memset (url , 0 , 4096 );
494
+ char * city_conv = curl_easy_escape (handle , city , 128 );
488
495
sprintf (url , "https://api.weatherapi.com/v1/current.json"
489
- "?key=%s&q=%s" , key , city );
496
+ "?key=%s&q=%s" , key , city_conv );
497
+ curl_free (city_conv );
490
498
free (key );
491
499
curl_easy_setopt (handle , CURLOPT_URL , url );
492
500
0 commit comments