I run RC4 on MAC and have my own language tagging extension. It seems that I get a slick-c stack sometimes when I change focus from another program back into SE with that language file being the current file. Here is a picture of the stack and the stack trace from the stack.log file. Tagging is working for my simple tagging extension for this language. Any suggestions as to what to look for?
stack[2016-10-04T09:19:11Z] Slick-C STACK TRACE ******************************
stack[2016-10-04T09:19:11Z] Created on 10/4/2016 at 9:19:11 (9 ms)
stack[2016-10-04T09:19:11Z] SlickEdit Pro Version 21.0.0.10 Copyright 1988-2016 SlickEdit Inc.
stack[2016-10-04T09:19:11Z] Edit module and type "st -f <offset>" to get the
stack[2016-10-04T09:19:11Z] run-time error position
stack[2016-10-04T09:19:11Z]
stack[2016-10-04T09:19:11Z] error code=-3071
stack[2016-10-04T09:19:11Z] Variable element or variable not initialized
stack[2016-10-04T09:19:11Z]
stack[2016-10-04T09:19:11Z]tagwin.ex 1362 tagwin:restorePreviewWindow(
stack[2016-10-04T09:19:11Z] 1: ._typename()=PREVIEW-WINDOW-STACK-ITEM
stack[2016-10-04T09:19:11Z] 1: .stack-top=(null)
stack[2016-10-04T09:19:11Z] 1: .tree-line=<empty>
stack[2016-10-04T09:19:11Z] 1: .symbols=(null)
stack[2016-10-04T09:19:11Z] 1: .helpText=(null)
stack[2016-10-04T09:19:11Z] 1: .fileText=(null)
stack[2016-10-04T09:19:11Z] 1: .htmlCtlScrollInfo=(null)
stack[2016-10-04T09:19:11Z] p_window_id: 67
stack[2016-10-04T09:19:11Z] p_object: OI_FORM
stack[2016-10-04T09:19:11Z] p_name: _tbtagwin_form
stack[2016-10-04T09:19:11Z]tagwin.ex 9791 tagwin:_UpdateTagWindowNow(<empty>) p_window_id: 143 p_object: OI_SSTAB p_name: ctlsstab1
stack[2016-10-04T09:19:11Z]tagwin.ex 9986 _UpdateTagWindowDelayed(<empty>,0) p_window_id: 143 p_object: OI_SSTAB p_name: ctlsstab1
stack[2016-10-04T09:19:11Z]bufftabs.ex 2228 _tbbufftabs_form.ctlsstab1.on_highlight(-1,) p_window_id: 143 p_object: OI_SSTAB p_name: ctlsstab1
The language extension tagging file contains the following code
#pragma option(strict,on)
#include "slick.sh"
///////////////////////////////////////////////////////////////////////////////
// This function is called to search for declarations within an ATIF source
// file. It searches from the current cursor location for anything that
// appears to be a function or varaible declaration.
//
int atif_proc_search( _str &proc_name, int find_first )
{
int status;
if ( find_first )
{
//If this is the first time we are called, set up the search
//Functions that call xxx_proc_search will go to the top of the
//buffer each time
if ( proc_name:=='' )
{
//set proc_name equal to regular expression equal to a combination
//one or more alphanumerics,_'s,and -'s
proc_name=':v';
}
status=search("^(" proc_name "[:])",'ri');
}
else
{
//Just use repeat search. This is a faster.
status=repeat_search();
}
if ( status )
{
//There are probably no more tags.
//Return error code(Caller probably in a loop)
return(status);
}
// grab the line and parse out the variable name
_str line="";
get_line(line);
parse strip(line) with proc_name ':';
proc_name = tag_tree_compose_tag(proc_name,"","gvar",0);
//proc_name = proc_name :+ "(gvar)";
return(0);
}
///////////////////////////////////////////////////////////////////////////////
// Build a tag file.
// This function is used to automatically build a tag file for language-specific
// libraries and built-in functions. You can create a [lang].tagdoc file to
// document built-in functions. Look at [slickedit]/builtins/basic.tagdoc or
// html.tagdoc for some examples of how this is done.
int _atif_MaybeBuildTagFile( int &tfindex )
{
// maybe we can recycle tag file(s)
_str ext="atif";
_str tagfilename="";
if (ext_MaybeRecycleTagFile(tfindex,tagfilename,ext,ext)) {
return(0);
}
// now build the extension specific tag file
return(0);
//return ext_BuildTagFile(tfindex,
// tagfilename,
// ext,
// "ATIF Tags",
// false,
// "",
// ext_builtins_path(ext,ext),
// false,
// false
// );
}