Commit Graph
100 Commits
Author SHA1 Message Date
Christophe CURIS 1265873fa3 WMaker: removed use of dangerous RETRY macro in GetCommandForPid for Linux (Coverity #50267)
As pointed by Coverity, the function GetCommandForPid did use a macro
'RETRY' for the 'close' of file descriptor, which is not correct because
on success the function 'close' does not reset errno, and in case of
failure the file descriptor is not more valid anyway.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-20 21:29:57 +01:00
Christophe CURIS 1a64ca8275 WMaker: change conceptually imperfect code in drawerDestroy (Coverity #50265)
Factually, the program works because the function 'drawerRemoveFromChain'
uses only the address of the drawer and not the content of the structure,
but conceptually this address point to a storage space that has been
de-allocated, so that's calling for trouble for future code changes.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-20 21:29:57 +01:00
Christophe CURIS 68e4ccca58 WMaker: removed check that is always true in wDefaultsInitDomain (Coverity #50243)
As pointed by Coverity, the function 'wdefaultspathfordomain' cannot
return a NULL path, so it is not necessary to check for it.  (in the
present case, it led Coverity to think it was possible to have the
structure 'stbuf' uninitialised)

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-20 21:29:57 +01:00
Christophe CURIS 788a51c116 WMaker: fix memory leak in the window inspector when saving settings (Coverity #50175)
As pointed by Coverity, there is one case where the string returned by
WMGetTextFieldText could be left allocated.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-20 21:29:57 +01:00
Christophe CURIS e750f9307e WMaker: fix memory leak in the window inspector when saving settings (Coverity #50174)
As pointed by Coverity, there is one case where the application dictionary
which is created temporarily (when saving the changes in the Window
Inspector) could be left allocated. It is now freed in the common path to
avoid problems.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-20 21:29:57 +01:00
Christophe CURIS a75699faef WMaker: fix possible memory leak in the icon chooser dialog (Coverity #50173)
As reported by Coverity, it was possible to return early from the function
'listCallback' without de-allocating a temporary string. The string is now
requested after this early return.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-20 21:29:57 +01:00
Christophe CURIS bec0272584 WMaker: fix dangerous code in file scanning for wAdvancedInputDialog (Coverity #50172)
As pointer by Coverity, the function wstrappend may move the string in
memory (because that's what realloc does if it can't expand the allocated
buffer in-place), so it is important to use the returned address and not
assume the old pointer is still valid.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-20 21:29:57 +01:00
Christophe CURIS 32c8dc04ce WMaker: fix memory leak in windows saved state handling (Coverity #50171)
As pointed by Coverity, the caller of the function 'getSavedState' assumes
that if the function returns 0 then the wstate is not initialised. This was
not actually true, so this patch changes 'getSavedState' to behave as
expected.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-20 21:29:57 +01:00
Christophe CURIS 4501d4c078 WMaker: fix memory leak when respawning after crash (Coverity #50165)
As pointed by Coverity, the memory allocated to contain the argument list
for spawning ourself was never released.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-20 21:29:57 +01:00
Christophe CURIS 659519f306 WMaker: fix memory leak in the crash handling dialog (Coverity #50163)
As pointed by Coverity, if the function wShowCrashingDialogPanel is not
able to connect to the default screen, then the memory allocated for the
panel would be leaked.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-20 21:29:57 +01:00
Christophe CURIS c2a357fe1b WMaker: fix memory leak in app icon changing (Coverity #50139)
As pointed by Coverity, there are some cases where the name of the file
returned by wIconChooserDialog could be left unfreed.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-20 21:29:57 +01:00
Christophe CURIS 3a68e974b6 WMaker: removed unnecessary case handling in appicon setting
The function wIconChooserDialog already makes sure that it returns
NULL if its result would have been an empty string, so it is not
necessary to re-check this in setIconCallback, this leads to
more complicated code and can't be optimised by the compiler.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-20 21:29:57 +01:00
Christophe CURIS fab73f47c7 WMaker: fix memory leak in screen initialisation (Coverity #50134)
As pointed by Coverity, if the function wScreenInit fails to properly
attach to the screen then the storage structure and content were not
released before returning.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-20 21:29:56 +01:00
Christophe CURIS 9940073530 WMaker: fix memory leak in the switchpanel backgroung image (Coverity #50131)
As pointed by Coverity, if the target width or height for the center ended
being <= 0 then the image created to contain the generated assemblage would
be leaked.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-20 21:29:56 +01:00
Christophe CURIS 7d48855077 WMaker: fix memory leak in workspace switching (Coverity #50126)
As pointed by Coverity, if there's no window to unmap in a workspace, then
the array used to build the list of the windows to be unmapped for
workspace change would not be freed.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-20 21:29:56 +01:00
Christophe CURIS 9f2f94a174 WMaker: fix memory leak in root menu parser (Coverity #50123 and #50124)
As pointed by Coverity, if an invalid OPEN_MENU is used then the memory
allocated when parsing the line containing it would be leaked.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-20 21:29:56 +01:00
Christophe CURIS 741243a792 WMaker: fix memory leak in the root menu parser (Coverity #50122)
As pointed by Coverity, if the word "WITH" was used in the content of the
root menu definition then its string would not be freed.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-20 21:29:56 +01:00
Christophe CURIS bee02df72f WMaker: fix memory leak in wDockTrackWindowLaunch (Coverity #50120 and #50121)
As pointed by Coverity, the function 'ProgGetWMClass' always allocates the
strings returned in wm_class and wm_instance, so they always must be freed.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-20 21:29:56 +01:00
Christophe CURIS d292c62080 WMaker: fix memory leak in the windows icon chooser (Coverity #50117.2)
As pointed by Coverity, a string could be left unfreed in the case where
the window's attribute dialog is closed before an icon would be actually
chosen from the Icon Chooser Dialog.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-20 21:29:56 +01:00
Christophe CURIS dc4df6455a WMaker: fix memory leak in the docked apps icon chooser (Coverity #50117.1)
As pointed by Coverity, a string could be left unfreed in the case where
the docked application's settings dialog is closed before an icon would be
actually chosen from the Icon Chooser Dialog.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-20 21:29:56 +01:00
Christophe CURIS 4894e3fe4d WMaker: fix memory leak in window inspector (Coverity #50116)
As pointed by Coverity, in this specific case the string previously stored
in 'file' was lost when replaced with the string from 'db_icon'. The logic
have been simplified to avoid the case.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-20 21:29:56 +01:00
Christophe CURIS 43972d307a WMaker: fix memory leak in windows menu (Coverity #50109)
As pointed by Coverity, there was a memory leak when updating the shortcuts
in the menu for windows which occured when a shortcut was associated with
the window and this shortcut did not change.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-20 21:29:56 +01:00
Christophe CURIS 7f840db1aa WMaker: remove unnecessary check in Balloon show function (Coverity #50065)
As pointed by Coverity, there is a check to make sure a pointer is not NULL
but it is still dereferenced later in the function. As the code is done so
that this pointer cannot be NULL then it is not necessary to check that.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-20 21:29:56 +01:00
Christophe CURIS 8c6525a2b7 WPrefs: changed renderTexture to always fallback to solid black when image can't be loaded
As raised by Carlos R. Mafra and Doug Torrance, when an image is used in a
texture but the image cannot be loaded, there are some case where WPrefs
misbehaves.
This patch display a warning in every case where the image could not be
loaded, and always switch to black texture as a fallback, which was not the
case previously.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-19 19:02:10 +01:00
Christophe CURIS ca9dd144ae WINGs: removed unnecessary gotos in handleTextKeyPress
When the condition can be simply checked in an if, it is better to do that
than to use a flow breaking goto.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:01:43 +01:00
Christophe CURIS 3a191af838 WINGs: fix probable crash in drag'n'drop (Coverity #50264)
As reported by Coverity, the structure containing the callback functions
to handle the drag-and-drop actions could be freed but later re-used.
The correct behaviour is to keep the allocated memory for the structure.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:01:43 +01:00
Christophe CURIS 7a39f32816 WINGs: fix possible NULL pointer dereference (Coverity #50197)
As pointed by Coverity, the 'paintItem' function in the WMBrowser widget
is checking for nullity of its text argument, but before that it called the
strlen function which crashes on NULL pointer. This patch moves the strlen
call to the right place and reduce the lifespan of 'textLen' to highlight
incorrect tries to use the variable.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:01:43 +01:00
Christophe CURIS 28ce91a901 WINGs: fix check for NULL pointer in WMFilePanel (Coverity #50195)
As pointed by Coverity, there is a NULL pointer check at the end of the
function 'deleteFile' (which happens to not be necessary because wfree was
made to accept NULL pointers), however there are many things done before
that assumes the pointer is not NULL. The check is moved to where it
matters.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:01:43 +01:00
Christophe CURIS e65f527ad4 WINGs: fix incorrect usage of direction variable in updateStartForCurrentTextBlock (Coverity #50192)
As pointed by Coverity, the variable 'dir' is passed by reference because
the function may update it; as it is never NULL (the function is local)
checking for that does not make sense. From the actual usage, it seems
logical that the check should have been on the value, not on the pointer.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:01:43 +01:00
Christophe CURIS 21c891e669 WINGs: fix possible NULL pointer dereference in WMFreeColorPanel (Coverity #50189)
As pointed by Coverity, the code was checking for NULL pointer to avoid
misbehaviour, but it actually dereferenced the pointer beforehand so the
crash would still happen.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:01:43 +01:00
Christophe CURIS 354ec080ad WINGs: fix memory leak in requestHandler (Coverity #50136)
As pointed by Coverity, the allocated temporary storage was not freed. As
an allocation is not needed here, replaced by a local storage.
2014-05-18 23:01:43 +01:00
Christophe CURIS 482d8d3583 WINGs: fix memory leak in requestHandler (Coverity #50135)
As pointed by Coverity, the data returned by WMGetTextSelectedStream are
actually a newly allocated buffer, so we need to release it when we're done
with it.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:01:43 +01:00
Christophe CURIS 6831daf427 WINGs: fix memory leak in getStreamObjects (Coverity #50119)
As pointed by Coverity, the array used to build the result for the
function 'getStreamObjects' could leak in case of early return.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:01:43 +01:00
Christophe CURIS 0134720621 WINGs: fix memory leak in WMCreateTextForDocumentType (Coverity #50118)
As pointed by Coverity, a temporary WMArray was not freed after use.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:01:43 +01:00
Christophe CURIS d65430137d WINGs: fix memory leak in WMGetBrowserPaths (Coverity #50111)
As reported by Coverity, in the (rare) case where the wstrlcat would fail
the array for the result would not be freed before returning.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:01:43 +01:00
Christophe CURIS 47b801021c WINGs: fix memory leak in WColorPanel (Coverity #50102, #50103, #50104 and #50133)
As reported by Coverity, the function 'WMGetTextFieldText' allocates memory
to generate the result string, so it has to be freed.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:01:43 +01:00
Christophe CURIS 42febe3cec WINGs: fix check for NULL pointer in WMText selection (Coverity #50067)
As pointed by Coverity, there is a small check for NULL pointer when
handling triple-click selection in a WMText, however this check is only
partially implemented so the code would crash later anyway.
This patch implement an appropriate skip to avoid crash, and includes a
log message to help debug if the case happens.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:01:43 +01:00
Christophe CURIS c86de122f9 WINGs: do not crash on NULL title in WMSetWindowTitle (Coverity #50046)
As pointed by Coverity, despite apparent checks the function would fail if
trying to set a NULL title. Instead of trying to do over-complicated things
we just ignore (with a warning if NDEBUG is not set) the case. If user
wants an empty title, the correct way is to provide "" as we're not able to
remove a title.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:01:43 +01:00
Christophe CURIS 24e223dc27 WINGs: remove unreachable code in paintMenuEntry (Coverity #50042)
As pointed by coverity, the case 'index < 0' cannot be true because it was
already earlier and handled with an early return.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:01:43 +01:00
Christophe CURIS 3ab50b65b7 WUtil: remove duplicated information from 'wassertr(v)' message
The information about the File, Line and Function name that were included
in the assertion message are already present from the 'wwarning' macro, so
it is not necessary to include them in the macro's message.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:00:16 +01:00
Christophe CURIS 0350026866 WUtil: change 'wassertr(v)' to still perform check even if NDEBUG is set
In many places of the code these functions are counting on the "return"
effect of these macros to gracefully handle incorrect arguments. So, when
debug is not enabled, if it is okay to not display a message it is however
not good to completely skip the check and skip the early return.

This patch changes the macro to always perform the check and return to
avoid crashes, displaying a message only when NDEBUG is not set.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:00:16 +01:00
Christophe CURIS c5f103984a WUtil: fix undefined behaviour with $VARS in wexpandpath (Coverity #50244)
As reported by coverity, calling 'wexpandpath' with a path that contains
either '$()', '$(\0' or '$\0' would cause an undefined behaviour because
the 'buffer2' would be uninitialised.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:00:16 +01:00
Christophe CURIS a72c166b6e WUtil: make use of secure_getenv if the function is available
As pointed by Coverity (#50226), the function getenv can return unreliable
data, so if a sensitive application makes uses of the function 'wgethomedir'
or 'wusergnusteppath' we'd better use the GNU function secure_getenv which
ignore environment variable when used in a known critical cases.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:00:16 +01:00
Christophe CURIS 3aae412588 WUtil: fix type used in sizeof in function wtokensplit (Coverity #50208 + #50209)
As pointed by Coverity, the type used to calculate the size to allocate was
not the right one. It now gets the compiler to deduce it from the variable
for which the memory is allocated.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:00:16 +01:00
Christophe CURIS 6f7fa45a99 WUtil: remove unnecessary check in WMGetStandardUserDefaults (Coverity #50191)
As pointed by Coverity, the return value of the function 'wdefaultspathfordomain'
cannot be NULL, so it is not necessary to check for that.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:00:16 +01:00
Christophe CURIS 8f9b843990 WUtil: fixed possible problem in wcopy_file (Coverity #50141)
As pointed by Coverity, the macro RETRY does not behave as expected, as it
assumes that errno is cleared on successful 'fopen' call which is not the
case.

This patch removes the uses of the macro RETRY:
 - fopen: with the appropriate check
 - fread/fwrite: nothing because they do not set errno
 - fclose: nothing because retrying is not recommended

and took the opportunity to add a little bit more information in the error
messages.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:00:16 +01:00
Christophe CURIS 5255c364b8 WUtil: remove unnecessary check in wstrappend (Coverity #50138)
The function wrealloc never fails, and allocates enough storage to store
the resulting string, so it is useless to check if strcat failed.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:00:16 +01:00
Christophe CURIS 05f88d0aa7 WUtil: make sure wmalloc/wrealloc won't fail because of abort handler
As pointed by Coverity (#50074), despite the expected behaviour that
'wmalloc' should never return NULL, it may still happen if an abort handler
set by user (with wsetabort) does not call exit() as expected. In such
case we call exit ourself to be sure not to return NULL.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:00:16 +01:00
Christophe CURIS 978cb1f154 WUtil: fix posible crash in 'wgethomedir' (Coverity #50070)
As pointed by Coverity, if the user does not a an entry in the password
file then the function would assume its home path to be "/" but still
continue and later try to check for user->pw_dir which would dereference
the NULL pointer.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:00:16 +01:00
Christophe CURIS 92ecb3c3ed WMaker: rewrote generation of title for the Icon Chooser to avoid problems
The original code did have a few weaknesses, including:
 - possible buffer overflow, if the translation was too long;
 - possible crash, if either instance or class is NULL but not both

Now the appropriate length is calculated (not counting on a margin) and the
string is generated with the available elements.

As a side note, the variable was renamed from 'tmp' to 'title' for clarity.

This was highlighted by cppcheck (thanks to David Maciejak) and by
Coverity (bug #50078).

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:00:16 +01:00
Christophe CURIS cad716b5ef News: ran spell-checker on the file
Lang was set to en_US to have consistency in the file.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:00:16 +01:00
Christophe CURIS 2ffda2e663 News: described the new features for future 0.95.6 release 2014-05-18 23:00:15 +01:00
Christophe CURIS c45cab7bad News: marked the current changes as part of 0.95.5 and describe the drawers feature 2014-05-18 23:00:15 +01:00
Christophe CURIS 7857c9c204 News: added section to describe the changes that have occured in 0.95.4 2014-05-18 23:00:15 +01:00
Christophe CURIS 8e9a5b7582 News: added description of a change that may be interesting to users 2014-05-18 23:00:15 +01:00
Christophe CURIS e0ebcab4a7 News: created section dedicated to the changes related to 0.95.3 2014-05-18 23:00:15 +01:00
Christophe CURIS 904e8d2be4 WMaker: moved XGrab/XUngrabPointer into the conditional code
It is not necessary to call them when the command is not executable.
Took opportunity to change parameter to XSync which is supposed to be a
'Bool' type from Xlib, which means either True or False.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:00:15 +01:00
Christophe CURIS 39181154ab WINGs: changed use of 'if' on panel->rgbState into a switch
This allow compiler to raise a warning in case a new value would be added
to the enum; it also change order in the check so that WMGetButtonSelected
will be called only once, only for the case of interest.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-18 23:00:15 +01:00
Christophe CURIS bb7d9b48bd wmlib: remove wrong free highlighted by commit 65dc99d805
It is really unlikely that the free(menu) was the correct thing, it is more
likely that it was a typo instead of the appropriate 'free(menu)':
It would be excessive behaviour to free the complete menu only because an
entry cannot be added, and even if it were the case that would not be the
right way to do it because it would leak all the entries already allocated
for it.
(This fixes Coverity #50154 and #50155)

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-17 15:59:47 +01:00
Christophe CURIS ab348c6dc8 Add attribute 'noreturn' to a few functions pointed by clang
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-09 20:44:38 +01:00
Christophe CURIS 7caadb48de WPrefs: Updated translation source strings against source code
Some strings have been changed in the source code, this patch is updating
the corresponding 'msgid' in the 'po' files so that the translated words
will be found, and will not be lost in case of an automatic update on the
file.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-09 20:44:38 +01:00
Christophe CURIS d6dc62649b WPrefs: Make Opaque Move/Resize less cramped in the Window Handling panel
The icons were too tightly packed into their buttons and were not even
fully displayed, and the label of the checkbox could be split on 2 lines
unnecessarily.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-09 20:44:38 +01:00
Christophe CURIS 9f8363dc14 WMaker: rationalised the use of flags for window icons in the switchpanel
The flags were stored as 'char' but it is more logical to use int which is
"the natural size for integer on the host" and may help future evolution
if new flags are added;

The array is created with an initial size consistent with the number of
element we feed it with in 'makeWindowFlagsArray', this avoids a bunch
of realloc;

Fixed the type conversion that was not right, as pointed by clang.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-09 20:44:38 +01:00
Christophe CURIS 51ad8b7dc1 WINGs: Removed checks for code that can't fail
In the function 'wdefaultspathfordomain' there was a check to make sure the
generated path would fit in the allocated area, but this allocated area is
sized precisely to fit the path, so it cannot fail.

In the function 'getCurrentFileName' there were checks to make sure the
generated result string would fit in the allocated area, but this allocated
area is sized precisely to fit the path, so it cannot fail.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-09 20:42:34 +01:00
Christophe CURIS 546c148ac0 WINGs: safer cleanup in the 'WMReleaseApplication' function
The function would not behave correctly if called twice, and the
library may re-use de-allocated pointers if calling WINGs functions
after calling this function.

The goal is for our library to behave as cleanly as possible, so
that users may have a clearer hint in case of misuse on their side
to debug the problem.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-09 20:42:34 +01:00
Christophe CURIS 9ee94f8777 WINGs: removed unused variable in syslog messaging code
As pointed by the commpiler, the variable 'syslog_prefix' is not used
in the code, so it is removed.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-09 20:42:34 +01:00
Christophe CURIS f5167ae12d WUtil: Aligned msgid for error message translations against latest code
Due to some old and recent patches, the msgid used for translating the
error messages were not in line with the source code, now they are.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-09 20:42:34 +01:00
Christophe CURIS a2328d9842 WINGs: Fix crash on exit while trying to save user config changes
Recent patches has introduced the ability to exit cleanly from the WINGs
library, but this introduced some side effects because a function is
registered with 'atexit' to save user config on exit, which may not work
anymore because WMReleaseApplication frees some stuff needed for that task.

This patch handles this so that both method works, in case user of the lib
would forget to call the clean exit function.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-09 09:47:42 +01:00
Christophe CURIS 2eaac2a5d7 wrlib: add detection for ImageMagick using pkg-config
We rely on pkg-config first, because that is the traditional way to
query configs and because that's how the MagickWand API suggests to do.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-08 20:14:22 +01:00
Christophe CURIS f1a36b4c07 wrlib: do not initialize/release ImageMagick unnecessarily
Instead of calling 'MagickWandGenesis' every time an image is loaded, only
call it the first time, and similarly do not call 'MagickWandTerminus' if
the library has not been used before.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-08 20:14:22 +01:00
Christophe CURIS ebe7673bf6 wrlib: moved 'RShutdown' from 'load.c' to 'misc.c' for consistency
The cleanup function is actually not specific to loading images and could
do a lot more, so it is probably better placed in 'misc.c'
2014-05-08 20:14:22 +01:00
Christophe CURIS 8e0ec489a8 wrlib: changed the function used to detecting MagickWand
It looks like that the function 'MagickGetImagePixels' is part of
the "deprecate.h" header, at least in ImageMagick 6.8.8. As it is not
used in WRaster's code, it is safer to actually check for 'NewMagickWand'
that is being used and which is not yet deprecated.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-08 20:14:22 +01:00
Christophe CURIS 698cffacc5 wrlib: grouped the detection of ImageMagick in the CHECK_MAGICK macro
Took the opportunity to expand the WM_LIB_CHECK macro because it is not
suited for the case where compilation flags can be queried but was meant
for the case when they have to be guessed

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-08 20:14:22 +01:00
Christophe CURIS 9a0c3ab737 wrlib: light changes to the code for ImageMagick
- changed header used for MagickWand to the one specified in the online
documentation

- changed a comparison to 'MagickTrue' because its value does not allow a
compiler optimisation that would be expected in present case

- fixed potential crash, if loading with Magick fails it could return a
pointer to a de-allocated area

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-08 20:14:21 +01:00
Christophe CURIS f17ec34cce wrlib: fixed compilation to use the flags detected by configure for MagickWand
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-05-08 20:13:17 +01:00
Christophe CURIS 79bad0d14c wrlib: renamed compilation flags variables with a name less prone to clash 2014-05-08 20:13:17 +01:00
Christophe CURIS c3139e9d0c wrlib: fixed prototype for 'RShutdown' in the public API header
Took opportunity to move it closer to the beginning of the file to improve
its visibility to users of the lib
2014-05-08 20:13:17 +01:00
Christophe CURIS 9ad35c440f wmaker: Updated Armenian translation against changes in Info Panel
Only the 'msgid' was updated, to make sure gettext can still find
the old translation, but I am not fluent in Armenian and google
translate is not helpful here, so I can't do better for the
translated string.
2014-04-29 10:43:49 +01:00
Christophe CURIS bcc85e51c6 wmaker: Updated Dutch translation against changes in Info Panel
Only the 'msgid' was updated, to make sure gettext can still find
the old translation, but I am not fluent in Dutch so I can't do
better for the translated string.
2014-04-29 10:43:37 +01:00
Christophe CURIS f2201f45cf wmaker: update translations following string changes from previous commit
The 'msgid' were updated to ensure gettext will find them, and the
translation have been updated too to stay in line with the message
(within the limits of google translate's help, because I don't speak all
these languages).

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-04-29 10:43:17 +01:00
Christophe CURIS ed072cd578 wrlib: revert addition of an internal ImgFormat for ImageMagick
IM_MAGICK is not a file format, and in the current implementation it is
a special case for handling IM_UNKNOWN.
2014-04-29 10:15:27 +01:00
Christophe CURIS b6ffe90ec4 WINGs: Changed algorithm to resize a pixmap while keeping aspect ratio
The original code would not provide correctly sized images in some cases
of ratios on the original image and on the requested size.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-04-29 10:15:27 +01:00
Christophe CURIS 36159c614f wmaker: Scale image to make them fit in the preview panel
Signed-off-by: Carlos R. Mafra <crmafra@gmail.com>
2014-04-29 10:15:27 +01:00
Christophe CURIS 8b73356c4f wrlib: Improved file format detection
- remove header not needed anymore
- revert change for XPM to stay in line with the standard
- changed PNG to stuck to the standard
- increased GIF to the complete signature

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
Signed-off-by: Carlos R. Mafra <crmafra@gmail.com>
2014-04-24 10:56:51 +01:00
Christophe CURIS 34ca63c59f wrlib: Improved NETPBM support
- re-add PPM to the list of supported format, because legacy apps may
expect to find it from the list;

- add the copyright notice related to the code that have been borrowed
from Netpbm;

- fixed a small error in PPM format check in the loading procedure;

- and a few minor code improvements

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
Signed-off-by: Carlos R. Mafra <crmafra@gmail.com>
2014-04-24 10:56:50 +01:00
Christophe CURIS 36c3f7edf4 WUtil: Added missing const attribute to function arguments
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-04-24 10:47:45 +01:00
Christophe CURIS e8feda5414 WUtil: Fixed incorrect header being included
WUtil's file misc.c was including the private header for WINGs, where it
should have been using WUtil's public header instead.

Took opportunity to include the appropriate copyright header.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-04-24 10:47:45 +01:00
Christophe CURIS 0e99f6ea3c doc: Ran spell-checker on most text files present in the top directory
Lang was set to en_US; fixes a number of typos

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-04-24 10:47:45 +01:00
Christophe CURIS fd5c06c056 doc: Added info on git send-email in the 'perfect-patch' recommendation
As this is a feature that is quite handy, let's document it there so more
people can benefit from it, we'll probably gain from less patches that
mail software broke or that are hard to review, because not inlined.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-04-24 10:47:45 +01:00
Christophe CURIS 153f5250bc doc: Minor updates to the main README file
Including proper instructions for compiling with debug enabled;
removing offensive remark (even if true); removing deprecated docklib stuff.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-04-24 10:47:44 +01:00
Christophe CURIS dcd08355ed test: Added a few comments to explain things
As this code may be used as an example, we'd better do things clear

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-04-24 10:47:44 +01:00
Christophe CURIS c13236c2e6 WPrefs: Completely removed function 'makeTitledIcon' that did nothing
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-04-24 10:47:44 +01:00
Christophe CURIS 4e70bdb5cd WPrefs: Removed \n from label as the widget does at better job at splitting lines
This explicit \n caused a bad line split in the displayed text; without it
the natural line splitting keeps the text on 2 lines instead of 3.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-02-13 09:02:38 +00:00
Christophe CURIS ecfeb8bc1c WPrefs: Resized frames inside Mouse Settings panel to avoid label truncated
Some labels were truncated because the frame containing them was a bit
short; now the frames on the left have been shrunk (they had too much
margin) so the frames on the right can be expanded to have the labels fully
visible.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2014-02-13 09:02:38 +00:00
Christophe CURIS 101e24b0be Fixed xinerama detection
As reported by David Maciejak, when libXinerama was not found on the
system, the configure script still tried to search for associated
header and stopped all with unclear message.

The proper behaviour that was expected is to accept silently that
libXinerama may not be missing, and only stop compilation when the lib
is present but not its header.
2014-02-13 09:02:38 +00:00
Christophe CURIS d30b942b9e WPrefs: Moved widgets in Workspace panel so that label is not truncated
A label was truncated because the widget next to it was too close for
historical reasons; now that the frame is wide enough the Pop-up Button
widget at its left is pushed further apart so the label for the position
of the workspace name can be fully visible.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-12-30 18:13:33 +00:00
Christophe CURIS 5770e53c50 Fixed a few improper macro usages
Added compiler checks for some improper macro usage and fixed the problems
pointed by gcc.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-12-30 18:13:33 +00:00
Christophe CURIS 895a6e97e1 WINGs: Added 'const' attribute to function 'WMCreateHashTable'
Although this is a modification of the public API, this patch does not
change the binary interface, and the attribute does not add a constraint
on the parameter for the caller so we do not break the source compatibility
either.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-12-30 18:11:07 +00:00
Christophe CURIS 23ac316d1e utils: Added a few missing attributes to local variables
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-12-30 18:11:07 +00:00
Christophe CURIS c16c1a32af WPrefs: Added a few missing const attributes
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
2013-12-30 18:11:06 +00:00