added a new winix function "vim" - an editor based on the WYMeditor

git-svn-id: svn://ttmath.org/publicrep/winix/trunk@673 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
2010-11-04 16:46:19 +00:00
parent 7cf8d5d2d3
commit e6679a3192
23 changed files with 442 additions and 88 deletions

View File

@@ -237,6 +237,17 @@ return &(*etc);
}
Item * Dirs::GetVarDir()
{
DirContainer::Iterator etc = dir_tab.GetVar();
if( etc == dir_tab.End() )
return 0;
return &(*etc);
}
Item * Dirs::GetDir(const std::string & name, long parent)
{
DirContainer::ParentIterator i = dir_tab.FindFirstParent(parent);
@@ -411,8 +422,11 @@ bool Dirs::DelDir(long dir_id)
}
Error Dirs::AddDirectory(Item & item, bool add_to_dir_tab)
Error Dirs::AddDirectory(Item & item, bool add_to_dir_tab, Item ** pdir)
{
if( pdir )
*pdir = 0;
if( item.type != Item::dir )
return WINIX_ERR_DIR_EXPECTED;
@@ -421,10 +435,13 @@ Error Dirs::AddDirectory(Item & item, bool add_to_dir_tab)
if( status == WINIX_ERR_OK )
{
request->notify_code |= WINIX_NOTIFY_DIR_ADD;
Item * pdir = AddDir(item);
Item * d = AddDir(item);
if( add_to_dir_tab && request->dir_tab.back()->id == item.parent_id )
request->dir_tab.push_back(pdir);
if( add_to_dir_tab && !request->dir_tab.empty() && request->dir_tab.back()->id == item.parent_id )
request->dir_tab.push_back(d);
if( pdir )
*pdir = d;
}
return status;
@@ -432,5 +449,32 @@ return status;
Item * Dirs::CreateVarDir()
{
Item * var = GetVarDir();
if( var )
return var;
Item v;
Item * root = GetRootDir();
if( root )
{
v.parent_id = root->id;
v.user_id = -1;
v.group_id = -1;
v.privileges = 0755;
v.subject = "var";
v.url = "var";
v.type = Item::dir;
AddDirectory(v, false, &var);
}
return var;
}