Lines Matching refs:encode

224 								sfsprintf(fp->encode.file, sizeof(fp->encode.file), "%s/%s", path, findnames[k]);
225 if (!eaccess(fp->encode.file, R_OK|W_OK))
227 path = fp->encode.file;
230 if (strchr(findnames[k], '/') && (b = strrchr(fp->encode.file, '/')))
233 if (!stat(fp->encode.file, &st) && st.st_uid == uid && (st.st_mode & S_IWUSR))
236 path = fp->encode.file;
246 sfsprintf(fp->encode.file, sizeof(fp->encode.file), "%s", path);
247 path = fp->encode.file;
253 sfsprintf(fp->encode.file, sizeof(fp->encode.file), "%s", path);
254 if (b = strrchr(fp->encode.file, '/'))
257 if (!stat(fp->encode.file, &st) && st.st_uid == uid && (st.st_mode & S_IWUSR))
260 path = fp->encode.file;
266 else if (pathpath(fp->encode.file, path, "", PATH_REGULAR|PATH_READ|PATH_WRITE))
268 path = fp->encode.file;
273 sfsprintf(fp->encode.file, sizeof(fp->encode.file), "%-.*s", b - path, path);
274 if (pathpath(fp->encode.temp, fp->encode.file, "", PATH_EXECUTE|PATH_READ|PATH_WRITE) &&
275 !stat(fp->encode.temp, &st) && st.st_uid == uid && (st.st_mode & S_IWUSR))
277 sfsprintf(fp->encode.file, sizeof(fp->encode.file), "%s%s", fp->encode.temp, b);
278 path = fp->encode.file;
318 if (!pathtemp(fp->encode.temp, sizeof(fp->encode.temp), p, "ff", &fd))
329 (*fp->disc->errorf)(fp, fp->disc, ERROR_SYSTEM|2, "%s: cannot open tmp file", fp->encode.temp);
336 fp->encode.namedisc.key = offsetof(Type_t, name);
337 fp->encode.namedisc.link = offsetof(Type_t, byname);
338 fp->encode.indexdisc.key = offsetof(Type_t, index);
339 fp->encode.indexdisc.size = sizeof(unsigned long);
340 fp->encode.indexdisc.link = offsetof(Type_t, byindex);
342 if (!(fp->encode.namedict = dtopen(&fp->encode.namedisc, Dttree)) || !(fp->encode.indexdict = dtopen(&fp->encode.indexdisc, Dttree)) || !(tp = newof(0, Type_t, 1, strlen(s) + 1)))
344 if (fp->encode.namedict)
345 dtclose(fp->encode.namedict);
357 dtinsert(fp->encode.namedict, tp);
358 dtinsert(fp->encode.indexdict, tp);
962 len = sfsprintf(fp->encode.mark, sizeof(fp->encode.mark), "%-.*s/", len, path);
963 path = fp->encode.mark;
968 if (len < sizeof(fp->encode.path))
972 len = sizeof(fp->encode.path) - 1;
975 p = (unsigned char*)fp->encode.path;
986 d = n - fp->encode.prefix;
995 fp->encode.prefix = n;
999 sfprintf(fp->fp, "%ld", n - fp->encode.prefix + FF_OFF);
1000 fp->encode.prefix = n;
1008 fp->encode.code[n][*s++]++;
1021 type = (const char*)typefix((char*)fp->encode.bigram, sizeof(fp->encode.bigram), type);
1022 if (x = (Type_t*)dtmatch(fp->encode.namedict, type))
1030 dtinsert(fp->encode.namedict, x);
1031 dtinsert(fp->encode.indexdict, x);
1039 d = n - fp->encode.prefix;
1041 fp->encode.prefix = n;
1045 memcpy(fp->encode.path, path, len);
1061 (*fp->disc->errorf)(fp, fp->disc, 2, "%s: write error [sfsync]", fp->encode.file);
1067 (*fp->disc->errorf)(fp, fp->disc, 2, "%s: write error [sferror]", fp->encode.file);
1075 (*fp->disc->errorf)(fp, fp->disc, 2, "%s: write error [sfclose]", fp->encode.file);
1108 remove(fp->encode.file);
1109 if (rename(fp->encode.temp, fp->encode.file))
1112 (*fp->disc->errorf)(fp, fp->disc, ERROR_SYSTEM|2, "%s: cannot rename from tmp file %s", fp->encode.file, fp->encode.temp);
1113 remove(fp->encode.temp);
1124 fp->encode.hits[fp->encode.code[n][m]]++;
1125 fp->encode.hits[0] = 0;
1128 if (d = fp->encode.hits[n])
1130 fp->encode.hits[n] = m;
1135 fp->encode.hits[n] = 0;
1138 if (fp->encode.hits[fp->encode.code[n][m]])
1140 d = fp->encode.code[n][m];
1141 b = fp->encode.hits[d] - 1;
1142 fp->encode.code[n][m] = b + FF_MAX;
1143 if (fp->encode.hits[d]++ >= FF_MAX)
1144 fp->encode.hits[d] = 0;
1145 fp->encode.bigram[b *= 2] = n;
1146 fp->encode.bigram[b + 1] = m;
1149 fp->encode.code[n][m] = 0;
1161 if (!(sp = sfopen(NiL, fp->encode.file, "w")))
1168 sfwrite(sp, fp->encode.bigram, sizeof(fp->encode.bigram));
1171 * encode the massaged paths
1195 if (d = fp->encode.code[n][m])
1212 if (!(fp->fp = sfopen(NiL, fp->encode.temp, "r")))
1215 (*fp->disc->errorf)(fp, fp->disc, ERROR_SYSTEM|2, "%s: cannot read tmp file", fp->encode.temp);
1216 remove(fp->encode.temp);
1224 if (!(sp = sfopen(NiL, fp->encode.file, "w")))
1238 for (x = (Type_t*)dtfirst(fp->encode.indexdict); x; x = (Type_t*)dtnext(fp->encode.indexdict, x))
1250 (*fp->disc->errorf)(fp, fp->disc, 2, "%s: cannot append codes", fp->encode.file);
1257 remove(fp->encode.temp);
1263 (*fp->disc->errorf)(fp, fp->disc, 2, "%s: cannot write codes", fp->encode.file);
1270 remove(fp->encode.temp);
1288 if (fp->encode.indexdict)
1289 dtclose(fp->encode.indexdict);
1290 if (fp->encode.namedict)
1291 dtclose(fp->encode.namedict);