CeDOS - Commit 50975e4d

Merge branch 'hotfix/several-hotfixes' into develop
Celina Sophie Kalus
Sat, 09 Dec 2023 21:47:00 +0100
3 files changed, 14 insertions(+), 10 deletions(-)
M common/fat12.ccommon/fat12.c

@@ -83,8 +83,8 @@ return buffer += fat->cluster_size;

} int FAT12_root_dir_next(FAT12_descriptor_t *fat, int index, char *fname_buffer, uint16_t *first_cluster, uint32_t *file_size) { - memset(fname_buffer, 0, sizeof(fname_buffer)); - + fname_buffer[0] = 0; + while (1) { //printk("%i\n", index); // index overflow

@@ -126,6 +126,10 @@ for (int i = 0; i < 2; i++) {

fname_buffer[offset++] = lfn_entry->part_3[i]; } + if (lfn_entry->seq_num & (1 << 6)) { + fname_buffer[offset] = 0; + } + index++; continue; }

@@ -148,13 +152,9 @@ *first_cluster = dir_entry.start_of_clusters;

// if no VFAT LFN exists, use DOS name if (fname_buffer[0] == 0) { - for (int i = 0; i < 8; i++) { - fname_buffer[i] = dir_entry.name[i]; - } + memcpy(fname_buffer, dir_entry.name, 8); fname_buffer[8] = '.'; - for (int i = 0; i < 3; i++) { - fname_buffer[i + 9] = dir_entry.ext[i]; - } + memcpy(fname_buffer + 9, dir_entry.ext, 3); fname_buffer[12] = 0; }
M kernel/sched/sched.ckernel/sched/sched.c

@@ -250,7 +250,11 @@ }

void sched_unblock(int pid) { PROCESS *process = get_process(pid); - process->state = PSTATE_READY; + + // only unblock previously blocked processes + if (process->state == PSTATE_BLOCKED) { + process->state = PSTATE_READY; + } } int sched_kill(PROCESS_ID pid) {
M shell/shelf.cshell/shelf.c

@@ -82,7 +82,7 @@ if (strlen(buffer) == 0) { continue; }

char *file = buffer; char *args = strchr(file, ' '); - char *amp = strchr(file, '.'); + char *amp = strchr(file, ','); if (args != NULL) { args[0] = 0;