1 package com.tapina.robe.swi.clib.string;
2
3 import com.tapina.robe.runtime.Environment;
4 import com.tapina.robe.runtime.MemoryMap;
5 import com.tapina.robe.swi.clib.Stub;
6
7 /***
8 * This function appends up to a3 characters of a2 to the end of a1. Characters after a null byte are not added.
9 * The strings should not overlap.
10 * Returns: a1
11 */
12 public class StrNCat extends Stub {
13 public void executeStub(Environment environment) {
14 final int[] R = environment.getCpu().R;
15 final MemoryMap memoryMap = environment.getMemoryMap();
16 final String string1 = memoryMap.getStringN(R[0], R[2]);
17 final String string2 = memoryMap.getString0(R[1]);
18 memoryMap.storeString0(R[0], string1.concat(string2));
19 }
20 }