scc

A fork of https://git.simple-cc.org/scc/ for Qute

git clone https://git.8pit.net/scc.git

 1#include <stdio.h>
 2#include <string.h>
 3
 4#include <scc/mach.h>
 5
 6#include "libmach.h"
 7
 8int
 9mapseg(Map *map, Section *seg, FILE *fp, long fsiz)
10{
11	int n;
12	char *s;
13	Mapsec *mseg, *mp;
14
15	mp = NULL;
16	n = map->nseg;
17	for (mseg = map->seg; n--; mseg++) {
18		s = mseg->sec.name;
19		if (mseg->used && s && !strcmp(s, seg->name))
20			goto found;
21		if (!mp && !mseg->used)
22			mp = mseg;
23	}
24
25	if (mp) {
26		mseg = mp;
27		goto found;
28	}
29
30	if ((map = remap(map, map->nsec+1, map->nseg)) == NULL)
31		return -1;
32	mseg = &map->sec[map->nsec-1];
33
34found:
35	mseg->sec = *seg;
36	mseg->used = 1;
37	mseg->fp = fp,
38	mseg->fsiz = fsiz;
39
40	return 0;
41}