utf: ast 2
[scilab.git] / scilab / modules / ast / src / cpp / types / library.cpp
index f85be43..7ba5646 100644 (file)
 #include <sstream>
 #include "macrofile.hxx"
 #include "library.hxx"
-#include "localization.hxx"
 #include "configvariable.hxx"
+#include "scilabWrite.hxx"
 
 extern "C"
 {
 #include <wchar.h>
-#include "os_swprintf.h"
+#include "os_string.h"
 }
 
 namespace types
 {
-Library::Library(const std::wstring& _wstPath) :
-    m_wstPath(_wstPath)
+Library::Library(const std::string& _path) :
+    m_path(_path)
 {
+#ifndef NDEBUG
+    Inspector::addItem(this);
+#endif
 }
 
 Library::~Library()
 {
     //delete all macrofile*
-    for (MacroMap::iterator it = m_macros.begin(); it != m_macros.end() ; ++it)
+    for (auto macro : m_macros)
     {
-        MacroFile* pMacro = it->second;
+        MacroFile* pMacro = macro.second;
         pMacro->DecreaseRef();
         if (pMacro->isDeletable())
         {
@@ -43,63 +46,65 @@ Library::~Library()
     }
 
     m_macros.clear();
+#ifndef NDEBUG
+    Inspector::removeItem(this);
+#endif
 }
 
-bool Library::toString(std::wostringstream& ostr)
+bool Library::toString(std::ostringstream& ostr)
 {
-    wchar_t output[1024] = {0};
-    os_swprintf(output, 1024, _W("Functions files location : %s.\n").c_str(), m_wstPath.c_str());
+    char output[1024] = {0};
+    os_sprintf(output, _("Functions files location : %s.\n"), m_path.c_str());
 
     ostr << output << std::endl;
 
-    int iLineLen = ConfigVariable::getConsoleWidth();
+    size_t iLineLen = (size_t)ConfigVariable::getConsoleWidth();
 
     size_t iCurrentLen = 0;
-    MacroMap::iterator it = m_macros.begin();
-    for (int i = 0; it != m_macros.end() ; ++it, ++i)
+    for (auto macro : m_macros)
     {
-        if (iCurrentLen + it->first.length() + 2 > iLineLen)
+        if (iCurrentLen + macro.first.length() + 2 > iLineLen)
         {
             ostr << std::endl;
             iCurrentLen = 0;
         }
-        ostr << it->first << "  ";
-        iCurrentLen += it->first.length() + 2;
+        ostr << macro.first << "  ";
+        iCurrentLen += macro.first.length() + 2;
     }
 
     ostr << std::endl;
+
     return true;
 }
 
-InternalType* Library::clone()
+Library* Library::clone()
 {
     IncreaseRef();
     return this;
 }
 
-bool Library::extract(const std::wstring & name, InternalType *& out)
+bool Library::extract(const std::string & name, InternalType *& out)
 {
     out = get(name);
     if (out == NULL)
     {
-        wchar_t szError[bsiz];
-        os_swprintf(szError, bsiz, _W("Unknown field : %ls.\n").c_str(), name.c_str());
-
-        throw std::wstring(szError);
+        char szError[bsiz];
+        os_sprintf(szError, _("Unknown field : %s.\n"), name.c_str());
+        throw std::string(szError);
     }
 
     return true;
 }
 
-void Library::add(const std::wstring& _wstName, MacroFile* _macro)
+void Library::add(const std::string& _stName, MacroFile* _macro)
 {
     _macro->IncreaseRef();
-    m_macros[_wstName] = _macro;
+    m_macros[_stName] = _macro;
 }
 
-MacroFile* Library::get(const std::wstring& _wstName)
+MacroFile* Library::get(const std::string& _stName)
 {
-    MacroMap::iterator it = m_macros.find(_wstName);
+    MacroMap::iterator it = m_macros.find(_stName);
     if (it != m_macros.end())
     {
         return it->second;
@@ -107,15 +112,18 @@ MacroFile* Library::get(const std::wstring& _wstName)
     return NULL;
 }
 
-std::list<std::wstring>* Library::getMacrosName()
+int Library::getMacrosName(std::list<std::string>& lst)
 {
-    std::list<std::wstring>* pOut = new std::list<std::wstring>;
-    MacroMap::iterator it = m_macros.begin();
-    for (; it != m_macros.end() ; ++it)
+    for (auto macro : m_macros)
     {
-        pOut->push_back(it->first);
+        lst.push_back(macro.first);
     }
 
-    return pOut;
+    return static_cast<int>(lst.size());
+}
+
+std::string Library::getPath()
+{
+    return m_path;
 }
 }