// File: /workspace/github_cpp_makefile_star2_O1/jkingan[P]ladyheather/heather.cpp
// Function: config_options()
void config_options(void)
{
int k;
char old_buf[SLEN+1];     // the text string the user is typing in

   // configure system for any screen related command line options that were set
   old_buf[0] = 0;

   if(need_screen_init) {
#ifdef USE_X11
      if(need_screen_init == 99999) {  // piss go to full screen mode (/fu from keyboard)
         need_screen_init = 0;
         have_restore_size = 0;
         have_root_info = 0;
         x11_maxed = 0;
         SCREEN_WIDTH = display_width;
         SCREEN_HEIGHT = display_height;
         restore_width = display_width;
         restore_height = display_height;

         go_fullscreen = 1;   // piss   go_full()
         kill_deco = go_fullscreen; // disable X11 window decorations

         screen_type = 'c';
         strcpy(old_buf, edit_buffer);
         sprintf(edit_buffer, "%dx%d",SCREEN_WIDTH,SCREEN_HEIGHT);
         if(display) XFlush(display);
         keyboard_cmd = 1;
         edit_screen_res();
         strcpy(edit_buffer, old_buf);
         keyboard_cmd = 0;
go_fullscreen = kill_deco = 0;
      }
      else {
         need_screen_init = 0;
         init_screen(9106);
      }
#else
      need_screen_init = 0;
      init_screen(9106);
#endif
   }

   if(keyboard_cmd == 0) {
      if(SCREEN_WIDTH < MEDIUM_WIDTH) {  // blank clock name for small screens
         if(watch_name[0] == 0)  strcpy(watch_name,  " ");
         if(watch_name2[0] == 0) strcpy(watch_name2, " ");
      }
      else if(0) {
         if((watch_name[0] == ' ') && (watch_name[1] == 0)) watch_name[0] = 0;
         if((watch_name2[0] == ' ') && (watch_name2[1] == 0)) watch_name2[0] = 0;
      }
   }

   // set where the first point in the graphs will be
   last_count_y = PLOT_ROW + (PLOT_HEIGHT - VERT_MINOR);
   for(k=0; k<NUM_PLOTS+DERIVED_PLOTS; k++) {
      plot[k].last_y = PLOT_ROW+PLOT_CENTER;
      plot[k].last_trend_y = PLOT_ROW+PLOT_CENTER;
   }

   if(user_view_string[0]) {  // user set a plot view interval on the command line
      edit_user_view(user_view_string);
   }
   else if(new_user_view && (keyboard_cmd == 0) && user_view && (queue_interval > 0)) {   // set user specified plot window time (in hours)
      view_interval = (user_view * 60L*60L) / queue_interval;
      view_interval /= PLOT_WIDTH;
      if(view_interval <= 1L) view_interval = 1L;
      user_view = view_interval;
   }
   new_user_view = 0;

   // user set a daylight savings time definition
   if(user_set_dst && have_year) {
      calc_dst_times(this_year, dst_list[dst_area]);
   }

   // if user did not enable/disable the big clock,  turn it on if it will fit
   if(user_set_clock_plot == 0) {
      if(SCREEN_WIDTH > NARROW_SCREEN) plot_digital_clock = 1;
      else if(rcvr_type == NO_RCVR) plot_digital_clock = 1;
      else if((TEXT_HEIGHT <= 8) && (text_mode == 0)) plot_digital_clock = 1; ////
      else if((small_font == 1) && text_mode) plot_digital_clock = 1;
   }

   #ifdef TEMP_CONTROL
      if(do_temp_control) {  // user wants to actively stabilize the unit temperature
         if(desired_temp) enable_temp_control();
         else             disable_temp_control();
      }
   #endif

   if(not_safe) {
      if(not_safe == 3) ;   // xyzzy
      else if(com[RCVR_PORT].process_com == 0) ;  // xyzzy
      else if(com[RCVR_PORT].com_running <= 0) ;  // xyzzy
      else if(did_init1) init_messages(1, 0);
      else               init_messages(1, 1);
      did_init1 = 1;
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x100, %rsp            # imm = 0x100
movb $0x0, -0x120(%rbp)
movl 0x20ade1(%rip), %eax    # 0x2187e8
testl %eax, %eax
je 0xdaff
cmpl $0x1869f, %eax          # imm = 0x1869F
jne 0xdaeb
xorl %r12d, %r12d
movl %r12d, 0x20adc4(%rip)   # 0x2187e8
movl %r12d, 0x163485(%rip)   # 0x170eb0
movl %r12d, 0x16347a(%rip)   # 0x170eac
movl %r12d, 0x163483(%rip)   # 0x170ebc
movl 0x20adb9(%rip), %ebx    # 0x2187f8
movl %ebx, 0x20adbb(%rip)    # 0x218800
movl 0x20adb0(%rip), %r14d   # 0x2187fc
movl %r14d, 0x20adb1(%rip)   # 0x218804
movl %ebx, 0x16345b(%rip)    # 0x170eb4
movl %r14d, 0x163458(%rip)   # 0x170eb8
movl $0x1, %eax
movl %eax, 0x20ad75(%rip)    # 0x2187e0
movl %eax, 0x20adb3(%rip)    # 0x218824
movb $0x63, 0x20adb9(%rip)   # 0x218831
leaq 0x331861(%rip), %r15    # 0x33f2e0
leaq -0x120(%rbp), %rdi
movq %r15, %rsi
callq 0x9340
leaq 0xfd2c3(%rip), %rsi     # 0x10ad58
movq %r15, %rdi
movl %ebx, %edx
movl %r14d, %ecx
xorl %eax, %eax
callq 0x9060
movq 0x163415(%rip), %rdi    # 0x170ec0
testq %rdi, %rdi
je 0xdab5
callq 0x95c0
movb $0x1, 0x3003b0(%rip)    # 0x30de6c
callq 0x344ab
leaq 0x331818(%rip), %rdi    # 0x33f2e0
leaq -0x120(%rbp), %rsi
callq 0x9340
movb $0x0, 0x300391(%rip)    # 0x30de6c
movl %r12d, 0x20ad42(%rip)   # 0x218824
movl %r12d, 0x20acf7(%rip)   # 0x2187e0
jmp 0xdaff
movl $0x0, 0x20acf3(%rip)    # 0x2187e8
movl $0x2392, %edi           # imm = 0x2392
callq 0xbe9d
movb 0x300367(%rip), %al     # 0x30de6c
testb %al, %al
jne 0xdb39
cmpl $0x3e1, 0x20aced(%rip)  # imm = 0x3E1
jg 0xdb39
cmpb $0x0, 0x330bd4(%rip)    # 0x33e6f0
jne 0xdb27
movw $0x20, 0x330bc9(%rip)   # 0x33e6f0
cmpb $0x0, 0x330be2(%rip)    # 0x33e710
jne 0xdb39
movw $0x20, 0x330bd7(%rip)   # 0x33e710
movl 0x20ad3d(%rip), %ecx    # 0x21887c
movl 0x20ad43(%rip), %edx    # 0x218888
addl %ecx, %edx
subl 0x20ad23(%rip), %edx    # 0x218870
movl %edx, 0x20ad51(%rip)    # 0x2188a4
addl 0x20ad3b(%rip), %ecx    # 0x218894
movl $0xd8, %edx
leaq 0x1501cb(%rip), %rsi    # 0x15dd30
movl %ecx, -0x18(%rdx,%rsi)
movl %ecx, (%rdx,%rsi)
addq $0xe8, %rdx
cmpq $0x12f8, %rdx           # imm = 0x12F8
jne 0xdb65
cmpb $0x0, 0x32d8ad(%rip)    # 0x33b430
je 0xdb93
leaq 0x32d8a4(%rip), %rdi    # 0x33b430
callq 0x2f3c6
jmp 0xdc00
testb %al, %al
sete %dl
cmpb $0x0, 0x20d825(%rip)    # 0x21b3c4
setne %cl
movq 0x20d80f(%rip), %rax    # 0x21b3b8
testq %rax, %rax
setne %sil
andb %cl, %sil
movq 0x20d7de(%rip), %rcx    # 0x21b398
testq %rcx, %rcx
setg %dil
andb %dl, %dil
andb %sil, %dil
cmpb $0x1, %dil
jne 0xdc00
imulq $0xe10, %rax, %rax      # imm = 0xE10
cqto
idivq %rcx
movslq 0x20aca4(%rip), %rcx    # 0x218884
cqto
idivq %rcx
cmpq $0x2, %rax
movl $0x1, %ecx
cmovgeq %rax, %rcx
movq %rcx, 0x20d7a7(%rip)    # 0x21b3a0
movq %rcx, 0x20d7b8(%rip)    # 0x21b3b8
movb $0x0, 0x20d7bd(%rip)    # 0x21b3c4
cmpb $0x0, 0x2ffc96(%rip)    # 0x30d8a4
je 0xdc36
cmpl $0x0, 0x2312c9(%rip)    # 0x23eee0
je 0xdc36
movl 0x2ff901(%rip), %edi    # 0x30d520
movslq 0x2ffc76(%rip), %rax    # 0x30d89c
leaq 0x15cc03(%rip), %rcx    # 0x16a830
movq (%rcx,%rax,8), %rsi
callq 0xe0868
cmpb $0x0, 0x300228(%rip)    # 0x30de65
jne 0xdca9
imull $0x31a, 0x2158fb(%rip), %eax # imm = 0x31A
cltq
imulq $0x51eb851f, %rax, %rax # imm = 0x51EB851F
movq %rax, %rcx
shrq $0x3f, %rcx
sarq $0x25, %rax
addl %ecx, %eax
cmpl %eax, 0x20ab9b(%rip)    # 0x218800
jg 0xdca2
cmpq $0x400, 0x20ac5e(%rip) # imm = 0x400
je 0xdca2
cmpl $0x9, 0x20ab99(%rip)    # 0x218814
setl %cl
movl 0x20ab54(%rip), %eax    # 0x2187d8
testl %eax, %eax
sete %dl
testb %dl, %cl
jne 0xdca2
cmpb $0x1, 0x20abc5(%rip)    # 0x218859
sete %cl
testl %eax, %eax
setne %al
andb %cl, %al
cmpb $0x1, %al
jne 0xdca9
movb $0x1, 0x20d73c(%rip)    # 0x21b3e5
cmpb $0x0, 0x332110(%rip)    # 0x33fdc0
je 0xdcd2
movsd 0x33210e(%rip), %xmm0   # 0x33fdc8
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xdcc6
jnp 0xdccd
callq 0x106463
jmp 0xdcd2
callq 0x106522
movb 0x300195(%rip), %al     # 0x30de6d
testb %al, %al
je 0xdd13
cmpb $0x3, %al
je 0xdd09
cmpl $0x0, 0x317fed(%rip)    # 0x325cd4
je 0xdd09
cmpl $0x0, 0x317fe0(%rip)    # 0x325cd0
jle 0xdd09
xorl %esi, %esi
cmpl $0x0, 0x329315(%rip)    # 0x337010
sete %sil
movl $0x1, %edi
callq 0x61765
movl $0x1, 0x3292fd(%rip)    # 0x337010
addq $0x100, %rsp            # imm = 0x100
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq