File: memmove.ha

package info (click to toggle)
harec 0.26.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,480 kB
  • sloc: ansic: 20,054; asm: 335; makefile: 116; lisp: 80; sh: 45
file content (16 lines) | stat: -rw-r--r-- 332 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
export fn memmove(dest: *opaque, src: *opaque, n: size) void = {
	let d = dest: *[*]u8, s = src: *[*]u8;
	if (d: uintptr == s: uintptr) {
		return;
	};

	if (d: uintptr < s: uintptr) {
		for (let i = 0z; i < n; i += 1) {
			d[i] = s[i];
		};
	} else {
		for (let i = 0z; i < n; i += 1) {
			d[n - i - 1] = s[n - i - 1];
		};
	};
};