コード例 #1
0
ファイル: mainmenu.cpp プロジェクト: billfm/billfm
int SetApplication(const char * app, const char * filename)
{
	gchar * p=GetExt(app);
	if(!p) return 1;
	if(strcmp(p,"desktop")) return 1;

	char * ext=GetExt(filename);
	if(!ext) return 1;

//	ClassString setfile = g_strdup_printf("%s/.config/billfm/mime2command.txt",g_get_home_dir());
	ClassString setfile=g_build_filename(config_path,"mime2command.txt",NULL);
	FILE * f = fopen (setfile.s,"a+");
	if(!f)
	{	
		printf("Not open %s\n",setfile.s);
		return 1;
	}	

	ClassString str=g_strdup_printf("%s %s\n",ext,app);
	fwrite(str.s,strlen(str.s),1,f);
	fclose(f);

	InsertCommand(ext,g_strdup(app));
	return 0;
}
コード例 #2
0
ファイル: cmddata.cpp プロジェクト: MisterZeus/SNES-Tracker
void CommandData::ProcessCommand()
{
#ifndef SFX_MODULE

  const wchar *SingleCharCommands=L"FUADPXETK";
  if (Command[0]!=0 && Command[1]!=0 && wcschr(SingleCharCommands,Command[0])!=NULL || *ArcName==0)
    OutHelp(*Command==0 ? RARX_SUCCESS:RARX_USERERROR); // Return 'success' for 'rar' without parameters.

#ifdef _UNIX
  if (GetExt(ArcName)==NULL && (!FileExist(ArcName) || IsDir(GetFileAttr(ArcName))))
    wcsncatz(ArcName,L".rar",ASIZE(ArcName));
#else
  if (GetExt(ArcName)==NULL)
    wcsncatz(ArcName,L".rar",ASIZE(ArcName));
#endif

  if (wcschr(L"AFUMD",*Command)==NULL)
  {
    if (GenerateArcName)
      GenerateArchiveName(ArcName,ASIZE(ArcName),GenerateMask,false);

    StringList ArcMasks;
    ArcMasks.AddString(ArcName);
    ScanTree Scan(&ArcMasks,Recurse,SaveSymLinks,SCAN_SKIPDIRS);
    FindData FindData;
    while (Scan.GetNext(&FindData)==SCAN_SUCCESS)
      AddArcName(FindData.Name);
  }
  else
    AddArcName(ArcName);
#endif

  switch(Command[0])
  {
    case 'P':
    case 'X':
    case 'E':
    case 'T':
    case 'I':
      {
        CmdExtract Extract(this);
        Extract.DoExtract();
      }
      break;
#ifndef SILENT
    case 'V':
    case 'L':
      ListArchive(this);
      break;
    default:
      OutHelp(RARX_USERERROR);
#endif
  }
  if (!BareOutput)
    mprintf(L"\n");
}
コード例 #3
0
ファイル: cmddata.cpp プロジェクト: ProfDrLuigi/zanka
void CommandData::ProcessCommand()
{
#ifndef SFX_MODULE
  if (Command[1] && strchr("FUADPXETK",*Command)!=NULL || *ArcName==0)
    OutHelp();

#ifdef _UNIX
  if (GetExt(ArcName)==NULL && (!FileExist(ArcName) || IsDir(GetFileAttr(ArcName))))
    strcat(ArcName,".rar");
#else
  if (GetExt(ArcName)==NULL)
    strcat(ArcName,".rar");
#endif

  if (strchr("AFUMD",*Command)==NULL)
  {
    StringList ArcMasks;
    ArcMasks.AddString(ArcName);
    ScanTree Scan(&ArcMasks,Recurse,SaveLinks,SCAN_SKIPDIRS);
    FindData FindData;
    while (Scan.GetNext(&FindData)==SCAN_SUCCESS)
      AddArcName(FindData.Name,FindData.NameW);
  }
  else
    AddArcName(ArcName,NULL);
#endif

  switch(Command[0])
  {
    case 'P':
    case 'X':
    case 'E':
    case 'T':
    case 'I':
      {
        CmdExtract Extract;
        Extract.DoExtract(this);
      }
      break;
#if !defined(GUI) && !defined(SILENT)
    case 'V':
    case 'L':
      ListArchive(this);
      break;
    default:
      OutHelp();
#endif
  }
#ifndef GUI
  if (!BareOutput)
    mprintf("\n");
#endif
}
コード例 #4
0
ファイル: pack_reader.cpp プロジェクト: f3yagi/mysrc
char *ReadFileBuf(char *name, int *size)
{
    FILE *fp;
    char *buf, *ext;
    int txt = 1;
    int n;

    ext = GetExt(name);
    if (!StrCmp(ext, ".txt")) {
        txt = 1;
    } else {
        txt = 0;
    }
    fp = FOpen(name, "rb");
    if (fp == NULL) {
        return NULL;
    }
    fseek(fp, 0, SEEK_END);
    n = ftell(fp);
    fseek(fp, 0, SEEK_SET);
    buf = (char *)Malloc(sizeof(char) * n);
    fread(buf, sizeof(char), n, fp);
    if (txt) {
        buf[n - 1] = '\0';
    }
    FClose(fp);
    *size = n;
    return buf;
}
コード例 #5
0
ファイル: filcreat.cpp プロジェクト: ccarpo/ComicStreamer
bool GetAutoRenamedName(wchar *Name,size_t MaxNameSize)
{
  wchar NewName[NM];
  size_t NameLength=wcslen(Name);
#ifdef _ANDROID
  if (NameLength>ASIZE(NewName)-10)
    return false;
#endif
  wchar *Ext=GetExt(Name);
  if (Ext==NULL)
    Ext=Name+NameLength;
  for (uint FileVer=1;;FileVer++)
  {
#ifdef _ANDROID // No swprintf in Android NDK r9.
    uint NamePrefixLength=Ext-Name;
    wcsncpy(NewName,Name,NamePrefixLength);
    wcscpy(NewName+NamePrefixLength,L"(");
    itoa(FileVer,NewName+NamePrefixLength+1,ASIZE(NewName)-NamePrefixLength-1);
    wcsncatz(NewName,L")",ASIZE(NewName));
    wcsncatz(NewName,Ext,ASIZE(NewName));
#else
    swprintf(NewName,ASIZE(NewName),L"%.*ls(%u)%ls",uint(Ext-Name),Name,FileVer,Ext);
#endif
    if (!FileExist(NewName))
    {
      wcsncpyz(Name,NewName,MaxNameSize);
      break;
    }
    if (FileVer>=1000000)
      return false;
  }
  return true;
}
コード例 #6
0
ファイル: nez.c プロジェクト: wbb1977/modo_android
static int CheckExt(char *filename)
{
	int i;
	char *ext = GetExt(filename);
	for (i = 0; nez_extlist[i]; i++) if (!xstricmp(ext, nez_extlist[i])) return 1;
	return 0;
}
コード例 #7
0
ファイル: mime.cpp プロジェクト: billfm/billfm
static int GetMimeForFile(const char * name, struct stat * file_stat)
{

	if(S_ISDIR(file_stat->st_mode))	return 1;
	if(S_ISFIFO(file_stat->st_mode))	return 0;
	ClassString p=GetExt(name);
	if(p.s)
	{	
		if(!strcmp(p.s,"desktop"))
		{
			ClassString s=GetIconDesktopName(name);
			if(!s.s)
			{	
				return 0;
			}	
			return InsertIconName(s.s);
		}
		InfoMime * info= find_mime(p.s);	
		if(info)
		{
			if(info->icon_index) return info->icon_index;
		}
	}

	return IsExecute(name,file_stat,0);
}
コード例 #8
0
ファイル: pathfn.cpp プロジェクト: BITINT/DEFCON2
void NextVolumeName(char *ArcName,bool OldNumbering)
{
  char *ChPtr;
  if ((ChPtr=GetExt(ArcName))==NULL)
  {
    strcat(ArcName,".rar");
    ChPtr=GetExt(ArcName);
  }
  else
    if (ChPtr[1]==0 || stricomp(ChPtr+1,"exe")==0 || stricomp(ChPtr+1,"sfx")==0)
      strcpy(ChPtr+1,"rar");
  if (!OldNumbering)
  {
    ChPtr=GetVolNumPart(ArcName);

    while ((++(*ChPtr))=='9'+1)
    {
      *ChPtr='0';
      ChPtr--;
      if (ChPtr<ArcName || !isdigit(*ChPtr))
      {
        for (char *EndPtr=ArcName+strlen(ArcName);EndPtr!=ChPtr;EndPtr--)
          *(EndPtr+1)=*EndPtr;
        *(ChPtr+1)='1';
        break;
      }
    }
  }
  else
    if (!isdigit(*(ChPtr+2)) || !isdigit(*(ChPtr+3)))
      strcpy(ChPtr+2,"00");
    else
    {
      ChPtr+=3;
      while ((++(*ChPtr))=='9'+1)
        if (*(ChPtr-1)=='.')
        {
          *ChPtr='A';
          break;
        }
        else
        {
          *ChPtr='0';
          ChPtr--;
        }
    }
}
コード例 #9
0
ファイル: pathfn.cpp プロジェクト: KyleSanderson/mpc-hc
void NextVolumeName(wchar *ArcName,uint MaxLength,bool OldNumbering)
{
  wchar *ChPtr;
  if ((ChPtr=GetExt(ArcName))==NULL)
  {
    wcsncatz(ArcName,L".rar",MaxLength);
    ChPtr=GetExt(ArcName);
  }
  else
    if (ChPtr[1]==0 && wcslen(ArcName)<MaxLength-3 || wcsicomp(ChPtr+1,L"exe")==0 || wcsicomp(ChPtr+1,L"sfx")==0)
      wcscpy(ChPtr+1,L"rar");
  if (!OldNumbering)
  {
    ChPtr=GetVolNumPart(ArcName);

    while ((++(*ChPtr))=='9'+1)
    {
      *ChPtr='0';
      ChPtr--;
      if (ChPtr<ArcName || !IsDigit(*ChPtr))
      {
        for (wchar *EndPtr=ArcName+wcslen(ArcName);EndPtr!=ChPtr;EndPtr--)
          *(EndPtr+1)=*EndPtr;
        *(ChPtr+1)='1';
        break;
      }
    }
  }
  else
    if (!IsDigit(*(ChPtr+2)) || !IsDigit(*(ChPtr+3)))
      wcscpy(ChPtr+2,L"00");
    else
    {
      ChPtr+=3;
      while ((++(*ChPtr))=='9'+1)
        if (*(ChPtr-1)=='.')
        {
          *ChPtr='A';
          break;
        }
        else
        {
          *ChPtr='0';
          ChPtr--;
        }
    }
}
コード例 #10
0
ファイル: m_ident.cpp プロジェクト: TuSuNaMi/ircd-sakura
	void OnSyncUserMetaData(userrec* user, Module* proto,void* opaque, const std::string &extname, bool displayable)
	{
		if ((displayable) && (extname == "IDENT"))
		{
			std::string* ident;
			if (GetExt("IDENT", ident))
				proto->ProtoSendMetaData(opaque, TYPE_USER, user, extname, *ident);
		}
	}
コード例 #11
0
ファイル: filcreat.cpp プロジェクト: pfalcon/PhotoTvViewer
bool GetAutoRenamedName(char *Name,wchar *NameW)
{
  char NewName[NM];
  wchar NewNameW[NM];

  if ((Name!=NULL && strlen(Name)>ASIZE(NewName)-10) || 
      (NameW!=NULL && wcslen(NameW)>ASIZE(NewNameW)-10))
    return(false);
  char *Ext=NULL;
  if (Name!=NULL && *Name!=0)
  {
    Ext=GetExt(Name);
    if (Ext==NULL)
      Ext=Name+strlen(Name);
  }
  wchar *ExtW=NULL;
  if (NameW!=NULL && *NameW!=0)
  {
    ExtW=GetExt(NameW);
    if (ExtW==NULL)
      ExtW=NameW+wcslen(NameW);
  }
  *NewName=0;
  *NewNameW=0;
  for (int FileVer=1;;FileVer++)
  {
    if (Name!=NULL && *Name!=0)
      sprintf(NewName,"%.*s(%d)%s",int(Ext-Name),Name,FileVer,Ext);
    if (NameW!=NULL && *NameW!=0)
      sprintfw(NewNameW,ASIZE(NewNameW),L"%.*s(%d)%s",int(ExtW-NameW),NameW,FileVer,ExtW);
    if (!FileExist(NewName,NewNameW))
    {
      if (Name!=NULL && *Name!=0)
        strcpy(Name,NewName);
      if (NameW!=NULL && *NameW!=0)
        wcscpy(NameW,NewNameW);
      break;
    }
    if (FileVer>=1000000)
      return(false);
  }
  return(true);
}
コード例 #12
0
ファイル: profilebrowser.cpp プロジェクト: ifish12/WiiTweet
static bool ParseProfilesDir()
{
	if(!dir)
		return false;

	char *ext;
	struct dirent *entry = NULL;

	int i = 0;

	while(i < MAX_BROWSER_SIZE)
	{
		entry = readdir(dir);

		if(entry == NULL)
			break;

		if(entry->d_name[0] == '.' && entry->d_name[1] != '.')
			continue;

		if(strcmp(entry->d_name, "..") == 0)
			continue;

		if(entry->d_type==DT_DIR) continue;

		ext = GetExt(entry->d_name);
		if(ext == NULL || stricmp(ext, "wtp") != 0)
			continue;

		if(!AddBrowserEntry())
		{
			break;
		}

		snprintf(browserList[browser.numEntries+i].filename, MAXJOLIET, "%s", entry->d_name);
		StripExt(browserList[browser.numEntries+i].displayname, browserList[browser.numEntries+i].filename); // hide file extension

		i++;
	}

	// Sort the file list
	if(i >= 0)
		qsort(browserList, browser.numEntries+i, sizeof(BROWSERENTRY), FileSortCallback);

	browser.numEntries += i;

	if(entry == NULL)
	{
		closedir(dir); // close directory
		dir = NULL;
		return false; // no more entries
	}
	return true; // more entries
}
コード例 #13
0
ファイル: oggencall.cpp プロジェクト: FujiGameJam/fuji
void ConvertWav(const char *pSearch)
{
	WIN32_FIND_DATA fd;

	char poo[1024];
	strcpy(poo, pSearch);
	strcat(poo, "\\*");

	HANDLE find = FindFirstFile(poo, &fd);

	if(find == INVALID_HANDLE_VALUE)
	{
		printf("Something went very wrong :(\n");
		return;
	}

	BOOL found = true;

	while(found)
	{
		if(strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, ".."))
		{
			if(fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
			{
				strcpy(poo, pSearch);
				strcat(poo, "\\");
				strcat(poo, fd.cFileName);
				ConvertWav(poo);
			}
			else if(!stricmp(GetExt(fd.cFileName),"wav"))
			{
				strcpy(poo, "C:\\oggenc -q4 \"");
				strcat(poo, pSearch);
				strcat(poo, "\\");
				strcat(poo, fd.cFileName);
				strcat(poo, "\"");

				system(poo);

				strcpy(poo, "del \"");
				strcat(poo, pSearch);
				strcat(poo, "\\");
				strcat(poo, fd.cFileName);
				strcat(poo, "\"");

				system(poo);
			}
		}

		found = FindNextFile(find, &fd);
	}

	FindClose(find);
}
コード例 #14
0
ファイル: mime.cpp プロジェクト: billfm/billfm
GdkPixbuf * GetIconByName(const char * name, int size)
{
    if(name[0]=='~')
	{	
		ClassString str=g_strdup_printf("%s%s",g_get_home_dir(),&name[1]);
		return gdk_pixbuf_new_from_file_at_scale(str.s,size,size,1,0);
	}	
	if(name[0]=='/')
	{
		return gdk_pixbuf_new_from_file_at_scale(name,size,size,1,0);
	}

	if(name[0]=='.')
	{
		ClassString str=g_strdup_printf("%s%s",app_path,&name[1]);
		return gdk_pixbuf_new_from_file_at_scale(str.s,size,size,1,0);
	}
	
	GtkIconTheme * icon_theme = gtk_icon_theme_get_default();
	GtkIconInfo* inf = gtk_icon_theme_lookup_icon( icon_theme, name, size, 
	                                              GTK_ICON_LOOKUP_USE_BUILTIN );
	if(!inf)
	{
		ClassString ext=GetExt(name);
		if(ext.s)
		{
			gchar * new_name=g_strdup(name);
			new_name[strlen(name)-1-strlen(ext.s)]=0;
			inf = gtk_icon_theme_lookup_icon( icon_theme, new_name, size, 
	                                              GTK_ICON_LOOKUP_USE_BUILTIN );			
		}
	}

	if(inf)
	{
		const char * file = gtk_icon_info_get_filename( inf );
		if(file)
		{	
			GdkPixbuf * pixbuf=gdk_pixbuf_new_from_file( file, NULL );
			if(pixbuf)
			{	
				return gdk_pixbuf_scale_simple(pixbuf,size,size,GDK_INTERP_BILINEAR);
			}	
		}	
			
	} else
	{
		printf("Not found inf %s\n",name);
	}	
		

	return 0;
}
コード例 #15
0
ファイル: cmddata.cpp プロジェクト: sevenshine/crackRar
void CommandData::ProcessCommand()
{
#ifndef SFX_MODULE
  const char *SingleCharCommands="FUADPXETK";
  if (Command[1] && strchr(SingleCharCommands,*Command)!=NULL || *ArcName==0)
    OutHelp();

  	  //get filename *ArcName
#ifdef _UNIX
  if (GetExt(ArcName)==NULL && (!FileExist(ArcName) || IsDir(GetFileAttr(ArcName))))
    strcat(ArcName,".rar");
#endif

  	  //printf("test4  %c  %s\n",*Command,ArcName);
  	  //找文件,将ArcName传到FindData.Name
  if (strchr("AFUMD",*Command)==NULL)
  {
    StringList ArcMasks;
    ArcMasks.AddString(ArcName);
    ScanTree Scan(&ArcMasks,Recurse,SaveLinks,SCAN_SKIPDIRS);
    FindData FindData;
    while (Scan.GetNext(&FindData)==SCAN_SUCCESS)
      AddArcName(FindData.Name,FindData.NameW);		//FindData.Name 	"ere.rar"
  }
#endif

  switch(Command[0])
  {
    case 'P':
    case 'X':
    case 'E':
    case 'T':
    case 'I':
      {
    	printf("\nXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n");
        CmdExtract Extract;
        Extract.DoExtract(this);
        printf("\nXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n");
      }
      break;
#ifndef SILENT
    case 'V':
    case 'L':
      ListArchive(this);
      break;
    default:
      OutHelp();
#endif
  }
  if (!BareOutput)
    mprintf("\n");
}
コード例 #16
0
ファイル: pathfn.cpp プロジェクト: KyleSanderson/mpc-hc
// Get the name of first volume. Return the leftmost digit of volume number.
wchar* VolNameToFirstName(const wchar *VolName,wchar *FirstName,size_t MaxSize,bool NewNumbering)
{
  if (FirstName!=VolName)
    wcsncpyz(FirstName,VolName,MaxSize);
  wchar *VolNumStart=FirstName;
  if (NewNumbering)
  {
    wchar N='1';

    // From the rightmost digit of volume number to the left.
    for (wchar *ChPtr=GetVolNumPart(FirstName);ChPtr>FirstName;ChPtr--)
      if (IsDigit(*ChPtr))
      {
        *ChPtr=N; // Set the rightmost digit to '1' and others to '0'.
        N='0';
      }
      else
        if (N=='0')
        {
          VolNumStart=ChPtr+1; // Store the position of leftmost digit in volume number.
          break;
        }
  }
  else
  {
    // Old volume numbering scheme. Just set the extension to ".rar".
    SetExt(FirstName,L"rar",MaxSize);
    VolNumStart=GetExt(FirstName);
  }
  if (!FileExist(FirstName))
  {
    // If the first volume, which name we just generated, is not exist,
    // check if volume with same name and any other extension is available.
    // It can help in case of *.exe or *.sfx first volume.
    wchar Mask[NM];
    wcsncpyz(Mask,FirstName,ASIZE(Mask));
    SetExt(Mask,L"*",ASIZE(Mask));
    FindFile Find;
    Find.SetMask(Mask);
    FindData FD;
    while (Find.Next(&FD))
    {
      Archive Arc;
      if (Arc.Open(FD.Name,0) && Arc.IsArchive(true) && Arc.FirstVolume)
      {
        wcsncpyz(FirstName,FD.Name,MaxSize);
        break;
      }
    }
  }
  return VolNumStart;
}
コード例 #17
0
ファイル: jbutton.cpp プロジェクト: skopp/rush
void JButton::OnMouse( JMouseEvent& m )
{
    //  check if button being pressed
    if ((m.Action() == aKeyDown || m.Action() == aDblClick) &&
        m.MouseKey() == mkLeft)
    {
        if (m_bTwoState)
        {
            if (m_bPressed)
            {
                Unpress();
            }
            else
            {
                Press();
            }
        }
        else
        {
            CaptureMouse( true );
            Press();
        }
        SetFocus();
        m.Consume();
    }

    //  check if being unpressed (for one-state buttons)
    if (m.Action() == aKeyUp &&
        m.MouseKey() == mkLeft && !m_bTwoState)
    {
        CaptureMouse( false );
        Unpress();
        m.Consume();
    }

    //  automatically unpress when leaving button area
    if (m.Action() == aMouseMove &&
        !GetExt().PtIn( m.MouseX(), m.MouseY() ) &&
        m_bPressed)
    {
        CaptureMouse( false );
        if (!m_bTwoState)
        {
            Unpress();
        }
    }

    if (IsConsumeEvents())
    {
        m.Consume();
    }
} // JButton::OnMouse
コード例 #18
0
ファイル: pathfn.cpp プロジェクト: KyleSanderson/mpc-hc
void SetExt(wchar *Name,const wchar *NewExt,size_t MaxSize)
{
  if (Name==NULL || *Name==0)
    return;
  wchar *Dot=GetExt(Name);
  if (Dot!=NULL)
    *Dot=0;
  if (NewExt!=NULL)
  {
    wcsncatz(Name,L".",MaxSize);
    wcsncatz(Name,NewExt,MaxSize);
  }
}
コード例 #19
0
ファイル: FbExportDlg.cpp プロジェクト: EvgeniiFrolov/myrulib
void FbExportDlg::ChangeFormat(FbExportTreeModel * model)
{
	int format = m_format->GetValue();
	int scale = format < 0 ? 43 : 100;
	wxString arc, ext;
	switch (format) {
		case -1: arc = wxT("zip"); break;
		case -2: arc = wxT("gz"); break;
		case -3: arc = wxT("bz2"); break;
	}
	model->SetFormat(GetExt(format), arc, scale);
	model->SetTransDir(m_transDir->GetValue());
	model->SetTransFile(m_transFile->GetValue());
}
コード例 #20
0
ファイル: jslidepiece.cpp プロジェクト: skopp/rush
void JSlidePiece::DrawBounds()
{
    Frame ext = GetExt();

    g_pDrawServer->DrawFrame( ext,  0xFFFFFF00 );

    char str[256];
    sprintf( str, "%s: {%d, %d}", GetName(), (int)ext.x, (int)ext.y );
    Vec2 spos( ext.x + 10, ext.cy() );
    g_pDrawServer->DrawString( spos.x, spos.y, -1, str, 0xFFFF4444 );

    ext.w = g_pDrawServer->GetFrameW( GetSkinPackID(), GetSkinFrame() );
    ext.h = g_pDrawServer->GetFrameH( GetSkinPackID(), GetSkinFrame() );
} // JSlidePiece::DrawBounds
コード例 #21
0
ファイル: FileNameTools.c プロジェクト: wangyilin/hello-world
void TestFileNameTools(void)
{
	char whole[]="c:/windows/system32/abc.dll";
	char des[256];

	GetDir(whole,des);
	printf("%s\n",des);

	GetName(whole,des);
	printf("%s\n",des);

	GetExt(whole,des);
	printf("%s\n",des);

}
コード例 #22
0
ファイル: mime.cpp プロジェクト: billfm/billfm
gchar * CheckDesktopFile(const char * name)
{
  if(name[0]=='/') return g_strdup(name); 

  ClassString str=GetExt(name);
  
  if(!str.s || strcmp(str.s,"desktop") )
  {
	  str=g_strdup_printf("%s.desktop",name);	
  } else str=g_strdup(name);
  if(name[0]=='~') str=g_strdup_printf("%s%s",g_get_home_dir(),&str.s[1]);
	else str=g_strdup_printf("/usr/share/applications/%s",str.s);
	
 return g_strdup(str.s);
}
コード例 #23
0
ファイル: jslidepiece.cpp プロジェクト: skopp/rush
bool JSlidePiece::PtIn( int px, int py ) const
{
    int spID = GetSkinPackID();
    int frID = GetSkinFrame();
    Frame ext = GetExt();
    if (spID == -1 || frID == -1)
    {
        return ext.PtIn( px, py );
    }
    Vec2 pixPos( float( px ) - ext.x, float( py ) - ext.y );

    DWORD clr = g_pDrawServer->GetPixel( spID, frID, pixPos );
    DWORD alpha = (clr&0xFF000000)>>24;
    return (alpha > 0x50);
} // JSlidePiece::PtIn
コード例 #24
0
ファイル: mime.cpp プロジェクト: billfm/billfm
GList * GetMimeListCommand(const char *name)
{
	if(!name) return 0; 

	ClassString command;
	gchar * p=GetExt(name);
	if(!p) return 0;

	InfoMime * info= find_mime(p);	
	if(info)
	{
		return g_list_first (info->list_command);
	}
	g_free(p);
	return 0;
}
コード例 #25
0
ファイル: mime.cpp プロジェクト: billfm/billfm
void ClickExecFile(const char * name, struct stat * file_stat)
{
	 
	if(IsArchve(name))
	{   
		const char * dirname=Panels[ActivePanel]->SetArchiveName(name);
		ExternalListTar(name,dirname);
		Panels[ActivePanel]->LoadDir(dirname);
		return;		
	}	

	ClassString command;
	gchar * p=GetExt(name);
	if(p)
	{	
		if(!strcmp(p,"desktop"))
		{
			ClassString  command=GetDesktopKey(name,"Exec");
			command = g_strdup_printf("%s &",command.s);
			system(command.s);
			return;
		}	

		InfoMime * info= find_mime(p);	
		if(info)
		{
			GList *list=g_list_first (info->list_command);
			if(list)
			{	
				command=GetDesktopCommand((gchar*)list->data);
				if(command.s)
				{
					command=g_strdup_printf("%s '%s' &",command.s,name);
				}	else printf("Не найдена команда %s\n",(gchar*)list->data);
				
			}	
		}
		g_free(p);
	} else
	
	if(IsExecute(name,file_stat,1))
	{
		command = g_strdup_printf("\"%s\" &",name);
	}

	if(command.s) system(command.s);
}
コード例 #26
0
ファイル: pathfn.cpp プロジェクト: BITINT/DEFCON2
char* VolNameToFirstName(const char *VolName,char *FirstName,bool NewNumbering)
{
  if (FirstName!=VolName)
    strcpy(FirstName,VolName);
  char *VolNumStart=FirstName;
  if (NewNumbering)
  {
    int N='1';
    for (char *ChPtr=GetVolNumPart(FirstName);ChPtr>FirstName;ChPtr--)
      if (isdigit(*ChPtr))
      {
        *ChPtr=N;
        N='0';
      }
      else
        if (N=='0')
        {
          VolNumStart=ChPtr+1;
          break;
        }
  }
  else
  {
    SetExt(FirstName,"rar");
    VolNumStart=GetExt(FirstName);
  }
  if (!FileExist(FirstName))
  {
    char Mask[NM];
    strcpy(Mask,FirstName);
    SetExt(Mask,"*");
    FindFile Find;
    Find.SetMask(Mask);
    struct FindData FD;
    while (Find.Next(&FD))
    {
      Archive Arc;
      if (Arc.Open(FD.Name,FD.NameW) && Arc.IsArchive(true) && !Arc.NotFirstVolume)
      {
        strcpy(FirstName,FD.Name);
        break;
      }
    }
  }
  return(VolNumStart);
}
コード例 #27
0
ファイル: pathfn.cpp プロジェクト: BITINT/DEFCON2
void SetExt(char *Name,const char *NewExt)
{
  char *Dot=GetExt(Name);
  if (NewExt==NULL)
  {
    if (Dot!=NULL)
      *Dot=0;
  }
  else
    if (Dot==NULL)
    {
      strcat(Name,".");
      strcat(Name,NewExt);
    }
    else
      strcpy(Dot+1,NewExt);
}
コード例 #28
0
ファイル: pathfn.cpp プロジェクト: 717717/sumatrapdf
void SetExt(wchar *Name,const wchar *NewExt)
{
  if (Name==NULL || *Name==0)
    return;
  wchar *Dot=GetExt(Name);
  if (NewExt==NULL)
  {
    if (Dot!=NULL)
      *Dot=0;
  }
  else
    if (Dot==NULL)
    {
      wcscat(Name,L".");
      wcscat(Name,NewExt);
    }
    else
      wcscpy(Dot+1,NewExt);
}
コード例 #29
0
ファイル: pathfn.cpp プロジェクト: BITINT/DEFCON2
void SetExt(wchar *Name,const wchar *NewExt)
{
  if (Name==NULL || *Name==0)
    return;
  wchar *Dot=GetExt(Name);
  if (NewExt==NULL)
  {
    if (Dot!=NULL)
      *Dot=0;
  }
  else
    if (Dot==NULL)
    {
      strcatw(Name,L".");
      strcatw(Name,NewExt);
    }
    else
      strcpyw(Dot+1,NewExt);
}
コード例 #30
0
ファイル: jblotpiece.cpp プロジェクト: skopp/rush
bool JBlotPiece::PtIn( int px, int py ) const
{
    int spID = GetSkinPackID();
    int frID = GetSkinFrame();
    Frame ext = GetExt();
    if (spID == -1 || frID == -1)
    {
        return ext.PtIn( px, py );
    }
    Vec2 pixPos( float( px ) - ext.x, float( py ) - ext.y );

    float scale;
    if (m_bSelected) scale = m_Scale; else scale = 1.0f;
    pixPos /= scale;

    DWORD clr = g_pDrawServer->GetPixel( spID, frID, pixPos );
    DWORD alpha = (clr&0xFF000000)>>24;
    return (alpha > 0x50);
} // JBlotPiece::PtIn