improvements to sort_random
This commit is contained in:
@@ -38,7 +38,7 @@ extern unsigned int status;
|
|||||||
extern char *start_path;
|
extern char *start_path;
|
||||||
extern char *input;
|
extern char *input;
|
||||||
|
|
||||||
extern time_t *seed;
|
extern time_t seed;
|
||||||
|
|
||||||
char search_buffer[INPUT_BUFFER_SIZE];
|
char search_buffer[INPUT_BUFFER_SIZE];
|
||||||
unsigned int input_pass;
|
unsigned int input_pass;
|
||||||
@@ -611,10 +611,7 @@ void jump_to_dir(unsigned long passes, int index){
|
|||||||
void order_by(unsigned long passes, int index){
|
void order_by(unsigned long passes, int index){
|
||||||
(void)passes;
|
(void)passes;
|
||||||
|
|
||||||
free(seed);
|
seed = time(NULL);
|
||||||
seed = NULL;
|
|
||||||
seed = malloc(sizeof(time_t));
|
|
||||||
*seed = time(NULL);
|
|
||||||
|
|
||||||
order_func = key_binding[index].black_magic;
|
order_func = key_binding[index].black_magic;
|
||||||
status |= (STATUS_RUN_BACKEND | STATUS_UPDATE_SCREEN_MASK | STATUS_RELOAD_DIRECTORY);
|
status |= (STATUS_RUN_BACKEND | STATUS_UPDATE_SCREEN_MASK | STATUS_RELOAD_DIRECTORY);
|
||||||
|
|||||||
5
main.c
5
main.c
@@ -23,7 +23,7 @@ unsigned int file_modifiers;
|
|||||||
unsigned int status = (STATUS_RUN_BACKEND | STATUS_UPDATE_SCREEN_MASK | STATUS_RELOAD_DIRECTORY);
|
unsigned int status = (STATUS_RUN_BACKEND | STATUS_UPDATE_SCREEN_MASK | STATUS_RELOAD_DIRECTORY);
|
||||||
char *start_path;
|
char *start_path;
|
||||||
char *global_path;
|
char *global_path;
|
||||||
time_t *seed;
|
time_t seed;
|
||||||
|
|
||||||
WINDOW *win_t;
|
WINDOW *win_t;
|
||||||
WINDOW *win_b;
|
WINDOW *win_b;
|
||||||
@@ -205,7 +205,6 @@ void init() {
|
|||||||
setenv("START_PATH", start_path, 0);
|
setenv("START_PATH", start_path, 0);
|
||||||
free(start_path);
|
free(start_path);
|
||||||
|
|
||||||
seed = malloc(sizeof(time_t));
|
seed = time(NULL);
|
||||||
*seed = time(NULL);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
20
sorting.c
20
sorting.c
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
#include "defines.h"
|
#include "defines.h"
|
||||||
|
|
||||||
extern time_t *seed;
|
extern time_t seed;
|
||||||
|
|
||||||
int skip_hidden_files(const struct dirent *entry){
|
int skip_hidden_files(const struct dirent *entry){
|
||||||
|
|
||||||
@@ -117,15 +117,19 @@ int sort_random(const void *file0, const void *file1){
|
|||||||
if (!(((file*)file0)->file_type & FILE_TYPE_DIR) && (((file*)file1)->file_type & FILE_TYPE_DIR)) {
|
if (!(((file*)file0)->file_type & FILE_TYPE_DIR) && (((file*)file1)->file_type & FILE_TYPE_DIR)) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
time_t num = ((time_t)&sort_random)^((time_t)sort_natural);
|
time_t num = ((time_t)&sort_random) + (time_t)seed + getpid();
|
||||||
int i = 1;
|
int i;
|
||||||
for (; i < 6; i++) {
|
for (i = 1; i < (((time_t)&seed)%10); i++) {
|
||||||
num += *seed;
|
num += getpid() / seed;
|
||||||
num ^= num << ((((time_t)&seed)%6)+i);
|
num ^= num << ((((time_t)seed)%11)+i);
|
||||||
num ^= num >> ((((time_t)&num)%9)+i);
|
num += ((file*)file0)->file_size;
|
||||||
|
num ^= num >> ((((time_t)seed)%7)+i);
|
||||||
|
num -= ((file*)file1)->file_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ((num%3) - 1);
|
/*printf("%ld\n", ((num & (3 << seed%16)) >> seed%16) - 1);*/
|
||||||
|
return (((num & (3 << seed%32)) >> seed%32) - 1);
|
||||||
|
/*return ((num%3) - 1);*/
|
||||||
|
|
||||||
}
|
}
|
||||||
int sort_type(const void *file0, const void *file1){
|
int sort_type(const void *file0, const void *file1){
|
||||||
|
|||||||
Reference in New Issue
Block a user