On 18 January 2013 20:36, Thomas Young thomasyoung@free.fr wrote:
Hmm.. not sure what happens if the filename is UTF-8.
DOC_FILENAME is always UTF-8.
Basically, where some existing code (which is documented as supporting UTF-8 filenames) was doing;
filename = DOC_FILENAME(documents[i]); g_string_append(doc_list, filename); g_string_append_c(doc_list, '\n');
I am doing instead:
filename = DOC_FILENAME(doc); pos = sci_get_current_position(doc->editor->sci); line = sci_get_line_from_position(doc->editor->sci, pos); col = sci_get_col_from_position(doc->editor->sci, pos); g_string_append_printf(location, "%s:%d:%d\n", filename,
line + 1, col);
And what if filename contains a : ? Anyway it will be written in UTF-8, you will have to handle locale encoding elsewhere maybe.
Cheers Lex
On 18/01/13 09:10, Thomas Young wrote:
Cheers Steve.
Ok, I changed spaces to tabs, and a patch from diff output is attached. Will try and do things more properly next time!
Thomas
On 17/01/13 17:15, Steven Blatnick wrote:
I'm new too, but the first time I submitted something, they took a patch I attached to an email sent to this mailing list. Subsequent submissions, I signed up for a github account and forked geany and geany-plugins. Using git hub, changes can be submitted through a "pull request". I also signed up to SourceForge for submitting bugs.
Here is where I read about the process: http://www.geany.org/Contribute/Developers
So far I've found the people on this project have been helpful and friendly compared to my minor previous experiences with open source projects.
Welcome :-)
Steven Blatnick
On 01/17/2013 06:17 AM, Thomas Young wrote:
Hello,
I've hacked a small change into Geany locally, to help with integration with gdb.
Basically, what I've done is to add a '--print-location' command line option, which essentially just duplicates the functionality of the existing '--list-documents' option (through main.c/h and socket.c/h), but with the actual string generation bit that corresponds to build_document_list() changed to the following:
static gchar *build_location(void) { GString *location = g_string_new(NULL); const gchar *filename; gint pos, line, col;
GeanyDocument *doc = document_get_current(); if(doc) { filename = DOC_FILENAME(doc); pos = sci_get_current_position(doc->editor->sci); line = sci_get_line_from_position(doc->editor->sci, pos); col = sci_get_col_from_position(doc->editor->sci, pos); g_string_append_printf(location, "%s:%d:%d", filename, line +
1, col); g_string_append_c(location, '\n'); } return g_string_free(location, FALSE); }
So what the overall change does then is basically to allow you to query for the currently selected file, and current cursor location within that file, from outside of geany, like so:
thomas@MS-7752 ~ $ geany --print-location /home/thomas/Downloads/geany_git/src/socket.c:600:33
I can then use this in a python command within gdb (running completely separately within a terminal) to set break points for positions selected in files in Geany within having to actually type the whole filename and line number bit each time.
This was based on the nightly build for January 17th, and seems to be working correctly.
Should I submit a patch for this change? If so, how? (Not used to this whole open source malarky!)
I got the nightly build archive instead of using git, but I have copies of the source archive both before and after the change.
Is it possible for this change (or something similar) to be included in the Geany mainline?
Best regards,
Thomas _______________________________________________ Devel mailing list Devel@lists.geany.org https://lists.geany.org/cgi-bin/mailman/listinfo/devel
Devel mailing list Devel@lists.geany.org https://lists.geany.org/cgi-bin/mailman/listinfo/devel
Devel mailing list Devel@lists.geany.org https://lists.geany.org/cgi-bin/mailman/listinfo/devel
Devel mailing list Devel@lists.geany.org https://lists.geany.org/cgi-bin/mailman/listinfo/devel