diff --git a/mpc.c b/mpc.c index 80bddf0..edd07db 100644 --- a/mpc.c +++ b/mpc.c @@ -2219,6 +2219,15 @@ mpc_val_t* mpcf_unescape_regex(mpc_val_t* x) { return y; } +mpc_val_t* mpcf_strcrop(mpc_val_t* x) { + char* copy = malloc(strlen(x)); + strcpy(copy, x); + memmove(copy, copy+1, strlen(copy)-1); + copy[strlen(copy)-2] = '\0'; + free(x); + return copy; +} + mpc_val_t* mpcf_fst(mpc_val_t* x, mpc_val_t* y) { return x; } mpc_val_t* mpcf_snd(mpc_val_t* x, mpc_val_t* y) { return y; } mpc_val_t* mpcf_fst_free(mpc_val_t* x, mpc_val_t* y) { free(y); return x; } diff --git a/mpc.h b/mpc.h index 840d1f9..60a42d3 100644 --- a/mpc.h +++ b/mpc.h @@ -206,6 +206,7 @@ mpc_val_t* mpcf_oct(mpc_val_t* x); mpc_val_t* mpcf_float(mpc_val_t* x); mpc_val_t* mpcf_escape(mpc_val_t* x); mpc_val_t* mpcf_unescape(mpc_val_t* x); +mpc_val_t* mpcf_strcrop(mpc_val_t* x); mpc_val_t* mpcf_fst(mpc_val_t* x, mpc_val_t* y); mpc_val_t* mpcf_snd(mpc_val_t* x, mpc_val_t* y);