Lines Matching +full:- +full:- +full:silent
2 * Copyright (c) Ian F. Darwin 1986-1995.
4 * maintained 1995-present by Christos Zoulas and others.
29 * fsmagic - magic based on filesystem info - directory, special files, etc.
73 int mime = ms->flags & MAGIC_MIME; in bad_link()
76 == -1) in bad_link()
77 return -1; in bad_link()
79 if (ms->flags & MAGIC_ERROR) { in bad_link()
82 return -1; in bad_link()
84 if (file_printf(ms, "broken symbolic link to %s", buf) == -1) in bad_link()
85 return -1; in bad_link()
94 if (file_printf(ms, "inode/%s", str) == -1) in handle_mime()
95 return -1; in handle_mime()
97 "; charset=") == -1) in handle_mime()
98 return -1; in handle_mime()
100 if ((mime & MAGIC_MIME_ENCODING) && file_printf(ms, "binary") == -1) in handle_mime()
101 return -1; in handle_mime()
109 int mime = ms->flags & MAGIC_MIME; in file_fsmagic()
110 int silent = ms->flags & (MAGIC_APPLE|MAGIC_EXTENSION); in file_fsmagic() local
126 if ((ms->flags & MAGIC_SYMLINK) == 0) in file_fsmagic()
139 * Stat failed, but we can still open it - assume it's in file_fsmagic()
143 sb->st_mode = S_IFBLK; in file_fsmagic()
148 sb->st_mode |= S_IFCHR; in file_fsmagic()
149 sb->st_mode &= ~S_IFREG; in file_fsmagic()
152 sb->st_mode |= S_IFIFO; in file_fsmagic()
153 sb->st_mode &= ~S_IFREG; in file_fsmagic()
162 if (ms->flags & MAGIC_ERROR) { in file_fsmagic()
164 return -1; in file_fsmagic()
167 fn, strerror(errno)) == -1) in file_fsmagic()
168 return -1; in file_fsmagic()
173 if (!mime && !silent) { in file_fsmagic()
175 if (sb->st_mode & S_ISUID) in file_fsmagic()
176 if (file_printf(ms, "%ssetuid", COMMA) == -1) in file_fsmagic()
177 return -1; in file_fsmagic()
180 if (sb->st_mode & S_ISGID) in file_fsmagic()
181 if (file_printf(ms, "%ssetgid", COMMA) == -1) in file_fsmagic()
182 return -1; in file_fsmagic()
185 if (sb->st_mode & S_ISVTX) in file_fsmagic()
186 if (file_printf(ms, "%ssticky", COMMA) == -1) in file_fsmagic()
187 return -1; in file_fsmagic()
191 switch (sb->st_mode & S_IFMT) { in file_fsmagic()
194 if (handle_mime(ms, mime, "directory") == -1) in file_fsmagic()
195 return -1; in file_fsmagic()
196 } else if (silent) { in file_fsmagic()
197 } else if (file_printf(ms, "%sdirectory", COMMA) == -1) in file_fsmagic()
198 return -1; in file_fsmagic()
203 * If -s has been specified, treat character special files in file_fsmagic()
207 if ((ms->flags & MAGIC_DEVICES) != 0) { in file_fsmagic()
212 if (handle_mime(ms, mime, "chardevice") == -1) in file_fsmagic()
213 return -1; in file_fsmagic()
214 } else if (silent) { in file_fsmagic()
219 COMMA, major(sb->st_rdev), dv_unit(sb->st_rdev), in file_fsmagic()
220 dv_subunit(sb->st_rdev)) == -1) in file_fsmagic()
221 return -1; in file_fsmagic()
224 COMMA, (long)major(sb->st_rdev), in file_fsmagic()
225 (long)minor(sb->st_rdev)) == -1) in file_fsmagic()
226 return -1; in file_fsmagic()
229 if (file_printf(ms, "%scharacter special", COMMA) == -1) in file_fsmagic()
230 return -1; in file_fsmagic()
238 * If -s has been specified, treat block special files in file_fsmagic()
242 if ((ms->flags & MAGIC_DEVICES) != 0) { in file_fsmagic()
247 if (handle_mime(ms, mime, "blockdevice") == -1) in file_fsmagic()
248 return -1; in file_fsmagic()
249 } else if (silent) { in file_fsmagic()
254 COMMA, major(sb->st_rdev), dv_unit(sb->st_rdev), in file_fsmagic()
255 dv_subunit(sb->st_rdev)) == -1) in file_fsmagic()
256 return -1; in file_fsmagic()
259 COMMA, (long)major(sb->st_rdev), in file_fsmagic()
260 (long)minor(sb->st_rdev)) == -1) in file_fsmagic()
261 return -1; in file_fsmagic()
264 if (file_printf(ms, "%sblock special", COMMA) == -1) in file_fsmagic()
265 return -1; in file_fsmagic()
273 if((ms->flags & MAGIC_DEVICES) != 0) in file_fsmagic()
276 if (handle_mime(ms, mime, "fifo") == -1) in file_fsmagic()
277 return -1; in file_fsmagic()
278 } else if (silent) { in file_fsmagic()
279 } else if (file_printf(ms, "%sfifo (named pipe)", COMMA) == -1) in file_fsmagic()
280 return -1; in file_fsmagic()
286 if (handle_mime(ms, mime, "door") == -1) in file_fsmagic()
287 return -1; in file_fsmagic()
288 } else if (silent) { in file_fsmagic()
289 } else if (file_printf(ms, "%sdoor", COMMA) == -1) in file_fsmagic()
290 return -1; in file_fsmagic()
295 if ((nch = readlink(fn, buf, BUFSIZ-1)) <= 0) { in file_fsmagic()
296 if (ms->flags & MAGIC_ERROR) { in file_fsmagic()
299 return -1; in file_fsmagic()
302 if (handle_mime(ms, mime, "symlink") == -1) in file_fsmagic()
303 return -1; in file_fsmagic()
304 } else if (silent) { in file_fsmagic()
307 strerror(errno)) == -1) in file_fsmagic()
308 return -1; in file_fsmagic()
333 if (tmp - fn + 1 > BUFSIZ) { in file_fsmagic()
334 if (ms->flags & MAGIC_ERROR) { in file_fsmagic()
337 return -1; in file_fsmagic()
341 "x-path-too-long") == -1) in file_fsmagic()
342 return -1; in file_fsmagic()
343 } else if (silent) { in file_fsmagic()
346 fn) == -1) in file_fsmagic()
347 return -1; in file_fsmagic()
352 buf2[tmp - fn + 1] = '\0'; in file_fsmagic()
363 if ((ms->flags & MAGIC_SYMLINK) != 0) { in file_fsmagic()
365 ms->flags &= MAGIC_SYMLINK; in file_fsmagic()
367 ms->flags |= MAGIC_SYMLINK; in file_fsmagic()
369 return -1; in file_fsmagic()
372 if (handle_mime(ms, mime, "symlink") == -1) in file_fsmagic()
373 return -1; in file_fsmagic()
374 } else if (silent) { in file_fsmagic()
376 COMMA, buf) == -1) in file_fsmagic()
377 return -1; in file_fsmagic()
385 if (handle_mime(ms, mime, "socket") == -1) in file_fsmagic()
386 return -1; in file_fsmagic()
387 } else if (silent) { in file_fsmagic()
388 } else if (file_printf(ms, "%ssocket", COMMA) == -1) in file_fsmagic()
389 return -1; in file_fsmagic()
400 * But if the -s option has been given, we skip this in file_fsmagic()
406 if ((ms->flags & MAGIC_DEVICES) == 0 && sb->st_size == 0) { in file_fsmagic()
408 if (handle_mime(ms, mime, "x-empty") == -1) in file_fsmagic()
409 return -1; in file_fsmagic()
410 } else if (silent) { in file_fsmagic()
411 } else if (file_printf(ms, "%sempty", COMMA) == -1) in file_fsmagic()
412 return -1; in file_fsmagic()
419 file_error(ms, 0, "invalid mode 0%o", sb->st_mode); in file_fsmagic()
420 return -1; in file_fsmagic()
424 if (!silent && !mime && did && ret == 0) { in file_fsmagic()
425 if (file_printf(ms, " ") == -1) in file_fsmagic()
426 return -1; in file_fsmagic()
429 * If we were looking for extensions or apple (silent) it is not our in file_fsmagic()
432 if (ret == 1 && silent) in file_fsmagic()