int kill_article(article_header * ah) { register kill_list_entry *kl; int unless_match = 0; if (kill_debug) { clrdisp(); pg_init(0, 1); pg_next(); so_printf("\1KILL: %s: %s%-.40s (%d)\1", ah->sender, ah->replies & 0x80 ? "Re: " : "", ah->subject, ah->replies & 0x7f); } kl = exec_kill((kill_list_entry *) (current_group->kill_list), ah, &unless_match, 0, 0); if (kl == NULL && group_regexp_table != NULL) { if (current_kill_group != current_group) build_regexp_kill(); kl = exec_kill(regexp_kill_list, ah, &unless_match, 0, 0); } if (kl == NULL) kl = exec_kill(global_kill_list, ah, &unless_match, 0, 0); if (kl != NULL) { if (kl->kill_flag & AUTO_KILL) goto did_kill; if (kl->kill_flag & AUTO_SELECT) { ah->attr = A_AUTO_SELECT; goto did_select; } goto no_kill; } if (unless_match) goto did_kill; no_kill: if (kill_ref_count && (int) (ah->replies & 0x7f) >= kill_ref_count) { if (kill_debug) { pg_next(); tprintf("REFERENCE COUNT (%d) >= %d\n", ah->replies & 0x7f, kill_ref_count); } goto did_kill; } did_select: if (kill_debug && pg_end() < 0) kill_debug = 0; return 0; did_kill: if (kill_debug && pg_end() < 0) kill_debug = 0; killed_articles++; return 1; }
int init_module(void) { int err; #ifdef PARIDE_JUMBO { extern paride_init(); paride_init(); } #endif err = pg_init(); return err; }
void dump_kill_list(void) { register kill_list_entry *kl; pg_init(0, 1); pg_next(); kl = (kill_list_entry *) (current_group->kill_list); if (current_kill_group != current_group) build_regexp_kill(); if (kl == NULL && regexp_kill_list == NULL) { tprintf("No kill entries for %s", current_group->group_name); } else { so_printf("\1GROUP %s kill list entries\1", current_group->group_name); pk_prev_and = 0; for (; kl; kl = kl->next_kill) if (print_kill(kl) < 0) goto out; pk_prev_and = 0; for (kl = regexp_kill_list; kl; kl = kl->next_kill) if (print_kill(kl) < 0) goto out; if (pg_next() < 0) goto out; } if (pg_next() < 0) goto out; so_printf("\1GLOBAL kill list entries:\1"); pk_prev_and = 0; for (kl = global_kill_list; kl != NULL; kl = kl->next_kill) if (print_kill(kl) < 0) goto out; out: pg_end(); }
int main() { //Start video driver (must always be before loading message) mm_init(); pg_init(); real_init(); video_init(); video_setdriver(video_vgatext_getdriver(),0); //Put loading message cli_puts("ArcaneOS Loading...\n"); //Setup kernel gdt_init(); idt_init(); isr_init(); irq_init(); timer_init(); kb_init(); ui_init(); cpuid_init(); cmos_init(); rtc_init(); acpi_init(); power_init(); mt_init(); syscall_init(); floppy_init(); __asm__ __volatile__ ("sti"); //Enable ACPI acpi_enable(); //Create thread for ui mt_create_thread(mt_kernel_process,test,2); //Endless loop to prevent bugs when all threads are sleeping for(;;) __asm__ __volatile__ ("hlt"); }