]> www.ginac.de Git - cln.git/blob - src/base/string/cl_st_concat3.cc
Finalize CLN 1.3.7 release.
[cln.git] / src / base / string / cl_st_concat3.cc
1 // cl_string concatenation.
2
3 // General includes.
4 #include "base/cl_sysdep.h"
5
6 // Specification.
7 #include "cln/string.h"
8
9
10 // Implementation.
11 #include "base/string/cl_st_make0.h"
12
13 namespace cln {
14
15 const cl_string operator+ (const cl_string& str1, const char* str2)
16 {
17     unsigned long len1 = strlen(str1);
18     unsigned long len2 = ::strlen(str2);
19     var cl_heap_string* str = cl_make_heap_string(len1+len2);
20     var char * ptr = &str->data[0];
21     {
22         var const char * ptr1 = asciz(str1);
23         for (var unsigned long count = len1; count > 0; count--)
24             *ptr++ = *ptr1++;
25     }
26     {
27         var const char * ptr2 = asciz(str2);
28         for (var unsigned long count = len2; count > 0; count--)
29             *ptr++ = *ptr2++;
30     }
31     *ptr++ = '\0';
32     return str;
33 }
34
35 }  // namespace cln