From 41e935ccb6cf5074685a49d8a1c9e0b71e2707ed Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Thu, 18 Mar 2021 10:57:46 -0400 Subject: db_strcat(): New function --- (limited to 'src') diff --git a/src/local.mk b/src/local.mk index 555eb52..4503ce7 100644 --- a/src/local.mk +++ b/src/local.mk @@ -6,5 +6,7 @@ dodge_balls_SOURCES += \ %reldir%/main.c \ %reldir%/output.c \ %reldir%/output.h \ + %reldir%/util.c \ + %reldir%/util.h \ %reldir%/xml.c \ %reldir%/xml.h diff --git a/src/util.c b/src/util.c new file mode 100644 index 0000000..26fcb1d --- /dev/null +++ b/src/util.c @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 P. J. McDermott + * + * This file is part of Dodge Balls + * + * Dodge Balls is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Dodge Balls is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Dodge Balls. If not, see . + */ + +#include +#include + +char * +db_strcat(const char *str1, const char *str2) +{ + size_t str1_len; + size_t str2_len; + char *dest; + + str1_len = strlen(str1); + str2_len = strlen(str2); + + dest = malloc((str1_len + str2_len + 1) * sizeof(*dest)); + if (dest == NULL) { + return NULL; + } + + memcpy(dest, str1, str1_len); + memcpy(dest + str1_len, str2, str2_len); + dest[str1_len + str2_len] = '\0'; + + return dest; +} diff --git a/src/util.h b/src/util.h new file mode 100644 index 0000000..bdb0fd2 --- /dev/null +++ b/src/util.h @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2021 P. J. McDermott + * + * This file is part of Dodge Balls + * + * Dodge Balls is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Dodge Balls is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Dodge Balls. If not, see . + */ + +#ifndef DB_UTIL_H_ +#define DB_UTIL_H_ + +char * db_strcat(const char *str1, const char *str2); + +#endif /* DB_UTIL_H_ */ -- cgit v0.9.1