Commit Graph
100 Commits
Author SHA1 Message Date
Christophe CURIS 3ba54ed0d6 wmaker: Marked args as unused for compiler in signal handlers
When the process receive a signal, a callback function is used, which
means having a fixed argument list for that application function.

It is then correct to not use the argument, so this patch adds the
appropriate stuff to avoid a false report from compiler.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-10-13 23:03:24 +01:00
Christophe CURIS 7c02d5f1c5 wmaker: Marked args as unused for compiler in process death handlers
When a sub-process terminate, the function to process that event is
defined using a callback mechanism, which means having a fixed argument
list for that application function.

It is then correct to not use all the arguments, so this patch adds the
appropriate stuff to avoid a false report from compiler.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-10-13 23:03:23 +01:00
Christophe CURIS bd77216edf wmaker: Removed explicit callback type conversion
It is dangerous to use a function that does not use the same prototype as
expected by the callback, because that mean there is conversion performed
for the arguments, on which the compiler has no possibility to report
problems.

It is safer to create the function with the strict argument list, and
insert an  explicit type conversion for which the compiler will be able
to perform compatibility checks, and include optional code when needed.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-10-13 23:03:23 +01:00
Christophe CURIS 298343f5ad wmaker: Marked args as unused for compiler in X Error handlers
When an error occurs in X, the Xlib is using a callback mechanism to
execute application code to handle the problem, which means having a
fixed argument list for that application function.

It is then correct to not use all the arguments, so this patch adds the
appropriate stuff to avoid a false report from compiler.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-10-13 23:03:23 +01:00
Christophe CURIS f0b8be0aed wmaker: Marked args as unused for compiler in WINGs callback code
The WINGs toolkit dispatch events on widgets using callbacks, which means
having a fixed argument list for the handling function.

It is then correct to not use all the arguments, so this patch adds the
appropriate stuff to avoid a false report from compiler.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-10-13 23:03:23 +01:00
Christophe CURIS 6948a9f2fe wmaker: Removed explicit callback type conversion
It is dangerous to use a function that does not use the same prototype as
expected by the callback, because that mean there is conversion performed
for the arguments, on which the compiler has no possibility to report
problems.

It is safer to create the function with the strict argument list, and
insert an  explicit type conversion for which the compiler will be able
to perform compatibility checks, and include optional code when needed.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-10-13 23:00:19 +01:00
Christophe CURIS fd10d4069f wmaker: Marked args as unused for compiler in WINGs Notif callback code
The mechanism of Notifications in the WINGs toolkit is relying on
callbacks to dispatch notifications, which means having a fixed argument
list for the handling function.

It is then correct to not use all the arguments, so this patch adds the
appropriate stuff to avoid a false report from compiler.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-10-13 23:00:19 +01:00
Christophe CURIS f45d57ff16 wmaker: Marked args as unused for compiler in XCloseEvent callback code
The toolkit dispatches window close request events using callback
functions, which means having a fixed argument list for that function.

It is then correct to not use all the arguments, so this patch adds the
appropriate stuff to avoid a false report from compiler.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-10-13 23:00:19 +01:00
Christophe CURIS 3857def779 wmaker: Marked args as unused for compiler in XClickEvent callback code
The toolkit dispatches X events for MouseButton using callback functions,
which means having a fixed argument list for that function.

It is then correct to not use all the arguments, so this patch adds the
appropriate stuff to avoid a false report from compiler.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-10-13 23:00:19 +01:00
Christophe CURIS c34a55ed5a wmaker: Marked args as unused for compiler in XExposeEvent callback code
The custom drawing code for windows is handled using callback functions,
which means having a fixed argument list for that function.

It is then correct to not use all the arguments, so this patch adds the
appropriate stuff to avoid a false report from compiler.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-10-13 23:00:19 +01:00
Christophe CURIS 9330ddf946 wmaker: Marked args as unused for compiler in menu callback code
When an entry of a menu is selected, the appropriate action is triggered
using a callback, which means having a fixed argument list for that
function.

It is then correct to not use all the arguments, so this patch adds the
appropriate stuff to avoid a false report from compiler.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-10-13 23:00:19 +01:00
Christophe CURIS adb936e9f2 wmaker: Marked args as unused for compiler in callback code
To have an easy-to-maintain code, the configuration loading function is
using a lot off callbacks, which means having a fixed argument list.

It is then correct to not use all of them in all case, so this patch adds
the appropriate stuff to avoid a false report from compiler.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-10-13 23:00:19 +01:00
Christophe CURIS 0118906a85 wmaker: Marked args as unused at places where conditional code is used
There are a few cases in the code where conditional compiling can
lead, when the corresponding block is not activated, to some arguments
not being used.

This patch adds the proper stuff to avoid a false report from the
compiler.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-10-13 23:00:18 +01:00
Christophe CURIS 30fd8a1f75 wmaker: Marked arg as unused for compiler in callback code
As a callback function has a fixed prototype, it is not an error to have
some arguments unused, but we need to let the compiler about it to avoid
spurious messages that would hide real cases.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-10-13 21:38:42 +01:00
Christophe CURIS 1b2f3c0431 wmaker: Removed non necessary macro for buffer size
The C language provides the macro 'sizeof' to handle this kind of
situation, so do not create locally a macro which can become a source
of problems.

Took opportunity to change the size of buffer to follow guidelines
from Inotify's manpage, and to remove the initial value that is useless.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-10-13 21:38:42 +01:00
Christophe CURIS bec778aae2 wmaker: Added reset of file handle variable to avoid multiple file close
If the triggering condition occurred, the file handle for Inotify were
closed, but as the variable containing the handle was not updated it
could lead to multiple call to file close, which behaviour may be
problematic.

The file handle was passed as a parameter, which does not allow for a
clean value change, so now we use the variable directly as it is
available in the global namespace.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-10-13 21:38:42 +01:00
Christophe CURIS a3264184bd Removed parameters to function 'handle_inotify_events' that were not used 2013-10-13 15:30:56 +01:00
Christophe CURIS 821bacb5f4 Removed parameter to function 'handleDeadProcess' that was not used 2013-10-13 15:30:56 +01:00
Christophe CURIS 3cf4ba91aa Removed parameter to function 'updateResistance' that was not used 2013-10-13 15:30:56 +01:00
Christophe CURIS 0717a0f07e Removed parameters to function 'open_window_menu_core' that were not used 2013-10-13 15:30:56 +01:00
Christophe CURIS c42d6822de Removed parameter to function 'create_tab_icon_workspace' that was not used 2013-10-13 15:30:56 +01:00
Christophe CURIS 4dadc83a4c wmaker: Added 'static' attribute to local variables
This code is probably never compiled, but that's not a reason to
leave it incorrect.
2013-10-12 15:57:21 +01:00
Christophe CURIS ad2b5f0ec9 wmaker: Fixed compilation of XDND support
The XDND support is not enabled by default, and not simple to
enable (does not use the appropriate configure flag method).

With previous global namespace related patches, this file not being
enabled a change was missed. Now at least it compiles, although it
is still an experimental feature.
2013-10-12 15:57:21 +01:00
Christophe CURIS 1003f89dc0 WPrefs: Fixed duplicate 'const' keyword
(as reported by LLVM / clang)
2013-10-12 15:57:21 +01:00
Christophe CURIS 6b1b6bc02e WPrefs: Grouped config key and user display icon in a single struct
Instead of defining 2 separate data arrays, use a array of struct
to make it less bug prone (no dependancy on order of elements).

Took opportunity to de-CamelCase the variable name;
Took opportunity to add appropriate const qualifier.
2013-10-12 15:57:21 +01:00
Christophe CURIS a01c1fcb79 WPrefs: Grouped config key and user display string in a single struct
Instead of defining 2 separate data arrays, use a array of struct
to make it less bug prone (no dependancy on order of elements).

Took opportunity to de-CamelCase the variable name;
Took opportunity to add appropriate const qualifier.
2013-10-12 15:57:21 +01:00
Christophe CURIS 85cef4e2d9 util: Fixed possible off-by-one issue when generating filename
(as reported by LLVM / clang)
2013-10-12 15:57:21 +01:00
Christophe CURIS 5a16cb8e02 Removed unused WScreen argument in some Default handling functions 2013-10-12 15:18:06 +01:00
Christophe CURIS f3e3ddf4f2 Removed unused WScreen argument in dock's clip function 2013-10-12 15:18:06 +01:00
Christophe CURIS b7ae1b50e2 Removed unused WScreen argument in dock's drawer state functions
It was used to access the session state, which was stored in the
screen scruct, which is now more logically in the global namespace.
2013-10-12 15:18:06 +01:00
Christophe CURIS 6ad22c8672 Removed unused WScreen argument in Pixmap function 2013-10-12 15:18:06 +01:00
Christophe CURIS 803eb68fc4 Removed unused WScreen argument from workspace's state functions
Now that the workspace are not more attached to a screen, the
parameter is not needed anymore.
2013-10-12 15:18:05 +01:00
Christophe CURIS fd869154c6 Removed unused WScreen argument from dock's clip state functions
Now that the workspace are not more attached to a screen, the
parameter is not needed anymore.
2013-10-12 15:18:05 +01:00
Christophe CURIS 3b85fca43c configure: Added compilation check for dangerous use of 'extern' keyword 2013-10-11 21:58:32 +01:00
Christophe CURIS 18059fb1c7 wmaker: Moved definition of global variable 'wKeyBindings' to header
Multiple declaration of global variables in local source files is
a dangerous idea.
2013-10-11 21:58:14 +01:00
Christophe CURIS d9832e578f wmaker: Moved global domain definition to the global namespace
The default domains were originally defined in different global
variables in C files; This patches groups them in a single
structure placed in global namespace.
2013-10-11 21:58:14 +01:00
Christophe CURIS f751cc6a50 wmaker: Moved variable ValidModMask into the global namespace 2013-10-11 21:58:14 +01:00
Christophe CURIS 24ce829f7f wmaker: Removed global variable 'WDelayedActionSet' and associated dead code
The variable's value was set to 0 but never changed afterwards, so
the function using it would never do anything.
2013-10-11 21:58:14 +01:00
Christophe CURIS a79c0e76d0 wmaker: Moved variables for Inotify into the global namespace 2013-10-11 21:58:13 +01:00
Christophe CURIS 6dcfdd072b wmaker: Moved variables for the XRandR extension into the global namespace 2013-10-11 21:58:13 +01:00
Christophe CURIS 3995130b79 wmaker: Moved variables for the Xkb extension into the global namespace 2013-10-11 21:58:13 +01:00
Christophe CURIS 81aa311c42 wmaker: Moved variables for the XShape extension into the global namespace 2013-10-11 21:58:13 +01:00
Christophe CURIS c3c2d8d7f1 wmaker: Moved variable Ignore Wks Change into the workspace object in the global namespace
Took the opportunity to change its type: it was an integer, but it is
actually holding a yes/no status, so it is now defined as a boolean.
2013-10-11 21:58:13 +01:00
Christophe CURIS b6423a7b4f wmaker: Moved variable Screen Count into the global namespace 2013-10-10 20:05:26 +01:00
Christophe CURIS 45bfc1d1c5 wmaker: Removed variable for X Context that is not used 2013-09-30 00:53:10 +02:00
Christophe CURIS ec91b9f68e wmaker: Moved definition of X Contexts into the global variables structure 2013-09-30 00:53:10 +02:00
Christophe CURIS e2ce62eb5b wmaker: Moved definition of WMaker-specific XAtoms into the global variables structure 2013-09-30 00:53:10 +02:00
Christophe CURIS 379f7022bd wmaker: Moved definition of GNUStep-related XAtoms into the global variables structure 2013-09-30 00:53:10 +02:00
Christophe CURIS ecfb2dc902 wmaker: Moved definition of WM-related XAtoms into the global variables structure 2013-09-30 00:53:10 +02:00
Christophe CURIS 32cebb1305 wmaker: Removed notion of 'Default' mouse cursor
A default cursor would make sense if we were talking about an API,
where we would propose a 'I-don't-know' choice to devs, but here
we're talking about WindowMaker's internal, where we're supposed
to provide a consistent interface to the user, so picking a
cursor is not an option (and 'Normal' is actually a decent
looking choice anyway).

Suggested-by: Rodolfo García Peñas <kix@kix.es>
2013-09-30 00:53:10 +02:00
Christophe CURIS b48b3370e2 wmaker: Moved global var with list of cursors to the preferences variable
As the cursor choice for each action is actually a user choice,
it is logical to put this into the structure, instead of a poorly
defined 'extern' in every file.
2013-09-30 00:53:10 +02:00
Christophe CURIS 2c20413831 wmaker: Moved timestamp variable (#2) to the global variable structure 2013-09-29 16:31:49 +01:00
Christophe CURIS af6c4ec37f wmaker: Moved timestamp variable (#1) to the global variable structure 2013-09-29 16:31:49 +01:00
Christophe CURIS 577506cbd2 wmaker: Moved the variable for Locale choice (I18N) to the global variable structure 2013-09-29 16:31:49 +01:00
Christophe CURIS 3892f3220a wmaker: Created a global structure to regroup all global variables
Having all the global variables at the same place will provide
better visibility on the code; grouping them in a structure
reduces the risk for name clash; it also offer the possibility
to organise them.

Another BIG benefit is that, when reading the code, an access to
a global variable will now be clearly visible, and distinguished
from a local variable use.
2013-09-29 16:31:49 +01:00
Christophe CURIS 70c6494c46 wmaker: Changed name of parameter in macro WCHECK_STATE
The name will be a problem with next change because it uses a too
common word which will be useful at a better place.
Took the opportunity to rewitre the check in the human logical
thinking order to make it easier to read.
2013-09-29 16:31:49 +01:00
Christophe CURIS 28bbf705eb wmaker: Converted #define to an Enum for the Program State tracking variables 2013-09-29 13:46:50 +01:00
Christophe CURIS 5fcf15f0d5 wmaker: Changed global constant declaration to use appropriate type
The original type was not as safe as it looked like to be, and led
to more memory usage than necessary.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-30 15:13:41 +01:00
Christophe CURIS 60a4121a92 wmaker: Moved function prototype to the appropriate header
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-30 15:13:41 +01:00
Christophe CURIS 91529ff1a7 wmaker: Replaced local declaration of system function by proper header call
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-30 15:10:09 +01:00
Christophe CURIS 496cb58cea wmaker: Moved function prototype to the appropriate header
It is bad practice to define the prototype of an external function
inside a source file that wants to use it.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-30 15:10:09 +01:00
Christophe CURIS 74cd836e48 wmaker: Replaced local 'extern' definition of wPreferences by proper header usage
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-30 15:10:09 +01:00
Christophe CURIS 3803ae6493 wmaker: Replaced local 'extern' definition by proper header include
It is dangerous to define an extern variable locally because the
compiler is not able to ensure proper type definition, but including
the header that defines it allows a safer situation.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-30 15:10:09 +01:00
Christophe CURIS 7bf8efef54 WRaster: Changed formula for reconverting angle to the (0-360) bounds
There is a dedicaded floating point modulo operator that does a
better job (faster, no precision loss), so we use it instead of the
complicated formula that uses type conversions.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-17 01:54:06 +01:00
Christophe CURIS e9764aab71 wmaker: Changed math on floating point by integer operation
For this case we happen to already have the same variable as integer
type, so it is better to use them directly for computation.

Please note that the floating point variables do not contain more
precision in this use case, otherwise the change would not be
transparent.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-17 01:54:06 +01:00
Christophe CURIS 95ee539d6d Configure: Added explicit check for math library header
Compilation will not work if the header is missing, so make sure
it is present and compilable first. This can highligh sooner if
a user forgot to install the corresponding dev package.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-17 01:54:06 +01:00
Christophe CURIS f68ec6c913 Configure: Moved check for Math lib to a dedicated M4 macro
Took the opportunity to rewrite the check using autoconf macros
to generate a more compatible configure script.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-17 01:16:51 +01:00
Christophe CURIS a6410d61e5 wmaker: Added 'const' attribute to local variables
A number of these variable are not meant to be modified, so we
show this to the compiler.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-16 19:32:23 +01:00
Christophe CURIS c9b816de75 wmaker: Added 'const' attribute to remaining functions
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-16 19:32:23 +01:00
Christophe CURIS c7ab9d34f7 wmaker: Added 'const' attribute to function 'wWindowUpdateName'
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-16 19:32:23 +01:00
Christophe CURIS 9b5db31d95 wmaker: Added 'const' attribute to most global functions
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-16 19:32:23 +01:00
Christophe CURIS f0c1dc9fc3 wmaker: Added 'const' attribute to most local functions
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-16 19:32:23 +01:00
Christophe CURIS 69b6848187 wmaker: Added 'const' attribute to function 'wDefaultsInitDomain'
This has a few side effects which are properly handled by this patch

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-16 19:32:23 +01:00
Christophe CURIS 062ff99fac wmaker: Added 'const' attribute to function 'GetShortcutString'
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-16 19:32:23 +01:00
Christophe CURIS 1c4ad880d1 wmaker: Added 'const' attribute to local function 'drawMultiLineString'
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-16 19:32:23 +01:00
Christophe CURIS a092d8848a wmaker: Added 'const' attribute to local function 'getMaxStringWidth'
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-16 19:32:23 +01:00
Christophe CURIS f429055b4f wmaker: Added 'const' attribute to function 'ShrinkString'
The function contained an internal statement that would have
discarded the const attribute, but as this statement is actually
useless it have been simply removed.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-16 19:32:23 +01:00
Christophe CURIS a61f6c2484 Hide some compiler warning that are known and accepted
Because we have to use some X functions marked as deprecated to
ensure portability, we prefer to hide the warnings from standard
users, and keep them only for dev team.

[crm: Add -Wno-deprecated-declarations too]

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-16 19:03:24 +01:00
Christophe CURIS 39ecbc1084 WPrefs: Added XKeycodeToKeysym work-around to all other usage places
To ensure proper behaviour with X servers that do not support the
Xkb extension, implemented call to the fall-back legacy function
to the other places where it is being used, to ensure proper
behaviour in any case.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-16 18:53:05 +01:00
Christophe CURIS 0382dd5dd7 WPrefs: Fixed empty list of Mouse Grab Modifier problem
The original code was assuming that the Xkb extension is available
everywhere, which is not the case. This resulted in all modifiers
to be seen as NoSymbol, thus the empty list.

Now we initialize properly the Xkb extension at the start of the
program, and provide a work-around with the historical function in
the case the ext would not be available.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-16 18:53:05 +01:00
Christophe CURIS 5d2fb4ec97 WPrefs: Fix crash when switching to mouse settings panel
Apparently, there is some exceptional case when the 'Mouse Grab
Modifier' list can be empty, in which case the program would
crash.

This patch makes sure the program will not crash (that's a bad
behaviour), but does not solve the empty list case

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-16 15:02:55 +01:00
Christophe CURIS ebac6e7c83 Fixed incorrect format specifier
As reported by clang, the format used was %hi which is expecting
a short-typed argument, but the parameters are actually defined
as ints in the structure, so use only %i.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-11 08:22:47 +01:00
Christophe CURIS 1e76a78604 Fixed structure declaration syntax
As reported by Iain Patterson, the clang compiler is (by default)
strictier on having clean C syntax. A few structure definition
did not comply, now they do.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-10 22:34:59 +01:00
Christophe CURIS 528955c447 Added explicit prototype for callback function and fixed code accordingly
Using an unspecified prototype function for a callback is calling
for problem. Added an explicit prototype for the 2 callback
functions in WDefaultEntry, and fixed the functions used to match
it. The new code should be a lot safer.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-09 22:20:57 +01:00
Christophe CURIS 6dda67bc51 wmaker: Added attribute 'noreturn' to appropriate functions
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-09 18:46:56 +01:00
Christophe CURIS 34089d7661 Configure: Added check for compiler attribute 'noreturn'
This attribute for functions was not standard until recently, so
there are a few different possible syntax. With this patch, the
configure script will search for the proper syntax, and define what
is needed to have the attribute compile correctly.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-09 18:46:56 +01:00
Christophe CURIS 3c2fc82b6e WUtil: Avoid memory leak and misbehaviour on internal function 'getuserhomedir'
If the function was called more than once with different usernames
it would always return the path for the user on the first call,
which is not what would be expected.

Furthermore, if the function succeeds it allocated memory to save
this path but it was never freed.

The good thing is that the use case for this function is so rare
that it is improbable it was ever called, which explains why it
was never seen.

The new code always behaves as expected, and does not allocate
memory anymore to avoid wasting time and memory for such small
things, which is acceptable because this function is local.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-09 16:51:16 +01:00
Christophe CURIS 7889c50c36 Configure: Use automake's conditional to handle icon installation
The previous method was to use a custom install procedure, which
is a bit complex when automake can handle this for us, and as a
side effect it made 'distcheck' fail on uninstall procedure check.

The new method is to use a simple conditional and autoconf/automake
will do all the work for us.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-06-09 13:52:26 +01:00
Christophe CURIS 5a65dbeb3d WPrefs: Cleaned dangerous function prototype usage
- remove extern declaration in source file, use header instead

- add inclusion of header defining the functions of the file to
get the compiler to cross-check them

- marked static the functions that should not be visible ouside
their file
2013-05-12 01:01:20 +01:00
Christophe CURIS 549cefc47b util: Added a few missing 'static' attributes for functions 2013-05-12 01:01:20 +01:00
Christophe CURIS d517d5cac0 wmaker: Cleaned dangerous function prototype usage
- remove extern declaration in source file, use header instead

- add inclusion of header defining the functions of the file to
get the compiler to cross-check them

- marked static the functions that should not be visible ouside
their file
2013-05-12 01:01:20 +01:00
Christophe CURIS 4b89104aca WINGs: Added a few missing 'static' attributes to functions
Some functions are not meant to be visible by user; the use of the
attribute avoid risk of name clash with user functions at link
time.
2013-05-12 01:01:20 +01:00
Christophe CURIS 140249ad0c WINGs: Added include for header defining the funcion provided by the file
This allows the compiler to warn if the definition in the file is
no in line with what is exposed to the users of the function through
the header definition.
2013-05-12 01:01:20 +01:00
Christophe CURIS 8a58c8b568 WINGs: Moved declaration of extern variable to the global header
Having local extern declaration is dangerous because the compiler
is not able to cross-check if the type of the variable was defined
consistently.
2013-05-12 01:01:20 +01:00
Christophe CURIS 5c2a1ae1a1 WINGs: Place prototype of functions in WINGsP.h instead of local definition
It is a bad idea to declare the prototype of an external function
in a file as it won't allow the compiler to cross-check it.
2013-05-12 01:01:20 +01:00
Christophe CURIS 367d1f938d WINGs: Reorganised the private header
The declarations have been split by source file, adding the usual
separation mark. Removed these 2 prototypes:
 - W_SetFocusOfToplevel: case typo, the correct prototype already existed
in the file;
 - W_TextWidth: function is not defined anywhere
2013-05-12 01:01:20 +01:00
Christophe CURIS e2d816c7a2 WINGs: Removed cast to change function prototype
When a function is used as a call-back, it is dangerous to have
arguments with a type different than what is expected by the
call-back definition.

This patch sets the argument list to match what is expected by
the call-back prototype and inserts an explicit type conversion
at the beginning of the function.
2013-05-12 01:01:20 +01:00
Christophe CURIS bab90b2168 WINGs: Added explicit parameter list to function prototypes (Complex case)
It is dangerous to let the compiler know about a function without
letting him know the arguments because he won't be able to report
invalid calls.

This patch concern the cases where adding the arguments led to
problems because the functions were used as call-back. As it is
dangerous to have parameter mismatchs in call-back, setup the
args as expected by prototype and added explicit conversion inside
the concerned function, so the compiler will know and be able to
do what may be necessary.
2013-05-12 01:01:20 +01:00
Christophe CURIS 708bc27e3f WINGs: Added explicit parameter list to function prototypes (Simple cases)
It is dangerous to let the compiler know about a function without
letting him know the arguments because he won't be able to report
invalid calls.

This patch concern the cases where adding the arguments did not
need other code change.
2013-05-12 01:01:20 +01:00
Christophe CURIS a622197faa Added explicit 'void' to function that takes no argument
This is the correct way to tell that a function takes no
arguments, because an empty parameter list tells the compiler
that it is not yet defined, and is tolerated only for
compatibility with very old C compilers for whom prototypes
were not yet a defined language element.
2013-05-12 01:01:20 +01:00