Changeset 18


Ignore:
Timestamp:
Apr 16, 2010, 5:51:24 PM (15 years ago)
Author:
herwigb
Message:

Some more changes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/1.0/src/uni.c

    r17 r18  
    6161
    6262/*  replace one string by another */
    63 char * stringReplace(char *search, char *replace, char *string) {
    64         char *tempString, *searchStart;
    65         int len=0;
    66         // preuefe ob Such-String vorhanden ist
    67         searchStart = strstr(string, search);
    68         if(searchStart == NULL) {
    69                 return string;
    70         }
    71         // Speicher reservieren
    72         tempString = (char*) malloc((strlen(string) + strlen(replace) - strlen(search))* sizeof(char));
    73         // temporaere Kopie anlegen
    74         strcpy(tempString, string);
    75         // ersten Abschnitt in String setzen
    76         len = searchStart - string;
    77         strncpy(string, tempString, len);
    78         // zweiten Abschnitt anhaengen
    79         strcat(string, replace);
    80         // dritten Abschnitt anhaengen
    81         len += strlen(search);
    82         strcat(string,  (char *)tempString+len);
    83         return string;
    84 }
    85 
     63char * searchReplace(char *search, char *replace, char *string)
     64{
     65// creat init some variables
     66        char * tempString, *searchStart;
     67        int len = 0;
     68
     69// do we find the searched string at all
     70        searchStart = strstr(string, search);
     71        if (searchStart == NULL)
     72        {
     73                return string;
     74        }
     75
     76// allocate needed space for the tempstring
     77        tempString = malloc((strlen(string) - strlen(search) + strlen(replace)) * sizeof(char));
     78
     79// copy first part
     80        len = searchStart - string;
     81        strncpy(tempString, string, len);
     82
     83// add the replaced string
     84        strcat(tempString, replace);
     85
     86// add the last part
     87        len += strlen(search);
     88        strcat(tempString, string+len);
     89
     90// memory leek!!!       free(tempString);
     91        return tempString;
     92}
    8693
    8794/* Password encryption/decryption routines from ndpsmb.c */
     
    10641071
    10651072        sprintf(j_parms,parameters);
    1066         stringReplace("%file%",filename,j_parms);
     1073        searchReplace("%file%",filename,j_parms);
    10671074       
    10681075        rc = spawnlp(P_WAIT,binfile,binfile,j_parms,NULL);
Note: See TracChangeset for help on using the changeset viewer.