Blender V4.3
BLI_filelist.cc File Reference
#include <cerrno>
#include <cstdio>
#include <cstdlib>
#include <sys/types.h>
#include <dirent.h>
#include <cstring>
#include <ctime>
#include <sys/stat.h>
#include <pwd.h>
#include <sys/ioctl.h>
#include <unistd.h>
#include "MEM_guardedalloc.h"
#include "DNA_listBase.h"
#include "BLI_fileops.h"
#include "BLI_fileops_types.h"
#include "BLI_listbase.h"
#include "BLI_path_utils.hh"
#include "BLI_string.h"
#include "BLI_string_utils.hh"

Go to the source code of this file.

Classes

struct  BuildDirCtx
 

Functions

static int direntry_cmp (direntry *entry1, direntry *entry2)
 
static void bli_builddir (BuildDirCtx *dir_ctx, const char *dirname)
 
uint BLI_filelist_dir_contents (const char *dirname, direntry **r_filelist)
 
void BLI_filelist_entry_size_to_string (const struct stat *st, const uint64_t st_size_fallback, const bool compact, char r_size[FILELIST_DIRENTRY_SIZE_LEN])
 
void BLI_filelist_entry_mode_to_string (const struct stat *st, const bool, char r_mode1[FILELIST_DIRENTRY_MODE_LEN], char r_mode2[FILELIST_DIRENTRY_MODE_LEN], char r_mode3[FILELIST_DIRENTRY_MODE_LEN])
 
void BLI_filelist_entry_owner_to_string (const struct stat *st, const bool, char r_owner[FILELIST_DIRENTRY_OWNER_LEN])
 
void BLI_filelist_entry_datetime_to_string (const struct stat *st, const int64_t ts, const bool compact, char r_time[FILELIST_DIRENTRY_TIME_LEN], char r_date[FILELIST_DIRENTRY_DATE_LEN], bool *r_is_today, bool *r_is_yesterday)
 
void BLI_filelist_entry_duplicate (direntry *dst, const direntry *src)
 
void BLI_filelist_duplicate (direntry **dest_filelist, direntry *const src_filelist, const uint nrentries)
 
void BLI_filelist_entry_free (direntry *entry)
 
void BLI_filelist_free (direntry *filelist, const uint nrentries)
 

Function Documentation

◆ bli_builddir()

◆ BLI_filelist_dir_contents()

◆ BLI_filelist_duplicate()

void BLI_filelist_duplicate ( struct direntry ** dest_filelist,
struct direntry *const src_filelist,
unsigned int nrentries )

Deep-duplicate of a direntry array including the array itself.

Definition at line 416 of file BLI_filelist.cc.

References BLI_filelist_entry_duplicate(), and MEM_mallocN.

◆ BLI_filelist_entry_datetime_to_string()

void BLI_filelist_entry_datetime_to_string ( const struct stat * st,
int64_t ts,
bool compact,
char r_time[FILELIST_DIRENTRY_TIME_LEN],
char r_date[FILELIST_DIRENTRY_DATE_LEN],
bool * r_is_today,
bool * r_is_yesterday )

Convert given entry's time into human-readable strings.

Parameters
r_is_todayoptional, returns true if the date matches today's.
r_is_yesterdayoptional, returns true if the date matches yesterday's.

Definition at line 343 of file BLI_filelist.cc.

References FILELIST_DIRENTRY_DATE_LEN, FILELIST_DIRENTRY_TIME_LEN, and time.

Referenced by file_draw_tooltip_custom_func(), filelist_get_details_column_string(), uiTemplateRecentFiles_tooltip_func(), and wm_open_mainfile_get_description().

◆ BLI_filelist_entry_duplicate()

void BLI_filelist_entry_duplicate ( direntry * dst,
const direntry * src )

Definition at line 405 of file BLI_filelist.cc.

References MEM_dupallocN, direntry::path, and direntry::relname.

Referenced by BLI_filelist_duplicate().

◆ BLI_filelist_entry_free()

void BLI_filelist_entry_free ( struct direntry * entry)

Frees storage for a single direntry, not the direntry itself.

Definition at line 431 of file BLI_filelist.cc.

References MEM_freeN(), direntry::path, and direntry::relname.

Referenced by BLI_filelist_free().

◆ BLI_filelist_entry_mode_to_string()

void BLI_filelist_entry_mode_to_string ( const struct stat * st,
bool compact,
char r_mode1[FILELIST_DIRENTRY_MODE_LEN],
char r_mode2[FILELIST_DIRENTRY_MODE_LEN],
char r_mode3[FILELIST_DIRENTRY_MODE_LEN] )

Convert given entry's modes into human-readable strings.

Definition at line 276 of file BLI_filelist.cc.

References BLI_strncpy(), FILELIST_DIRENTRY_MODE_LEN, and UNUSED_VARS.

◆ BLI_filelist_entry_owner_to_string()

void BLI_filelist_entry_owner_to_string ( const struct stat * st,
bool compact,
char r_owner[FILELIST_DIRENTRY_OWNER_LEN] )

Convert given entry's owner into human-readable strings.

Definition at line 324 of file BLI_filelist.cc.

References BLI_snprintf(), BLI_strncpy(), FILELIST_DIRENTRY_OWNER_LEN, and UNUSED_VARS.

◆ BLI_filelist_entry_size_to_string()

void BLI_filelist_entry_size_to_string ( const struct stat * st,
uint64_t st_size_fallback,
bool compact,
char r_size[FILELIST_DIRENTRY_SIZE_LEN] )

◆ BLI_filelist_free()

◆ direntry_cmp()

static int direntry_cmp ( direntry * entry1,
direntry * entry2 )
static