Changeset 818


Ignore:
Timestamp:
Nov 18, 2010, 1:48:22 AM (15 years ago)
Author:
Dmitry A. Kuminov
Message:

packaging: UpdateQtSysConf.cmd: Added ability to delete keys (specify no '=value' part for a key to delete it).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • packaging/UpdateQtSysConf.cmd

    r544 r818  
    2222    i = qt_conf.0 + 1
    2323    qt_conf.i = linein(qt_conf)
     24    qt_conf.i.!d = 0
    2425    qt_conf.0 = i
    2526end
     
    3132do while(rest \== '')
    3233    parse var rest v','rest
    33     parse var v v'='val
    34     v = strip(v)
    35     val = strip(val)
    36     val = Replace(val, '\(', '(')
    37     val = Replace(val, '\)', ')')
    38     val = translate(val, '/', '\')
    39     if (v \== '') then do
     34    if (pos('=', v) = 0) then do
     35        /* delete */
    4036        if (symbol('aVars.v') == 'VAR') then do
    41             /* already exists, take new value */
    42             aVars.v = val
     37            /* already exists, mark as deleted */
     38            aVars.v.!d = 1
    4339            iterate
    4440        end
    4541        w = aVars.0 + 1
    4642        aVars.w = v
    47         aVars.v = val
     43        aVars.v = ''
     44        aVars.v.!d = 1
    4845        aVars.0 = w
     46    end
     47    else do
     48        /* add/replace value */
     49        parse var v v'='val
     50        v = strip(v)
     51        val = strip(val)
     52        val = Replace(val, '\(', '(')
     53        val = Replace(val, '\)', ')')
     54        val = translate(val, '/', '\')
     55        if (v \== '') then do
     56            if (symbol('aVars.v') == 'VAR') then do
     57                /* already exists, take new value */
     58                aVars.v = val
     59                aVars.v.!d = 0
     60                iterate
     61            end
     62            w = aVars.0 + 1
     63            aVars.w = v
     64            aVars.v = val
     65            aVars.v.!d = 0
     66            aVars.0 = w
     67        end
    4968    end
    5069end
     
    5978end
    6079
    61 /* replace existing values */
     80/* replace/delete existing values */
    6281do i = p + 1 to qt_conf.0
    6382    parse var qt_conf.i v'='val
     
    6988    if (v \== '') then do
    7089        if (symbol('aVars.v') == 'VAR') then do
    71             qt_conf.i = v '= "'aVars.v'"'
     90            if (aVars.v.!d) then do
     91                qt_conf.i.!d = 1
     92            end
     93            else do
     94                qt_conf.i = v '= "'aVars.v'"'
     95            end
    7296            drop aVars.v /* mark as processed */
    7397        end
     
    78102call SysFileDelete qt_conf
    79103do i = 1 to qt_conf.0
     104    if (qt_conf.i.!d) then
     105        iterate /* skip deleted */
    80106    call lineout qt_conf, qt_conf.i
    81107    if (i == p) then do
Note: See TracChangeset for help on using the changeset viewer.