Importing EDE2 code to svn... NOTE: It doesn't compile! Stuff thats broken: edewm, eworkpanel, eiconman,

emenueditor
This commit is contained in:
Vedran Ljubovic
2006-08-20 18:43:09 +00:00
commit 65018f75b7
1004 changed files with 88271 additions and 0 deletions

21
efinder/Makefile Executable file
View File

@ -0,0 +1,21 @@
CPPFILES = efinder.cpp eglob.cpp
TARGET = efinder
POFILES = locale/ru.po\
locale/sk.po\
locale/hu.po
include ../makeinclude
install:
$(INSTALL_PROGRAM) $(TARGET) $(bindir)
$(INSTALL_LOCALE)
uninstall:
$(RM) $(bindir)/$(TARGET)
clean:
$(RM) $(TARGET)
$(RM) *.o

497
efinder/efinder.cpp Executable file
View File

@ -0,0 +1,497 @@
// generated by Extended Fast Light User Interface Designer (eFluid) version 2.0003
#include "efinder.h"
// Copyright (c) 2000. - 2005. EDE Authors
// This program is licenced under terms of the
// GNU General Public Licence version 2 or newer.
// See COPYING for details.
#include "eglob.h"
Fl_Window* permWindow;
static void cb_Read(Fl_Check_Button*, void*) {
toggle_permission(S_IRUSR);
}
static void cb_Write(Fl_Check_Button*, void*) {
toggle_permission(S_IWUSR);
}
static void cb_Execute(Fl_Check_Button*, void*) {
toggle_permission(S_IXUSR);
}
static void cb_Set(Fl_Check_Button*, void*) {
toggle_permission(S_ISUID);
}
static void cb_Read1(Fl_Check_Button*, void*) {
toggle_permission(S_IRGRP);
}
static void cb_Write1(Fl_Check_Button*, void*) {
toggle_permission(S_IWGRP);
}
static void cb_Execute1(Fl_Check_Button*, void*) {
toggle_permission(S_IXGRP);
}
static void cb_Set1(Fl_Check_Button*, void*) {
toggle_permission(S_ISGID);
}
static void cb_Read2(Fl_Check_Button*, void*) {
toggle_permission(S_IROTH);
}
static void cb_Write2(Fl_Check_Button*, void*) {
toggle_permission(S_IWOTH);
}
static void cb_Execute2(Fl_Check_Button*, void*) {
toggle_permission(S_IXOTH);
}
static void cb_Sticky(Fl_Check_Button*, void*) {
toggle_permission(S_ISVTX);
}
static void cb_Close(Fl_Button*, void*) {
permWindow->hide();
}
void createPermWindow() {
Fl_Window* w;
{Fl_Window* o = permWindow = new Fl_Window(355, 175, _("Permissions"));
w = o;
o->shortcut(0xff1b);
{Fl_Group* o = new Fl_Group(10, 30, 110, 90, _("Owner"));
o->box(FL_ENGRAVED_BOX);
o->align(FL_ALIGN_TOP|FL_ALIGN_LEFT);
{Fl_Check_Button* o = new Fl_Check_Button(5, 5, 85, 25, _("Read"));
o->callback((Fl_Callback*)cb_Read);
}
{Fl_Check_Button* o = new Fl_Check_Button(5, 25, 85, 25, _("Write"));
o->callback((Fl_Callback*)cb_Write);
}
{Fl_Check_Button* o = new Fl_Check_Button(5, 45, 85, 25, _("Execute"));
o->callback((Fl_Callback*)cb_Execute);
}
{Fl_Check_Button* o = new Fl_Check_Button(5, 65, 85, 25, _("Set UID"));
o->callback((Fl_Callback*)cb_Set);
}
o->end();
}
{Fl_Group* o = new Fl_Group(125, 30, 105, 90, _("Group"));
o->box(FL_ENGRAVED_BOX);
o->align(FL_ALIGN_TOP|FL_ALIGN_LEFT);
{Fl_Check_Button* o = new Fl_Check_Button(5, 5, 85, 25, _("Read"));
o->callback((Fl_Callback*)cb_Read1);
}
{Fl_Check_Button* o = new Fl_Check_Button(5, 25, 85, 25, _("Write"));
o->callback((Fl_Callback*)cb_Write1);
}
{Fl_Check_Button* o = new Fl_Check_Button(5, 45, 85, 25, _("Execute"));
o->callback((Fl_Callback*)cb_Execute1);
}
{Fl_Check_Button* o = new Fl_Check_Button(5, 65, 85, 25, _("Set GID"));
o->callback((Fl_Callback*)cb_Set1);
}
o->end();
}
{Fl_Group* o = new Fl_Group(235, 30, 110, 90, _("Other"));
o->box(FL_ENGRAVED_BOX);
o->align(FL_ALIGN_TOP|FL_ALIGN_LEFT);
{Fl_Check_Button* o = new Fl_Check_Button(5, 5, 85, 25, _("Read"));
o->callback((Fl_Callback*)cb_Read2);
}
{Fl_Check_Button* o = new Fl_Check_Button(5, 25, 85, 25, _("Write"));
o->callback((Fl_Callback*)cb_Write2);
}
{Fl_Check_Button* o = new Fl_Check_Button(5, 45, 85, 25, _("Execute"));
o->callback((Fl_Callback*)cb_Execute2);
}
{Fl_Check_Button* o = new Fl_Check_Button(5, 65, 95, 25, _("Sticky"));
o->callback((Fl_Callback*)cb_Sticky);
}
o->end();
}
{Fl_Button* o = new Fl_Button(140, 140, 85, 25, _("&Close"));
o->callback((Fl_Callback*)cb_Close);
}
o->end();
o->resizable(o);
}
permWindow->end();
permWindow->show();
}
Fl_Window* findWindow;
Fl_Input* pathInput;
static void cb_Browse(Fl_Button*, void*) {
const char *f = fl_select_dir(0, _("Select directory"));
if (f) {
pathInput->value(f);
}
;}
Fl_Input* filterInput;
Fl_Check_Button* recursiveCheck;
Fl_Value_Input* fileLimitValue;
Fl_Input* containsInput;
Fl_Check_Button* caseSensitiveCheck;
Fl_Check_Button* useRegexpCheck;
Fl_Input_Browser* fileTypeBrowser;
Fl_Check_Button* stayOnSingleCheck;
Fl_Check_Button* considerPermValue;
static void cb_considerPermValue(Fl_Check_Button*, void*) {
if (considerPermValue->value())
createPermWindow();
}
Fl_Check_Button* considerUserValue;
static void cb_considerUserValue(Fl_Check_Button*, void*) {
if (considerUserValue->value()) {
userGroup->activate();
}
else {
userGroup->deactivate();
}
;}
Fl_Group* userGroup;
Fl_Input_Browser* userIdChoice;
Fl_Input_Browser* groupIdChoice;
Fl_Check_Button* considerSizeValue;
static void cb_considerSizeValue(Fl_Check_Button*, void*) {
if (considerSizeValue->value()) {
sizeGroup->activate();
}
else {
sizeGroup->deactivate();
}
;}
Fl_Group* sizeGroup;
Fl_Value_Input* sizeGValue;
Fl_Value_Input* sizeMValue;
Fl_Check_Button* considerTimeValue;
static void cb_considerTimeValue(Fl_Check_Button*, void*) {
if (considerTimeValue->value()) {
timeGroup1->activate();
timeValue->activate();
timeGroup2->activate();
}
else {
timeGroup1->deactivate();
timeValue->deactivate();
timeGroup2->deactivate();
}
;}
Fl_Group* timeGroup1;
Fl_Round_Button* modifiedRadio;
Fl_Round_Button* changedRadio;
Fl_Round_Button* accessedRadio;
Fl_Value_Input* timeValue;
Fl_Group* timeGroup2;
Fl_Round_Button* minutesRadio;
Fl_Round_Button* hoursRadio;
Fl_Round_Button* daysRadio;
Fl_Round_Button* mounthsRadio;
Fl_Check_Button* doNotLookIntoBinaryCheck;
Fl_Check_Button* outputCountCheck;
Fl_Round_Button* matchAnywhereRadio;
Fl_Round_Button* matchWordsRadio;
Fl_Round_Button* matchLinesRadio;
Fl_Round_Button* invertMatchRadio;
Fl_ListView* searchList;
Fl_Box* statusLine;
Fl_Button* searchButton;
static void cb_searchButton(Fl_Button*, void*) {
findCB();
}
static void cb_Cancel(Fl_Button*, void*) {
exit(0);
}
Fl_Button* stopButton;
static void cb_stopButton(Fl_Button*, void*) {
stopSearch();
}
void createFindWindow() {
Fl_Window* w;
{Fl_Window* o = findWindow = new Fl_Window(480, 385, _("Find"));
w = o;
o->shortcut(0xff1b);
{Fl_Tabs* o = new Fl_Tabs(3, 5, 473, 235);
o->color((Fl_Color)0xfffffffe);
{Fl_Group* o = new Fl_Group(1, 23, 471, 211, _("Find"));
{Fl_Group* o = new Fl_Group(7, 20, 460, 100, _("Find"));
o->box(FL_ENGRAVED_BOX);
o->align(FL_ALIGN_TOP|FL_ALIGN_LEFT);
{Fl_Group* o = new Fl_Group(5, 5, 450, 30);
{Fl_Input* o = pathInput = new Fl_Input(70, 5, 285, 23, _("Path:"));
o->align(FL_ALIGN_LEFT|FL_ALIGN_WRAP);
o->parent()->resizable(o);
char *tmp = fl_get_homedir();
o->value(tmp);
delete []tmp;
}
{Fl_Button* o = new Fl_Button(360, 5, 80, 23, _("&Browse..."));
o->callback((Fl_Callback*)cb_Browse);
o->tooltip(_("Find path."));
}
o->end();
}
{Fl_Input* o = filterInput = new Fl_Input(75, 40, 370, 23, _("File filter:"));
o->align(FL_ALIGN_LEFT|FL_ALIGN_WRAP);
o->value("*");
o->parent()->resizable(o);
}
{Fl_Group* o = new Fl_Group(25, 65, 430, 32);
{Fl_Check_Button* o = recursiveCheck = new Fl_Check_Button(50, 0, 155, 30, _("Search subdirectories"));
o->value(1);
o->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE|FL_ALIGN_CLIP|FL_ALIGN_WRAP);
}
{Fl_Group* o = new Fl_Group(200, 0, 220, 32);
{Fl_Value_Input* o = fileLimitValue = new Fl_Value_Input(175, 5, 45, 20, _("Limit results to first n files:"));
o->step(1);
o->value(64);
o->align(FL_ALIGN_LEFT|FL_ALIGN_CLIP|FL_ALIGN_WRAP);
}
o->end();
}
o->end();
}
o->end();
}
{Fl_Group* o = new Fl_Group(7, 140, 459, 65, _("Content"));
o->box(FL_ENGRAVED_BOX);
o->align(FL_ALIGN_TOP|FL_ALIGN_LEFT);
{Fl_Input* o = containsInput = new Fl_Input(75, 10, 370, 23, _("Containing:"));
o->align(FL_ALIGN_LEFT|FL_ALIGN_WRAP);
o->parent()->resizable(o);
}
{Fl_Group* o = new Fl_Group(75, 35, 370, 25);
{Fl_Check_Button* o = caseSensitiveCheck = new Fl_Check_Button(0, 0, 140, 25, _("Case sensitive"));
o->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE|FL_ALIGN_WRAP);
}
{Fl_Check_Button* o = useRegexpCheck = new Fl_Check_Button(140, 0, 230, 25, _("Extended regexp"));
o->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE|FL_ALIGN_WRAP);
}
o->end();
}
o->end();
}
{Fl_Box* o = new Fl_Box(7, 206, 455, 2);
o->parent()->resizable(o);
}
o->parent()->resizable(o);
o->end();
}
{Fl_Group* o = new Fl_Group(1, 23, 471, 211, _("Filter options"));
o->hide();
{Fl_Group* o = new Fl_Group(7, 20, 459, 32, _("Considerations"));
o->box(FL_ENGRAVED_BOX);
o->align(FL_ALIGN_TOP|FL_ALIGN_LEFT);
{Fl_Input_Browser* o = fileTypeBrowser = new Fl_Input_Browser(70, 5, 145, 23, _("File type:")); o->begin();
o->align(FL_ALIGN_LEFT|FL_ALIGN_WRAP);
new Fl_Item(_("Any kind"));
new Fl_Item(_("Regular"));
new Fl_Item(_("Directory"));
new Fl_Item(_("Symlink"));
new Fl_Item(_("Socket"));
new Fl_Item(_("Block device"));
new Fl_Item(_("Character device"));
new Fl_Item(_("FIFO"));
o->parent()->resizable(o);
o->value("Any kind");
o->end();
}
{Fl_Check_Button* o = stayOnSingleCheck = new Fl_Check_Button(225, 4, 230, 23, _("Stay on single filesystem"));
o->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE|FL_ALIGN_CLIP|FL_ALIGN_WRAP);
}
o->end();
}
{Fl_Group* o = new Fl_Group(7, 50, 459, 155);
o->box(FL_ENGRAVED_BOX);
{Fl_Check_Button* o = considerPermValue = new Fl_Check_Button(5, 5, 115, 25, _("Permissions"));
o->callback((Fl_Callback*)cb_considerPermValue);
}
{Fl_Check_Button* o = considerUserValue = new Fl_Check_Button(5, 30, 115, 25, _("User/group:"));
o->callback((Fl_Callback*)cb_considerUserValue);
}
{Fl_Group* o = userGroup = new Fl_Group(120, 30, 325, 25);
o->deactivate();
{Fl_Input_Browser* o = userIdChoice = new Fl_Input_Browser(70, 2, 72, 20, _("User id:")); o->begin();
o->align(FL_ALIGN_LEFT|FL_ALIGN_WRAP);
o->value("Anyone");
jam("/etc/passwd", userIdChoice);
o->end();
}
{Fl_Input_Browser* o = groupIdChoice = new Fl_Input_Browser(240, 2, 72, 20, _("Group id:")); o->begin();
o->align(FL_ALIGN_LEFT|FL_ALIGN_WRAP);
o->value("Anyone");
jam("/etc/group", groupIdChoice);
o->end();
}
o->end();
}
{Fl_Check_Button* o = considerSizeValue = new Fl_Check_Button(5, 55, 80, 23, _("Size:"));
o->callback((Fl_Callback*)cb_considerSizeValue);
o->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE|FL_ALIGN_WRAP);
}
{Fl_Group* o = sizeGroup = new Fl_Group(85, 55, 360, 25);
o->box(FL_FLAT_BOX);
o->deactivate();
{Fl_Value_Input* o = sizeGValue = new Fl_Value_Input(90, 2, 70, 20, _("greater than:"));
o->step(1);
}
{Fl_Value_Input* o = sizeMValue = new Fl_Value_Input(275, 2, 70, 20, _("and less than(KB):"));
o->step(1);
}
o->end();
}
{Fl_Check_Button* o = considerTimeValue = new Fl_Check_Button(5, 80, 135, 25, _("Time:"));
o->callback((Fl_Callback*)cb_considerTimeValue);
}
{Fl_Group* o = timeGroup1 = new Fl_Group(140, 85, 110, 60);
o->box(FL_FLAT_BOX);
o->deactivate();
{Fl_Round_Button* o = modifiedRadio = new Fl_Round_Button(0, 0, 105, 20, _("Modified"));
o->type(Fl_Round_Button::RADIO);
}
{Fl_Round_Button* o = changedRadio = new Fl_Round_Button(0, 20, 105, 20, _("Changed"));
o->type(Fl_Round_Button::RADIO);
}
{Fl_Round_Button* o = accessedRadio = new Fl_Round_Button(0, 40, 105, 20, _("Accessed"));
o->type(Fl_Round_Button::RADIO);
}
o->end();
}
{Fl_Group* o = new Fl_Group(255, 90, 80, 60);
{Fl_Value_Input* o = timeValue = new Fl_Value_Input(5, 33, 65, 20, _("in previous:"));
o->maximum(100);
o->step(1);
o->align(FL_ALIGN_TOP|FL_ALIGN_LEFT|FL_ALIGN_CLIP|FL_ALIGN_WRAP);
o->deactivate();
}
o->end();
}
{Fl_Group* o = timeGroup2 = new Fl_Group(335, 85, 110, 60);
o->box(FL_FLAT_BOX);
o->deactivate();
{Fl_Group* o = new Fl_Group(0, 0, 105, 60);
{Fl_Round_Button* o = minutesRadio = new Fl_Round_Button(0, 0, 105, 15, _("Minutes"));
o->type(Fl_Round_Button::RADIO);
}
{Fl_Round_Button* o = hoursRadio = new Fl_Round_Button(0, 15, 105, 15, _("Hours"));
o->type(Fl_Round_Button::RADIO);
}
{Fl_Round_Button* o = daysRadio = new Fl_Round_Button(0, 30, 105, 15, _("Days"));
o->type(Fl_Round_Button::RADIO);
}
{Fl_Round_Button* o = mounthsRadio = new Fl_Round_Button(0, 45, 105, 15, _("Mounths"));
o->type(Fl_Round_Button::RADIO);
}
o->end();
}
o->end();
}
{Fl_Box* o = new Fl_Box(440, 5, 10, 145);
o->parent()->resizable(o);
}
o->parent()->resizable(o);
o->end();
}
o->end();
}
{Fl_Group* o = new Fl_Group(1, 23, 471, 211, _("Content options"));
o->hide();
{Fl_Group* o = new Fl_Group(7, 20, 459, 185, _("General considerations"));
o->box(FL_ENGRAVED_BOX);
o->align(FL_ALIGN_TOP|FL_ALIGN_LEFT);
{Fl_Check_Button* o = doNotLookIntoBinaryCheck = new Fl_Check_Button(15, 10, 270, 23, _("Do not look into binary files"));
o->value(1);
}
{Fl_Check_Button* o = outputCountCheck = new Fl_Check_Button(15, 37, 270, 23, _("Output count of matching lines"));
o->value(1);
}
{Fl_Round_Button* o = matchAnywhereRadio = new Fl_Round_Button(15, 72, 255, 20, _("Match anywhere"));
o->type(Fl_Round_Button::RADIO);
o->value(1);
}
{Fl_Round_Button* o = matchWordsRadio = new Fl_Round_Button(15, 95, 255, 20, _("Match whole words only"));
o->type(Fl_Round_Button::RADIO);
}
{Fl_Round_Button* o = matchLinesRadio = new Fl_Round_Button(15, 118, 255, 20, _("Match whole lines only"));
o->type(Fl_Round_Button::RADIO);
}
{Fl_Round_Button* o = invertMatchRadio = new Fl_Round_Button(15, 141, 255, 20, _("Output files where no match is found"));
o->type(Fl_Round_Button::RADIO);
}
{Fl_Box* o = new Fl_Box(285, 10, 160, 165);
o->parent()->resizable(o);
}
o->parent()->resizable(o);
o->end();
}
o->end();
}
{Fl_Group* o = new Fl_Group(1, 23, 471, 211, _("About"));
o->hide();
{Fl_Box* o = new Fl_Box(21, 32, 424, 135, _("(C) Copyright 2000-2005. EDE Authors.\n\n Efinder is using the code from xfglob whic\
h is\n (C) Copyright 2000-2001 by Edscott Wilson Garcia."));
o->align(FL_ALIGN_INSIDE|FL_ALIGN_WRAP);
}
o->end();
}
o->end();
}
{Fl_ListView* o = searchList = new Fl_ListView(3, 245, 473, 85); o->begin();
o->align(FL_ALIGN_TOP|FL_ALIGN_LEFT);
searchList->type(searchList->type() | Fl_ListView::MULTI_SELECTION);
searchList->add_column(_("Filename"), 200);
searchList->add_column(_("Size"), 79);
searchList->add_column(_("Last modified"), 125);
searchList->add_column(_("Rights"), 65);
searchList->column_flags(0, FL_ALIGN_LEFT);
searchList->column_flags(1, FL_ALIGN_CENTER);
searchList->column_flags(2, FL_ALIGN_CENTER);
searchList->column_flags(3, FL_ALIGN_RIGHT);
o->end();
Fl_Group::current()->resizable(o);
}
{Fl_Box* o = statusLine = new Fl_Box(3, 362, 473, 20);
o->box(FL_THIN_DOWN_BOX);
o->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
o->when(FL_WHEN_CHANGED);
}
{Fl_Group* o = new Fl_Group(3, 330, 473, 30);
{Fl_Button* o = searchButton = new Fl_Button(222, 3, 80, 25, _("&Find"));
o->shortcut(0xff0d);
o->callback((Fl_Callback*)cb_searchButton);
o->tooltip(_("Start the searching."));
}
{Fl_Button* o = new Fl_Button(392, 3, 80, 25, _("&Cancel"));
o->callback((Fl_Callback*)cb_Cancel);
}
{Fl_Button* o = stopButton = new Fl_Button(307, 3, 80, 25, _("&Stop"));
o->callback((Fl_Callback*)cb_stopButton);
o->tooltip(_("Stop the searching."));
}
{Fl_Box* o = new Fl_Box(7, 5, 210, 20);
o->parent()->resizable(o);
}
o->end();
}
o->size_range(o->w(), o->h());
o->end();
}
findWindow->end();
findWindow->show();
}

470
efinder/efinder.fld Executable file
View File

@ -0,0 +1,470 @@
# data file for the eFLTK User Interface Designer (eFLUID)
version 2,0003
images_dir ./
i18n
header_name {.h}
code_name {.cpp}
gridx 5
gridy 5
snap 3
decl {// Finder for EDE is (C) Copyright 2001-2002 by Martin Pekar, this program is provided under the terms of GNU GPL v.2, see file COPYING for more information.} {}
decl {\#include "eglob.h"} {}
Function {createPermWindow()} {return_type void
} {
Fl_Window permWindow {
label Permissions open
xywh {282 274 355 175} hide resizable
} {
Fl_Group {} {
label Owner open
xywh {10 30 110 90} align FL_ALIGN_TOP|FL_ALIGN_LEFT box ENGRAVED_BOX
} {
Fl_Check_Button {} {
label Read
callback {toggle_permission(S_IRUSR);}
xywh {5 5 85 25}
}
Fl_Check_Button {} {
label Write
callback {toggle_permission(S_IWUSR);}
xywh {5 25 85 25}
}
Fl_Check_Button {} {
label Execute
callback {toggle_permission(S_IXUSR);}
xywh {5 45 85 25}
}
Fl_Check_Button {} {
label {Set UID}
callback {toggle_permission(S_ISUID);}
xywh {5 65 85 25}
}
}
Fl_Group {} {
label Group open
xywh {125 30 105 90} align FL_ALIGN_TOP|FL_ALIGN_LEFT box ENGRAVED_BOX
} {
Fl_Check_Button {} {
label Read
callback {toggle_permission(S_IRGRP);}
xywh {5 5 85 25}
}
Fl_Check_Button {} {
label Write
callback {toggle_permission(S_IWGRP);}
xywh {5 25 85 25}
}
Fl_Check_Button {} {
label Execute
callback {toggle_permission(S_IXGRP);}
xywh {5 45 85 25}
}
Fl_Check_Button {} {
label {Set GID}
callback {toggle_permission(S_ISGID);}
xywh {5 65 85 25}
}
}
Fl_Group {} {
label Other open
xywh {235 30 110 90} align FL_ALIGN_TOP|FL_ALIGN_LEFT box ENGRAVED_BOX
} {
Fl_Check_Button {} {
label Read
callback {toggle_permission(S_IROTH);}
xywh {5 5 85 25}
}
Fl_Check_Button {} {
label Write
callback {toggle_permission(S_IWOTH);}
xywh {5 25 85 25}
}
Fl_Check_Button {} {
label Execute
callback {toggle_permission(S_IXOTH);}
xywh {5 45 85 25}
}
Fl_Check_Button {} {
label Sticky
callback {toggle_permission(S_ISVTX);}
xywh {5 65 95 25}
}
}
Fl_Button {} {
label {&Close}
callback {permWindow->hide();}
xywh {140 140 85 25}
}
}
code {permWindow->end();
permWindow->show();} {}
}
Function {createFindWindow()} {open return_type void
} {
Fl_Window findWindow {
label Find open
xywh {283 179 480 385} resizable
extra_code {o->size_range(o->w(), o->h());} visible
} {
Fl_Tabs {} {open
xywh {3 5 473 235} color 0xfffffffe
} {
Fl_Group {} {
label Find open
xywh {1 23 471 211} hide
extra_code {o->parent()->resizable(o);}
} {
Fl_Group {} {
label Find open
xywh {7 20 460 100} align FL_ALIGN_TOP|FL_ALIGN_LEFT box ENGRAVED_BOX
} {
Fl_Group {} {open
xywh {5 5 450 30}
} {
Fl_Input pathInput {
label {Path:}
xywh {70 5 285 23} align FL_ALIGN_LEFT|FL_ALIGN_WRAP
extra_code {o->parent()->resizable(o);
char *tmp = fl_get_homedir();
o->value(tmp);
delete []tmp;}
}
Fl_Button {} {
label {&Browse...}
callback {const char *f = fl_select_dir(0, _("Select directory"));
if (f) {
pathInput->value(f);
}}
tooltip {Find path.}
xywh {360 5 80 23}
extra_code {\#include <efltk/Fl_File_Dialog.h>}
}
}
Fl_Input filterInput {
label {File filter:}
xywh {75 40 370 23} align FL_ALIGN_LEFT|FL_ALIGN_WRAP
extra_code {o->value("*");
o->parent()->resizable(o);}
}
Fl_Group {} {open
xywh {25 65 430 32}
} {
Fl_Check_Button recursiveCheck {
label {Search subdirectories}
xywh {50 0 155 30} align FL_ALIGN_LEFT|FL_ALIGN_INSIDE|FL_ALIGN_CLIP|FL_ALIGN_WRAP value 1
}
Fl_Group {} {open
xywh {200 0 220 32}
} {
Fl_Value_Input fileLimitValue {
label {Limit results to first n files:}
xywh {175 5 45 20} align FL_ALIGN_LEFT|FL_ALIGN_CLIP|FL_ALIGN_WRAP step 1 value 64
}
}
}
}
Fl_Group {} {
label Content open
xywh {7 140 459 65} align FL_ALIGN_TOP|FL_ALIGN_LEFT box ENGRAVED_BOX
} {
Fl_Input containsInput {
label {Containing:}
xywh {75 10 370 23} align FL_ALIGN_LEFT|FL_ALIGN_WRAP
extra_code {o->parent()->resizable(o);}
}
Fl_Group {} {open
xywh {75 35 370 25}
} {
Fl_Check_Button caseSensitiveCheck {
label {Case sensitive}
xywh {0 0 140 25} align FL_ALIGN_LEFT|FL_ALIGN_INSIDE|FL_ALIGN_WRAP
}
Fl_Check_Button useRegexpCheck {
label {Extended regexp}
xywh {140 0 230 25} align FL_ALIGN_LEFT|FL_ALIGN_INSIDE|FL_ALIGN_WRAP
}
}
}
Fl_Box {} {
xywh {7 206 455 2}
extra_code {o->parent()->resizable(o);}
}
}
Fl_Group {} {
label {Filter options} open
xywh {1 23 471 211} hide
} {
Fl_Group {} {
label Considerations open
xywh {7 20 459 32} align FL_ALIGN_TOP|FL_ALIGN_LEFT box ENGRAVED_BOX
} {
Fl_Choice fileTypeBrowser {
label {File type:}
xywh {70 5 145 23} align FL_ALIGN_LEFT|FL_ALIGN_WRAP
extra_code {\#include <efltk/Fl_Input_Browser.h>
o->parent()->resizable(o);
o->value("Any kind");}
class Fl_Input_Browser
} {
Fl_Item {} {
label {Any kind}
}
Fl_Item {} {
label Regular
}
Fl_Item {} {
label Directory
}
Fl_Item {} {
label Symlink
}
Fl_Item {} {
label Socket
}
Fl_Item {} {
label {Block device}
}
Fl_Item {} {
label {Character device}
}
Fl_Item {} {
label FIFO
}
}
Fl_Check_Button stayOnSingleCheck {
label {Stay on single filesystem}
xywh {225 4 230 23} align FL_ALIGN_LEFT|FL_ALIGN_INSIDE|FL_ALIGN_CLIP|FL_ALIGN_WRAP
}
}
Fl_Group {} {open
xywh {7 50 459 155} box ENGRAVED_BOX
extra_code {o->parent()->resizable(o);}
} {
Fl_Check_Button considerPermValue {
label Permissions
callback {if (considerPermValue->value())
createPermWindow();}
xywh {5 5 115 25}
}
Fl_Check_Button considerUserValue {
label {User/group:}
callback {if (considerUserValue->value()) {
userGroup->activate();
}
else {
userGroup->deactivate();
}}
xywh {5 30 115 25}
}
Fl_Group userGroup {open
xywh {120 30 325 25} deactivate
} {
Fl_Choice userIdChoice {
label {User id:} open
xywh {70 2 72 20} align FL_ALIGN_LEFT|FL_ALIGN_WRAP
extra_code {o->value("Anyone");
jam("/etc/passwd", userIdChoice);}
class Fl_Input_Browser
} {}
Fl_Choice groupIdChoice {
label {Group id:}
xywh {240 2 72 20} align FL_ALIGN_LEFT|FL_ALIGN_WRAP
extra_code {o->value("Anyone");
jam("/etc/group", groupIdChoice);}
class Fl_Input_Browser
} {}
}
Fl_Check_Button considerSizeValue {
label {Size:}
callback {if (considerSizeValue->value()) {
sizeGroup->activate();
}
else {
sizeGroup->deactivate();
}}
xywh {5 55 80 23} align FL_ALIGN_LEFT|FL_ALIGN_INSIDE|FL_ALIGN_WRAP
}
Fl_Group sizeGroup {open
xywh {85 55 360 25} deactivate box FLAT_BOX
} {
Fl_Value_Input sizeGValue {
label {greater than:}
xywh {90 2 70 20} step 1
}
Fl_Value_Input sizeMValue {
label {and less than(KB):}
xywh {275 2 70 20} step 1
}
}
Fl_Check_Button considerTimeValue {
label {Time:}
callback {if (considerTimeValue->value()) {
timeGroup1->activate();
timeValue->activate();
timeGroup2->activate();
}
else {
timeGroup1->deactivate();
timeValue->deactivate();
timeGroup2->deactivate();
}}
xywh {5 80 135 25}
}
Fl_Group timeGroup1 {
xywh {140 85 110 60} deactivate box FLAT_BOX
} {
Fl_Round_Button modifiedRadio {
label Modified
xywh {0 0 105 20} type RADIO
}
Fl_Round_Button changedRadio {
label Changed
xywh {0 20 105 20} type RADIO
}
Fl_Round_Button accessedRadio {
label Accessed
xywh {0 40 105 20} type RADIO
}
}
Fl_Group {} {open
xywh {255 90 80 60}
} {
Fl_Value_Input timeValue {
label {in previous:}
xywh {5 33 65 20} align FL_ALIGN_TOP|FL_ALIGN_LEFT|FL_ALIGN_CLIP|FL_ALIGN_WRAP deactivate maximum 100 step 1
}
}
Fl_Group timeGroup2 {open
xywh {335 85 110 60} deactivate box FLAT_BOX
} {
Fl_Group {} {open
xywh {0 0 105 60}
} {
Fl_Round_Button minutesRadio {
label Minutes
xywh {0 0 105 15} type RADIO
}
Fl_Round_Button hoursRadio {
label Hours
xywh {0 15 105 15} type RADIO
}
Fl_Round_Button daysRadio {
label Days
xywh {0 30 105 15} type RADIO
}
Fl_Round_Button mounthsRadio {
label Mounths
xywh {0 45 105 15} type RADIO
}
}
}
Fl_Box {} {
xywh {440 5 10 145}
extra_code {o->parent()->resizable(o);}
}
}
}
Fl_Group {} {
label {Content options}
xywh {1 23 471 211} hide
} {
Fl_Group {} {
label {General considerations} open
xywh {7 20 459 185} align FL_ALIGN_TOP|FL_ALIGN_LEFT box ENGRAVED_BOX
extra_code {o->parent()->resizable(o);}
} {
Fl_Check_Button doNotLookIntoBinaryCheck {
label {Do not look into binary files}
xywh {15 10 270 23} value 1
}
Fl_Check_Button outputCountCheck {
label {Output count of matching lines}
xywh {15 37 270 23} value 1
}
Fl_Round_Button matchAnywhereRadio {
label {Match anywhere}
xywh {15 72 255 20} type RADIO value 1
}
Fl_Round_Button matchWordsRadio {
label {Match whole words only}
xywh {15 95 255 20} type RADIO
}
Fl_Round_Button matchLinesRadio {
label {Match whole lines only}
xywh {15 118 255 20} type RADIO
}
Fl_Round_Button invertMatchRadio {
label {Output files where no match is found}
xywh {15 141 255 20} type RADIO
}
Fl_Box {} {
xywh {285 10 160 165}
extra_code {o->parent()->resizable(o);}
}
}
}
Fl_Group {} {
label About open
xywh {1 23 471 211}
} {
Fl_Box {} {
label {(C) Copyright 2000-2005. EDE Authors.
Efinder is using the code from xfglob which is
(C) Copyright 2000-2001 by Edscott Wilson Garcia.} selected
xywh {21 32 424 135} align FL_ALIGN_INSIDE|FL_ALIGN_WRAP
}
}
}
Fl_Browser searchList {open
xywh {3 245 473 85} align FL_ALIGN_TOP|FL_ALIGN_LEFT resizable
extra_code {\#include <efltk/Fl_ListView.h>
\#include <efltk/Fl_ListView_Item.h>
\#include <efltk/Fl_Util.h>
searchList->type(searchList->type() | Fl_ListView::MULTI_SELECTION);
searchList->add_column(_("Filename"), 200);
searchList->add_column(_("Size"), 79);
searchList->add_column(_("Last modified"), 125);
searchList->add_column(_("Rights"), 65);
searchList->column_flags(0, FL_ALIGN_LEFT);
searchList->column_flags(1, FL_ALIGN_CENTER);
searchList->column_flags(2, FL_ALIGN_CENTER);
searchList->column_flags(3, FL_ALIGN_RIGHT);}
class Fl_ListView
} {}
Fl_Box statusLine {
xywh {3 362 473 20} align FL_ALIGN_LEFT|FL_ALIGN_INSIDE when CHANGED box THIN_DOWN_BOX
}
Fl_Group {} {open
xywh {3 330 473 30}
} {
Fl_Button searchButton {
label {&Find}
callback {findCB();}
tooltip {Start the searching.}
xywh {222 3 80 25} shortcut 0xff0d
}
Fl_Button {} {
label {&Cancel}
callback {exit(0);}
xywh {392 3 80 25}
}
Fl_Button stopButton {
label {&Stop}
callback {stopSearch();}
tooltip {Stop the searching.}
xywh {307 3 80 25}
}
Fl_Box {} {
xywh {7 5 210 20}
extra_code {o->parent()->resizable(o);}
}
}
}
code {findWindow->end();
findWindow->show();} {}
}

69
efinder/efinder.h Executable file
View File

@ -0,0 +1,69 @@
// generated by Extended Fast Light User Interface Designer (eFluid) version 2.0003
#ifndef _EFINDER_H_
#define _EFINDER_H_
#include <efltk/Fl.h>
#include <efltk/Fl_Locale.h>
#include <efltk/Fl_Window.h>
#include <efltk/Fl_Group.h>
#include <efltk/Fl_Check_Button.h>
#include <efltk/Fl_Button.h>
#include <efltk/Fl_Tabs.h>
#include <efltk/Fl_Input.h>
#include <efltk/Fl_File_Dialog.h>
#include <efltk/Fl_Value_Input.h>
#include <efltk/Fl_Box.h>
#include <efltk/Fl_Input_Browser.h>
#include <efltk/Fl_Item.h>
#include <efltk/Fl_Round_Button.h>
#include <efltk/Fl_ListView.h>
#include <efltk/Fl_ListView_Item.h>
#include <efltk/Fl_Util.h>
extern Fl_Window* permWindow;
extern Fl_Window* findWindow;
extern Fl_Input* pathInput;
extern Fl_Input* filterInput;
extern Fl_Check_Button* recursiveCheck;
extern Fl_Value_Input* fileLimitValue;
extern Fl_Input* containsInput;
extern Fl_Check_Button* caseSensitiveCheck;
extern Fl_Check_Button* useRegexpCheck;
extern Fl_Input_Browser* fileTypeBrowser;
extern Fl_Check_Button* stayOnSingleCheck;
extern Fl_Check_Button* considerPermValue;
extern Fl_Check_Button* considerUserValue;
extern Fl_Group* userGroup;
extern Fl_Input_Browser* userIdChoice;
extern Fl_Input_Browser* groupIdChoice;
extern Fl_Check_Button* considerSizeValue;
extern Fl_Group* sizeGroup;
extern Fl_Value_Input* sizeGValue;
extern Fl_Value_Input* sizeMValue;
extern Fl_Check_Button* considerTimeValue;
extern Fl_Group* timeGroup1;
extern Fl_Round_Button* modifiedRadio;
extern Fl_Round_Button* changedRadio;
extern Fl_Round_Button* accessedRadio;
extern Fl_Value_Input* timeValue;
extern Fl_Group* timeGroup2;
extern Fl_Round_Button* minutesRadio;
extern Fl_Round_Button* hoursRadio;
extern Fl_Round_Button* daysRadio;
extern Fl_Round_Button* mounthsRadio;
extern Fl_Check_Button* doNotLookIntoBinaryCheck;
extern Fl_Check_Button* outputCountCheck;
extern Fl_Round_Button* matchAnywhereRadio;
extern Fl_Round_Button* matchWordsRadio;
extern Fl_Round_Button* matchLinesRadio;
extern Fl_Round_Button* invertMatchRadio;
extern Fl_ListView* searchList;
extern Fl_Box* statusLine;
extern Fl_Button* searchButton;
extern Fl_Button* stopButton;
void createPermWindow();
void createFindWindow();
#endif

622
efinder/eglob.cpp Executable file
View File

@ -0,0 +1,622 @@
// eglob.cpp
//
// glob for xfce Copyright 2000-2001 Edscott Wilson Garcia
// Copyright (C) 2001-2002 Martin Pekar
//
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <signal.h>
#include <unistd.h>
#include <stdarg.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <efltk/Fl.h>
#include <efltk/fl_ask.h>
#include <efltk/Fl_Item.h>
#include <efltk/Fl_Locale.h>
#include <efltk/Fl_Image.h>
#include <efltk/Fl_ListView_Item.h>
#include <edeconf.h>
#include "efinder.h"
#include "eglob.h"
#include "icons/block_dev.xpm"
#include "icons/char_dev.xpm"
#include "icons/dir_close.xpm"
#include "icons/exe.xpm"
#include "icons/sexe.xpm"
#include "icons/fifo.xpm"
#include "icons/page.xpm"
#include "icons/page_lnk.xpm"
#include "icons/socket.xpm"
#define GLOB "glob"
#define TRUE 1
#define FALSE 0
#define MAX_ARG 50
static int considerTime = FALSE, considerSize = FALSE,
considerUser = FALSE, considerPerm = FALSE, cancelled = FALSE;
static int pfd[2]; /* the pipe */
static pid_t Gpid; /* glob pid, to be able to cancel search */
static short int findCount; /* how many files found */
static short int fileLimit = 64;
static int type=0x0;
static Fl_Image block_dev_pix = *Fl_Image::read_xpm(0, (const char **)block_dev_xpm);
static Fl_Image char_dev_pix = *Fl_Image::read_xpm(0, (const char **)char_dev_xpm);
static Fl_Image dir_close_pix = *Fl_Image::read_xpm(0, (const char **)dir_close_xpm);
static Fl_Image exe_pix = *Fl_Image::read_xpm(0, (const char **)exe_xpm);
static Fl_Image sexe_pix = *Fl_Image::read_xpm(0, (const char **)sexe_xpm);
static Fl_Image fifo_pix = *Fl_Image::read_xpm(0, (const char **)fifo_xpm);
static Fl_Image page_pix = *Fl_Image::read_xpm(0, (const char **)page_xpm);
static Fl_Image page_lnk_pix = *Fl_Image::read_xpm(0, (const char **)page_lnk_xpm);
static Fl_Image socket_pix = *Fl_Image::read_xpm(0, (const char **)socket_xpm);
static char *ftypes[9] =
{
"Any kind",
"Regular",
"Directory",
"Symlink",
"Socket",
"Block device",
"Character device",
"FIFO",
NULL
};
static char *ft[] =
{
"any",
"reg",
"dir",
"sym",
"sock",
"blk",
"chr",
"fifo",
NULL
};
void
jam(char *file, Fl_Menu_ *optmenu)
{
FILE *archie;
char line[256];
char *s,*r,*t = "Anyone";
archie=fopen(file,"r");
if (archie==NULL) return;
optmenu->add("Anyone");
while (!feof(archie) && (fgets(line,255,archie)))
{
if (feof(archie)) break;
line[255]=0;
if ((line[0]=='#')||(strchr(line,':')==NULL)) continue;
r=strtok(line,":"); if (!r) continue;
s=strchr(r+strlen(r)+1,':')+1;if (!s) continue;
s=strtok(s,":");if (!s) continue;
t=(char *)malloc(strlen(s)+1);
strcpy(t,s);
optmenu->add(r);
}
fclose(archie);
return;
}
void
toggle_permission(long data)
{
int flag;
flag = (int ) ((long)data);
type ^= (flag&07777);
}
static void
abort_glob()
{
if (Gpid)
{
kill (Gpid, SIGKILL); //agressive
}
}
static void
abort_glob1()
{
if (Gpid)
{
kill (Gpid, SIGTERM); // nonagressive
}
}
void
GlobWait(void *data)
{
int status;
int childPID;
childPID = (int) ((long)data);
//fprintf(stderr,"waiting\n");
waitpid (childPID, &status, WNOHANG);
if (WIFEXITED (status))
{
//fprintf(stderr,"waiting done\n");
return;
}
Fl::add_timeout(2, GlobWait, (void*)childPID);
return;
}
void
findCB()
{
char *argument[MAX_ARG];
char sizeG_s[64], sizeM_s[64], hours_s[64], permS[64];
char *path, *filter, *token, *s;
int i, j, sizeG, sizeM, hours;
int childPID;
cancelled = FALSE;
if (Gpid)
{
kill (Gpid, SIGHUP);
Gpid = 0;
}
searchList->clear();
findCount = 0;
fileLimit = (int) fileLimitValue->value();
path = (char*) pathInput->value();
if (strlen(path)==0)
path = "/";
if (path[strlen(path)-1]=='~')
path = "~/"; //tilde expansion
if (path[0]=='$') //environment variables
{
path=getenv(path+1);
if (path==NULL)
path="/";
}
filter = (char*) filterInput->value();
token = (char*) containsInput->value();
considerTime = considerTimeValue->value();
considerSize = considerSizeValue->value();
considerUser = considerUserValue->value();
considerPerm = considerPermValue->value();
if (considerSize)
{
sizeG = (int)sizeGValue->value();
sizeM = (int)sizeMValue->value();
if ((sizeM <= sizeG)&&(sizeM > 0))
{
fl_alert("Incoherent size considerations!");
return;
}
}
else
sizeG = sizeM = 0;
if (considerTime)
{
hours = (int)timeValue->value();
}
else
hours = 0;
//s = (char*) fileTypeBrowser->text(fileTypeBrowser->value());
s = (char*) fileTypeBrowser->value();
for (j = -1, i = 0; ftypes[i] != NULL; i++)
{
if (strcmp (s, ftypes[i]) == 0)
{
j = i;
break;
}
}
if (j < 0)
s = ftypes[0];
i = 0;
argument[i++] = GLOB;
//argument[i++] = "-v"; (verbose output from glob for debugging)
argument[i++] = "-P";
if (doNotLookIntoBinaryCheck->value())
argument[i++] = "-I";
if (recursiveCheck->value())
argument[i++] = "-r";
if (considerPerm)
{
argument[i++] = "-o";
snprintf(permS, sizeof(permS)-1, "0%o",type&07777);
argument[i++] = permS;
}
if (caseSensitiveCheck->value())
argument[i++] = "-i";
if (outputCountCheck->value())
argument[i++] = "-c";
if (invertMatchRadio->value())
argument[i++] = "-L";
if (matchWordsRadio->value())
argument[i++] = "-w";
else
{
if (matchLinesRadio->value())
argument[i++] = "-x";
}
if (j > 0)
{
argument[i++] = "-t";
argument[i++] = ft[j];
}
if (considerTime)
{
if (modifiedRadio->value()) argument[i++] = "-M";
if (accessedRadio->value()) argument[i++] = "-A";
if (changedRadio->value()) argument[i++] = "-C";
if (hours > 0)
{
if (minutesRadio->value()) argument[i++] = "-k";
if (hoursRadio->value()) argument[i++] = "-h";
if (daysRadio->value()) argument[i++] = "-d";
if (mounthsRadio->value()) argument[i++] = "-m";
snprintf (hours_s, sizeof(hours_s)-1, "%d", hours);
argument[i++] = hours_s;
}
}
if (considerSize)
{
if (sizeG > 0)
{
argument[i++] = "-s";
snprintf (sizeG_s, sizeof(sizeG_s)-1, "+%d", sizeG);
argument[i++] = sizeG_s;
}
if (sizeM > 0)
{
argument[i++] = "-s";
snprintf (sizeM_s, sizeof(sizeM_s)-1, "-%d", sizeM);
argument[i++] = sizeM_s;
}
}
if (stayOnSingleCheck->value())
argument[i++] = "-a";
if (considerUser)
{
if (userIdChoice->value())
{
argument[i++] = "-u";
//argument[i++] = (char*)userIdChoice->text(userIdChoice->value());
argument[i++] = (char*)userIdChoice->value();
}
if (groupIdChoice->value())
{
argument[i++] = "-g";
//argument[i++] = (char*)groupIdChoice->text(groupIdChoice->value());
argument[i++] = (char*)groupIdChoice->value();
}
}
if (strlen(filter) > 0) //don't apply filter if not specified and path is absolute!!
{
argument[i++] = "-f";
argument[i++] = filter;
}
else
{
if (path[strlen (path) - 1] == '/')
{
argument[i++] = "-f";
argument[i++] = "*";
}
else
{
struct stat st;
if (stat (path, &st) == 0)
{
if (S_ISDIR (st.st_mode))
{
argument[i++] = "-f";
argument[i++] = "*";
}
}
}
}
if (strlen(token) > 0) //search token in files
{
if (useRegexpCheck->value())
argument[i++] = "-E";
else
argument[i++] = "-e";
argument[i++] = token;
}
argument[i++] = path; // last argument must be the path
argument[i] = (char *) 0;
//for (j=0;j<i;j++) printf ("%s ",argument[j]);printf ("\n");
Gpid = 0;
childPID=fork ();
if (!childPID)
{
dup2 (pfd[1], 1); /* assign child stdout to pipe */
close (pfd[0]); /* not used by child */
execvp (GLOB, argument);
perror ("exec");
_exit (127); /* child never get here */
}
Fl::add_timeout(2, GlobWait, (void*)childPID);
char command[128];
char *textos[6];
strcpy (command, argument[0]);
for (j = 1; j < i; j++)
{
strcat (command, " ");
strcat (command, argument[j]);
}
if (strlen(token)) textos[0] = token; else textos[0] = "";
if (strlen(filter)) textos[1] = filter; else textos[1] = "";
if (strlen(path)) textos[2] = path; else textos[2] = "";
textos[3] = textos[4] = textos[5] = "";
int *data;
data=(int *)malloc(3*sizeof(int));
data[0]=data[1]=data[2]=0;
}
void
stopSearch()
{
cancelled = TRUE;
abort_glob();
}
void
process_find_messages(int, void*)
{
static char *buffer, line[256];
static int nothing_found;
char *filename;
buffer = line;
while (1)
{
if (!read (pfd[0], buffer, 1))
return;
if (buffer[0] == '\n')
{
buffer[1] = (char) 0;
if (strncmp(line, "GLOB DONE=", strlen ("GLOB DONE=")) == 0)
{
fl_message(_("Search finished."));
Gpid = 0;
if (nothing_found)
fl_message(_("Nothing found."));
if (findCount)
{
char mess[128];
snprintf(mess, 127, _("Found %d files."), findCount);
if (findCount >= fileLimit)
fl_message(_("Interrupted because maximum limit exceded."));
fl_alert(mess);
}
return;
}
if ((strncmp (line, "PID=", 4) == 0))
{
Gpid = atoi (line + 4);
//printf("Glob PID=%d\n",Gpid);
// fflush(NULL);
nothing_found = TRUE;
return;
}
if (cancelled)
return;
if (line[0] == '/') /* strstr for : and strtok and send to cuenta */
{
if (findCount >= fileLimit)
abort_glob1();
else
{
char *path, *linecount = NULL, *textos[6], cuenta[32],
sizeF[64], permF[16];
struct stat st;
int *data;
path = line;
char *ptr = path;
while(*ptr) { if(*ptr=='\n') *ptr='\0'; ptr++; }
statusLine->copy_label(fl_trim(path));
statusLine->redraw();
if (strstr(path, ":"))
{
path = strtok(path, ":");
linecount = strtok (NULL, ":");
if (strcmp(linecount, "0") == 0)
{
linecount = NULL;
return;
}
}
findCount++;
data=(int *)malloc(3*sizeof(int));
data[0]=findCount;
data[1]=data[2]=0;
if (linecount)
snprintf(cuenta, sizeof(cuenta)-1, "%d (%s %s)", findCount, linecount, "lines");
else
snprintf (cuenta, sizeof(cuenta)-1, "%d", findCount);
textos[0] = cuenta;
textos[1] = filename = (char*)fl_file_filename(path);
textos[2] = path;
Fl_Image *resultImage=0;
if (lstat (path, &st) == 0)
{
data[1]=st.st_size;
data[2]=st.st_ctime;
snprintf (sizeF, sizeof(sizeF)-1,"%ld", st.st_size);
snprintf (permF, sizeof(permF)-1,"0%o", st.st_mode & 07777);
textos[3] = sizeF;
textos[4] = ctime (&(st.st_ctime));
textos[5] = permF;
if (S_ISREG (st.st_mode))
{
resultImage = &page_pix;
}
if ((st.st_mode & 0100) || (st.st_mode & 010)
|| (st.st_mode & 01))
{
resultImage = &exe_pix;
}
if (st.st_mode & 04000)
{
resultImage = &sexe_pix;
}
if (S_ISDIR (st.st_mode))
{
resultImage = &dir_close_pix;
}
if (S_ISCHR (st.st_mode))
{
resultImage = &char_dev_pix;
}
if (S_ISBLK (st.st_mode))
{
resultImage = &block_dev_pix;
}
if (S_ISFIFO (st.st_mode))
{
resultImage = &fifo_pix;
}
if (S_ISLNK (st.st_mode))
{
resultImage = &page_lnk_pix;
}
if (S_ISSOCK (st.st_mode))
{
resultImage = &socket_pix;
}
}
else
{
textos[2] = textos[3] = textos[4] = "-";
}
{
// leave just directory
*(strrchr(path,'/'))=0;
if (!strlen(path))
textos[2]="/";
char output[FL_PATH_MAX];
snprintf(output, sizeof(output)-1, "%s/%s", textos[2], textos[1]);
searchList->begin();
Fl_ListView_Item *resultItem = new Fl_ListView_Item();
// Copy labels, so item destructor knows to de-allocate them
resultItem->copy_label(0, output);
resultItem->copy_label(1, textos[3]);
resultItem->copy_label(2, textos[4]);
resultItem->copy_label(3, textos[5]);
resultItem->image(resultImage);
searchList->end();
searchList->relayout();
searchList->redraw();
}
}
}
//else {}
nothing_found = FALSE;
buffer = line;
return; ; /* continue here causes main loop blocking */
}
buffer++;
}
return;
}
int main (int argc, char **argv)
{
fl_init_locale_support("efinder", PREFIX"/share/locale");
if (pipe (pfd) < 0)
{
perror ("pipe");
return 1;
}
createFindWindow();
Fl::add_fd(pfd[0], FL_READ, process_find_messages, (void*)pfd[0]);
Fl::run();
close(pfd[0]);
close(pfd[1]);
return 0;
}

44
efinder/eglob.h Executable file
View File

@ -0,0 +1,44 @@
// eglob.h
//
// Copyright 2000-2001 Edscott Wilson Garcia
// Copyright (C) 2001-2002 Martin Pekar
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#ifndef EGLOB_H_
#define EGLOB_H_
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <signal.h>
#include <unistd.h>
#include <stdarg.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <efltk/Fl_Locale.h>
#include <efltk/Fl_Util.h>
int process_find_messages();
void jam(char *file, Fl_Menu_ *);
void findCB();
void stopSearch();
void toggle_permission(long);
#endif

504
efinder/glob.c Executable file
View File

@ -0,0 +1,504 @@
/* glob.c file filter for grep.*/
/*
Copyright 2000 Edscott Wilson Garcia
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. */
/*****************************************************************/
#include "globber.h"
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <signal.h>
#include <stdarg.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <time.h>
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#ifdef HAVE_SNPRINTF
# include "snprintf.h"
#endif
#ifdef DMALLOC
# include "dmalloc.h"
#endif
/** tripas */
#define VERSION_NAME "\nglob 0.5.0\n\nCopyright 2000-2001 Edscott Wilson Garcia\n\
This is free software; see the source for copying conditions. There is NO\n\
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"
#define GREP "grep"
static void *object=NULL;
static int initial;
static int terminated = 0;
static char *token;
static int options=0,type=0;
static long size=0;
static long month_t=0;
static long unsigned day_t=0;
static long unsigned hour_t=0;
static long unsigned min_t=0;
#define GLOBRUN_PID 0x01
#define GLOBRUN_COUNT 0x02
#define GLOBRUN_FILTERED 0x04
#define GLOBRUN_IGNORE_CASE 0x08
#define GLOBRUN_REG_EXP 0x10
#define GLOBRUN_INVERT 0x20
/*#define GLOBRUN_WHATEVER 0x40*/
#define GLOBRUN_WORDS_ONLY 0x80
#define GLOBRUN_LINES_ONLY 0x100
#define GLOBRUN_ZERO_BYTE 0x200
#define GLOBRUN_NOBINARIES 0x400
#define GLOBRUN_RECURSIVE 0x800
#define GLOBRUN_VERBOSE 0x1000
#define GLOBRUN_XDEV 0x2000
#define MAX_ARG 25
static int display (char *input)
{
if (terminated) return terminated; /* die quietly and quickly */
printf ("%s\n", input);
if (time (NULL) - initial > 3) {
fflush (NULL);
initial = time (NULL);
}
return terminated;
}
static int grep (char *file)
{
static char *arguments[MAX_ARG];
int status = 0;
if (terminated) return terminated; /* die quietly and quickly */
arguments[status++] = "grep";
arguments[status++] = "-d";
arguments[status++] = "skip";
arguments[status++] = "-H";
if (options & GLOBRUN_NOBINARIES)
arguments[status++] = "-I";
if (options & GLOBRUN_IGNORE_CASE)
arguments[status++] = "-i";
if (options & GLOBRUN_WORDS_ONLY)
arguments[status++] = "-w";
if (options & GLOBRUN_LINES_ONLY)
arguments[status++] = "-x";
if (options & GLOBRUN_ZERO_BYTE)
arguments[status++] = "-Z";
if ((options & GLOBRUN_COUNT) && (options & GLOBRUN_INVERT))
{
arguments[status++] = "-c";
arguments[status++] = "-v";
}
if ((options & GLOBRUN_COUNT) && !(options & GLOBRUN_INVERT))
{
arguments[status++] = "-c";
}
if (!(options & GLOBRUN_COUNT) && (options & GLOBRUN_INVERT))
{
arguments[status++] = "-L";
}
if (!(options & GLOBRUN_COUNT) && !(options & GLOBRUN_INVERT))
{
arguments[status++] = "-l";
}
if (options & GLOBRUN_REG_EXP)
arguments[status++] = "-E";
else
arguments[status++] = "-e";
arguments[status++] = token;
arguments[status++] = file;
arguments[status++] = (char *) 0;
if (options & GLOBRUN_VERBOSE)
{
int i;
for (i = 0; i < status; i++)
printf ("%s ", arguments[i]);
printf ("\n");
}
if (fork () == 0){
execvp (GREP, arguments);
fprintf(stderr,"%s not found in path!\n",GREP);
exit(1);
}
wait (&status);
/*fflush(NULL); */
return terminated;
}
static char *message[] = {
" [-vVPrMACaiIyLcwxZ] [-fpotkhsmudgeE (option)] path \n\n",
"options: \n"
" [-r] [-v] [-d ddd] [-m mmm] [-f filter] [-s (+/-)size]\n",
" [-t type] [-p perm] [grep options...] \n",
"-v = verbose\n",
"-V = print version number information\n",
"-a = stay on a single filesystem.\n",
"-P = print process id (capital P)\n",
"-f filter = file filter (enclosed in quotes if regexp *,? or\n",
" [] is used)\n",
"-r = recursive\n",
"-s +kbytes = size greater than kbytes KBYTES\n",
"-s -kbytes = size less than kbytes KBYTES\n",
"-p perm = perm is either suid | exe\n",
"-o octal_mode = octal mode is the file mode in octal notation\n",
"-t type = any | reg | dir | sym | sock | blk | chr | fifo\n",
" (any, regular, directory, symlink, socket, blk_dev,\n",
" chr_dev, fifo: any is the default.)\n",
" * Time options must be used with either -M, -C, or -A.\n"
"-k min = file time in the previous (int) min minutes (either -M -C -A)\n",
"-h hhh = file time in the previous (int) hh hours (either -M -C -A)\n",
"-d ddd = file time in the previous (int) dd days (either -M -C -A)\n",
"-m mmm = file time in the previous (int) mm months (either -M -C -A)\n",
"-M = use mtime for file (modification time: mknod, truncate,\n",
" utime,write \n",
"-A = use atime for file (access time: exec, mknod, pipe,\n",
" utime, read) \n",
"-C = use ctime for file (change time: setting inode information\n",
" i.e., owner, group, link count, mode, etc.) \n",
"-u user-id = only files matching numeric user-id\n",
"-g group-id = only files matching numeric group-id\n",
"-Z = Output a zero byte (the ASCII NUL character)\n",
" instead of the character that normally follows a\n",
" file name (never tested option, if you do, email me)\n",
"\n",
"**specifying these option will be used in content search (grep):\n",
"-e string = containing string (if *,? or [], use quotes)\n",
"-E regexp = containing regexp: (use quotes amigo). \n",
"-i = ignore case (for search string -c)\n",
"-I = do not search into binary files\n",
"-y = same as -i (obsolete)\n",
"-L = print the name of each input file from which *no*\n",
" output would normally have been printed.\n",
"-c = only print a count of matching lines for each input\n",
" file.\n",
"-w = Select only those lines containing matches that\n",
" form whole words. Word-constituent characters are\n",
" letters, digits, and the underscore.\n",
"-x = Select only those matches that exactly match the\n",
" whole line.\n",
"\n",
NULL
};
void
finish (int sig)
{
/*printf("\n****\nglob terminated by signal\n****\n"); */
terminated = 1;
fflush (NULL);
}
void
halt (int sig)
{
fflush (NULL);
globber_destroy(object);
exit (1);
}
#define CHECK_ARG if (argc <= i) goto error;
int
main (int argc, char **argv)
{
int i,timetype=0;
char *filter = NULL, globbered = 0;
int (*operate) (char *) = display;
initial = time (NULL);
/* initializations */
signal (SIGHUP, halt);
signal (SIGSEGV, finish);
signal (SIGKILL, finish);
signal (SIGTERM, finish);
if (argc < 2)
{
error:
fprintf (stdout, "use: %s ", argv[0]);
i = 0;
while (message[i])
fprintf (stdout,"%s", message[i++]);
exit (1);
}
object=globber_create();
for (i = 1; i < argc; i++)
{
if (argv[i][0] == '-')
{
/* options for the globber : *****************/
if (strstr (argv[i], "M") != NULL)
{
timetype=1;
glob_set_options(object,GLOBBER_MTIME);
continue;
}
if (strstr (argv[i], "A") != NULL)
{
timetype=1;
glob_set_options(object,GLOBBER_ATIME);
continue;
}
if (strstr (argv[i], "C") != NULL)
{
timetype=1;
glob_set_options(object,GLOBBER_CTIME);
continue;
}
if (strstr (argv[i], "a") != NULL)
{
glob_set_options(object,GLOBBER_XDEV);
options |= GLOBRUN_XDEV;
continue;
}
if (strstr (argv[i], "v") != NULL)
{
glob_set_options(object,GLOBBER_VERBOSE);
options |= GLOBRUN_VERBOSE;
continue;
}
if (strstr (argv[i], "r") != NULL)
{
glob_set_options(object,GLOBBER_RECURSIVE);
options |= GLOBRUN_RECURSIVE;
continue;
}
if (strstr (argv[i], "u") != NULL)
{
i++;
CHECK_ARG;
glob_set_user(object,atol(argv[i]));
continue;
}
if (strstr (argv[i], "g") != NULL)
{
i++;
CHECK_ARG;
glob_set_group(object,atol(argv[i]));
continue;
}
if (strstr (argv[i], "t") != NULL)
{
i++;
type &= 07777;
CHECK_ARG;
/*if (strcmp (argv[i], "any") == 0) type &= 07777;*/
if (strcmp (argv[i], "reg") == 0) type |= S_IFREG;
if (strcmp (argv[i], "dir") == 0) type |= S_IFDIR;
if (strcmp (argv[i], "sym") == 0) type |= S_IFLNK;
if (strcmp (argv[i], "sock") == 0)type |= S_IFSOCK;
if (strcmp (argv[i], "blk") == 0) type |= S_IFBLK;
if (strcmp (argv[i], "chr") == 0) type |= S_IFCHR;
if (strcmp (argv[i], "fifo") == 0)type |= S_IFIFO;
if (strcmp (argv[i], "any") != 0) {
glob_set_options(object,GLOBBER_TYPE);
glob_set_type(object,type);
}
continue;
}
if (strstr (argv[i], "p") != NULL)
{
i++;
/*type &= S_IFMT;*/
CHECK_ARG;
if (strcmp (argv[i], "suid") == 0)
type |= S_ISUID;
if (strcmp (argv[i], "exe") == 0)
type |= S_IXUSR;
glob_set_options(object,GLOBBER_PERM);
glob_set_type(object,type);
continue;
}
if (strstr (argv[i], "o") != NULL)
{
int valor;
i++;
type &= S_IFMT;
CHECK_ARG;
sscanf(argv[i],"%o",&valor);
type |= (07777&valor);
glob_set_options(object,GLOBBER_PERM);
glob_set_type(object,type);
continue;
}
if (strstr (argv[i], "s") != NULL)
{
i++;
CHECK_ARG;
size = atol (argv[i]);
if (size < 0) glob_set_sizeL(object,-size*1024);
else glob_set_sizeG(object,size*1024);
continue;
}
if (strstr (argv[i], "k") != NULL)
{
i++;
CHECK_ARG;
min_t = atol (argv[i]);
glob_set_time(object,month_t,day_t,hour_t,min_t);
continue;
}
if (strstr (argv[i], "h") != NULL)
{
i++;
CHECK_ARG;
hour_t = atol (argv[i]);
glob_set_time(object,month_t,day_t,hour_t,min_t);
continue;
}
if (strstr (argv[i], "d") != NULL)
{
i++;
CHECK_ARG;
day_t = atol (argv[i]);
glob_set_time(object,month_t,day_t,hour_t,min_t);
continue;
}
if (strstr (argv[i], "m") != NULL)
{
CHECK_ARG;
month_t = atol (argv[i]);
glob_set_time(object,month_t,day_t,hour_t,min_t);
continue;
}
if (strstr (argv[i], "f") != NULL)
{
options |= GLOBRUN_FILTERED;
i++;
CHECK_ARG;
filter = argv[i];
if (options & GLOBRUN_VERBOSE)
fprintf (stderr, "filtering %s\n", filter);
continue;
}
/* options for grep : *******************/
if (strstr (argv[i], "I") != NULL)
{
options |= GLOBRUN_NOBINARIES;
continue;
}
if ((strstr (argv[i], "i") != NULL)||(strstr (argv[i], "y") != NULL))
{
options |= GLOBRUN_IGNORE_CASE;
continue;
}
if (strstr (argv[i], "L") != NULL)
{
options |= GLOBRUN_INVERT;
continue;
}
if (strstr (argv[i], "c") != NULL)
{
options |= GLOBRUN_COUNT;
continue;
}
if (strstr (argv[i], "w") != NULL)
{
options |= GLOBRUN_WORDS_ONLY;
continue;
}
if (strstr (argv[i], "x") != NULL)
{
options |= GLOBRUN_LINES_ONLY;
continue;
}
if (strstr (argv[i], "Z") != NULL)
{
options |= GLOBRUN_ZERO_BYTE;
continue;
}
if (strstr (argv[i], "P") != NULL)
{
options |= GLOBRUN_PID;
printf ("PID=%d\n", (int) getpid ());
fflush (NULL);
continue;
}
if (strstr (argv[i], "E") != NULL)
{
i++;
CHECK_ARG;
token = argv[i];
operate = grep;
options |= GLOBRUN_REG_EXP;
continue;
}
if (strstr (argv[i], "e") != NULL)
{
i++;
CHECK_ARG;
token = argv[i];
operate = grep;
options |= GLOBRUN_REG_EXP;
options ^= GLOBRUN_REG_EXP; /* turn off extended regexp */
continue;
}
if (strstr (argv[i], "V") != NULL)
{
printf ("%s", VERSION_NAME);
return 0;
}
fprintf(stdout,"unknown argument: %s\nuse -h for help.\n",argv[i]);
exit(1);
}
if (((min_t)||(hour_t)||(day_t)||(month_t))&& !timetype)
glob_set_options(object,GLOBBER_MTIME);
terminated = globber (object,argv[i], operate, filter);
globbered = 1;
} /* end of argument processing */
if (!globbered)
{
fprintf (stderr, "must specify path\n");
goto error;
}
/* if (terminated) printf("glob run was terminated.\n");*/
if (!terminated)
{ /* die quietly and quickly */
if (options & GLOBRUN_PID)
printf ("GLOB DONE=%d\n", (int) getpid ());
}
fflush (NULL);
globber_destroy(object);
exit (0);
}

304
efinder/globber.c Executable file
View File

@ -0,0 +1,304 @@
/* globber.c */
/*
Copyright 2000-2001 Edscott Wilson Garcia
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. */
/*****************************************************************/
#include "globber.h"
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <stdarg.h>
#include <glob.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <time.h>
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#ifdef HAVE_SNPRINTF
# include "snprintf.h"
#endif
#ifdef DMALLOC
# include "dmalloc.h"
#endif
/** tripas **/
/* private */
#ifndef GLOB_TILDE
#define GLOB_TILDE 0x0
#endif
#ifndef GLOB_ONLYDIR
#define GLOB_ONLYDIR 0x0
#endif
#define MONTH_T 2628000
#define DAY_T 86400
#define HOUR_T 3600
#define MIN_T 60
typedef struct objeto_globber {
int options;
int type;
int user;
int group;
long unsigned sizeG;
long unsigned sizeL;
long unsigned month_t;
long unsigned day_t;
long unsigned hour_t;
long unsigned min_t;
/* private variables, not to be duplicated on recursion: */
struct stat *stinit;
struct stat st;
int pass;
time_t tiempo;
time_t actual;
int dostat;
} objeto_globber;
static int display(char *input){
printf("%s\n",input); /*fflush(NULL);*/
return 0;
}
#define DO_CHECK_PARAM if (!address) return 0; else objeto = (objeto_globber *)address;
/* public */
int glob_clear_options(void *address){
objeto_globber *objeto;
DO_CHECK_PARAM;
objeto->stinit=NULL;
objeto->user=-1,
objeto->group=-1,
objeto->options=0x0,
objeto->sizeG=0x0,
objeto->sizeL=0x0,
objeto->type=0x0,
objeto->month_t=0x0,
objeto->day_t=0x0,
objeto->hour_t=0x0;
objeto->min_t=0x0;
objeto->pass=0x0;
objeto->dostat=0x0;
return 1;
}
void *globber_create(void){
objeto_globber *objeto;
objeto=(objeto_globber *)malloc(sizeof(objeto_globber));
glob_clear_options((void *)objeto);
return (void *)objeto;
}
void *globber_destroy(void *address){
objeto_globber *objeto;
DO_CHECK_PARAM;
if (address) free(address);
if (objeto->stinit) free(objeto->stinit);
return NULL;
}
int glob_set_options(void *address,int options){
objeto_globber *objeto;
DO_CHECK_PARAM;
objeto->options |= options;
return 1;
}
int glob_set_type(void *address,int type){
objeto_globber *objeto;
DO_CHECK_PARAM;
objeto->type=type;
return 1;
}
int glob_set_sizeG(void *address,long unsigned size){
objeto_globber *objeto;
DO_CHECK_PARAM;
glob_set_options(objeto,GLOBBER_SIZE);
objeto->sizeG=size;
return 1;
}
int glob_set_sizeL(void *address,long unsigned size){
objeto_globber *objeto;
DO_CHECK_PARAM;
objeto->sizeL=size;
return 1;
}
int glob_set_user(void *address,int user){
objeto_globber *objeto;
DO_CHECK_PARAM;
glob_set_options(objeto,GLOBBER_USER);
objeto->user=user;
return 1;
}
int glob_set_group(void *address,int group){
objeto_globber *objeto;
DO_CHECK_PARAM;
glob_set_options(objeto,GLOBBER_GROUP);
objeto->group=group;
return 1;
}
int glob_set_time(void *address,long unsigned month_t,long unsigned day_t,
long unsigned hour_t,long unsigned min_t){
objeto_globber *objeto;
DO_CHECK_PARAM;
objeto->month_t=month_t;
objeto->day_t=day_t;
objeto->hour_t=hour_t;
objeto->min_t=min_t;
return 1;
}
/* if the user defined "operate" function returns TRUE, Globber will exit
* and return to calling module with the same return value */
int globber(void *address,char *path,int (*operate)(char *),char *filter) {
/* these variables must be kept on the heap */
glob_t dirlist;
int i;
char *globstring;
objeto_globber *object;
if (!address) object= (objeto_globber *)globber_create();
else object = (objeto_globber *)address;
if (object->options&GLOBBER_VERBOSE) fprintf(stderr,"path= %s\n",path);
if (object->options&GLOBBER_TIME) {
if (object->options&GLOBBER_MTIME)
object->options &=((GLOBBER_CTIME|GLOBBER_ATIME)^0xffffffff);
else if (object->options&GLOBBER_CTIME)
object->options &=(GLOBBER_ATIME^0xffffffff);
}
dirlist.gl_offs=2;
if (!operate) operate=display;
if (filter){
globstring = (char *)malloc(strlen(path)+strlen(filter)+2);
strcpy(globstring,path);
if (path[strlen(path)-1]!='/') strcat(globstring,"/");
strcat(globstring,filter);
} else globstring = path;
if (glob(globstring,GLOB_ERR|GLOB_TILDE,NULL,&dirlist) != 0) {
if (object->options&GLOBBER_VERBOSE) fprintf(stderr,"%s: no match\n",globstring);
}
else for (i=0;i<dirlist.gl_pathc;i++) {
if (object->options&GLOBBER_STAT) {
lstat(dirlist.gl_pathv[i],&(object->st));
if (object->options&GLOBBER_USER){
if (object->user != object->st.st_uid)
continue;
}
if (object->options&GLOBBER_GROUP){
if (object->group != object->st.st_gid)
continue;
}
if (object->options&GLOBBER_TIME){
object->actual=time(NULL);
if (object->options&GLOBBER_MTIME) object->tiempo=object->st.st_mtime;
if (object->options&GLOBBER_ATIME) object->tiempo=object->st.st_atime;
if (object->options&GLOBBER_CTIME) object->tiempo=object->st.st_ctime;
if ((object->min_t > 0) && ((object->actual-object->tiempo)/MIN_T > object->min_t))
continue;
if ((object->hour_t > 0) && ((object->actual-object->tiempo)/HOUR_T > object->hour_t))
continue;
if ((object->day_t > 0) && ((object->actual-object->tiempo)/DAY_T > object->day_t))
continue;
if ((object->month_t > 0) && ((object->actual-object->tiempo)/MONTH_T > object->month_t))
continue;
}
if (object->options&GLOBBER_SIZE){
if ((object->sizeL > 0)&&(object->st.st_size > object->sizeL))
continue;
if (object->st.st_size < object->sizeG)
continue;
}
if (object->options&GLOBBER_PERM){
if ((object->st.st_mode & 07777) & (object->type & 07777));
else {
if ((object->st.st_mode & 07777)==(object->type & 07777));
else continue;
}
}
if (object->options&GLOBBER_TYPE) {
if ((object->st.st_mode & S_IFMT)!=(object->type & S_IFMT))
continue;
}
} /* done lstat'ing */
if ((object->pass=(*(operate))(dirlist.gl_pathv[i]))!=0) break;
}
if (filter) free(globstring);
globfree(&dirlist);
if (object->pass) {
if (object->stinit) {free(object->stinit); object->stinit=NULL;}
return (object->pass); /* error returned from function */
}
if (object->options&GLOBBER_RECURSIVE) {
globstring = (char *)malloc(strlen(path)+3);
strcpy(globstring,path);
strcat(globstring,(globstring[strlen(globstring)-1]=='/')?"*":"/*");
if (glob(globstring,GLOB_ERR|GLOB_ONLYDIR|GLOB_TILDE,NULL,&dirlist) != 0) {
if (object->options&GLOBBER_VERBOSE) fprintf(stderr,"%s: no match\n",globstring);
}
else for (i=0;i<dirlist.gl_pathc;i++) {
lstat(dirlist.gl_pathv[i],&(object->st));
if ((object->st.st_mode & S_IFMT)!=S_IFDIR) continue; /* dont follow non-dirs. */
if ((object->st.st_mode & S_IFMT)==S_IFLNK) continue; /* dont follow symlinks */
if (object->options&GLOBBER_XDEV){
if (object->stinit==NULL) {
object->stinit=(struct stat *) malloc(sizeof (struct stat));
lstat(dirlist.gl_pathv[i],object->stinit);
}
else {
if (object->st.st_dev != object->stinit->st_dev) continue;
/* dont leave filesystem */
}
}
if (object->options&GLOBBER_VERBOSE)
fprintf(stderr,"directory: %s \n",dirlist.gl_pathv[i]);
object->pass=globber(address,dirlist.gl_pathv[i],operate,filter);
if (object->pass) break;
}
free(globstring);
globfree(&dirlist);
}
if (object->stinit) {free(object->stinit);object->stinit=NULL;}
return (object->pass);
}

86
efinder/globber.h Executable file
View File

@ -0,0 +1,86 @@
/* globber.h */
/*
Copyright 2000 Edscott Wilson Garcia
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. */
/*****************************************************************/
/* version 0.5.0 is object oriented and eliminates sharing of
* global variables with other modules. */
/* globber in its own .o file and link it in later:*/
#define GLOBBER_VERSION 0.5.0
int globber(void *address,char *input,int (*operate)(char *),char *filter);
int glob_clear_options(void *address);
void *globber_create(void);
void *globber_destroy(void *);
int glob_set_options(void *address,int options);
int glob_set_type(void *address,int type);
int glob_set_sizeL(void *address,long unsigned size);
int glob_set_sizeG(void *address,long unsigned size);
int glob_set_user(void *address,int user);
int glob_set_group(void *address,int group);
int glob_set_time(void *address,long unsigned month_t,long unsigned day_t,
long unsigned hour_t,long unsigned min_t);
#ifdef __GLOBBER_INCLUDES__
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <stdarg.h>
#include <glob.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <time.h>
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#ifdef HAVE_SNPRINTF
# include "snprintf.h"
#endif
#ifdef DMALLOC
# include "dmalloc.h"
#endif
#endif /* __GLOBBER_C__ */
#define GLOBBER_RECURSIVE 0x01
#define GLOBBER_VERBOSE 0x02
#define GLOBBER_XDEV 0x04
#define GLOBBER_SIZE 0x08
#define GLOBBER_MTIME 0x10
#define GLOBBER_ATIME 0x20
#define GLOBBER_CTIME 0x40
/*GLOBBER_MTIME|GLOBBER_ATIME|GLOBBER_CTIME :*/
#define GLOBBER_TIME 0x70
#define GLOBBER_PERM 0x80
#define GLOBBER_TYPE 0x100
#define GLOBBER_USER 0x200
#define GLOBBER_GROUP 0x400
/* GLOBBER_XDEV | GLOBBER_SIZE | GLOBBER_TIME | GLOBBER_PERM |
* GLOBBER_TYPE | GLOBBER_USER | GLOBBER_GROUP : */
#define GLOBBER_STAT 0xffc

24
efinder/icons/block_dev.xpm Executable file
View File

@ -0,0 +1,24 @@
/* XPM */
static char * block_dev_xpm[] = {
"16 16 5 1",
" s None c None",
". c #5555FF",
"X c #808080",
"o c #BBBBBB",
"O c #000000",
" ",
" ........... ",
" .XoooooXXX. ",
" .XoOOOOXXX.X ",
" .XoOXXoOXX.X ",
" .XoOXXoOXX.X ",
" .XoOoooOXX.X ",
" .XoOOOOXXX.X ",
" .XoOXXXOOX.X ",
" .XoOXXXoOX.X ",
" .XoOoooOOX.X ",
" .XoOOOOOXX.X ",
" .XXXXXXXXX.X ",
" ...........X ",
" XXXXXXXXXX ",
" "};

61
efinder/icons/char_dev.xpm Executable file
View File

@ -0,0 +1,61 @@
/* XPM */
static char * char_dev_xpm[] = {
"16 17 41 1",
" c None",
". c #980000",
"X c #8A0000",
"o c #C20000",
"O c #FF0606",
"+ c #FF0E0E",
"@ c #FF5555",
"# c #FE3535",
"$ c #FF6161",
"% c #F40000",
"& c #000000",
"* c #5E0000",
"= c #A50000",
"- c #BC0000",
"; c #C80101",
": c #ED0000",
"> c #DB0000",
", c #E10000",
"< c #3A0000",
"1 c #340000",
"2 c #FF2323",
"3 c #FE5353",
"4 c #FF1010",
"5 c #4E0000",
"6 c #950101",
"7 c #200000",
"8 c #780000",
"9 c #FF2525",
"0 c #620000",
"q c #AC0000",
"w c #FE3838",
"e c #830000",
"r c #D00000",
"t c #680000",
"y c #760000",
"u c #FF1919",
"i c #FE3131",
"p c #FF1E1E",
"a c #B10000",
"s c #440000",
"d c #550000",
" .X ",
" oO++@ ",
" @##$O% &&&&&& ",
"X%@@@@@&&&&&&& ",
"*=-o;&&&& ",
" ***&&&&:>@@@, ",
" <1&&&,@@2#34@ ",
" 56&7 8:@2294@.",
" 0%&& *-:@@@@%.",
" qw&& .e=orr;q*",
" @O&&&=*0ty8t0 ",
" @ui&&&t111111 ",
"6@up9&&& ",
"e%@@@&&&&&&&&& ",
" =;rras&&&&&&& ",
" s*00d ",
" 77 "};

25
efinder/icons/dir_close.xpm Executable file
View File

@ -0,0 +1,25 @@
/* XPM */
static char *dir_close_xpm[] = {
/* width height num_colors chars_per_pixel */
"16 16 5 1",
" c None",
". c #FFE79C",
"+ c #C6864A",
"@ c #FFC78C",
"# c #000000",
" ",
" ",
" ...+ ",
" @.@@@+ ",
" @@@@@@@@@@@@ ",
" @@...........# ",
" @.@@@@@@@@@@+# ",
" @.@@@@@@@@@@+# ",
" @.@@@@@@@@@@+# ",
" @.@@@@@@@@@@+# ",
" @.@@@@@@@@@@+# ",
" @.@@@@@@@@@@+# ",
" @.+++++++++++# ",
" ############# ",
" ",
" "};

29
efinder/icons/dir_open.xpm Executable file
View File

@ -0,0 +1,29 @@
/* XPM */
static char *dir_open_xpm[] = {
/* width height num_colors chars_per_pixel */
" 16 16 6 1",
/* colors */
". c none",
"# c #ffe79c",
"a c #c6864a",
"b c #ffc78c",
"c c #000000",
"d c #0000ff",
/* pixels */
"................",
"................",
"....###a........",
"...#bbbba.......",
"..#bbbbbb#####..",
".#baaaaaaaaaaac.",
".#baa##########.",
".#ba#bbbbbbbbbba",
".#ba#bbbbbbbbbba",
".#b#bbbbbbbbbbac",
".#b#bbbbbbbbbbac",
".##bbbbbbbbbbacc",
".#aaaaaaaaaaaac.",
"..ccccccccccccc.",
"................",
"................"
};

24
efinder/icons/exe.xpm Executable file
View File

@ -0,0 +1,24 @@
/* XPM */
static char *exe_xpm[] = {
"16 16 5 1",
" c None",
". c #000000",
"X c #5555FF",
"o c #666666",
"O c #FFFFFE",
" ",
" ............. ",
" .XXXXXXXXXXX.o ",
" .XXXXXXXXXXX.o ",
" .............o ",
" .OOOOOOOOOOO.o ",
" .OOOOOOOOOOO.o ",
" .OOOOOOOOOOO.o ",
" .OOOOOOOOOOO.o ",
" .OOOOOOOOOOO.o ",
" .OOOOOOOOOOO.o ",
" .OOOOOOOOOOO.o ",
" .............o ",
" ooooooooooooo ",
" ",
" "};

24
efinder/icons/fifo.xpm Executable file
View File

@ -0,0 +1,24 @@
/* XPM */
static char * fifo_xpm[] = {
"16 16 5 1",
" s None c None",
". c #000000",
"X c #FFFF55",
"o c #5555FF",
"O c #BBBBBB",
" ",
"XX ... XXXXX",
"XX oo.oo XXXXX",
"XX oOo.oOo XXXXX",
"XX oOOoOOo XXXXX",
"XX ooOOOoo XXXXX",
"XX ooooooo XXXXX",
"XX ooooooo XXXXX",
"XX ooooooo XXXXX",
"XX ooooooo XXXXX",
"XX ooooooo XXXXX",
"XX ooooooo XXXXX",
"XX ooooo XXXXX",
"XX ooo XXXXX",
"XX ... XXXXX",
" "};

25
efinder/icons/go_down.xpm Executable file
View File

@ -0,0 +1,25 @@
/* XPM */
static char * go_down_xpm[] = {
"16 16 6 1",
" c none",
". c #FFFFFF",
"X c #A2A2A2",
"o c #000000",
"O c #595959",
"+ c #808080",
" +++++ ",
" OOOOO+ ",
" .ooooO+ ",
" .XXXoO+ ",
" .XXXoO+ ",
" .XXXoO+ ",
" .XXXoO+ ",
" .XXXoO+ ",
" +.XXXoO++++ ",
" OO.XXXoOOOO ",
" .oooXXXoooo ",
" .XXXXXXXo ",
" .XXXXXo ",
" .XXXo ",
" .Xo ",
" . "};

25
efinder/icons/go_to.xpm Executable file
View File

@ -0,0 +1,25 @@
/* XPM */
static char * go_to_xpm[] = {
"16 16 6 1",
" c none",
". c #FFFFFF",
"X c #000000",
"o c #A2A2A2",
"O c #595959",
"+ c #808080",
" ",
" ",
" ",
" . ",
" .X ",
" .oX ",
" .........ooX ",
" .oooooooooooX ",
" .ooooooooooooXO",
" .oooooooooooXO+",
" .XXXXXXXXooXO+ ",
" OOOOOOO.oXO+ ",
" ++++++.XO+ ",
" .O+ ",
" O+ ",
" + "};

26
efinder/icons/help.xpm Executable file
View File

@ -0,0 +1,26 @@
/* XPM */
static char * help_xpm[] = {
/* width height num_colors chars_per_pixel */
"16 16 3 1",
/* colors */
" c None",
". c #000000",
"X c #BBCCBB",
/* pixels */
" ",
" .....X ",
" .. X..X ",
" ..X ... ",
" ..X ... ",
" X.. X..X ",
" ..X ",
" .. ",
" ..X ",
" ..X ",
" ",
" ..X ",
" ..X ",
" ..X ",
" XX ",
" ",
" "};

23
efinder/icons/page.xpm Executable file
View File

@ -0,0 +1,23 @@
/* XPM */
static char * page_xpm[] = {
"16 16 4 1",
" c None",
". c #000000",
"+ c #FFFFFE",
"@ c #808080",
" ",
" ........ ",
" .+++++.@. ",
" .+++++.+@. ",
" .+++++.++@. ",
" .+++++.....@ ",
" .++++++@@@.@ ",
" .+++++++++.@ ",
" .+++++++++.@ ",
" .+++++++++.@ ",
" .+++++++++.@ ",
" .+++++++++.@ ",
" .+++++++++.@ ",
" ...........@ ",
" @@@@@@@@@@@ ",
" "};

24
efinder/icons/page_lnk.xpm Executable file
View File

@ -0,0 +1,24 @@
/* XPM */
static char * page_lnk_xpm[] = {
"16 16 5 1",
" s None c None",
". c #000000",
"X c #FFFFFE",
"o c #808080",
"O c #5555FF",
" ",
" ........ ",
" .XXXXX.o. ",
" .XXXXX.Xo. ",
" .XXXXX.XXo. ",
" .XXXXX.....o ",
" .XXXXOOooo.o ",
" .XXXXOOOXX.o ",
" .XOOOOOOOX.o ",
" .XOOOOOOOX.o ",
" .XXXXOOOXX.o ",
" .XXXXOOXXX.o ",
" .XXXXXXXXX.o ",
" ...........o ",
" ooooooooooo ",
" "};

24
efinder/icons/sexe.xpm Executable file
View File

@ -0,0 +1,24 @@
/* XPM */
static char * sexe_xpm[] = {
"16 16 5 1",
" c None",
". c #000000",
"X c #5555FF",
"o c #BBBBBB",
"O c #FF5555",
" ",
" ............. ",
" .XXXXXXXXXXX.o ",
" .XXXXXXXXXXX.o ",
" .............o ",
" .OOOOOOOOOOO.o ",
" .OOOOOOOOOOO.o ",
" .OOOOOOOOOOO.o ",
" .OOOOOOOOOOO.o ",
" .OOOOOOOOOOO.o ",
" .OOOOOOOOOOO.o ",
" .OOOOOOOOOOO.o ",
" .............o ",
" ooooooooooooo ",
" ",
" "};

23
efinder/icons/socket.xpm Executable file
View File

@ -0,0 +1,23 @@
/* XPM */
static char * socket_xpm[] = {
"16 16 4 1",
" s None c None",
". c #5555FF",
"X c #1111EE",
"o c #000000",
" ",
" .X ",
" .X ",
" .X ",
" .X ",
" .X ",
" .X ",
" .XXXXXX ",
" .......X ",
" .X ",
" .X ",
" . .X ",
" ...X ",
" ..X ",
" .ooo ",
" "};

246
efinder/icons/up.xpm Executable file
View File

@ -0,0 +1,246 @@
/* XPM */
static char * up_xpm[] = {
"24 24 219 2",
" c None",
". c #050505",
"+ c #090909",
"@ c #080808",
"# c #080807",
"$ c #070707",
"% c #030303",
"& c #000000",
"* c #AEAEAA",
"= c #E3E4DC",
"- c #D4D5CC",
"; c #D4D4CB",
"> c #D3D3C9",
", c #CDCDC3",
"' c #D7D7CB",
") c #838379",
"! c #B8B8B3",
"~ c #DADACD",
"{ c #C9C9BC",
"] c #CECFC3",
"^ c #CDCDC1",
"/ c #DBDACE",
"( c #8E8E83",
"_ c #ACADA7",
": c #D3D4C8",
"< c #C5C4B9",
"[ c #C7C8BC",
"} c #C7C7BB",
"| c #AAAA9F",
"1 c #4B4B47",
"2 c #4C4C49",
"3 c #484844",
"4 c #474742",
"5 c #42423D",
"6 c #45463F",
"7 c #10100F",
"8 c #ABACA4",
"9 c #CDCEC2",
"0 c #BFC0B3",
"a c #C3C4B7",
"b c #C1C1B5",
"c c #C0C0B3",
"d c #C6C6B9",
"e c #D0D0C4",
"f c #D0D1C5",
"g c #D1D1C5",
"h c #D1D2C5",
"i c #CECEC2",
"j c #D9D9CC",
"k c #3C3C38",
"l c #A9AAA2",
"m c #CACABF",
"n c #BBBCB0",
"o c #BCBEB1",
"p c #C7C7BD",
"q c #D0D1C7",
"r c #CED0C6",
"s c #CDCEC5",
"t c #CCCCC3",
"u c #CBCCC3",
"v c #CBCDC3",
"w c #CCCDC3",
"x c #CDCDC4",
"y c #CDCEC4",
"z c #CDCEC3",
"A c #CBCCC2",
"B c #D6D7CC",
"C c #5E5F59",
"D c #151515",
"E c #21211F",
"F c #1D1D1C",
"G c #000001",
"H c #A1A19B",
"I c #C3C4B9",
"J c #B4B5AB",
"K c #BCBCB1",
"L c #FAFAF6",
"M c #FFFFFA",
"N c #FEFFF8",
"O c #FFFFF8",
"P c #FEFFF7",
"Q c #FFFFF7",
"R c #FEFFF6",
"S c #FDFEF6",
"T c #FDFEF5",
"U c #FCFDF4",
"V c #FBFCF2",
"W c #FAFAF0",
"X c #4D4E48",
"Y c #010101",
"Z c #9A9A93",
"` c #BDBEB2",
" . c #ADAFA2",
".. c #C6C7BE",
"+. c #FFFFF9",
"@. c #FCFCF1",
"#. c #FCFCF2",
"$. c #FCFDF2",
"%. c #FDFDF3",
"&. c #FDFDF4",
"*. c #FEFEF4",
"=. c #FEFFF5",
"-. c #30302C",
";. c #999992",
">. c #BABBB0",
",. c #A5A699",
"'. c #D9D9D3",
"). c #F7F8ED",
"!. c #F9FAEF",
"~. c #F9FAF0",
"{. c #FAFBF1",
"]. c #FBFCF1",
"^. c #FFFFF6",
"/. c #E4E5DA",
"(. c #95968F",
"_. c #B3B5A9",
":. c #A3A598",
"<. c #EAEAE4",
"[. c #F8F9EE",
"}. c #F3F4E8",
"|. c #F5F5EB",
"1. c #F5F6EB",
"2. c #F6F7EC",
"3. c #F7F7EC",
"4. c #F8F8EE",
"5. c #F6F6EB",
"6. c #88887F",
"7. c #020102",
"8. c #8B8B83",
"9. c #A9AB9E",
"0. c #ADAFA4",
"a. c #F3F3EC",
"b. c #ECEEE2",
"c. c #EDEFE3",
"d. c #EEEFE3",
"e. c #EFF0E6",
"f. c #F0F1E6",
"g. c #F0F1E7",
"h. c #F0F2E7",
"i. c #F1F2E7",
"j. c #F1F3E8",
"k. c #F2F4E8",
"l. c #F3F4E9",
"m. c #F4F5EA",
"n. c #232320",
"o. c #020202",
"p. c #86877F",
"q. c #9D9F94",
"r. c #C5C7BF",
"s. c #ECEDE5",
"t. c #E1E3D6",
"u. c #E4E6D9",
"v. c #E4E7DA",
"w. c #E5E7DB",
"x. c #E6E8DB",
"y. c #E7E8DD",
"z. c #E7E9DD",
"A. c #E8EADE",
"B. c #E9EBDF",
"C. c #EAECE0",
"D. c #EBECE1",
"E. c #EBEDE1",
"F. c #AFB1A5",
"G. c #82837C",
"H. c #D5D6CF",
"I. c #D9DCD0",
"J. c #D4D7CA",
"K. c #D7D9CD",
"L. c #D8DACD",
"M. c #D9DBCE",
"N. c #DADBCF",
"O. c #DBDCD0",
"P. c #DBDDD1",
"Q. c #DCDED2",
"R. c #DEDFD3",
"S. c #DEE0D4",
"T. c #DFE2D6",
"U. c #E0E3D6",
"V. c #E0E2D6",
"W. c #3E3F3A",
"X. c #797A72",
"Y. c #ABAEA3",
"Z. c #CFD2C9",
"`. c #C1C3B7",
" + c #C5C7BB",
".+ c #C7C8BF",
"++ c #C8CBC0",
"@+ c #C9CBC0",
"#+ c #CACDC2",
"$+ c #CBCEC3",
"%+ c #CDD0C3",
"&+ c #CED1C5",
"*+ c #D0D3C7",
"=+ c #D2D3C8",
"-+ c #D2D4C8",
";+ c #DDDED4",
">+ c #B1B3A8",
",+ c #010001",
"'+ c #6E6F68",
")+ c #C2C4BA",
"!+ c #C3C5BA",
"~+ c #BEC1B5",
"{+ c #BFC2B7",
"]+ c #BFC2B8",
"^+ c #C0C3B8",
"/+ c #C0C3B9",
"(+ c #C1C4B9",
"_+ c #C2C5B9",
":+ c #C4C6BA",
"<+ c #C4C6BB",
"[+ c #CACEC3",
"}+ c #353531",
"|+ c #121211",
"1+ c #252523",
"2+ c #232421",
"3+ c #242421",
"4+ c #232321",
"5+ c #1A1B18",
"6+ c #010100",
" ",
" ",
" ",
" ",
" . + + @ # $ $ % ",
" & * = - ; > , ' ) & ",
" & ! ~ { ] ] ^ / ( & ",
" & _ : < [ [ } ] | 1 2 2 3 4 4 4 5 6 7 ",
" & 8 9 0 a b 0 c d e f g e e g h i j k ",
" & l m n o p q r s t u v w x y z A B C D E F % ",
" G H I J K L M N O N P P P Q R S S T U V W M X ",
" Y Z ` ...+.@.@.@.#.$.$.$.$.%.%.&.&.*.=.T M -.",
" Y ;.>.,.'.P ).!.!.~.W W W W {.{.{.].].W ^./.% ",
" Y (._.:.<.[.}.|.1.1.1.2.2.3.).).4.[.[.5.O 6. ",
" 7.8.9.0.a.b.b.c.d.d.e.f.g.h.i.j.k.l.l.m.l.n. ",
" o.p.q.r.s.t.u.v.w.x.y.z.A.A.B.C.D.E.B.1.F.& ",
" o.G.q.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.t.V.E.W. ",
" o.X.Y.Z.`. + +.+++@+#+$+%+&+*+=+: -+;+>+o. ",
" ,+'+)+!+~+{+{+{+{+]+^+^+/+(+_+!+:+<+[+}+ ",
" |+1+2+3+3+3+3+3+3+3+4+4+4+4+4+4+1+5+6+ ",
" ",
" ",
" ",
" "};

317
efinder/locale/hu.po Executable file
View File

@ -0,0 +1,317 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2005-02-09 11:22+0100\n"
"Last-Translator: Nemeth Otto <otto_nemeth@freemail.hu>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: efinder.cpp:65
#: efinder.cpp:322
msgid "Permissions"
msgstr "Jogok"
#: efinder.cpp:68
msgid "Owner"
msgstr "Tulajdonos"
#: efinder.cpp:71
#: efinder.cpp:88
#: efinder.cpp:105
msgid "Read"
msgstr "Olvasás"
#: efinder.cpp:74
#: efinder.cpp:91
#: efinder.cpp:108
msgid "Write"
msgstr "Írás"
#: efinder.cpp:77
#: efinder.cpp:94
#: efinder.cpp:111
msgid "Execute"
msgstr "Futtatás"
#: efinder.cpp:80
msgid "Set UID"
msgstr "UID-bit"
#: efinder.cpp:85
msgid "Group"
msgstr "Csoport"
#: efinder.cpp:97
msgid "Set GID"
msgstr "GID-bit"
#: efinder.cpp:102
msgid "Other"
msgstr "Egyéb"
#: efinder.cpp:114
msgid "Sticky"
msgstr "Sticky"
#: efinder.cpp:119
msgid "&Close"
msgstr "B&ezárás"
#: efinder.cpp:132
msgid "Select directory"
msgstr "Könyvtár kiválasztása..."
#: efinder.cpp:226
#: efinder.cpp:231
#: efinder.cpp:232
msgid "Find"
msgstr "Keresés"
#: efinder.cpp:236
msgid "Path:"
msgstr "Útvonal:"
#: efinder.cpp:243
msgid "&Browse..."
msgstr "&Tallóz..."
#: efinder.cpp:245
msgid "Find path."
msgstr ""
#: efinder.cpp:249
msgid "File filter:"
msgstr "Fájl szűrés:"
#: efinder.cpp:255
msgid "Search subdirectories"
msgstr "Alkönyvtárakban is"
#: efinder.cpp:260
msgid "Limit results to first n files:"
msgstr "Lista korlátozása n darabra:"
#: efinder.cpp:271
msgid "Content"
msgstr "Tartalom"
#: efinder.cpp:274
msgid "Containing:"
msgstr "Tartalmaz:"
#: efinder.cpp:279
msgid "Case sensitive"
msgstr "Kis-/nagybetű számít"
#: efinder.cpp:282
msgid "Extended regexp"
msgstr "Reguláris kifejezés"
#: efinder.cpp:295
msgid "Filter options"
msgstr "Szűrési opciók"
#: efinder.cpp:297
msgid "Considerations"
msgstr "Fájl tulajdonságok"
#: efinder.cpp:300
msgid "File type:"
msgstr "Fájl típus:"
#: efinder.cpp:302
msgid "Any kind"
msgstr "Bármilyen"
#: efinder.cpp:303
msgid "Regular"
msgstr "Általános fájl"
#: efinder.cpp:304
msgid "Directory"
msgstr "Könyvtár"
#: efinder.cpp:305
msgid "Symlink"
msgstr "Szimbolikus link"
#: efinder.cpp:306
msgid "Socket"
msgstr ""
#: efinder.cpp:307
msgid "Block device"
msgstr "Blokk eszköz"
#: efinder.cpp:308
msgid "Character device"
msgstr "Karakteres eszköz"
#: efinder.cpp:309
msgid "FIFO"
msgstr "FIFO"
#: efinder.cpp:315
msgid "Stay on single filesystem"
msgstr "Más fájlrendszeren nem keres"
#: efinder.cpp:325
msgid "User/group:"
msgstr "Felh./csoport:"
#: efinder.cpp:330
msgid "User id:"
msgstr "Felh.:"
#: efinder.cpp:336
msgid "Group id:"
msgstr "Csoport:"
#: efinder.cpp:344
msgid "Size:"
msgstr "Méret:"
#: efinder.cpp:351
msgid "greater than:"
msgstr "nagyobb mint:"
#: efinder.cpp:354
msgid "and less than(KB):"
msgstr "kisebb mint (KB):"
#: efinder.cpp:359
msgid "Time:"
msgstr "Idő:"
#: efinder.cpp:365
msgid "Modified"
msgstr "Módosítva"
#: efinder.cpp:368
msgid "Changed"
msgstr "Változtatva:"
#: efinder.cpp:371
msgid "Accessed"
msgstr "Használva:"
#: efinder.cpp:377
msgid "in previous:"
msgstr "az előző:"
#: efinder.cpp:389
msgid "Minutes"
msgstr "Percben"
#: efinder.cpp:392
msgid "Hours"
msgstr "Órában"
#: efinder.cpp:395
msgid "Days"
msgstr "Napban"
#: efinder.cpp:398
msgid "Mounths"
msgstr "Hónapban"
#: efinder.cpp:413
msgid "Content options"
msgstr "Tartalom opciók"
#: efinder.cpp:415
msgid "General considerations"
msgstr "Tartalmi opciók"
#: efinder.cpp:418
msgid "Do not look into binary files"
msgstr "Ne keressen bináris fájlban"
#: efinder.cpp:421
msgid "Output count of matching lines"
msgstr "Talált sorok számolása"
#: efinder.cpp:424
msgid "Match anywhere"
msgstr "Bármilyen találat"
#: efinder.cpp:428
msgid "Match whole words only"
msgstr "Teljes szó találat"
#: efinder.cpp:431
msgid "Match whole lines only"
msgstr "Teljes sor találat"
#: efinder.cpp:434
msgid "Output files where no match is found"
msgstr "Fájlok megjelenítése melyben nincs találat"
#: efinder.cpp:445
msgid "About"
msgstr "Magamról"
#: efinder.cpp:447
msgid ""
"(C) Copyright 2000-2005. EDE Authors.\n"
"\n"
" Efinder is using the code from xfglob which is\n"
" (C) Copyright 2000-2001 by Edscott Wilson Garcia."
msgstr ""
#: efinder.cpp:458
msgid "Filename"
msgstr "Fájlnév"
#: efinder.cpp:459
msgid "Size"
msgstr "Méret"
#: efinder.cpp:460
msgid "Last modified"
msgstr "Utolsó módosítás"
#: efinder.cpp:461
msgid "Rights"
msgstr "Jogok"
#: efinder.cpp:475
msgid "&Find"
msgstr "Ke&resés"
#: efinder.cpp:478
msgid "Start the searching."
msgstr "Keresés megkezdése"
#: efinder.cpp:480
msgid "&Cancel"
msgstr "Mégs&em"
#: efinder.cpp:483
msgid "&Stop"
msgstr "Megállítá&s"
#: efinder.cpp:485
msgid "Stop the searching."
msgstr "Megállítja a keresést."
#: eglob.cpp:446
msgid "Search finished."
msgstr "Keresés befejezve."
#: eglob.cpp:449
msgid "Nothing found."
msgstr "Nincs találat."
#: eglob.cpp:453
#, c-format
msgid "Found %d files."
msgstr "%d találat."
#: eglob.cpp:455
msgid "Interrupted because maximum limit exceded."
msgstr "Megszakítva - elértem a fájllimitet."

342
efinder/locale/id.po Executable file
View File

@ -0,0 +1,342 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: efinder\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-02-04 12:29+0100\n"
"PO-Revision-Date: 2002-12-17 16:07+0700\n"
"Last-Translator: Bambang Purnomosidi D. P. <i-am-the-boss@bpdp.org>\n"
"Language-Team: id <i-am-the-boss@bpdp.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-2\n"
"Content-Transfer-Encoding: 8bit\n"
#: efinder.cpp:65 efinder.cpp:322
msgid "Permissions"
msgstr "Permisi"
#: efinder.cpp:68
msgid "Owner"
msgstr "Pemilik"
#: efinder.cpp:71 efinder.cpp:88 efinder.cpp:105
msgid "Read"
msgstr "Baca"
#: efinder.cpp:74 efinder.cpp:91 efinder.cpp:108
msgid "Write"
msgstr "Tulis"
#: efinder.cpp:77 efinder.cpp:94 efinder.cpp:111
msgid "Execute"
msgstr "Eksekusi"
#: efinder.cpp:80
msgid "Set UID"
msgstr "Set UID"
#: efinder.cpp:85
msgid "Group"
msgstr "Grup"
#: efinder.cpp:97
msgid "Set GID"
msgstr "Set GID"
#: efinder.cpp:102
msgid "Other"
msgstr "Lainnya"
#: efinder.cpp:114
msgid "Sticky"
msgstr "Sticky"
#: efinder.cpp:119
msgid "&Close"
msgstr "&Tutup"
#: efinder.cpp:132
msgid "Select directory"
msgstr "Pilih direktori"
#: efinder.cpp:226 efinder.cpp:231 efinder.cpp:232
msgid "Find"
msgstr "Temukan"
#: efinder.cpp:236
msgid "Path:"
msgstr "Path:"
#: efinder.cpp:243
msgid "&Browse..."
msgstr "&Browse"
#: efinder.cpp:245
msgid "Find path."
msgstr "Temukan path."
#: efinder.cpp:249
msgid "File filter:"
msgstr "Filter file:"
#: efinder.cpp:255
msgid "Search subdirectories"
msgstr "Cari di subdirektori"
#: efinder.cpp:260
msgid "Limit results to first n files:"
msgstr "Batasi hasil untuk n file pertama:"
#: efinder.cpp:271
msgid "Content"
msgstr "Isi"
#: efinder.cpp:274
msgid "Containing:"
msgstr "Berisi:"
#: efinder.cpp:279
msgid "Case sensitive"
msgstr "Membedakan huruf besar dan kecil"
#: efinder.cpp:282
msgid "Extended regexp"
msgstr "Perluasan regexp"
#: efinder.cpp:295
msgid "Filter options"
msgstr "Pilihan filter"
#: efinder.cpp:297
msgid "Considerations"
msgstr "Pertimbangan"
#: efinder.cpp:300
msgid "File type:"
msgstr "Tipe file:"
#: efinder.cpp:302
msgid "Any kind"
msgstr ""
#: efinder.cpp:303
msgid "Regular"
msgstr ""
#: efinder.cpp:304
#, fuzzy
msgid "Directory"
msgstr "Pilih direktori"
#: efinder.cpp:305
msgid "Symlink"
msgstr ""
#: efinder.cpp:306
msgid "Socket"
msgstr ""
#: efinder.cpp:307
msgid "Block device"
msgstr ""
#: efinder.cpp:308
msgid "Character device"
msgstr ""
#: efinder.cpp:309
msgid "FIFO"
msgstr ""
#: efinder.cpp:315
msgid "Stay on single filesystem"
msgstr "Tinggal pada satu filesistem"
#: efinder.cpp:325
msgid "User/group:"
msgstr "Pemakai/grup"
#: efinder.cpp:330
msgid "User id:"
msgstr "id pemakai:"
#: efinder.cpp:336
msgid "Group id:"
msgstr "id grup:"
#: efinder.cpp:344
msgid "Size:"
msgstr "Ukuran"
#: efinder.cpp:351
msgid "greater than:"
msgstr "Lebih besar dari:"
#: efinder.cpp:354
msgid "and less than(KB):"
msgstr "dan lebih kecil dari(KB):"
#: efinder.cpp:359
msgid "Time:"
msgstr "Waktu:"
#: efinder.cpp:365
msgid "Modified"
msgstr "Dimodifikasi"
#: efinder.cpp:368
msgid "Changed"
msgstr "Diubah"
#: efinder.cpp:371
msgid "Accessed"
msgstr "Diakses"
#: efinder.cpp:377
msgid "in previous:"
msgstr "dalam sebelumnya:"
#: efinder.cpp:389
msgid "Minutes"
msgstr "Menit"
#: efinder.cpp:392
msgid "Hours"
msgstr "Jam"
#: efinder.cpp:395
msgid "Days"
msgstr "Hari"
#: efinder.cpp:398
msgid "Mounths"
msgstr "Bulan"
#: efinder.cpp:413
msgid "Content options"
msgstr "Pilihan isi"
#: efinder.cpp:415
msgid "General considerations"
msgstr "Pertimbangan umum"
#: efinder.cpp:418
msgid "Do not look into binary files"
msgstr "Jangan melihat isi file biner"
#: efinder.cpp:421
msgid "Output count of matching lines"
msgstr "Mengeluarkan jumlah baris yang sesuai"
#: efinder.cpp:424
msgid "Match anywhere"
msgstr "Cocok dimanapun"
#: efinder.cpp:428
msgid "Match whole words only"
msgstr "Cocok hanya seluruh kata"
#: efinder.cpp:431
msgid "Match whole lines only"
msgstr "Cocok hanya keseluruhan baris"
#: efinder.cpp:434
msgid "Output files where no match is found"
msgstr "Mengeluarkan file-file yang tidak ada kesesuaian ditemukan"
#: efinder.cpp:445
msgid "About"
msgstr "Tentang"
#: efinder.cpp:447
#, fuzzy
msgid ""
"(C) Copyright 2000-2005. EDE Authors.\n"
"\n"
" Efinder is using the code from xfglob which is\n"
" (C) Copyright 2000-2001 by Edscott Wilson Garcia."
msgstr ""
"(C) Hak cipta 2000-2002 oleh Martin Pekar. Program ini menggunakan kode dari "
"xfglob yang merupakan (C) Hak cipta 2000-2001 oleh Edscott Wilson Gracia."
#: efinder.cpp:458
msgid "Filename"
msgstr "Namafile"
#: efinder.cpp:459
msgid "Size"
msgstr "Ukuran"
#: efinder.cpp:460
msgid "Last modified"
msgstr "Dimodifikasi terakhir"
#: efinder.cpp:461
msgid "Rights"
msgstr "Hak"
#: efinder.cpp:475
msgid "&Find"
msgstr "&Temukan"
#: efinder.cpp:478
msgid "Start the searching."
msgstr "Memulai pencarian."
#: efinder.cpp:480
msgid "&Cancel"
msgstr "&Batal"
#: efinder.cpp:483
msgid "&Stop"
msgstr "&Stop"
#: efinder.cpp:485
msgid "Stop the searching."
msgstr "Stop pencarian."
#: eglob.cpp:446
msgid "Search finished."
msgstr "Pencarian selesai."
#: eglob.cpp:449
msgid "Nothing found."
msgstr "Tidak ada yang ditemukan."
#: eglob.cpp:453
#, c-format
msgid "Found %d files."
msgstr "Ditemukan %d file"
#: eglob.cpp:455
msgid "Interrupted because maximum limit exceded."
msgstr "Diinterupsi karena batas maksimum terlampaui."
#~ msgid "Finder for Equinox Desktop Environment v. 1.0"
#~ msgstr "Finder untuk Equinox Desktop Environment v. 1.0"
#~ msgid ""
#~ "This program is based in part on the work of FLTK project (www.fltk.org). "
#~ "This program is free software, you can redistribute it and/or modify it "
#~ "under the terms of GNU General Public License as published by the Free "
#~ "Software Foundation, either version 2 of the License, or (at your option) "
#~ "any later version. This program is distributed in the hope that it will "
#~ "be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of "
#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General "
#~ "Public License for more details. You should have received a copy of the "
#~ "GNU General Public Licence along with this program; if not, write to the "
#~ "Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA."
#~ msgstr ""
#~ "Program ini berbasis pada hasil pekerjaan proyek FLTK (www.fltk.org). "
#~ "Program ini adalah free software, anda bisa mendistribusikan kembali dan/"
#~ "atau memodifikasinya dengan syarat-syarat yang diatur pada GNU General "
#~ "Public License, versi 2 atau versi yang lebih baru. Program ini "
#~ "didistribusikan dengan harapan akan berguna, tetapi TANPA JAMINAN; bahkan "
#~ "tanpa jaminan daya jual dan tujuan-tujuan tertentu. Lihat GNU General "
#~ "Public License untuk lebih jelasnya. Anda seharusnya telah menerima "
#~ "salinan GNU General Public License bersama dengan program ini; jikat "
#~ "tidak, silahkan minta ke Free Software Foundation, Inc., 675 Mass Ave, "
#~ "Cambridge, MA 02139, USA."

314
efinder/locale/messages.pot Executable file
View File

@ -0,0 +1,314 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-07-22 10:29+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: efinder/efinder.cpp:65 efinder/efinder.cpp:322
msgid "Permissions"
msgstr ""
#: efinder/efinder.cpp:68
msgid "Owner"
msgstr ""
#: efinder/efinder.cpp:71 efinder/efinder.cpp:88 efinder/efinder.cpp:105
msgid "Read"
msgstr ""
#: efinder/efinder.cpp:74 efinder/efinder.cpp:91 efinder/efinder.cpp:108
msgid "Write"
msgstr ""
#: efinder/efinder.cpp:77 efinder/efinder.cpp:94 efinder/efinder.cpp:111
msgid "Execute"
msgstr ""
#: efinder/efinder.cpp:80
msgid "Set UID"
msgstr ""
#: efinder/efinder.cpp:85
msgid "Group"
msgstr ""
#: efinder/efinder.cpp:97
msgid "Set GID"
msgstr ""
#: efinder/efinder.cpp:102
msgid "Other"
msgstr ""
#: efinder/efinder.cpp:114
msgid "Sticky"
msgstr ""
#: efinder/efinder.cpp:119
msgid "&Close"
msgstr ""
#: efinder/efinder.cpp:132
msgid "Select directory"
msgstr ""
#: efinder/efinder.cpp:226 efinder/efinder.cpp:231 efinder/efinder.cpp:232
msgid "Find"
msgstr ""
#: efinder/efinder.cpp:236
msgid "Path:"
msgstr ""
#: efinder/efinder.cpp:243
msgid "&Browse..."
msgstr ""
#: efinder/efinder.cpp:245
msgid "Find path."
msgstr ""
#: efinder/efinder.cpp:249
msgid "File filter:"
msgstr ""
#: efinder/efinder.cpp:255
msgid "Search subdirectories"
msgstr ""
#: efinder/efinder.cpp:260
msgid "Limit results to first n files:"
msgstr ""
#: efinder/efinder.cpp:271
msgid "Content"
msgstr ""
#: efinder/efinder.cpp:274
msgid "Containing:"
msgstr ""
#: efinder/efinder.cpp:279
msgid "Case sensitive"
msgstr ""
#: efinder/efinder.cpp:282
msgid "Extended regexp"
msgstr ""
#: efinder/efinder.cpp:295
msgid "Filter options"
msgstr ""
#: efinder/efinder.cpp:297
msgid "Considerations"
msgstr ""
#: efinder/efinder.cpp:300
msgid "File type:"
msgstr ""
#: efinder/efinder.cpp:302
msgid "Any kind"
msgstr ""
#: efinder/efinder.cpp:303
msgid "Regular"
msgstr ""
#: efinder/efinder.cpp:304
msgid "Directory"
msgstr ""
#: efinder/efinder.cpp:305
msgid "Symlink"
msgstr ""
#: efinder/efinder.cpp:306
msgid "Socket"
msgstr ""
#: efinder/efinder.cpp:307
msgid "Block device"
msgstr ""
#: efinder/efinder.cpp:308
msgid "Character device"
msgstr ""
#: efinder/efinder.cpp:309
msgid "FIFO"
msgstr ""
#: efinder/efinder.cpp:315
msgid "Stay on single filesystem"
msgstr ""
#: efinder/efinder.cpp:325
msgid "User/group:"
msgstr ""
#: efinder/efinder.cpp:330
msgid "User id:"
msgstr ""
#: efinder/efinder.cpp:336
msgid "Group id:"
msgstr ""
#: efinder/efinder.cpp:344
msgid "Size:"
msgstr ""
#: efinder/efinder.cpp:351
msgid "greater than:"
msgstr ""
#: efinder/efinder.cpp:354
msgid "and less than(KB):"
msgstr ""
#: efinder/efinder.cpp:359
msgid "Time:"
msgstr ""
#: efinder/efinder.cpp:365
msgid "Modified"
msgstr ""
#: efinder/efinder.cpp:368
msgid "Changed"
msgstr ""
#: efinder/efinder.cpp:371
msgid "Accessed"
msgstr ""
#: efinder/efinder.cpp:377
msgid "in previous:"
msgstr ""
#: efinder/efinder.cpp:389
msgid "Minutes"
msgstr ""
#: efinder/efinder.cpp:392
msgid "Hours"
msgstr ""
#: efinder/efinder.cpp:395
msgid "Days"
msgstr ""
#: efinder/efinder.cpp:398
msgid "Mounths"
msgstr ""
#: efinder/efinder.cpp:413
msgid "Content options"
msgstr ""
#: efinder/efinder.cpp:415
msgid "General considerations"
msgstr ""
#: efinder/efinder.cpp:418
msgid "Do not look into binary files"
msgstr ""
#: efinder/efinder.cpp:421
msgid "Output count of matching lines"
msgstr ""
#: efinder/efinder.cpp:424
msgid "Match anywhere"
msgstr ""
#: efinder/efinder.cpp:428
msgid "Match whole words only"
msgstr ""
#: efinder/efinder.cpp:431
msgid "Match whole lines only"
msgstr ""
#: efinder/efinder.cpp:434
msgid "Output files where no match is found"
msgstr ""
#: efinder/efinder.cpp:445
msgid "About"
msgstr ""
#: efinder/efinder.cpp:447
msgid ""
"(C) Copyright 2000-2005. EDE Authors.\n"
"\n"
" Efinder is using the code from xfglob which is\n"
" (C) Copyright 2000-2001 by Edscott Wilson Garcia."
msgstr ""
#: efinder/efinder.cpp:458
msgid "Filename"
msgstr ""
#: efinder/efinder.cpp:459
msgid "Size"
msgstr ""
#: efinder/efinder.cpp:460
msgid "Last modified"
msgstr ""
#: efinder/efinder.cpp:461
msgid "Rights"
msgstr ""
#: efinder/efinder.cpp:475
msgid "&Find"
msgstr ""
#: efinder/efinder.cpp:478
msgid "Start the searching."
msgstr ""
#: efinder/efinder.cpp:480
msgid "&Cancel"
msgstr ""
#: efinder/efinder.cpp:483
msgid "&Stop"
msgstr ""
#: efinder/efinder.cpp:485
msgid "Stop the searching."
msgstr ""
#: efinder/eglob.cpp:446
msgid "Search finished."
msgstr ""
#: efinder/eglob.cpp:449
msgid "Nothing found."
msgstr ""
#: efinder/eglob.cpp:453
#, c-format
msgid "Found %d files."
msgstr ""
#: efinder/eglob.cpp:455
msgid "Interrupted because maximum limit exceded."
msgstr ""

320
efinder/locale/ru.po Executable file
View File

@ -0,0 +1,320 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-02-04 12:29+0100\n"
"PO-Revision-Date: 2002-11-28 HO:MI+ZONE\n"
"Last-Translator: aabbvv <null@list.ru>\n"
"Language-Team: RUSSIAN <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=koi8-r\n"
"Content-Transfer-Encoding: 8bit\n"
#: efinder.cpp:65 efinder.cpp:322
msgid "Permissions"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:68
msgid "Owner"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:71 efinder.cpp:88 efinder.cpp:105
msgid "Read"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:74 efinder.cpp:91 efinder.cpp:108
msgid "Write"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:77 efinder.cpp:94 efinder.cpp:111
msgid "Execute"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:80
msgid "Set UID"
msgstr "GID"
#: efinder.cpp:85
msgid "Group"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:97
msgid "Set GID"
msgstr "UID"
#: efinder.cpp:102
msgid "Other"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:114
msgid "Sticky"
msgstr ""
#: efinder.cpp:119
msgid "&Close"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:132
msgid "Select directory"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:226 efinder.cpp:231 efinder.cpp:232
msgid "Find"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:236
msgid "Path:"
msgstr "<22><><EFBFBD><EFBFBD>:"
#: efinder.cpp:243
msgid "&Browse..."
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."
#: efinder.cpp:245
msgid "Find path."
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>"
#: efinder.cpp:249
msgid "File filter:"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:"
#: efinder.cpp:255
msgid "Search subdirectories"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:260
msgid "Limit results to first n files:"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:"
#: efinder.cpp:271
msgid "Content"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:274
msgid "Containing:"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:"
#: efinder.cpp:279
msgid "Case sensitive"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:282
msgid "Extended regexp"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:295
msgid "Filter options"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:297
msgid "Considerations"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:300
msgid "File type:"
msgstr "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>:"
#: efinder.cpp:302
msgid "Any kind"
msgstr ""
#: efinder.cpp:303
msgid "Regular"
msgstr ""
#: efinder.cpp:304
#, fuzzy
msgid "Directory"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:305
msgid "Symlink"
msgstr ""
#: efinder.cpp:306
msgid "Socket"
msgstr ""
#: efinder.cpp:307
msgid "Block device"
msgstr ""
#: efinder.cpp:308
msgid "Character device"
msgstr ""
#: efinder.cpp:309
msgid "FIFO"
msgstr ""
#: efinder.cpp:315
msgid "Stay on single filesystem"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:325
msgid "User/group:"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:"
#: efinder.cpp:330
msgid "User id:"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:"
#: efinder.cpp:336
msgid "Group id:"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:"
#: efinder.cpp:344
msgid "Size:"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:"
#: efinder.cpp:351
msgid "greater than:"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><>:"
#: efinder.cpp:354
msgid "and less than(KB):"
msgstr "<22> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><>:"
#: efinder.cpp:359
msgid "Time:"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD>:"
#: efinder.cpp:365
msgid "Modified"
msgstr "<22><><EFBFBD><EFBFBD>Σ<EFBFBD>"
#: efinder.cpp:368
msgid "Changed"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:371
msgid "Accessed"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:377
msgid "in previous:"
msgstr "<22> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:"
#: efinder.cpp:389
msgid "Minutes"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:392
msgid "Hours"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:395
msgid "Days"
msgstr "<22><><EFBFBD><EFBFBD>"
#: efinder.cpp:398
msgid "Mounths"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:"
#: efinder.cpp:413
msgid "Content options"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:415
msgid "General considerations"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:418
msgid "Do not look into binary files"
msgstr "<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:421
msgid "Output count of matching lines"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:424
msgid "Match anywhere"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:428
msgid "Match whole words only"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:431
msgid "Match whole lines only"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:434
msgid "Output files where no match is found"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:445
msgid "About"
msgstr "<22> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:447
#, fuzzy
msgid ""
"(C) Copyright 2000-2005. EDE Authors.\n"
"\n"
" Efinder is using the code from xfglob which is\n"
" (C) Copyright 2000-2001 by Edscott Wilson Garcia."
msgstr ""
"(C) Copyright 2000-2002 by Martin Pekar. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> xfglob "
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (C) Copyright 2000-2001 Edscott Wilson Garcia."
#: efinder.cpp:458
msgid "Filename"
msgstr "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:459
msgid "Size"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:460
msgid "Last modified"
msgstr "<22><><EFBFBD><EFBFBD>Σ<EFBFBD>"
#: efinder.cpp:461
msgid "Rights"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:475
msgid "&Find"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:478
msgid "Start the searching."
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:480
msgid "&Cancel"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:483
msgid "&Stop"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: efinder.cpp:485
msgid "Stop the searching."
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"
#: eglob.cpp:446
msgid "Search finished."
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ۣ<EFBFBD>."
#: eglob.cpp:449
msgid "Nothing found."
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: eglob.cpp:453
#, c-format
msgid "Found %d files."
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %d"
#: eglob.cpp:455
msgid "Interrupted because maximum limit exceded."
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
#~ msgid "Finder for Equinox Desktop Environment v. 1.0"
#~ msgstr "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> Equinox Desktop Environment v. 1.0"

337
efinder/locale/sk.po Executable file
View File

@ -0,0 +1,337 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: efinder\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-02-04 12:29+0100\n"
"PO-Revision-Date: 2002-10-13 12:50+0200\n"
"Last-Translator: Martin Pekar <cortex@nextra.sk>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: efinder.cpp:65 efinder.cpp:322
msgid "Permissions"
msgstr "Prístupové práva"
#: efinder.cpp:68
msgid "Owner"
msgstr "Vlastník"
#: efinder.cpp:71 efinder.cpp:88 efinder.cpp:105
msgid "Read"
msgstr "Čítanie"
#: efinder.cpp:74 efinder.cpp:91 efinder.cpp:108
msgid "Write"
msgstr "Zápis"
#: efinder.cpp:77 efinder.cpp:94 efinder.cpp:111
msgid "Execute"
msgstr "Spustenie"
#: efinder.cpp:80
msgid "Set UID"
msgstr "Nastaviť UID"
#: efinder.cpp:85
msgid "Group"
msgstr "Skupina"
#: efinder.cpp:97
msgid "Set GID"
msgstr "Nastaviť GID"
#: efinder.cpp:102
msgid "Other"
msgstr "Ostatní"
#: efinder.cpp:114
msgid "Sticky"
msgstr "Sticky"
#: efinder.cpp:119
msgid "&Close"
msgstr "&Zavrieť"
#: efinder.cpp:132
msgid "Select directory"
msgstr "Zvoliť adresár"
#: efinder.cpp:226 efinder.cpp:231 efinder.cpp:232
msgid "Find"
msgstr "Hľadať"
#: efinder.cpp:236
msgid "Path:"
msgstr "Cesta:"
#: efinder.cpp:243
msgid "&Browse..."
msgstr "&Hľadať..."
#: efinder.cpp:245
msgid "Find path."
msgstr "Hľadať cestu."
#: efinder.cpp:249
msgid "File filter:"
msgstr "Súborový filter:"
#: efinder.cpp:255
msgid "Search subdirectories"
msgstr "Prehľadávať podadresáre"
#: efinder.cpp:260
msgid "Limit results to first n files:"
msgstr "Limitovať výsledok na prvých n súborov:"
#: efinder.cpp:271
msgid "Content"
msgstr "Obsah"
#: efinder.cpp:274
msgid "Containing:"
msgstr "Obsahujúci:"
#: efinder.cpp:279
msgid "Case sensitive"
msgstr "Citlivý na veľkosť"
#: efinder.cpp:282
msgid "Extended regexp"
msgstr "Rozšírený regexp"
#: efinder.cpp:295
msgid "Filter options"
msgstr "Možnosti filtra"
#: efinder.cpp:297
msgid "Considerations"
msgstr "Kritériá"
#: efinder.cpp:300
msgid "File type:"
msgstr "Typ súboru:"
#: efinder.cpp:302
msgid "Any kind"
msgstr ""
#: efinder.cpp:303
msgid "Regular"
msgstr ""
#: efinder.cpp:304
#, fuzzy
msgid "Directory"
msgstr "Zvoliť adresár"
#: efinder.cpp:305
msgid "Symlink"
msgstr ""
#: efinder.cpp:306
msgid "Socket"
msgstr ""
#: efinder.cpp:307
msgid "Block device"
msgstr ""
#: efinder.cpp:308
msgid "Character device"
msgstr ""
#: efinder.cpp:309
msgid "FIFO"
msgstr ""
#: efinder.cpp:315
msgid "Stay on single filesystem"
msgstr "Zostať na samotnom súborovom systéme"
#: efinder.cpp:325
msgid "User/group:"
msgstr "Užívateľ/skupina:"
#: efinder.cpp:330
msgid "User id:"
msgstr "Užívateľské id:"
#: efinder.cpp:336
msgid "Group id:"
msgstr "Skupinové id:"
#: efinder.cpp:344
msgid "Size:"
msgstr "Veľkosť:"
#: efinder.cpp:351
msgid "greater than:"
msgstr "väčší ako:"
#: efinder.cpp:354
msgid "and less than(KB):"
msgstr "a menší ako(KB)"
#: efinder.cpp:359
msgid "Time:"
msgstr "Čas:"
#: efinder.cpp:365
msgid "Modified"
msgstr "Modifikovaný"
#: efinder.cpp:368
msgid "Changed"
msgstr "Zmenený"
#: efinder.cpp:371
msgid "Accessed"
msgstr "Pristúpený"
#: efinder.cpp:377
msgid "in previous:"
msgstr "v predchádzajúcich:"
#: efinder.cpp:389
msgid "Minutes"
msgstr "Minútach"
#: efinder.cpp:392
msgid "Hours"
msgstr "Hodinách"
#: efinder.cpp:395
msgid "Days"
msgstr "Dňoch"
#: efinder.cpp:398
msgid "Mounths"
msgstr "Mesiacoch"
#: efinder.cpp:413
msgid "Content options"
msgstr "Možnosti obsahu"
#: efinder.cpp:415
msgid "General considerations"
msgstr "Hlavné kritériá"
#: efinder.cpp:418
msgid "Do not look into binary files"
msgstr "Nepozerať sa do binárnych súborov"
#: efinder.cpp:421
msgid "Output count of matching lines"
msgstr "Zobraziť počet nájdených riadkov"
#: efinder.cpp:424
msgid "Match anywhere"
msgstr "Nájsť všetko"
#: efinder.cpp:428
msgid "Match whole words only"
msgstr "Nájsť iba celé slová"
#: efinder.cpp:431
msgid "Match whole lines only"
msgstr "Nájsť iba celé riadky"
#: efinder.cpp:434
msgid "Output files where no match is found"
msgstr "Zobraziť súbory v ktoré sa nezhodujú"
#: efinder.cpp:445
msgid "About"
msgstr "O programe"
#: efinder.cpp:447
msgid ""
"(C) Copyright 2000-2005. EDE Authors.\n"
"\n"
" Efinder is using the code from xfglob which is\n"
" (C) Copyright 2000-2001 by Edscott Wilson Garcia."
msgstr ""
#: efinder.cpp:458
msgid "Filename"
msgstr "Meno súboru"
#: efinder.cpp:459
msgid "Size"
msgstr "Veľkosť"
#: efinder.cpp:460
msgid "Last modified"
msgstr "Naposledy modifikované"
#: efinder.cpp:461
msgid "Rights"
msgstr "Práva"
#: efinder.cpp:475
msgid "&Find"
msgstr "&Hľadať"
#: efinder.cpp:478
msgid "Start the searching."
msgstr "Začať vyhľadávanie."
#: efinder.cpp:480
msgid "&Cancel"
msgstr "&Zrušiť"
#: efinder.cpp:483
msgid "&Stop"
msgstr "&Zastaviť"
#: efinder.cpp:485
msgid "Stop the searching."
msgstr "Zastaviť vyhľadávanie."
#: eglob.cpp:446
msgid "Search finished."
msgstr "Vyhľadávanie skončilo."
#: eglob.cpp:449
msgid "Nothing found."
msgstr "Nebolo nič nájdené."
#: eglob.cpp:453
#, c-format
msgid "Found %d files."
msgstr "Bolo nájdených %d súborov."
#: eglob.cpp:455
msgid "Interrupted because maximum limit exceded."
msgstr "Prerušené, pretože bol prekročený maximálny limit."
#~ msgid ""
#~ "This program is based in part on the work of FLTK project (www.fltk.org). "
#~ "This program is free software, you can redistribute it and/or modify it "
#~ "under the terms of GNU General Public License as published by the Free "
#~ "Software Foundation, either version 2 of the License, or (at your option) "
#~ "any later version. This program is distributed in the hope that it will "
#~ "be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of "
#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General "
#~ "Public License for more details. You should have received a copy of the "
#~ "GNU General Public Licence along with this program; if not, write to the "
#~ "Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA."
#~ msgstr ""
#~ "Tento program je z časti založený na práci projektu FLTK (www.fltk.org)."
#~ "Tento program je voľný softvér, môžete ho redistribuovať a/alebo "
#~ "modifikovať podľa podmienok licencie GNU General Public License "
#~ "publikovanej nadáciou the Free Software Foundation, buď verzie 2 tejto "
#~ "licencie, alebo (podľa vášho uváženia) ľubovoľnej novšej verzie. Tento "
#~ "program je distribuovaný v nádeji, že bude užitočný, ale BEZ AKEJKOĽVEK "
#~ "ZÁRUKY; dokonca bez obsiahnutej záruky OBCHODOVATEĽNOSTI alebo VÝHOD PRE "
#~ "URČITÝ ÚČEL. Ďalšie podrobnosti hľadajte v licencii GNU General Public "
#~ "License. S týmto programom by ste mali dostať kópiu licencie GNU General "
#~ "Public Licence; ak nie, napíšte do nadácie the Free Software Foundation, "
#~ "Inc., 675 Mass Ave, Cambridge, MA 02139, USA."