up with more than 80 characters (20x4) in their display, and thus
overwrite memory outside of the allocated 80 characterwframebuffer.
For example, using a 20x6 screen would do this.
All drivers now either ignore a missing framebuffer, or allocate it
themselves - the latter is prefered.
(for type: 20x2, 20x4, 20x6) etc.
* Fixed bug that appeared when using a size larger than 80 characters
(20x4): framebuffer was allocated before size was known!
Drivers should NOT look for framebuffer to be allocated before they
start - but 80 characters are there anyway (for now).
got it working (it's #ifdef'd out). Expanded flexibility of
-t option (now accepts any case, and looks at only first three
characters); so "-t lkd202-25" works as expected...
* Now supports multiple input sources
* Further compartmentalized
* Added function to list drivers in nice format (for help screen)
* More bulletproofing
* Now supports the use of the new "daemonize" variable in the
lcd_logical_driver structure: permits output drivers to specify whether
becoming a daemon is logical or not... if not, run in foreground...
* Removed all references to lcd.* (now uses sli->*)
* Removed all function pointers of NULL or (void *) -1
* Added base functions as necessary
Compiles cleanly; requires field testing.
however, the Makefiles will need to be modified to support
linking against libvga and libvgagl, and support for the SVGALIB_DRV
define will have to be added to autoconf or whatever.
* Uses syslog instead of printf or fprintf (except during init)
* Replaced sprintf with snprintf throughout
* Removed all references to lcd.* and replaced with CFontz->*
Note: this compiles, that's all I can say - but the changes are not
major structural or logical changes.
+ Convert to use syslog instead of printf
+ Fixed some memory allocation bugs: in particular, driver
is only a local variable! Use static variable debug_drv instead....
* Added preliminary color support
* Changed to using "window" instead of full screen
* Added window border
* Window is positionable
* Fixed possible bug in curses_drv_string
* Ability to specify port and address to bind to
* By default, binds only to 127.0.0.1 port 13666
* Client commands now return usage when no options given
* New driver command: getinfo
* Added comments all over the place
* Used #defines to further document code
* Used #defines to set up compile-time defaults, etc.
* Cleaned up client command argument analysis in client_functions.c
* Beginning support of syslog
* Some bug fixes
serial port side. Also fixed problems with ioperm on the parallel port
side.
Added --waittime option to the server to specify how long the server
should leave a screen up before changing to the next screen.
as argument introducers. in 0.4-pre10, these were changed
from foo to -foo and this broke many clients. This change
should fix that and be backward/forward compatible.
+ Added a noop function to the protocol. This is useful for writing
shell script clients of LCDproc.
+ Changed the shared sock_send_string function to NOT send the
ending NUL ('\0') byte with the string. This was confusing
in Perl clients which saw NUL's as the first character of
each reply. WARNING: The LCDPROC client depended on this
behavior, your client may too. Use the newline instead.
See the code in clients/lcdproc/main.c (look for "switch(buf[i])")
to see one way to handle this. This should allow new clients
to connect to old servers and vice-versa.
+ Messed with include structure in .c files. It should no longer
be necessary to specify ../.. to get to shared code headers.
Also, since we are using automake, the global config.h can be
found with just #include "config.h" as it's location is included
in a -I to the compilers. As a result "make distcheck" now works.
longer allow the -Wp,-lang-c-c++-comments directive. Also cleaned
up getloadavg support that had problems on Solaris and RedHat 7.1.
Removed unused variables in a number of functions as a result of
warnings when compiled with --enable-debug config option.
Clients must now request keys using either client_add_key or screen_add_key
to receive key events. If a screen is active (on the display) and it
has registered a key with "screen_add_key" it will be the only client
to get that key. If the current screen doesn't want the key, it will
be sent to all clients that have registered that key using "client_add_key".
If you want to define a "hot button" for your client, you should probably
register that "hot key" with "client_add_key" and then list the keys that
control your client with "screen_add_key" on each screen. If you don't
have a "hot key", then just register keys with "screen_add_key" and you'll
get keystrokes only when your screen is active.
Also fixed some formatting (spaces versus tabs) in a couple of places.