Pro poes_write_config, copy = copy, _extra = _extra
otp = -1
dir = poes_config_filedir()
ll = strmid(dir, strlen(dir)-1, 1)
If(ll Eq '/' Or ll Eq '\') Then filex = dir+'poes_config.txt' $
Else filex = dir+'/'+'poes_config.txt'
If(keyword_set(copy)) Then Begin
xt = time_string(systime(/sec))
ttt = strmid(xt, 0, 4)+strmid(xt, 5, 2)+strmid(xt, 8, 2)+$
'_'+strmid(xt, 11, 2)+strmid(xt, 14, 2)+strmid(xt, 17, 2)
filex_out = filex+'_'+ttt
cfg = poes_read_config(header = hhh)
Endif Else Begin
If(file_search(filex) Ne '') Then poes_write_config, /copy
filex_out = filex
cfg = {local_data_dir:!poes.local_data_dir, $
remote_data_dir:!poes.remote_data_dir, $
no_download:!poes.no_download, $
no_update:!poes.no_update, $
downloadonly:!poes.downloadonly, $
verbose:!poes.verbose}
hhh = [';poes_config.txt', ';POES configuration file', $
';Created:'+time_string(systime(/sec))]
Endelse
xdname = file_dirname(filex_out)
If(xdname Ne '') Then file_mkdir, xdname
openw, unit, filex_out, /get_lun
For j = 0, n_elements(hhh)-1 Do printf, unit, hhh[j]
ctags = tag_names(cfg)
nctags = n_elements(ctags)
For j = 0, nctags-1 Do Begin
x0 = strtrim(ctags[j])
x1 = cfg.(j)
If(is_string(x1)) Then x1 = strtrim(x1, 2) $
Else Begin
If(size(x1, /type) Eq 1) Then x1 = fix(x1)
x1 = strcompress(/remove_all, string(x1))
Endelse
printf, unit, x0+'='+x1
Endfor
free_lun, unit
Return
End