improvements to sort_random
This commit is contained in:
@@ -38,7 +38,7 @@ extern unsigned int status;
|
||||
extern char *start_path;
|
||||
extern char *input;
|
||||
|
||||
extern time_t *seed;
|
||||
extern time_t seed;
|
||||
|
||||
char search_buffer[INPUT_BUFFER_SIZE];
|
||||
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)passes;
|
||||
|
||||
free(seed);
|
||||
seed = NULL;
|
||||
seed = malloc(sizeof(time_t));
|
||||
*seed = time(NULL);
|
||||
seed = time(NULL);
|
||||
|
||||
order_func = key_binding[index].black_magic;
|
||||
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);
|
||||
char *start_path;
|
||||
char *global_path;
|
||||
time_t *seed;
|
||||
time_t seed;
|
||||
|
||||
WINDOW *win_t;
|
||||
WINDOW *win_b;
|
||||
@@ -205,7 +205,6 @@ void init() {
|
||||
setenv("START_PATH", start_path, 0);
|
||||
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"
|
||||
|
||||
extern time_t *seed;
|
||||
extern time_t seed;
|
||||
|
||||
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)) {
|
||||
return 1;
|
||||
}
|
||||
time_t num = ((time_t)&sort_random)^((time_t)sort_natural);
|
||||
int i = 1;
|
||||
for (; i < 6; i++) {
|
||||
num += *seed;
|
||||
num ^= num << ((((time_t)&seed)%6)+i);
|
||||
num ^= num >> ((((time_t)&num)%9)+i);
|
||||
time_t num = ((time_t)&sort_random) + (time_t)seed + getpid();
|
||||
int i;
|
||||
for (i = 1; i < (((time_t)&seed)%10); i++) {
|
||||
num += getpid() / seed;
|
||||
num ^= num << ((((time_t)seed)%11)+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){
|
||||
|
||||
Reference in New Issue
Block a user