
LWed - Windows INI file editor.

Version 2.2.8 of 1997-07-27, Copyright 1996,1997 (C) Laszlo Radanyi

TABLE OF CONTENTS____________________________________________________________

1. LICENSE AGREEMENT                            

2. INTRODUCTION

3. USER'S MANUAL
   3.1 Basic functions
   3.2 Advanced functions
   3.3 The response file
     3.3.1 What a response file is
     3.3.2 Using a response file
     3.3.3 Response file syntax
   3.4 The built-in help

4. ABOUT THE AUTHOR


1. LICENSE ISSUES____________________________________________________________

This  version  of  LWED is distributed as SHAREWARE.  You may use the program
unlimitedly for 30 days  at which time you have to decide to eighter  discard
the program or register it. You are encouraged to distribute the unregistered
version  of  LWED as  long as the package is not modified.

The  registration  fee is 5 USD,  which  is best  sent  via  snail mail after
contacting the author via email.

By  registering  LWED, you gain a  single user license to the product and you
help the author to make  even  better  products.  Registered users  also have
life-time support for the product via email. All registered  users have right
to all new versions of lwed as long as the license is valid.

Upon registering, the user receives a registered version of the program which
has different license conditions.

This program  is distributed  in the hope that it will be useful, but without
any warranty; without even the implied warranty of merchantibility or fitness
for a particular purpose.

The  user  should  be   aware  of  the  risks  of  manipulating  the  windows
initialization  files.   Careless  changes  to  some  ini  files  may  render
the system  unusable. The  author of lwed accepts no responsibility  for  any
loss of  functionality or  loss of data as result of the use of this product.
       
Windows is a registered trademark of Microsoft Corporation.
4DOS is a registered trademark of JP software Inc.


1. INTRODUCTION______________________________________________________________

Lwed  is  a  utility  for  manipulating  Windows(TM)  INI files from DOS. Its
history is simple;  its function may be simple too, but over the years,  LWED
has  grown to  be  able to  do  most  of what a power user should want from a
program of this kind.

The program is  started with a command name  and  parameters for the command.
Each  action  has a more or less verbose name, which  may  make  them  easier
to  remember.  Most  of the functions have a shorter, one character name too.

There  is  a  built-in   help   system   with  several  pages  of information
on switches.  I  have  tried  to arrange the switches in increasing chance of
usage,  but  the  main  purpose  behind  using pages  is that there  are more
functions than can be showed on a singe page in DOS.

Rather  than  writing  a  command  for changing one value at a time in an INI
file,  LWED  can  MERGE  two  INI  files.  This is done in a straight forward
manner; see the section about 'merge'.

You  are  very  welcome with  comments  about  this program; I am particulary
interested in comments about how the program fits different needs. 

Although  there  are  a  lot  of other  INI  file  manipulating  utilities on
the Internet, I sincerely believe that this is THE one you need.


3. USER'S MANUAL_____________________________________________________________

LWED  is a  DOS  command-line mode program,  and  it  is  aimed at  batch use
that is, it  needs  command-line  arguments to complete a function. The  user 
also has the option to use a 'response file' to supply arguments to LWED. See
section 3.3 for more information about this.

Switches - or modes - can be forward slashes  '/' which is  very common under
DOS,   and  you can  also  use  a  dash  '-'. You need two switch  characters
for  a  verbose  switch,  like  '--' or '//'. Any  other  switches  or switch
combinations  will  cause  LWED  to  exit  and  leave  a short message on the
standard error stream.

From version  2.2.8, a switch is not necessary,  although you can supply one.
Thus,  the options 'v', and 'version' have the very same meaning  as  -v, /v,
--version and //version

The  arguments  used  by  the  program  are  referenced between less-than and
greater-than signs. The names used are as follows:

<ini file name>  The target INI file name.
                 If this file is in the same directory as LWED, only the file
                 name is necessary,otherwise the full path needs to be given.
<section>        The  target section, that is, the INI value  starting  after
                 a string enclosed in brackets as in  [section] and until the
                 next such section name is encountered.
<key>            The  string  before the  first equal sign on one line in the
                 given section.
<value>          The  string  after the  first  equal sign on one line in the
                 given section.
<variable>       The  name  of  the environment  variable to use for the '-e'
                 function.

For all operations  that need a value, (like write), you can supply  a single
dash  '-'  in  place of the value,  which tells  LWED  to read the data to be
written from the standard input stream. This makes it possible to

o   Read a value into a temporary file
o   Then  let  LWED  read this value from the temporary file and do something
    with it. 

For example, given a file SOURCE.INI with  a section 'foo' and key 'bar', you
could do as follows: 

LWED r SOURCE.INI foo bar > TMPFILE.DAT

then  you  could write  the read value into the file TARGET.INI, key foo2 and
key bar2: 

LWED w TARGET.INI foo2 bar2 - < TMPFILE.DAT
DEL TMPFILE.DAT >NUL

I  made  this  change to obsolate the master environment hacks. They are bad,
do not work  on every  system,  and  they rely  on  undocumented features  of
MS DOS. I STRONGLY  encurage  you  to use the  stream method  instead of  any
solution involving the '-e' command. 

As  you'd  probably expect, the  dash method  also works when  combined  with
a response file.                      


3.1 Basic functions__________________________________________________________

The basic functions are the most used or  oldest functions; they are probably
what you would expect from a program like this.

h or help
    This launches the built-in help system. Read more about it in section 3.3
    
v or version
    Prints version information along with registration data  to  the standard
    output stream.  The version information  is necessary  when communicating
    with the author. This  can  also  help  you  to  see  if there is a newer
    version  distributed.  Newer  versions  are  generally  better  since the
    reported bugs are always corrected before new functionality is added.
    
r or read
    Prints <value> of <key> to the standard output stream.

w or write
    Changes an existing <key> <value> as specified; if the key doesn't exist,
    a new key is created.
     
a or append
    Appends  <value> to the current value of <key>. If the key doesn't exist,
    a new key is created. 

i or insert or prepend
    Inserts <value> immediately after the equal sign '=' of <key>. If the key
    doesn't exist, a new key is created.

d or delete
	Removes <key> from <section>.
    
m or merge
   Writes  the contents of <source file> into <target file> just as you would
   write value for value. Please  pay attention to that MERGE does NOT handle
   SYSTEM.INI/[386Enh]  very   well,   since  it  uses   standard  INI  write
   operations; that is, for each [section],  for each key in the source file,
   it writes [Section]/key=value into the target file.  This  means  that the
   first device= statement could be over written several times.

e or read_to_environment
   Reads <value> into <variable> in the master environment.  If  the variable
   is not set, a new is written. WARNING: This function relies on Int2E. 4DOS
   users  should  be  particulary  careful  with  this function, see the 4DOS
   manual for more information.

   With  the  new  possibility to read values from the standard input stream,
   I would urge you to drop the use of this feature. 


3.2 Advanced functions_______________________________________________________

c or comment
    Inserts a comment character ';' before the entry.
    
q or write_quoted
    Writes <value> inside of double quotes. For example :
    
    LWED -q TEST.INI section key quotedValue
    
    results in the following entry written into the file TEST.INI in the same
    directory as LWED.EXE:
    
    [section]
    key="quoted value"

write_blind
    Writes  <key>=<value>  as first entry  in <section> without search for an
    already existing value.
   
write_pair
    Searches  for  <key>=<value>  under  <section> and  creates the key if it
    doesn't exist. This is essentially the  same function as write,  but this
    one also looks for the supplied value.
    ** NOTE **
    The  pair functions  all are primarily intended to deal with the [386Enh]
    section  in  SYSTEM.INI,  since this section contains a lot of keys named
    'device' but different values.
    
comment_pair
    Searches for <key>=<value> under <section> and places a comment character
    before the key. This is the same function  as 'write_comment' but it also
    looks for the value.
    
delete_pair
    Searches for <key>=<value> under <section> and removes the entry.

delete_section
    Removes <section> from the INI file named <ini file name>.

read_section
    Prints the entire contents of <section> to the standard	output stream.


3.3 The response file________________________________________________________

3.3.1 What a response file is
  You can use a separate file to give LWED the commands it needs. Such a file
  contains the same information as LWED would get from the command line. What
  you  gain is the  possibility  to  supply longer commands and parameters to 
  LWED than the command line would permit.

  Typically,  the   COMMAND.COM  command  line  cannot  take  more  than  128
  characters.  If  you  need  to supply, say,  a  120 characters, it would be
  hard to do with LWED, since the program name and the switches (or commands)
  would take some space from the available 128 bytes.

  Under  other  environments it would be  possible to  increase  the  command
  line length to much higher values,  but a  response  file  could  still  be
  useful.

3.3.2 Using a response file
  You  use   a  response  file  by  giving  its  path  and  name to  LWED  as
  first parameter, lead by a '@' character. Example:
  
  LWED @MYRESP.TXT
  LWED @E:\LIB\CCT.RF

  The first command would use the file 'MYRESP.TXT' int the current directory
  for command input, the second would use  'E:\LIB\CCT.RF' since full path to
  the file is given.

  Any  additional   parameters  supplied  to  LWED  after the  response  file
  specifier parameter will be ignored.

3.3.3 Response file syntax
  Each  line  in the  response  file  contains  one  'word' from an imaginate
  command line. Suppose you have an LWED command like this:

  LWED r c:\windows\win.ini desktop wallpaper

  A  command  line  using  a  response  file  named  LWEDR.TXT in the current
  directory would look like this:

  LWED @LWEDR.TXT

  and the contents of this file:
  r
  c:\windows\win.ini
  desktop
  wallpaper

  In  addition  to  parameters,  you  can  comment your parameters. Any line
  starting with a  ';' character will be skipped by LWED.  Empty  lines  are
  also skipped, so it's possible to have a response file like this:

  ; my settings: bla bla bla
  -w
  ;
  ; bla bla blabla bla blabla bla blabla bla bla
  T.INI
  ;
  ;bla bla blabla bla bla


  foo
  bar


3.4 The built-in help________________________________________________________

The  built-in  help  is  invoked  by  issuing  the  command  'LWED'  alone on
the command line or by giving eighter of the '?' 'h' options.

Help consists of three pages, BASIC, ADVANCED and  MISCELLANEOUS.  All  pages
are just written to the standard output.

LWED waits for a keystroke on all screens;  you  can  go  to  eighter page by
pressing '1' (ONE) '2', or '3'.

You exit help by pressing any other key than '1','2' or '3'.


4. ABOUT THE AUTHOR__________________________________________________________

Laszlo Radanyi  is  working  as  C/C++ developer at Linne Interactive Design
in Gothenburg, Sweden.
He can be reached at 'lrd@plea.se' or 'laszlo@interactive.se'.

