8793 Commits

Author SHA1 Message Date
Jiří Techet
c1acde7eff read: move sInputFileInfo, sInputFile and File to read.c 2016-10-11 00:13:25 +02:00
Jiří Techet
63fbe2f6a2 c.c, lcpp.c: Avoid using File.mio
In uctags File is made private and mio gets inaccessible. At the moment
it's used by c.c and lcpp.c to get the parameter list. The C parser
"marks" the position where the argument list starts and once the right
")" is reached, string corresponding to this range is read from MIO,
filtered and used for parameter list.

For macro parameters the end of parameter list is handled in a slightly
obfuscated way - since the code from read.c reads the code by lines,
getInputFilePosition() returns the position of EOL so the parameter list
is read between '(' and EOL.

The code had to be modified to collect the potential parameter string
on the way - vString *signature has been added to lcpp.c and every
getcFromInputFile() and ungetcToInputFile() has been converted to
getcAndCollect() and ungetcAndCollect(), respectively, which in addition
perform the parameter collection when needed. Unfortunately this involves
many places in lcpp.c and we must be careful to always use these instead
of the standard ones from read.c.

We cannot rely on the implicit reading of whole lines and must add such
a code ourselves: just plain reading and collecting is enough. In addition
I added handling of multi-line signatures which was missing before.

In tests "bug1585745.cpp" and "cpp_destructor.cpp" the new code fixes
missing () in destructors when there's a space between tilde and name.
In "simple.d" test it fixes wrong function prototype.

The output of test "bug507864.c" seems to be worse than before but it was
already broken before and apparently the compiler is confused by it.
2016-10-11 00:03:18 +02:00
Jiří Techet
b36c5c54ed read: change macros into functions and move them into c
Still with commented-out code at some places and using "source" instead
of "input".

Also syncs includes and some minor stuff.
2016-10-09 22:58:59 +02:00
Jiří Techet
8e804b3145 entry: Add the remaining code from uctags
Also enable compilation of forgotten kind.c
2016-10-09 19:58:24 +02:00
Jiří Techet
00920360da entry: Sync initTagEntry() code
For now use "source" instead of "input" for various functions inside
read.c which we need as we don't initialize "input" yet.
2016-10-09 16:49:13 +02:00
Jiří Techet
f23b56b027 entry: make makeTakEntry() implementation closer to uctags
For now, comment-out code that we don't use and that doesn't work.
2016-10-09 15:22:42 +02:00
Jiří Techet
6ce628da2c entry: Some more or less formal changes 2016-10-09 14:47:54 +02:00
Jiří Techet
3f52bfb4ab entry: Take over uctags tag writing code
We don't use it so we can grab whatever is there.
2016-10-09 12:48:49 +02:00
Jiří Techet
4cde630dd7 Sync the beginning of entry.c/h
Mostly sTagEntryInfo and eTagFile taken from uctags and sync of includes.
2016-10-09 12:40:08 +02:00
Jiří Techet
848fa0dce3 Move eTagFile from entry.h to entry.c
Add access functions and use them outside entry.c. In addition to functions
defined in uctags setMaxTagsLine() had to be added because it is needed
in parser.c (at the moment, will be probably gone in some of the next
commits).
2016-10-09 11:56:49 +02:00
Jiří Techet
e685d956d6 Some sync of lcpp.c/h
Sync things which are possible to sync from lcpp.c/h. This file is heavily
dependent on c.c and since our c.c differs quite significantly, it's
not possible to use the universal-ctags implementation right now.
2016-10-09 11:04:51 +02:00
Jiří Techet
1a43ee2afa Grab uctags kind.c/h 2016-10-08 17:38:31 +02:00
Jiří Techet
2a9f473d78 Sync options.c/h (and introduce a lot of new garbage)
This commit started innocently as an attempt to grab options.c/h from
uctags. However it started referencing other files (which started
referencing other files) so the result is lots of new files are added.

When trying to make it compile, I run into many differences of existing
code which would have to be resolved. As all the added code is more or
less garbage for Geany, I just simply commented-out various function
bodies so it compiles without additional modifications. Should get fixed
once more files get synced with uctags.
2016-10-08 15:48:42 +02:00
Jiří Techet
0a0ed51792 Create geany.c/h and put isIgnoreToken()
This is a (hopefully) temporary file where we put geany-specific code
that for some reason has to be still in ctags. Put isIgnoreToken()
in this file.
2016-10-08 14:13:41 +02:00
Jiří Techet
f1dbf2cb7b Grab ctags implementation of sort.c/h
I haven't studies the changes much but this file is responsible for sorting
tag files which isn't interesing for us.
2016-10-08 14:13:41 +02:00
Jiří Techet
88cbe3871c Grab ctags version of general.h and make related changes
Added e_msoft.h, changed configure.ac to make more checks for header files
so we have corresponding macros defined, drop HAVE_REGEX macro check which
isn't defined any more, drop debugging function from lua parser (complains
about missing definition of errout).

Tested only on Linux (TODO: Windows, OS X)
2016-10-08 14:13:41 +02:00
Jiří Techet
37f015d993 Implement iFileGetLine() using gets() 2016-10-08 14:13:41 +02:00
Jiří Techet
a5dea8091b Grab all MIO changes from uctags 2016-10-08 14:13:41 +02:00
Jiří Techet
580beba0c7 Remove all unused code from main.c 2016-10-08 14:13:41 +02:00
Jiří Techet
ded5ea3eea Move debug related code to debug.c/h 2016-10-08 14:13:41 +02:00
Jiří Techet
7ebcfb77dc Define gcc attributes inside gcc-attr.h 2016-10-08 14:13:36 +02:00
Jiří Techet
85a894b097 Grab args.c/h uctags implementation
Basically dead code for us.
2016-10-08 14:12:45 +02:00
Jiří Techet
c6294e37c9 Grab uctags ctags.h and add repoinfo.c/h 2016-10-08 14:12:45 +02:00
Jiří Techet
2b8c7ae5ad Sync the rest of routines.c/h
Requires checking for errno.h limits.h in autoconf as there are ifdefs
around those in routines.c.
2016-10-08 14:12:45 +02:00
Jiří Techet
65f782b6d2 Don't initialize ExecutableProgram and ExecutableName
We shouldn't need it.
2016-10-08 14:12:45 +02:00
Jiří Techet
d5b60d2f21 Use uctags implementation of strstr() 2016-10-08 14:12:45 +02:00
Jiří Techet
3219d9783c Make sure that file extension is taken from file (not preceding directory) 2016-10-08 14:12:45 +02:00
Jiří Techet
9e7eade7c0 Use parse separator utilities in routines.c 2016-10-08 14:12:45 +02:00
Jiří Techet
f0e7af2c32 Make combinePathAndFile() return char * instead of vString
Also move eStrdup() to the correct position in the header.

In addition add the same includes into debug.h as those in uctags (the
removal of vstring inclusion inside routines.h causes compilation errors -
it would be best to explicitly include all needed files in every source to
avoid problems like this but let's do just syncing the two implementations
for now).
2016-10-08 14:12:45 +02:00
Jiří Techet
fb4fc07b6a Make tempFile() return MIO 2016-10-08 14:12:45 +02:00
Jiří Techet
ed01b7edb4 Grab uctags keyword.c/h and add types.h with type declarations
keyword.c/h contains only changes made by me. To make the sync complete,
add type.h with type declarations (and remove the added declarations from
their original locations).
2016-10-08 14:12:44 +02:00
Jiří Techet
a52137f414 Grab uctags implementation of strlist
Except missing mio_free() in stringListNewFromFile() which has been ported
to uctags.

Except the use of ptrarray for strlist implementation, there's nothing
interesting in the Geany version which would be worth preserving.
2016-10-08 14:12:44 +02:00
Jiří Techet
ed6d24bb9a Remove unused functions from options.c/h 2016-10-08 14:12:44 +02:00
Jiří Techet
2f1ad0232b Remove most uses of glib calls
Some special cases which require more work still remain, plus there's
still GRegex.
2016-10-08 14:12:44 +02:00
Jiří Techet
560107804c Drop some more unused functions from routines.c/h
Also get the error() implementation from error.c/h (modified slightly to
make sure exit() isn't called and which doesn't call errorPrinter() as
this one should be set somewhere else in the code and it doesn't happen
now).
2016-10-08 14:12:35 +02:00
Jiří Techet
d88a9dd3fc Eliminate uses of g_stat()
Convert g_stat() to stat() and introduce eStat() to routines.c/h and use
it instead of getFileSize() and isExecutable().

On the way grab implementations of isSameFile() and tempFile() from
universal-ctags (I haven't checked in detail if all the ifdef cases do the
right thing but these functions aren't probably called in Geany so
we don't have to worry much). Also drop unused setCurrentDirectory().
2016-10-06 17:20:36 +02:00
Jiří Techet
992306aec3 Add generic pointer array 2016-10-06 15:41:19 +02:00
Jiří Techet
227b808799 Grab the complete uctags vString implementation
All the changes in the first half of .c/.h were introduced by me in uctags
(and thus they are guaranteed to be great ;-).

The following functions were missing in our ctags implementation and are
added by this commit (currently unused):

extern vString *vStringNewOrClear (vString *const string);
extern char    *vStringDeleteUnwrap (vString *const string);
extern void vStringCatSWithEscaping (vString* b, const char *s);
extern void vStringCatSWithEscapingAsPattern (vString *output, const char* input);

read.c has been updated to use vStringResize() instead of
vStringAutoResize().
2016-10-06 15:33:24 +02:00
Colomban Wendling
7ae1d031ef Merge pull request #1251 from techee/bool
CTags: boolean to C99 bool conversion and vStringTerminate() removal
2016-10-04 18:10:24 +02:00
Jiří Techet
40396a392e ctags: drop vStringTerminate()
It's call is unnecesssary. Corresponds to universal-ctags commit
cfc45e3bd9000e8ce193399c7e0ecf2bbeb57977.
2016-10-04 18:06:33 +02:00
Jiří Techet
662765852f ctags: Use bool definitions from stdbool.h
Since Geany requires C99 parser, the patch just simply includes stdbool.h
in general.h and drops the TRUE, FALSE definitions inside the same file.
The rest is purely mechanical

boolean -> bool
TRUE -> true
FALSE -> false

plus some alignment fixes.

This patch corresponds to universal-ctags commit ce990805a0a0269c.
2016-10-04 18:05:54 +02:00
Colomban Wendling
12b9f27a79 Fix double escaping of markup in bold labels (oops)
2499b96ea1d1eb523733c95e7ec73af827b6032e fixed missing escaping of
markup text, but failed to remove explicit escaping from
ui_label_new_bold(), leading to dual escaping of bold labels.
2016-09-22 15:43:04 +02:00
Landrok
d8ee2ccf8e Fix some typos in French translation (#1227) 2016-09-19 09:33:47 +02:00
Enrico Tröger
2a2ae72834 Merge pull request #1166 from eht16/fix_template_error_message
Improve template command error message
2016-09-11 11:12:18 +02:00
Matthew Brush
6bc43f745e Merge pull request #1203 from codebrainz/document-data
Document data
2016-09-10 19:40:38 -07:00
Matthew Brush
cc18dd0e60 Gracefully handle proxies registering invalid extensions (#1212)
It is very hard to debug if the proxy plugin happens to give
extensions starting with a dot. If they do, detect this case, warn
in the debug messages, and fix the extension. It seems unlikely
that files with two dot extensions will be desired, so it should
case no harm.
2016-09-10 19:24:16 -07:00
Matthew Brush
7d172ceeb3 Improve GeanyProxyProbeResults a litte (#1213)
* Add GEANY_ prefix to enumerators.
* Use a discrete set of enumerators so the proxy doesn't have to
  worry about flag bitmasks, which isn't required.
* Update documentation.
* Use the new enumerators in Geany.
* Improve debug output for bogus values a bit.
2016-09-10 19:18:10 -07:00
Colomban Wendling
afaec63ffb Merge pull request #1160 from techee/ctags_sync
Ctags sync, part 1
2016-09-10 09:24:15 +02:00
Simon Marchi
13ef73d109 Recognize .exp (Expect) files as Tcl
Expect [1] scripts filenames generally end in .exp, although the code
itself is actually in Tcl.  I find my self manually selecting Tcl quite
often, so I think it would be nice if Geany would recognize it direcly
as Tcl.

[1] http://expect.sourceforge.net/

Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
2016-09-09 20:52:01 -07:00
Jiří Techet
63c054a61e #if 0 currently unused code to avoid compiler warning 2016-09-09 18:00:41 +02:00