/* * flags_to_string -- * Convert stat flags to a comma-separated string. If no flags * are set, return the default string. */ char * flags_to_string(u_long flags, const char *def) { static char string[128]; const char *prefix; string[0] = '\0'; prefix = NULL; #if HAVE_FILE_FLAGS if (flags & UF_APPEND) SAPPEND("uappnd"); if (flags & UF_IMMUTABLE) SAPPEND("uchg"); if (flags & UF_NODUMP) SAPPEND("nodump"); if (flags & UF_OPAQUE) SAPPEND("opaque"); if (flags & SF_APPEND) SAPPEND("sappnd"); if (flags & SF_ARCHIVED) SAPPEND("arch"); if (flags & SF_IMMUTABLE) SAPPEND("schg"); #ifdef SF_SNAPSHOT if (flags & SF_SNAPSHOT) SAPPEND("snap"); #endif #endif if (prefix == NULL) strlcpy(string, def, sizeof(string)); return (string); }
/* * flags_to_string -- * Convert stat flags to a comma-separated string. If no flags * are set, return the default string. */ char * flags_to_string(u_long flags, const char *def) { char string[128]; const char *prefix; string[0] = '\0'; prefix = NULL; #if HAVE_STRUCT_STAT_ST_FLAGS if (flags & UF_APPEND) SAPPEND("uappnd"); if (flags & UF_IMMUTABLE) SAPPEND("uchg"); if (flags & UF_NODUMP) SAPPEND("nodump"); if (flags & UF_OPAQUE) SAPPEND("opaque"); if (flags & SF_APPEND) SAPPEND("sappnd"); if (flags & SF_ARCHIVED) SAPPEND("arch"); if (flags & SF_IMMUTABLE) SAPPEND("schg"); #ifdef SF_SNAPSHOT if (flags & SF_SNAPSHOT) SAPPEND("snap"); #endif #endif if (prefix != NULL) return strdup(string); return strdup(def); }