aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mycan.c28
1 files changed, 17 insertions, 11 deletions
diff --git a/mycan.c b/mycan.c
index cad7a37..4a786aa 100644
--- a/mycan.c
+++ b/mycan.c
@@ -47,17 +47,21 @@ int main(int argc, char **argv)
struct sockaddr_can addr;
struct ifreq ifr;
struct can_frame frame;
- // usually ~/.local/share
- const char *dir=getenv("XDG_DATA_HOME");
- const char *home;
- if(dir == NULL)
- home=getenv("HOME");
- // /mycan.csv 10 + \0 1 = 11
- char filename[((dir == NULL)?strlen(home):strlen(dir))+11];
- if(dir == NULL)
- sprintf(filename,"%s/.local/share/mycan.csv",home);
- else
- sprintf(filename,"%s/mycan.csv",dir);
+ char *filename;
+ {
+ // usually ~/.local/share
+ const char *dir=getenv("XDG_DATA_HOME");
+ const char *str;
+ if(dir != NULL)
+ str="/mycan.csv";
+ else
+ {
+ str="/.local/share/mycan.csv";
+ dir=getenv("HOME");
+ }
+ filename=malloc((strlen(dir)+strlen(str)+1)*sizeof(char));
+ sprintf(filename,"%s%s",dir,str);
+ }
can_obj_all_sre_edited_h_t obj;
dbcc_time_stamp_t t, t_before;
@@ -416,5 +420,7 @@ int main(int argc, char **argv)
close(s);
//system("sudo ifconfig can0 down");
+ free(filename);
+
return 0;
}