From fac71e0dcb721c4e5f2f4c006fee471eb4e14d8c Mon Sep 17 00:00:00 2001 From: Aoran Zeng Date: Mon, 14 Jul 2025 13:54:47 +0800 Subject: [PATCH] Add URL routines --- src/framework/chef.h | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/src/framework/chef.h b/src/framework/chef.h index 7131a47..0dd6b28 100644 --- a/src/framework/chef.h +++ b/src/framework/chef.h @@ -3,18 +3,44 @@ * ------------------------------------------------------------- * File Name : chef.h * File Authors : Aoran Zeng - * Contributors : Peng Gao + * Contributors : Nul None * Created On : <2025-07-14> * Last Modified : <2025-07-14> * * For chefs (recipe makers) and sometimes framewoker + * to do some work not releated to OS operations * ------------------------------------------------------------*/ #pragma once - bool is_url (const char *str) { return (xy_str_start_with (str, "http://") || xy_str_start_with (str, "https://")); } + +/** + * @return 一律返回新字符串 + */ +char * +chef_remove_trailing_slash (char *str) +{ + char *newstr = xy_strdup (str); + size_t len = strlen (newstr); + if (len > 0 && newstr[len - 1] == '/') + newstr[len - 1] = '\0'; + return newstr; +} + +/** + * @return 一律返回新字符串 + */ +char * +chef_ensure_trailing_slash (char *str) +{ + size_t len = strlen (str); + if (len == 0 || str[len - 1] == '/') + return xy_strdup (str); + + return xy_2strjoin (str, "/"); +}