mgloadscript.cpp
来自「monqueror一个很具有参考价值的源玛」· C++ 代码 · 共 85 行
CPP
85 行
#include <assert.h>#include <string.h>#include "mgloader.h"#include "mgloadscript.h"#include "cachescript.h"#include "mgmessage.h"#define DEBUG_BY_XHTANG 0using namespace DOM;using namespace khtml;MGScriptLoader::MGScriptLoader(){ setType(MGLOADERTYPE_SCRIPT);} MGScriptLoader::~MGScriptLoader(){}bool MGScriptLoader::LoadedMsgFromNet( unsigned char *url ,unsigned char *buf,int length){ char s[URL_TEMPNAMELENGTH+1]; bool bsucc = 0; bsucc = MGLoadObject::LoadedMsgFromNet(url,buf,length,s); MGCachedScript *cachedScript=0; FromUrlLoaded(url,&cachedScript); if( !cachedScript ) return 0; if( bsucc ) cachedScript->LoadDataFromTempFile(s); else cachedScript->error(); NotifyDataProcessed(MSG_SCRIPTDATAPROCESSED); return 1;}void MGScriptLoader::FromUrlLoaded( unsigned char *url ,MGCachedScript **cachedScript){ *cachedScript=SeekLoadListByUrl(url)?m_load.current()->cachedScript:0;}MGCachedScript* MGScriptLoader::requestScript( unsigned char *url ){ char s[URL_TEMPNAMELENGTH+1],t[URL_TEMPNAMELENGTH+1]; if(isLocalFile(url)){ MGCachedScript *alocal = new MGCachedScript(url,1); NotifyDataProcessed(MSG_SCRIPTDATAPROCESSED); return alocal; } if(isLoaded(url)){ strcpy(s,m_load.current()->TempName); CompleteTempName(s); return new MGCachedScript((unsigned char*)s); } if(isRequested(url)) return 0; strcpy(s,"scr-"); sprintf(t,"%d",++m_nRequested); strcat(s,t); if(strlen((char *)url)>=4&&*(url+strlen((char *)url)-4)=='.') strcat(s,(char *)url+strlen((char *)url)-4); else strcat(s,".js"); LoadUrlStruct *sus=new LoadUrlStruct();// strcpy(sus->url,url); strncpy((char *)sus->url,(char *)url,URL_STRINGMAXLENGTH); sus->url[URL_STRINGMAXLENGTH] = 0; strncpy(sus->TempName,s,URL_TEMPNAMELENGTH); MGCachedScript* cachedScript= new MGCachedScript(url); sus->cachedScript = cachedScript; m_req.append(sus); RequestMsgToNet(sus->url); return cachedScript;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?