[syslinux:master] string: Adding strreplace

syslinux-bot for Erwan Velu erwanaliasr1 at gmail.com
Thu Dec 22 13:18:08 PST 2011


Commit-ID:  ac5635b0b21224d83a3f9f5577c09db598f04142
Gitweb:     http://www.syslinux.org/commit/ac5635b0b21224d83a3f9f5577c09db598f04142
Author:     Erwan Velu <erwanaliasr1 at gmail.com>
AuthorDate: Wed, 27 Apr 2011 22:14:06 +0200
Committer:  Erwan Velu <erwanaliasr1 at gmail.com>
CommitDate: Wed, 27 Apr 2011 22:14:06 +0200

string: Adding strreplace


---
 com32/include/string.h                         |    1 +
 com32/lib/Makefile                             |    1 +
 com32/{hdt/hdt-dump-cpu.c => lib/strreplace.c} |   48 ++++++++++++------------
 3 files changed, 26 insertions(+), 24 deletions(-)

diff --git a/com32/include/string.h b/com32/include/string.h
index af9792b..014b8de 100644
--- a/com32/include/string.h
+++ b/com32/include/string.h
@@ -42,5 +42,6 @@ __extern char *strsep(char **, const char *);
 __extern size_t strspn(const char *, const char *);
 __extern char *strstr(const char *, const char *);
 __extern char *strtok(char *, const char *);
+__extern char *strreplace( const char *string, const char *string_to_replace, const char *string_to_insert );
 
 #endif /* _STRING_H */
diff --git a/com32/lib/Makefile b/com32/lib/Makefile
index 105c2bd..3f67e42 100644
--- a/com32/lib/Makefile
+++ b/com32/lib/Makefile
@@ -32,6 +32,7 @@ LIBOBJS = \
 	chrreplace.o							\
 	bufprintf.o							\
 	inet.o								\
+	strreplace.o								\
 	\
 	lmalloc.o lstrdup.o						\
 	\
diff --git a/com32/hdt/hdt-dump-cpu.c b/com32/lib/strreplace.c
similarity index 61%
copy from com32/hdt/hdt-dump-cpu.c
copy to com32/lib/strreplace.c
index 33d561c..f97a03e 100644
--- a/com32/hdt/hdt-dump-cpu.c
+++ b/com32/lib/strreplace.c
@@ -26,28 +26,28 @@
  * -----------------------------------------------------------------------
  */
 
-#include "hdt-common.h"
-#include "hdt-dump.h"
-
-void dump_cpu(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) {
-
-        CREATE_NEW_OBJECT;
-	add_hs(cpu.vendor);
-	add_hs(cpu.model);
-	add_hi(cpu.vendor_id);
-	add_hi(cpu.family);
-	add_hi(cpu.model_id);
-	add_hi(cpu.stepping);
-	add_hi(cpu.num_cores);
-	add_hi(cpu.l1_data_cache_size);
-	add_hi(cpu.l1_instruction_cache_size);
-	add_hi(cpu.l2_cache_size);
-	size_t i;
-	for (i = 0; i < cpu_flags_count; i++) {
-		char temp[128]={0};
-		snprintf(temp,sizeof(temp),"cpu.flags.%s",cpu_flags_names[i]);
-		add_b(temp,get_cpu_flag_value_from_name(&hardware->cpu,cpu_flags_names[i]));
-	}
-	FLUSH_OBJECT;
-	to_cpio("cpu");
+#include <string.h>
+
+char *strreplace( const char *string, const char *string_to_replace, const char *string_to_insert ){
+  char *token = NULL;
+  char *output_buffer = NULL;
+
+  token = strstr(string, string_to_replace);
+
+  if(token == NULL) 
+	return strdup( string );
+
+  output_buffer = malloc(strlen( string )-strlen( string_to_replace )+strlen(string_to_insert )+ 1);
+
+  if(output_buffer == NULL) 
+	return NULL;
+
+  memcpy(output_buffer, string, token-string);
+  memcpy(output_buffer + (token - string), string_to_insert, strlen(string_to_insert));
+  memcpy(output_buffer + (token - string) + strlen(string_to_insert),
+	token + strlen(string_to_replace), 
+	strlen(string) - strlen(string_to_replace) - (token - string));
+  memset(output_buffer + strlen(string) - strlen(string_to_replace) + strlen(string_to_insert), 0, 1 );
+
+  return output_buffer;
 }


More information about the Syslinux-commits mailing list