added: winix functions: locale, timezone

changed: time zones -- now we have the daylight saving time
       different for each year (start, end)
added: config option: time_zone_id (size_t)
       time zone identifier for not logged users
       or for newly created accounts
       those identifiers you can see in etc/time_zones.conf file
       or by using timezone winix function with 'a' parameter (timezone/a) (!!IMPROVE ME NOT IMPLEMENTED YET)
       default: 34 (Coordinated Universal Time UTC+00:00)
added: config option: locale_default_id (size_t)
       locale for not logged users
       or for newly created accounts
added: config option: locale_max_id (size_t)
       a maximum value of a locale identifier
       default: 100 (maximum: 1000)
       each locale files should have its own identifier (in "winix_locale_id" field)
       from zero to this value
added: config option: time_zone_max_id (size_t)
       maximum value of a time zone identifier
       time zones with an id greater than this will be skipped
       default: 130 (maximum: 1000)
removed: config option: locale_default



git-svn-id: svn://ttmath.org/publicrep/winix/trunk@852 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
Tomasz Sowa 2012-06-26 23:19:19 +00:00
parent 54e6c07efc
commit b8ff5d4cfc
53 changed files with 4618 additions and 3053 deletions

View File

@ -2,16 +2,16 @@
acceptbaseparser.o: acceptbaseparser.h acceptbaseparser.o: acceptbaseparser.h
app.o: app.h config.h ../../pikotools/space/spaceparser.h app.o: app.h config.h ../../pikotools/space/spaceparser.h
app.o: ../../pikotools/space/space.h htmlfilter.h timezone.h app.o: ../../pikotools/space/space.h htmlfilter.h system.h job.h basethread.h
app.o: ../../pikotools/date/date.h ../../pikotools/space/space.h system.h app.o: synchro.h ../../pikotools/space/space.h dirs.h item.h
app.o: job.h basethread.h synchro.h dirs.h item.h dircontainer.h ../db/db.h app.o: ../../pikotools/date/date.h dircontainer.h ../db/db.h ../db/dbbase.h
app.o: ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h app.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h misc.h
app.o: ../core/textstream.h misc.h requesttypes.h ../core/error.h app.o: requesttypes.h ../core/error.h ../db/dbitemquery.h ../core/item.h
app.o: ../db/dbitemquery.h ../core/item.h ../db/dbitemcolumns.h app.o: ../db/dbitemcolumns.h ../core/user.h ../core/group.h
app.o: ../core/user.h ../core/group.h ../core/dircontainer.h app.o: ../core/dircontainer.h ../core/ugcontainer.h log.h textstream.h
app.o: ../core/ugcontainer.h log.h textstream.h logmanipulators.h slog.h app.o: logmanipulators.h slog.h cur.h request.h error.h
app.o: cur.h request.h error.h ../templates/htmltextstream.h session.h user.h app.o: ../templates/htmltextstream.h session.h user.h plugindata.h rebus.h
app.o: plugindata.h rebus.h mount.h ../templates/locale.h ../notify/notify.h app.o: mount.h ../templates/locale.h ../notify/notify.h
app.o: ../notify/notifypool.h ../templates/patterns.h ../templates/locale.h app.o: ../notify/notifypool.h ../templates/patterns.h ../templates/locale.h
app.o: ../templates/localefilter.h ../../ezc/src/ezc.h app.o: ../templates/localefilter.h ../../ezc/src/ezc.h
app.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h app.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h
@ -21,11 +21,11 @@ app.o: ../notify/notifythread.h ../core/basethread.h
app.o: ../notify/templatesnotify.h ../core/config.h ../core/users.h app.o: ../notify/templatesnotify.h ../core/config.h ../core/users.h
app.o: ugcontainer.h lastcontainer.h mounts.h mountparser.h crypt.h run.h app.o: ugcontainer.h lastcontainer.h mounts.h mountparser.h crypt.h run.h
app.o: users.h groups.h group.h loadavg.h image.h threadmanager.h timezones.h app.o: users.h groups.h group.h loadavg.h image.h threadmanager.h timezones.h
app.o: sessionmanager.h sessioncontainer.h ../functions/functions.h app.o: timezone.h sessionmanager.h sessioncontainer.h
app.o: ../functions/functionbase.h ../core/request.h ../core/system.h app.o: ../functions/functions.h ../functions/functionbase.h ../core/request.h
app.o: ../core/synchro.h ../functions/functionparser.h ../core/cur.h app.o: ../core/system.h ../core/synchro.h ../functions/functionparser.h
app.o: ../functions/adduser.h ../functions/cat.h ../functions/chmod.h app.o: ../core/cur.h ../functions/adduser.h ../functions/cat.h
app.o: ../functions/privchanger.h ../functions/chown.h app.o: ../functions/chmod.h ../functions/privchanger.h ../functions/chown.h
app.o: ../functions/ckeditor.h ../functions/cp.h ../functions/default.h app.o: ../functions/ckeditor.h ../functions/cp.h ../functions/default.h
app.o: ../functions/download.h ../functions/emacs.h ../functions/env.h app.o: ../functions/download.h ../functions/emacs.h ../functions/env.h
app.o: ../functions/last.h ../functions/login.h ../functions/logout.h app.o: ../functions/last.h ../functions/login.h ../functions/logout.h
@ -50,45 +50,45 @@ compress.o: compress.h log.h textstream.h logmanipulators.h slog.h cur.h
compress.o: request.h requesttypes.h item.h ../../pikotools/space/space.h compress.o: request.h requesttypes.h item.h ../../pikotools/space/space.h
compress.o: ../../pikotools/date/date.h error.h config.h compress.o: ../../pikotools/date/date.h error.h config.h
compress.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h compress.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h
compress.o: htmlfilter.h timezone.h ../templates/htmltextstream.h compress.o: htmlfilter.h ../templates/htmltextstream.h ../core/textstream.h
compress.o: ../core/textstream.h misc.h session.h user.h plugindata.h rebus.h compress.o: misc.h session.h user.h plugindata.h rebus.h mount.h
compress.o: mount.h ../templates/locale.h compress.o: ../templates/locale.h
config.o: config.h ../../pikotools/space/spaceparser.h config.o: config.h ../../pikotools/space/spaceparser.h
config.o: ../../pikotools/space/space.h htmlfilter.h timezone.h config.o: ../../pikotools/space/space.h htmlfilter.h log.h textstream.h
config.o: ../../pikotools/date/date.h ../../pikotools/space/space.h log.h config.o: logmanipulators.h slog.h cur.h request.h requesttypes.h item.h
config.o: textstream.h logmanipulators.h slog.h cur.h request.h config.o: ../../pikotools/space/space.h ../../pikotools/date/date.h error.h
config.o: requesttypes.h item.h error.h ../templates/htmltextstream.h config.o: ../templates/htmltextstream.h ../core/textstream.h misc.h session.h
config.o: ../core/textstream.h misc.h session.h user.h plugindata.h rebus.h config.o: user.h plugindata.h rebus.h mount.h ../templates/locale.h plugin.h
config.o: mount.h ../templates/locale.h plugin.h pluginmsg.h system.h job.h config.o: pluginmsg.h system.h job.h basethread.h synchro.h dirs.h
config.o: basethread.h synchro.h dirs.h dircontainer.h ../db/db.h config.o: dircontainer.h ../db/db.h ../db/dbbase.h ../db/dbconn.h
config.o: ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h ../core/error.h config.o: ../db/dbtextstream.h ../core/error.h ../db/dbitemquery.h
config.o: ../db/dbitemquery.h ../core/item.h ../db/dbitemcolumns.h config.o: ../core/item.h ../db/dbitemcolumns.h ../core/user.h ../core/group.h
config.o: ../core/user.h ../core/group.h ../core/dircontainer.h config.o: ../core/dircontainer.h ../core/ugcontainer.h ../notify/notify.h
config.o: ../core/ugcontainer.h ../notify/notify.h ../notify/notifypool.h config.o: ../notify/notifypool.h ../templates/patterns.h
config.o: ../templates/patterns.h ../templates/locale.h config.o: ../templates/locale.h ../templates/localefilter.h
config.o: ../templates/localefilter.h ../../ezc/src/ezc.h config.o: ../../ezc/src/ezc.h ../../ezc/src/generator.h
config.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h config.o: ../../ezc/src/pattern.h ../../ezc/src/functions.h
config.o: ../../ezc/src/functions.h ../../ezc/src/funinfo.h config.o: ../../ezc/src/funinfo.h ../../ezc/src/stringconv.h
config.o: ../../ezc/src/stringconv.h ../../pikotools/utf8/utf8.h config.o: ../../pikotools/utf8/utf8.h ../notify/notifythread.h
config.o: ../notify/notifythread.h ../core/basethread.h config.o: ../core/basethread.h ../notify/templatesnotify.h ../core/config.h
config.o: ../notify/templatesnotify.h ../core/config.h ../core/users.h config.o: ../core/users.h ugcontainer.h lastcontainer.h mounts.h
config.o: ugcontainer.h lastcontainer.h mounts.h mountparser.h crypt.h run.h config.o: mountparser.h crypt.h run.h users.h groups.h group.h loadavg.h
config.o: users.h groups.h group.h loadavg.h image.h threadmanager.h config.o: image.h threadmanager.h timezones.h timezone.h sessionmanager.h
config.o: timezones.h sessionmanager.h sessioncontainer.h config.o: sessioncontainer.h ../functions/functions.h
config.o: ../functions/functions.h ../functions/functionbase.h config.o: ../functions/functionbase.h ../core/request.h ../core/system.h
config.o: ../core/request.h ../core/system.h ../core/synchro.h config.o: ../core/synchro.h ../functions/functionparser.h ../core/cur.h
config.o: ../functions/functionparser.h ../core/cur.h ../functions/adduser.h config.o: ../functions/adduser.h ../functions/cat.h ../functions/chmod.h
config.o: ../functions/cat.h ../functions/chmod.h ../functions/privchanger.h config.o: ../functions/privchanger.h ../functions/chown.h
config.o: ../functions/chown.h ../functions/ckeditor.h ../functions/cp.h config.o: ../functions/ckeditor.h ../functions/cp.h ../functions/default.h
config.o: ../functions/default.h ../functions/download.h ../functions/emacs.h config.o: ../functions/download.h ../functions/emacs.h ../functions/env.h
config.o: ../functions/env.h ../functions/last.h ../functions/login.h config.o: ../functions/last.h ../functions/login.h ../functions/logout.h
config.o: ../functions/logout.h ../functions/ln.h ../functions/ls.h config.o: ../functions/ln.h ../functions/ls.h ../functions/man.h
config.o: ../functions/man.h ../functions/meta.h ../functions/mkdir.h config.o: ../functions/meta.h ../functions/mkdir.h ../functions/mv.h
config.o: ../functions/mv.h ../functions/nicedit.h ../functions/node.h config.o: ../functions/nicedit.h ../functions/node.h ../functions/passwd.h
config.o: ../functions/passwd.h ../functions/priv.h ../functions/pw.h config.o: ../functions/priv.h ../functions/pw.h ../functions/reload.h
config.o: ../functions/reload.h ../functions/rm.h ../functions/rmuser.h config.o: ../functions/rm.h ../functions/rmuser.h ../functions/sort.h
config.o: ../functions/sort.h ../functions/specialdefault.h config.o: ../functions/specialdefault.h ../functions/stat.h
config.o: ../functions/stat.h ../functions/subject.h ../functions/template.h config.o: ../functions/subject.h ../functions/template.h
config.o: ../functions/tinymce.h ../functions/uname.h ../functions/upload.h config.o: ../functions/tinymce.h ../functions/uname.h ../functions/upload.h
config.o: ../functions/uptime.h ../functions/who.h ../functions/vim.h config.o: ../functions/uptime.h ../functions/who.h ../functions/vim.h
config.o: ../core/htmlfilter.h ../templates/templates.h config.o: ../core/htmlfilter.h ../templates/templates.h
@ -96,17 +96,17 @@ config.o: ../templates/patterncacher.h ../templates/indexpatterns.h
config.o: ../templates/patterns.h ../templates/changepatterns.h config.o: ../templates/patterns.h ../templates/changepatterns.h
config.o: ../templates/htmltextstream.h ../core/sessionmanager.h config.o: ../templates/htmltextstream.h ../core/sessionmanager.h
crypt.o: crypt.h run.h config.h ../../pikotools/space/spaceparser.h crypt.o: crypt.h run.h config.h ../../pikotools/space/spaceparser.h
crypt.o: ../../pikotools/space/space.h htmlfilter.h timezone.h crypt.o: ../../pikotools/space/space.h htmlfilter.h user.h
crypt.o: ../../pikotools/date/date.h ../../pikotools/space/space.h user.h crypt.o: ../../pikotools/utf8/utf8.h misc.h item.h
crypt.o: ../../pikotools/utf8/utf8.h misc.h item.h requesttypes.h log.h crypt.o: ../../pikotools/space/space.h ../../pikotools/date/date.h
crypt.o: textstream.h logmanipulators.h slog.h cur.h request.h error.h crypt.o: requesttypes.h log.h textstream.h logmanipulators.h slog.h cur.h
crypt.o: ../templates/htmltextstream.h ../core/textstream.h session.h crypt.o: request.h error.h ../templates/htmltextstream.h ../core/textstream.h
crypt.o: plugindata.h rebus.h mount.h ../templates/locale.h crypt.o: session.h plugindata.h rebus.h mount.h ../templates/locale.h
dircontainer.o: dircontainer.h item.h ../../pikotools/space/space.h dircontainer.o: dircontainer.h item.h ../../pikotools/space/space.h
dircontainer.o: ../../pikotools/date/date.h log.h textstream.h dircontainer.o: ../../pikotools/date/date.h log.h textstream.h
dircontainer.o: logmanipulators.h slog.h cur.h request.h requesttypes.h dircontainer.o: logmanipulators.h slog.h cur.h request.h requesttypes.h
dircontainer.o: error.h config.h ../../pikotools/space/spaceparser.h dircontainer.o: error.h config.h ../../pikotools/space/spaceparser.h
dircontainer.o: ../../pikotools/space/space.h htmlfilter.h timezone.h dircontainer.o: ../../pikotools/space/space.h htmlfilter.h
dircontainer.o: ../templates/htmltextstream.h ../core/textstream.h misc.h dircontainer.o: ../templates/htmltextstream.h ../core/textstream.h misc.h
dircontainer.o: session.h user.h plugindata.h rebus.h mount.h dircontainer.o: session.h user.h plugindata.h rebus.h mount.h
dircontainer.o: ../templates/locale.h dircontainer.o: ../templates/locale.h
@ -115,7 +115,7 @@ dirs.o: ../../pikotools/date/date.h dircontainer.h ../db/db.h ../db/dbbase.h
dirs.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h misc.h dirs.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h misc.h
dirs.o: requesttypes.h ../core/error.h ../../pikotools/space/spaceparser.h dirs.o: requesttypes.h ../core/error.h ../../pikotools/space/spaceparser.h
dirs.o: ../../pikotools/space/space.h ../db/dbitemquery.h ../core/item.h dirs.o: ../../pikotools/space/space.h ../db/dbitemquery.h ../core/item.h
dirs.o: ../db/dbitemcolumns.h ../core/user.h timezone.h ../core/group.h dirs.o: ../db/dbitemcolumns.h ../core/user.h ../core/group.h
dirs.o: ../core/dircontainer.h ../core/ugcontainer.h log.h textstream.h dirs.o: ../core/dircontainer.h ../core/ugcontainer.h log.h textstream.h
dirs.o: logmanipulators.h slog.h cur.h request.h error.h config.h dirs.o: logmanipulators.h slog.h cur.h request.h error.h config.h
dirs.o: htmlfilter.h ../templates/htmltextstream.h session.h user.h dirs.o: htmlfilter.h ../templates/htmltextstream.h session.h user.h
@ -133,7 +133,7 @@ groups.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h misc.h
groups.o: item.h ../../pikotools/space/space.h ../../pikotools/date/date.h groups.o: item.h ../../pikotools/space/space.h ../../pikotools/date/date.h
groups.o: requesttypes.h ../core/error.h ../../pikotools/space/spaceparser.h groups.o: requesttypes.h ../core/error.h ../../pikotools/space/spaceparser.h
groups.o: ../../pikotools/space/space.h ../db/dbitemquery.h ../core/item.h groups.o: ../../pikotools/space/space.h ../db/dbitemquery.h ../core/item.h
groups.o: ../db/dbitemcolumns.h ../core/user.h timezone.h ../core/group.h groups.o: ../db/dbitemcolumns.h ../core/user.h ../core/group.h
groups.o: ../core/dircontainer.h ../core/ugcontainer.h log.h textstream.h groups.o: ../core/dircontainer.h ../core/ugcontainer.h log.h textstream.h
groups.o: logmanipulators.h slog.h cur.h request.h error.h config.h groups.o: logmanipulators.h slog.h cur.h request.h error.h config.h
groups.o: htmlfilter.h ../templates/htmltextstream.h session.h user.h groups.o: htmlfilter.h ../templates/htmltextstream.h session.h user.h
@ -146,7 +146,7 @@ image.o: ../core/textstream.h misc.h item.h ../../pikotools/space/space.h
image.o: ../../pikotools/date/date.h requesttypes.h ../core/error.h image.o: ../../pikotools/date/date.h requesttypes.h ../core/error.h
image.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h image.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h
image.o: ../db/dbitemquery.h ../core/item.h ../db/dbitemcolumns.h image.o: ../db/dbitemquery.h ../core/item.h ../db/dbitemcolumns.h
image.o: ../core/user.h timezone.h ../core/group.h ../core/dircontainer.h image.o: ../core/user.h ../core/group.h ../core/dircontainer.h
image.o: ../core/ugcontainer.h log.h logmanipulators.h slog.h cur.h request.h image.o: ../core/ugcontainer.h log.h logmanipulators.h slog.h cur.h request.h
image.o: error.h config.h htmlfilter.h ../templates/htmltextstream.h image.o: error.h config.h htmlfilter.h ../templates/htmltextstream.h
image.o: session.h user.h plugindata.h rebus.h mount.h ../templates/locale.h image.o: session.h user.h plugindata.h rebus.h mount.h ../templates/locale.h
@ -160,7 +160,7 @@ image.o: ../../ezc/src/stringconv.h ../notify/notifythread.h
image.o: ../core/basethread.h ../notify/templatesnotify.h ../core/users.h image.o: ../core/basethread.h ../notify/templatesnotify.h ../core/users.h
image.o: ugcontainer.h lastcontainer.h mounts.h mountparser.h crypt.h run.h image.o: ugcontainer.h lastcontainer.h mounts.h mountparser.h crypt.h run.h
image.o: users.h groups.h group.h loadavg.h threadmanager.h timezones.h image.o: users.h groups.h group.h loadavg.h threadmanager.h timezones.h
image.o: plugin.h pluginmsg.h sessionmanager.h sessioncontainer.h image.o: timezone.h plugin.h pluginmsg.h sessionmanager.h sessioncontainer.h
image.o: ../functions/functions.h ../functions/functionbase.h image.o: ../functions/functions.h ../functions/functionbase.h
image.o: ../core/request.h ../core/system.h ../core/synchro.h image.o: ../core/request.h ../core/system.h ../core/synchro.h
image.o: ../functions/functionparser.h ../core/cur.h ../functions/adduser.h image.o: ../functions/functionparser.h ../core/cur.h ../functions/adduser.h
@ -184,12 +184,12 @@ image.o: ../templates/htmltextstream.h ../core/sessionmanager.h
item.o: item.h ../../pikotools/space/space.h ../../pikotools/date/date.h item.o: item.h ../../pikotools/space/space.h ../../pikotools/date/date.h
item.o: misc.h requesttypes.h crypt.h run.h config.h item.o: misc.h requesttypes.h crypt.h run.h config.h
item.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h item.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h
item.o: htmlfilter.h timezone.h user.h item.o: htmlfilter.h user.h
job.o: job.h basethread.h synchro.h ../../pikotools/space/space.h plugin.h job.o: job.h basethread.h synchro.h ../../pikotools/space/space.h plugin.h
job.o: pluginmsg.h log.h textstream.h logmanipulators.h slog.h cur.h job.o: pluginmsg.h log.h textstream.h logmanipulators.h slog.h cur.h
job.o: request.h requesttypes.h item.h ../../pikotools/date/date.h error.h job.o: request.h requesttypes.h item.h ../../pikotools/date/date.h error.h
job.o: config.h ../../pikotools/space/spaceparser.h job.o: config.h ../../pikotools/space/spaceparser.h
job.o: ../../pikotools/space/space.h htmlfilter.h timezone.h job.o: ../../pikotools/space/space.h htmlfilter.h
job.o: ../templates/htmltextstream.h ../core/textstream.h misc.h session.h job.o: ../templates/htmltextstream.h ../core/textstream.h misc.h session.h
job.o: user.h plugindata.h rebus.h mount.h ../templates/locale.h system.h job.o: user.h plugindata.h rebus.h mount.h ../templates/locale.h system.h
job.o: dirs.h dircontainer.h ../db/db.h ../db/dbbase.h ../db/dbconn.h job.o: dirs.h dircontainer.h ../db/db.h ../db/dbbase.h ../db/dbconn.h
@ -205,11 +205,11 @@ job.o: ../notify/notifythread.h ../core/basethread.h
job.o: ../notify/templatesnotify.h ../core/config.h ../core/users.h job.o: ../notify/templatesnotify.h ../core/config.h ../core/users.h
job.o: ugcontainer.h lastcontainer.h mounts.h mountparser.h crypt.h run.h job.o: ugcontainer.h lastcontainer.h mounts.h mountparser.h crypt.h run.h
job.o: users.h groups.h group.h loadavg.h image.h threadmanager.h timezones.h job.o: users.h groups.h group.h loadavg.h image.h threadmanager.h timezones.h
job.o: sessionmanager.h sessioncontainer.h ../functions/functions.h job.o: timezone.h sessionmanager.h sessioncontainer.h
job.o: ../functions/functionbase.h ../core/request.h ../core/system.h job.o: ../functions/functions.h ../functions/functionbase.h ../core/request.h
job.o: ../core/synchro.h ../functions/functionparser.h ../core/cur.h job.o: ../core/system.h ../core/synchro.h ../functions/functionparser.h
job.o: ../functions/adduser.h ../functions/cat.h ../functions/chmod.h job.o: ../core/cur.h ../functions/adduser.h ../functions/cat.h
job.o: ../functions/privchanger.h ../functions/chown.h job.o: ../functions/chmod.h ../functions/privchanger.h ../functions/chown.h
job.o: ../functions/ckeditor.h ../functions/cp.h ../functions/default.h job.o: ../functions/ckeditor.h ../functions/cp.h ../functions/default.h
job.o: ../functions/download.h ../functions/emacs.h ../functions/env.h job.o: ../functions/download.h ../functions/emacs.h ../functions/env.h
job.o: ../functions/last.h ../functions/login.h ../functions/logout.h job.o: ../functions/last.h ../functions/login.h ../functions/logout.h
@ -230,7 +230,7 @@ lastcontainer.o: lastcontainer.h ../../pikotools/date/date.h log.h
lastcontainer.o: textstream.h logmanipulators.h slog.h cur.h request.h lastcontainer.o: textstream.h logmanipulators.h slog.h cur.h request.h
lastcontainer.o: requesttypes.h item.h ../../pikotools/space/space.h error.h lastcontainer.o: requesttypes.h item.h ../../pikotools/space/space.h error.h
lastcontainer.o: config.h ../../pikotools/space/spaceparser.h lastcontainer.o: config.h ../../pikotools/space/spaceparser.h
lastcontainer.o: ../../pikotools/space/space.h htmlfilter.h timezone.h lastcontainer.o: ../../pikotools/space/space.h htmlfilter.h
lastcontainer.o: ../templates/htmltextstream.h ../core/textstream.h misc.h lastcontainer.o: ../templates/htmltextstream.h ../core/textstream.h misc.h
lastcontainer.o: session.h user.h plugindata.h rebus.h mount.h lastcontainer.o: session.h user.h plugindata.h rebus.h mount.h
lastcontainer.o: ../templates/locale.h lastcontainer.o: ../templates/locale.h
@ -238,23 +238,23 @@ loadavg.o: loadavg.h log.h textstream.h logmanipulators.h slog.h cur.h
loadavg.o: request.h requesttypes.h item.h ../../pikotools/space/space.h loadavg.o: request.h requesttypes.h item.h ../../pikotools/space/space.h
loadavg.o: ../../pikotools/date/date.h error.h config.h loadavg.o: ../../pikotools/date/date.h error.h config.h
loadavg.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h loadavg.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h
loadavg.o: htmlfilter.h timezone.h ../templates/htmltextstream.h loadavg.o: htmlfilter.h ../templates/htmltextstream.h ../core/textstream.h
loadavg.o: ../core/textstream.h misc.h session.h user.h plugindata.h rebus.h loadavg.o: misc.h session.h user.h plugindata.h rebus.h mount.h
loadavg.o: mount.h ../templates/locale.h loadavg.o: ../templates/locale.h
log.o: log.h textstream.h logmanipulators.h slog.h cur.h request.h log.o: log.h textstream.h logmanipulators.h slog.h cur.h request.h
log.o: requesttypes.h item.h ../../pikotools/space/space.h log.o: requesttypes.h item.h ../../pikotools/space/space.h
log.o: ../../pikotools/date/date.h error.h config.h log.o: ../../pikotools/date/date.h error.h config.h
log.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h log.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h
log.o: htmlfilter.h timezone.h ../templates/htmltextstream.h log.o: htmlfilter.h ../templates/htmltextstream.h ../core/textstream.h misc.h
log.o: ../core/textstream.h misc.h session.h user.h plugindata.h rebus.h log.o: session.h user.h plugindata.h rebus.h mount.h ../templates/locale.h
log.o: mount.h ../templates/locale.h ../../pikotools/utf8/utf8.h log.o: ../../pikotools/utf8/utf8.h
misc.o: misc.h item.h ../../pikotools/space/space.h misc.o: misc.h item.h ../../pikotools/space/space.h
misc.o: ../../pikotools/date/date.h requesttypes.h log.h textstream.h misc.o: ../../pikotools/date/date.h requesttypes.h log.h textstream.h
misc.o: logmanipulators.h slog.h cur.h request.h error.h config.h misc.o: logmanipulators.h slog.h cur.h request.h error.h config.h
misc.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h misc.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h
misc.o: htmlfilter.h timezone.h ../templates/htmltextstream.h misc.o: htmlfilter.h ../templates/htmltextstream.h ../core/textstream.h
misc.o: ../core/textstream.h session.h user.h plugindata.h rebus.h mount.h misc.o: session.h user.h plugindata.h rebus.h mount.h ../templates/locale.h
misc.o: ../templates/locale.h ../templates/templates.h ../../ezc/src/ezc.h misc.o: ../templates/templates.h ../../ezc/src/ezc.h
misc.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h misc.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h
misc.o: ../../ezc/src/functions.h ../../ezc/src/funinfo.h misc.o: ../../ezc/src/functions.h ../../ezc/src/funinfo.h
misc.o: ../../ezc/src/stringconv.h ../../pikotools/utf8/utf8.h misc.o: ../../ezc/src/stringconv.h ../../pikotools/utf8/utf8.h
@ -275,7 +275,7 @@ mountparser.o: ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h
mountparser.o: ../core/textstream.h misc.h requesttypes.h ../core/error.h mountparser.o: ../core/textstream.h misc.h requesttypes.h ../core/error.h
mountparser.o: ../../pikotools/space/spaceparser.h mountparser.o: ../../pikotools/space/spaceparser.h
mountparser.o: ../../pikotools/space/space.h ../db/dbitemquery.h mountparser.o: ../../pikotools/space/space.h ../db/dbitemquery.h
mountparser.o: ../core/item.h ../db/dbitemcolumns.h ../core/user.h timezone.h mountparser.o: ../core/item.h ../db/dbitemcolumns.h ../core/user.h
mountparser.o: ../core/group.h ../core/dircontainer.h ../core/ugcontainer.h mountparser.o: ../core/group.h ../core/dircontainer.h ../core/ugcontainer.h
mountparser.o: log.h textstream.h logmanipulators.h slog.h cur.h request.h mountparser.o: log.h textstream.h logmanipulators.h slog.h cur.h request.h
mountparser.o: error.h config.h htmlfilter.h ../templates/htmltextstream.h mountparser.o: error.h config.h htmlfilter.h ../templates/htmltextstream.h
@ -295,7 +295,7 @@ mounts.o: dircontainer.h ../db/db.h ../db/dbbase.h ../db/dbconn.h
mounts.o: ../db/dbtextstream.h ../core/textstream.h misc.h requesttypes.h mounts.o: ../db/dbtextstream.h ../core/textstream.h misc.h requesttypes.h
mounts.o: ../core/error.h ../../pikotools/space/spaceparser.h mounts.o: ../core/error.h ../../pikotools/space/spaceparser.h
mounts.o: ../../pikotools/space/space.h ../db/dbitemquery.h ../core/item.h mounts.o: ../../pikotools/space/space.h ../db/dbitemquery.h ../core/item.h
mounts.o: ../db/dbitemcolumns.h ../core/user.h timezone.h ../core/group.h mounts.o: ../db/dbitemcolumns.h ../core/user.h ../core/group.h
mounts.o: ../core/dircontainer.h ../core/ugcontainer.h log.h textstream.h mounts.o: ../core/dircontainer.h ../core/ugcontainer.h log.h textstream.h
mounts.o: logmanipulators.h slog.h cur.h request.h config.h htmlfilter.h mounts.o: logmanipulators.h slog.h cur.h request.h config.h htmlfilter.h
mounts.o: ../templates/htmltextstream.h session.h user.h plugindata.h rebus.h mounts.o: ../templates/htmltextstream.h session.h user.h plugindata.h rebus.h
@ -310,21 +310,21 @@ mounts.o: ../notify/templatesnotify.h ../core/config.h ../core/users.h
mounts.o: ugcontainer.h lastcontainer.h mountparser.h plugin.h pluginmsg.h mounts.o: ugcontainer.h lastcontainer.h mountparser.h plugin.h pluginmsg.h
mounts.o: system.h job.h basethread.h synchro.h crypt.h run.h users.h mounts.o: system.h job.h basethread.h synchro.h crypt.h run.h users.h
mounts.o: groups.h group.h loadavg.h image.h threadmanager.h timezones.h mounts.o: groups.h group.h loadavg.h image.h threadmanager.h timezones.h
mounts.o: sessionmanager.h sessioncontainer.h ../functions/functions.h mounts.o: timezone.h sessionmanager.h sessioncontainer.h
mounts.o: ../functions/functionbase.h ../core/request.h ../core/system.h mounts.o: ../functions/functions.h ../functions/functionbase.h
mounts.o: ../core/synchro.h ../functions/functionparser.h ../core/cur.h mounts.o: ../core/request.h ../core/system.h ../core/synchro.h
mounts.o: ../functions/adduser.h ../functions/cat.h ../functions/chmod.h mounts.o: ../functions/functionparser.h ../core/cur.h ../functions/adduser.h
mounts.o: ../functions/privchanger.h ../functions/chown.h mounts.o: ../functions/cat.h ../functions/chmod.h ../functions/privchanger.h
mounts.o: ../functions/ckeditor.h ../functions/cp.h ../functions/default.h mounts.o: ../functions/chown.h ../functions/ckeditor.h ../functions/cp.h
mounts.o: ../functions/download.h ../functions/emacs.h ../functions/env.h mounts.o: ../functions/default.h ../functions/download.h ../functions/emacs.h
mounts.o: ../functions/last.h ../functions/login.h ../functions/logout.h mounts.o: ../functions/env.h ../functions/last.h ../functions/login.h
mounts.o: ../functions/ln.h ../functions/ls.h ../functions/man.h mounts.o: ../functions/logout.h ../functions/ln.h ../functions/ls.h
mounts.o: ../functions/meta.h ../functions/mkdir.h ../functions/mv.h mounts.o: ../functions/man.h ../functions/meta.h ../functions/mkdir.h
mounts.o: ../functions/nicedit.h ../functions/node.h ../functions/passwd.h mounts.o: ../functions/mv.h ../functions/nicedit.h ../functions/node.h
mounts.o: ../functions/priv.h ../functions/pw.h ../functions/reload.h mounts.o: ../functions/passwd.h ../functions/priv.h ../functions/pw.h
mounts.o: ../functions/rm.h ../functions/rmuser.h ../functions/sort.h mounts.o: ../functions/reload.h ../functions/rm.h ../functions/rmuser.h
mounts.o: ../functions/specialdefault.h ../functions/stat.h mounts.o: ../functions/sort.h ../functions/specialdefault.h
mounts.o: ../functions/subject.h ../functions/template.h mounts.o: ../functions/stat.h ../functions/subject.h ../functions/template.h
mounts.o: ../functions/tinymce.h ../functions/uname.h ../functions/upload.h mounts.o: ../functions/tinymce.h ../functions/uname.h ../functions/upload.h
mounts.o: ../functions/uptime.h ../functions/who.h ../functions/vim.h mounts.o: ../functions/uptime.h ../functions/who.h ../functions/vim.h
mounts.o: ../core/htmlfilter.h ../templates/templates.h mounts.o: ../core/htmlfilter.h ../templates/templates.h
@ -335,10 +335,10 @@ plugin.o: plugin.h pluginmsg.h log.h textstream.h logmanipulators.h slog.h
plugin.o: cur.h request.h requesttypes.h item.h ../../pikotools/space/space.h plugin.o: cur.h request.h requesttypes.h item.h ../../pikotools/space/space.h
plugin.o: ../../pikotools/date/date.h error.h config.h plugin.o: ../../pikotools/date/date.h error.h config.h
plugin.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h plugin.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h
plugin.o: htmlfilter.h timezone.h ../templates/htmltextstream.h plugin.o: htmlfilter.h ../templates/htmltextstream.h ../core/textstream.h
plugin.o: ../core/textstream.h misc.h session.h user.h plugindata.h rebus.h plugin.o: misc.h session.h user.h plugindata.h rebus.h mount.h
plugin.o: mount.h ../templates/locale.h system.h job.h basethread.h synchro.h plugin.o: ../templates/locale.h system.h job.h basethread.h synchro.h dirs.h
plugin.o: dirs.h dircontainer.h ../db/db.h ../db/dbbase.h ../db/dbconn.h plugin.o: dircontainer.h ../db/db.h ../db/dbbase.h ../db/dbconn.h
plugin.o: ../db/dbtextstream.h ../core/error.h ../db/dbitemquery.h plugin.o: ../db/dbtextstream.h ../core/error.h ../db/dbitemquery.h
plugin.o: ../core/item.h ../db/dbitemcolumns.h ../core/user.h ../core/group.h plugin.o: ../core/item.h ../db/dbitemcolumns.h ../core/user.h ../core/group.h
plugin.o: ../core/dircontainer.h ../core/ugcontainer.h ../notify/notify.h plugin.o: ../core/dircontainer.h ../core/ugcontainer.h ../notify/notify.h
@ -351,7 +351,7 @@ plugin.o: ../../pikotools/utf8/utf8.h ../notify/notifythread.h
plugin.o: ../core/basethread.h ../notify/templatesnotify.h ../core/config.h plugin.o: ../core/basethread.h ../notify/templatesnotify.h ../core/config.h
plugin.o: ../core/users.h ugcontainer.h lastcontainer.h mounts.h plugin.o: ../core/users.h ugcontainer.h lastcontainer.h mounts.h
plugin.o: mountparser.h crypt.h run.h users.h groups.h group.h loadavg.h plugin.o: mountparser.h crypt.h run.h users.h groups.h group.h loadavg.h
plugin.o: image.h threadmanager.h timezones.h sessionmanager.h plugin.o: image.h threadmanager.h timezones.h timezone.h sessionmanager.h
plugin.o: sessioncontainer.h ../functions/functions.h plugin.o: sessioncontainer.h ../functions/functions.h
plugin.o: ../functions/functionbase.h ../core/request.h ../core/system.h plugin.o: ../functions/functionbase.h ../core/request.h ../core/system.h
plugin.o: ../core/synchro.h ../functions/functionparser.h ../core/cur.h plugin.o: ../core/synchro.h ../functions/functionparser.h ../core/cur.h
@ -377,7 +377,7 @@ plugindata.o: plugindata.h plugin.h pluginmsg.h log.h textstream.h
plugindata.o: logmanipulators.h slog.h cur.h request.h requesttypes.h item.h plugindata.o: logmanipulators.h slog.h cur.h request.h requesttypes.h item.h
plugindata.o: ../../pikotools/space/space.h ../../pikotools/date/date.h plugindata.o: ../../pikotools/space/space.h ../../pikotools/date/date.h
plugindata.o: error.h config.h ../../pikotools/space/spaceparser.h plugindata.o: error.h config.h ../../pikotools/space/spaceparser.h
plugindata.o: ../../pikotools/space/space.h htmlfilter.h timezone.h plugindata.o: ../../pikotools/space/space.h htmlfilter.h
plugindata.o: ../templates/htmltextstream.h ../core/textstream.h misc.h plugindata.o: ../templates/htmltextstream.h ../core/textstream.h misc.h
plugindata.o: session.h user.h rebus.h mount.h ../templates/locale.h system.h plugindata.o: session.h user.h rebus.h mount.h ../templates/locale.h system.h
plugindata.o: job.h basethread.h synchro.h dirs.h dircontainer.h ../db/db.h plugindata.o: job.h basethread.h synchro.h dirs.h dircontainer.h ../db/db.h
@ -394,8 +394,8 @@ plugindata.o: ../../pikotools/utf8/utf8.h ../notify/notifythread.h
plugindata.o: ../core/basethread.h ../notify/templatesnotify.h plugindata.o: ../core/basethread.h ../notify/templatesnotify.h
plugindata.o: ../core/config.h ../core/users.h ugcontainer.h lastcontainer.h plugindata.o: ../core/config.h ../core/users.h ugcontainer.h lastcontainer.h
plugindata.o: mounts.h mountparser.h crypt.h run.h users.h groups.h group.h plugindata.o: mounts.h mountparser.h crypt.h run.h users.h groups.h group.h
plugindata.o: loadavg.h image.h threadmanager.h timezones.h sessionmanager.h plugindata.o: loadavg.h image.h threadmanager.h timezones.h timezone.h
plugindata.o: sessioncontainer.h ../functions/functions.h plugindata.o: sessionmanager.h sessioncontainer.h ../functions/functions.h
plugindata.o: ../functions/functionbase.h ../core/request.h ../core/system.h plugindata.o: ../functions/functionbase.h ../core/request.h ../core/system.h
plugindata.o: ../core/synchro.h ../functions/functionparser.h ../core/cur.h plugindata.o: ../core/synchro.h ../functions/functionparser.h ../core/cur.h
plugindata.o: ../functions/adduser.h ../functions/cat.h ../functions/chmod.h plugindata.o: ../functions/adduser.h ../functions/cat.h ../functions/chmod.h
@ -420,23 +420,23 @@ plugindata.o: ../templates/changepatterns.h ../templates/htmltextstream.h
plugindata.o: ../core/sessionmanager.h plugindata.o: ../core/sessionmanager.h
postmultiparser.o: postmultiparser.h error.h requesttypes.h config.h postmultiparser.o: postmultiparser.h error.h requesttypes.h config.h
postmultiparser.o: ../../pikotools/space/spaceparser.h postmultiparser.o: ../../pikotools/space/spaceparser.h
postmultiparser.o: ../../pikotools/space/space.h htmlfilter.h timezone.h postmultiparser.o: ../../pikotools/space/space.h htmlfilter.h misc.h item.h
postmultiparser.o: ../../pikotools/date/date.h ../../pikotools/space/space.h postmultiparser.o: ../../pikotools/space/space.h ../../pikotools/date/date.h
postmultiparser.o: misc.h item.h log.h textstream.h logmanipulators.h slog.h postmultiparser.o: log.h textstream.h logmanipulators.h slog.h cur.h
postmultiparser.o: cur.h request.h ../templates/htmltextstream.h postmultiparser.o: request.h ../templates/htmltextstream.h
postmultiparser.o: ../core/textstream.h session.h user.h plugindata.h rebus.h postmultiparser.o: ../core/textstream.h session.h user.h plugindata.h rebus.h
postmultiparser.o: mount.h ../templates/locale.h ../../pikotools/utf8/utf8.h postmultiparser.o: mount.h ../templates/locale.h ../../pikotools/utf8/utf8.h
rebus.o: log.h textstream.h logmanipulators.h slog.h cur.h request.h rebus.o: log.h textstream.h logmanipulators.h slog.h cur.h request.h
rebus.o: requesttypes.h item.h ../../pikotools/space/space.h rebus.o: requesttypes.h item.h ../../pikotools/space/space.h
rebus.o: ../../pikotools/date/date.h error.h config.h rebus.o: ../../pikotools/date/date.h error.h config.h
rebus.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h rebus.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h
rebus.o: htmlfilter.h timezone.h ../templates/htmltextstream.h rebus.o: htmlfilter.h ../templates/htmltextstream.h ../core/textstream.h
rebus.o: ../core/textstream.h misc.h session.h user.h plugindata.h rebus.h rebus.o: misc.h session.h user.h plugindata.h rebus.h mount.h
rebus.o: mount.h ../templates/locale.h rebus.o: ../templates/locale.h
request.o: request.h requesttypes.h item.h ../../pikotools/space/space.h request.o: request.h requesttypes.h item.h ../../pikotools/space/space.h
request.o: ../../pikotools/date/date.h error.h config.h request.o: ../../pikotools/date/date.h error.h config.h
request.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h request.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h
request.o: htmlfilter.h timezone.h textstream.h ../templates/htmltextstream.h request.o: htmlfilter.h textstream.h ../templates/htmltextstream.h
request.o: ../core/textstream.h misc.h log.h logmanipulators.h slog.h cur.h request.o: ../core/textstream.h misc.h log.h logmanipulators.h slog.h cur.h
request.o: session.h user.h plugindata.h rebus.h mount.h request.o: session.h user.h plugindata.h rebus.h mount.h
request.o: ../templates/locale.h plugin.h pluginmsg.h system.h job.h request.o: ../templates/locale.h plugin.h pluginmsg.h system.h job.h
@ -454,7 +454,7 @@ request.o: ../notify/notifythread.h ../core/basethread.h
request.o: ../notify/templatesnotify.h ../core/config.h ../core/users.h request.o: ../notify/templatesnotify.h ../core/config.h ../core/users.h
request.o: ugcontainer.h lastcontainer.h mounts.h mountparser.h crypt.h run.h request.o: ugcontainer.h lastcontainer.h mounts.h mountparser.h crypt.h run.h
request.o: users.h groups.h group.h loadavg.h image.h threadmanager.h request.o: users.h groups.h group.h loadavg.h image.h threadmanager.h
request.o: timezones.h sessionmanager.h sessioncontainer.h request.o: timezones.h timezone.h sessionmanager.h sessioncontainer.h
request.o: ../functions/functions.h ../functions/functionbase.h request.o: ../functions/functions.h ../functions/functionbase.h
request.o: ../core/request.h ../core/system.h ../core/synchro.h request.o: ../core/request.h ../core/system.h ../core/synchro.h
request.o: ../functions/functionparser.h ../core/cur.h ../functions/adduser.h request.o: ../functions/functionparser.h ../core/cur.h ../functions/adduser.h
@ -480,9 +480,8 @@ run.o: run.h log.h textstream.h logmanipulators.h slog.h cur.h request.h
run.o: requesttypes.h item.h ../../pikotools/space/space.h run.o: requesttypes.h item.h ../../pikotools/space/space.h
run.o: ../../pikotools/date/date.h error.h config.h run.o: ../../pikotools/date/date.h error.h config.h
run.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h run.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h
run.o: htmlfilter.h timezone.h ../templates/htmltextstream.h run.o: htmlfilter.h ../templates/htmltextstream.h ../core/textstream.h misc.h
run.o: ../core/textstream.h misc.h session.h user.h plugindata.h rebus.h run.o: session.h user.h plugindata.h rebus.h mount.h ../templates/locale.h
run.o: mount.h ../templates/locale.h
session.o: session.h item.h ../../pikotools/space/space.h session.o: session.h item.h ../../pikotools/space/space.h
session.o: ../../pikotools/date/date.h error.h user.h plugindata.h rebus.h session.o: ../../pikotools/date/date.h error.h user.h plugindata.h rebus.h
session.o: textstream.h misc.h requesttypes.h session.o: textstream.h misc.h requesttypes.h
@ -491,7 +490,7 @@ sessioncontainer.o: ../../pikotools/space/space.h ../../pikotools/date/date.h
sessioncontainer.o: error.h user.h plugindata.h rebus.h textstream.h cur.h sessioncontainer.o: error.h user.h plugindata.h rebus.h textstream.h cur.h
sessioncontainer.o: request.h requesttypes.h config.h sessioncontainer.o: request.h requesttypes.h config.h
sessioncontainer.o: ../../pikotools/space/spaceparser.h sessioncontainer.o: ../../pikotools/space/spaceparser.h
sessioncontainer.o: ../../pikotools/space/space.h htmlfilter.h timezone.h sessioncontainer.o: ../../pikotools/space/space.h htmlfilter.h
sessioncontainer.o: ../templates/htmltextstream.h ../core/textstream.h misc.h sessioncontainer.o: ../templates/htmltextstream.h ../core/textstream.h misc.h
sessioncontainer.o: mount.h log.h logmanipulators.h slog.h sessioncontainer.o: mount.h log.h logmanipulators.h slog.h
sessioncontainer.o: ../templates/locale.h sessioncontainer.o: ../templates/locale.h
@ -500,7 +499,7 @@ sessionmanager.o: ../../pikotools/space/space.h ../../pikotools/date/date.h
sessionmanager.o: error.h user.h plugindata.h rebus.h textstream.h cur.h sessionmanager.o: error.h user.h plugindata.h rebus.h textstream.h cur.h
sessionmanager.o: request.h requesttypes.h config.h sessionmanager.o: request.h requesttypes.h config.h
sessionmanager.o: ../../pikotools/space/spaceparser.h sessionmanager.o: ../../pikotools/space/spaceparser.h
sessionmanager.o: ../../pikotools/space/space.h htmlfilter.h timezone.h sessionmanager.o: ../../pikotools/space/space.h htmlfilter.h
sessionmanager.o: ../templates/htmltextstream.h ../core/textstream.h misc.h sessionmanager.o: ../templates/htmltextstream.h ../core/textstream.h misc.h
sessionmanager.o: mount.h lastcontainer.h system.h job.h basethread.h sessionmanager.o: mount.h lastcontainer.h system.h job.h basethread.h
sessionmanager.o: synchro.h dirs.h dircontainer.h ../db/db.h ../db/dbbase.h sessionmanager.o: synchro.h dirs.h dircontainer.h ../db/db.h ../db/dbbase.h
@ -518,7 +517,7 @@ sessionmanager.o: ../../pikotools/utf8/utf8.h ../notify/notifythread.h
sessionmanager.o: ../core/basethread.h ../notify/templatesnotify.h sessionmanager.o: ../core/basethread.h ../notify/templatesnotify.h
sessionmanager.o: ../core/config.h ../core/users.h ugcontainer.h mounts.h sessionmanager.o: ../core/config.h ../core/users.h ugcontainer.h mounts.h
sessionmanager.o: mountparser.h crypt.h run.h users.h groups.h group.h sessionmanager.o: mountparser.h crypt.h run.h users.h groups.h group.h
sessionmanager.o: loadavg.h image.h threadmanager.h timezones.h sessionmanager.o: loadavg.h image.h threadmanager.h timezones.h timezone.h
sessionmanager.o: sessionparser.h plugin.h pluginmsg.h sessionmanager.o: sessionparser.h plugin.h pluginmsg.h
sessionmanager.o: ../functions/functions.h ../functions/functionbase.h sessionmanager.o: ../functions/functions.h ../functions/functionbase.h
sessionmanager.o: ../core/request.h ../core/system.h ../core/synchro.h sessionmanager.o: ../core/request.h ../core/system.h ../core/synchro.h
@ -549,14 +548,14 @@ sessionparser.o: ../../pikotools/space/space.h ../../pikotools/date/date.h
sessionparser.o: error.h user.h plugindata.h rebus.h textstream.h sessionparser.o: error.h user.h plugindata.h rebus.h textstream.h
sessionparser.o: sessioncontainer.h cur.h request.h requesttypes.h config.h sessionparser.o: sessioncontainer.h cur.h request.h requesttypes.h config.h
sessionparser.o: ../../pikotools/space/spaceparser.h sessionparser.o: ../../pikotools/space/spaceparser.h
sessionparser.o: ../../pikotools/space/space.h htmlfilter.h timezone.h sessionparser.o: ../../pikotools/space/space.h htmlfilter.h
sessionparser.o: ../templates/htmltextstream.h ../core/textstream.h misc.h sessionparser.o: ../templates/htmltextstream.h ../core/textstream.h misc.h
sessionparser.o: mount.h users.h log.h logmanipulators.h slog.h sessionparser.o: mount.h users.h log.h logmanipulators.h slog.h
sessionparser.o: ../templates/locale.h sessionparser.o: ../templates/locale.h
slog.o: slog.h cur.h request.h requesttypes.h item.h slog.o: slog.h cur.h request.h requesttypes.h item.h
slog.o: ../../pikotools/space/space.h ../../pikotools/date/date.h error.h slog.o: ../../pikotools/space/space.h ../../pikotools/date/date.h error.h
slog.o: config.h ../../pikotools/space/spaceparser.h slog.o: config.h ../../pikotools/space/spaceparser.h
slog.o: ../../pikotools/space/space.h htmlfilter.h timezone.h textstream.h slog.o: ../../pikotools/space/space.h htmlfilter.h textstream.h
slog.o: ../templates/htmltextstream.h ../core/textstream.h misc.h session.h slog.o: ../templates/htmltextstream.h ../core/textstream.h misc.h session.h
slog.o: user.h plugindata.h rebus.h mount.h logmanipulators.h slog.o: user.h plugindata.h rebus.h mount.h logmanipulators.h
slog.o: ../templates/locale.h slog.o: ../templates/locale.h
@ -567,7 +566,7 @@ system.o: ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h
system.o: ../core/textstream.h misc.h requesttypes.h ../core/error.h system.o: ../core/textstream.h misc.h requesttypes.h ../core/error.h
system.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h system.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h
system.o: ../db/dbitemquery.h ../core/item.h ../db/dbitemcolumns.h system.o: ../db/dbitemquery.h ../core/item.h ../db/dbitemcolumns.h
system.o: ../core/user.h timezone.h ../core/group.h ../core/dircontainer.h system.o: ../core/user.h ../core/group.h ../core/dircontainer.h
system.o: ../core/ugcontainer.h log.h textstream.h logmanipulators.h slog.h system.o: ../core/ugcontainer.h log.h textstream.h logmanipulators.h slog.h
system.o: cur.h request.h error.h config.h htmlfilter.h system.o: cur.h request.h error.h config.h htmlfilter.h
system.o: ../templates/htmltextstream.h session.h user.h plugindata.h rebus.h system.o: ../templates/htmltextstream.h session.h user.h plugindata.h rebus.h
@ -581,25 +580,25 @@ system.o: ../../pikotools/utf8/utf8.h ../notify/notifythread.h
system.o: ../core/basethread.h ../notify/templatesnotify.h ../core/config.h system.o: ../core/basethread.h ../notify/templatesnotify.h ../core/config.h
system.o: ../core/users.h ugcontainer.h lastcontainer.h mounts.h system.o: ../core/users.h ugcontainer.h lastcontainer.h mounts.h
system.o: mountparser.h crypt.h run.h users.h groups.h group.h loadavg.h system.o: mountparser.h crypt.h run.h users.h groups.h group.h loadavg.h
system.o: image.h threadmanager.h timezones.h ../templates/templates.h system.o: image.h threadmanager.h timezones.h timezone.h
system.o: ../templates/patterncacher.h ../templates/indexpatterns.h system.o: ../templates/templates.h ../templates/patterncacher.h
system.o: ../templates/patterns.h ../templates/changepatterns.h system.o: ../templates/indexpatterns.h ../templates/patterns.h
system.o: ../templates/htmltextstream.h ../core/cur.h ../core/system.h system.o: ../templates/changepatterns.h ../templates/htmltextstream.h
system.o: ../core/sessionmanager.h ../core/htmlfilter.h system.o: ../core/cur.h ../core/system.h ../core/sessionmanager.h
system.o: ../functions/functions.h ../functions/functionbase.h system.o: ../core/htmlfilter.h ../functions/functions.h
system.o: ../core/request.h ../core/synchro.h ../functions/functionparser.h system.o: ../functions/functionbase.h ../core/request.h ../core/synchro.h
system.o: ../functions/adduser.h ../functions/cat.h ../functions/chmod.h system.o: ../functions/functionparser.h ../functions/adduser.h
system.o: ../functions/privchanger.h ../functions/chown.h system.o: ../functions/cat.h ../functions/chmod.h ../functions/privchanger.h
system.o: ../functions/ckeditor.h ../functions/cp.h ../functions/default.h system.o: ../functions/chown.h ../functions/ckeditor.h ../functions/cp.h
system.o: ../functions/download.h ../functions/emacs.h ../functions/env.h system.o: ../functions/default.h ../functions/download.h ../functions/emacs.h
system.o: ../functions/last.h ../functions/login.h ../functions/logout.h system.o: ../functions/env.h ../functions/last.h ../functions/login.h
system.o: ../functions/ln.h ../functions/ls.h ../functions/man.h system.o: ../functions/logout.h ../functions/ln.h ../functions/ls.h
system.o: ../functions/meta.h ../functions/mkdir.h ../functions/mv.h system.o: ../functions/man.h ../functions/meta.h ../functions/mkdir.h
system.o: ../functions/nicedit.h ../functions/node.h ../functions/passwd.h system.o: ../functions/mv.h ../functions/nicedit.h ../functions/node.h
system.o: ../functions/priv.h ../functions/pw.h ../functions/reload.h system.o: ../functions/passwd.h ../functions/priv.h ../functions/pw.h
system.o: ../functions/rm.h ../functions/rmuser.h ../functions/sort.h system.o: ../functions/reload.h ../functions/rm.h ../functions/rmuser.h
system.o: ../functions/specialdefault.h ../functions/stat.h system.o: ../functions/sort.h ../functions/specialdefault.h
system.o: ../functions/subject.h ../functions/template.h system.o: ../functions/stat.h ../functions/subject.h ../functions/template.h
system.o: ../functions/tinymce.h ../functions/uname.h ../functions/upload.h system.o: ../functions/tinymce.h ../functions/uname.h ../functions/upload.h
system.o: ../functions/uptime.h ../functions/who.h ../functions/vim.h system.o: ../functions/uptime.h ../functions/who.h ../functions/vim.h
system.o: plugin.h pluginmsg.h sessionmanager.h sessioncontainer.h system.o: plugin.h pluginmsg.h sessionmanager.h sessioncontainer.h
@ -608,12 +607,12 @@ threadmanager.o: logmanipulators.h slog.h cur.h request.h requesttypes.h
threadmanager.o: item.h ../../pikotools/space/space.h threadmanager.o: item.h ../../pikotools/space/space.h
threadmanager.o: ../../pikotools/date/date.h error.h config.h threadmanager.o: ../../pikotools/date/date.h error.h config.h
threadmanager.o: ../../pikotools/space/spaceparser.h threadmanager.o: ../../pikotools/space/spaceparser.h
threadmanager.o: ../../pikotools/space/space.h htmlfilter.h timezone.h threadmanager.o: ../../pikotools/space/space.h htmlfilter.h
threadmanager.o: ../templates/htmltextstream.h ../core/textstream.h misc.h threadmanager.o: ../templates/htmltextstream.h ../core/textstream.h misc.h
threadmanager.o: session.h user.h plugindata.h rebus.h mount.h threadmanager.o: session.h user.h plugindata.h rebus.h mount.h
threadmanager.o: ../templates/locale.h threadmanager.o: ../templates/locale.h
timezone.o: timezone.h ../../pikotools/date/date.h timezone.o: timezone.h ../../pikotools/date/date.h
timezone.o: ../../pikotools/space/space.h timezone.o: ../../pikotools/space/space.h misc.h item.h requesttypes.h
timezones.o: timezones.h timezone.h ../../pikotools/date/date.h timezones.o: timezones.h timezone.h ../../pikotools/date/date.h
timezones.o: ../../pikotools/space/space.h timezones.o: ../../pikotools/space/space.h
timezones.o: ../../pikotools/space/spaceparser.h timezones.o: ../../pikotools/space/spaceparser.h
@ -627,7 +626,7 @@ users.o: users.h sessionmanager.h sessioncontainer.h session.h item.h
users.o: ../../pikotools/space/space.h ../../pikotools/date/date.h error.h users.o: ../../pikotools/space/space.h ../../pikotools/date/date.h error.h
users.o: user.h plugindata.h rebus.h textstream.h cur.h request.h users.o: user.h plugindata.h rebus.h textstream.h cur.h request.h
users.o: requesttypes.h config.h ../../pikotools/space/spaceparser.h users.o: requesttypes.h config.h ../../pikotools/space/spaceparser.h
users.o: ../../pikotools/space/space.h htmlfilter.h timezone.h users.o: ../../pikotools/space/space.h htmlfilter.h
users.o: ../templates/htmltextstream.h ../core/textstream.h misc.h mount.h users.o: ../templates/htmltextstream.h ../core/textstream.h misc.h mount.h
users.o: lastcontainer.h system.h job.h basethread.h synchro.h dirs.h users.o: lastcontainer.h system.h job.h basethread.h synchro.h dirs.h
users.o: dircontainer.h ../db/db.h ../db/dbbase.h ../db/dbconn.h users.o: dircontainer.h ../db/db.h ../db/dbbase.h ../db/dbconn.h
@ -643,8 +642,8 @@ users.o: ../../ezc/src/stringconv.h ../../pikotools/utf8/utf8.h
users.o: ../notify/notifythread.h ../core/basethread.h users.o: ../notify/notifythread.h ../core/basethread.h
users.o: ../notify/templatesnotify.h ../core/config.h ../core/users.h users.o: ../notify/templatesnotify.h ../core/config.h ../core/users.h
users.o: ugcontainer.h mounts.h mountparser.h crypt.h run.h groups.h group.h users.o: ugcontainer.h mounts.h mountparser.h crypt.h run.h groups.h group.h
users.o: loadavg.h image.h threadmanager.h timezones.h plugin.h pluginmsg.h users.o: loadavg.h image.h threadmanager.h timezones.h timezone.h plugin.h
users.o: ../functions/functions.h ../functions/functionbase.h users.o: pluginmsg.h ../functions/functions.h ../functions/functionbase.h
users.o: ../core/request.h ../core/system.h ../core/synchro.h users.o: ../core/request.h ../core/system.h ../core/synchro.h
users.o: ../functions/functionparser.h ../core/cur.h ../functions/adduser.h users.o: ../functions/functionparser.h ../core/cur.h ../functions/adduser.h
users.o: ../functions/cat.h ../functions/chmod.h ../functions/privchanger.h users.o: ../functions/cat.h ../functions/chmod.h ../functions/privchanger.h

View File

@ -292,6 +292,25 @@ return status;
} }
void App::SetLocale()
{
size_t locale_id;
if( cur.session->puser )
{
locale_id = cur.session->puser->locale_id;
if( !TemplatesFunctions::locale.HasLanguage(locale_id) )
locale_id = config.locale_default_id;
}
else
{
locale_id = config.locale_default_id;
}
TemplatesFunctions::locale.SetCurLang(locale_id);
}
void App::ProcessRequestThrow() void App::ProcessRequestThrow()
{ {
@ -304,6 +323,7 @@ void App::ProcessRequestThrow()
{ {
session_manager.SetSession(); session_manager.SetSession();
cur.session = session_manager.GetCurSession(); cur.session = session_manager.GetCurSession();
SetLocale();
if( cur.session->new_session ) if( cur.session->new_session )
{ {

View File

@ -129,6 +129,7 @@ private:
bool ShouldUseSSL(); bool ShouldUseSSL();
bool ShouldNotUseSSL(); bool ShouldNotUseSSL();
bool CheckSSLcorrectness(); bool CheckSSLcorrectness();
void SetLocale();
void MakePage(); void MakePage();
void Make(); void Make();
void SaveSessionsIfNeeded(); // !! wywalic do menagera sesji?? void SaveSessionsIfNeeded(); // !! wywalic do menagera sesji??

View File

@ -96,152 +96,154 @@ bool Config::ReadConfig(bool errors_to_stdout_, bool stdout_is_closed)
void Config::AssignValues(bool stdout_is_closed) void Config::AssignValues(bool stdout_is_closed)
{ {
demonize = Bool(L"demonize", true); demonize = Bool(L"demonize", true);
user = AText(L"user"); user = AText(L"user");
group = AText(L"group"); group = AText(L"group");
additional_groups = Bool(L"additional_groups", true); additional_groups = Bool(L"additional_groups", true);
log_file = AText(L"log_file"); log_file = AText(L"log_file");
log_notify_file = AText(L"log_notify_file"); log_notify_file = AText(L"log_notify_file");
log_delimiter = Text(L"log_delimiter", L"---------------------------------------------------------------------------------"); log_delimiter = Text(L"log_delimiter", L"---------------------------------------------------------------------------------");
fcgi_socket = AText(L"fcgi_socket"); fcgi_socket = AText(L"fcgi_socket");
fcgi_socket_chmod = Int(L"fcgi_socket_chmod", 0770); fcgi_socket_chmod = Int(L"fcgi_socket_chmod", 0770);
fcgi_socket_user = AText(L"fcgi_socket_user"); fcgi_socket_user = AText(L"fcgi_socket_user");
fcgi_socket_group = AText(L"fcgi_socket_group"); fcgi_socket_group = AText(L"fcgi_socket_group");
log_level = Int(L"log_level", 1); log_level = Int(L"log_level", 1);
log_request = Int(L"log_request", 1); log_request = Int(L"log_request", 1);
log_save_each_line = Bool(L"log_save_each_line", false); log_save_each_line = Bool(L"log_save_each_line", false);
log_stdout = Bool(L"log_stdout", false); log_stdout = Bool(L"log_stdout", false);
log_db_query = Bool(L"log_db_query", false); log_db_query = Bool(L"log_db_query", false);
log_plugin_call = Bool(L"log_plugin_call", false); log_plugin_call = Bool(L"log_plugin_call", false);
log_post_value_size = Size(L"log_post_value_size", 80); log_post_value_size = Size(L"log_post_value_size", 80);
post_file_max = Size(L"post_file_max", 8388608); // 8 MB post_file_max = Size(L"post_file_max", 8388608); // 8 MB
upload_dir = Text(L"upload_dir"); upload_dir = Text(L"upload_dir");
common_dir = Text(L"common_dir"); common_dir = Text(L"common_dir");
NoLastSlash(upload_dir); NoLastSlash(upload_dir);
NoLastSlash(common_dir); NoLastSlash(common_dir);
upload_dirs_chmod = Int(L"upload_dirs_chmod", 0750); upload_dirs_chmod = Int(L"upload_dirs_chmod", 0750);
upload_files_chmod = Int(L"upload_files_chmod", 0640); upload_files_chmod = Int(L"upload_files_chmod", 0640);
ListText(L"static_dirs", static_dirs); ListText(L"static_dirs", static_dirs);
dont_use_static_dirs = Bool(L"dont_use_static_dirs", false); dont_use_static_dirs = Bool(L"dont_use_static_dirs", false);
create_thumb = Bool(L"create_thumb", true); create_thumb = Bool(L"create_thumb", true);
thumb_mode = Int(L"thumb_mode", 2); thumb_mode = Int(L"thumb_mode", 2);
thumb_cx = Size(L"thumb_cx", 150); thumb_cx = Size(L"thumb_cx", 150);
thumb_cy = Size(L"thumb_cy", 150); thumb_cy = Size(L"thumb_cy", 150);
thumb_quality = Int(L"thumb_quality", 92); thumb_quality = Int(L"thumb_quality", 92);
image_resize = Bool(L"image_resize", true); image_resize = Bool(L"image_resize", true);
image_mode = Int(L"image_mode", 6); image_mode = Int(L"image_mode", 6);
image_cx = Size(L"image_cx", 1000); image_cx = Size(L"image_cx", 1000);
image_cy = Size(L"image_cy", 800); image_cy = Size(L"image_cy", 800);
image_quality = Int(L"image_quality", 92); image_quality = Int(L"image_quality", 92);
convert_cmd = Text(L"convert_cmd", L"/usr/local/bin/convert"); convert_cmd = Text(L"convert_cmd", L"/usr/local/bin/convert");
templates_dir = Text(L"templates_dir"); templates_dir = Text(L"templates_dir");
templates_dir_default = Text(L"templates_dir_default"); templates_dir_default = Text(L"templates_dir_default");
txt_templates_dir = Text(L"txt_templates_dir"); txt_templates_dir = Text(L"txt_templates_dir");
txt_templates_dir_default = Text(L"txt_templates_dir_default"); txt_templates_dir_default = Text(L"txt_templates_dir_default");
templates_fun_prefix = Text(L"templates_fun_prefix", L"fun_"); templates_fun_prefix = Text(L"templates_fun_prefix", L"fun_");
templates_fun_postfix = Text(L"templates_fun_postfix", L".html"); templates_fun_postfix = Text(L"templates_fun_postfix", L".html");
templates_index = Text(L"templates_index", L"index.html"); templates_index = Text(L"templates_index", L"index.html");
template_only_root_use_template_fun = Bool(L"template_only_root_use_template_fun", false); template_only_root_use_template_fun = Bool(L"template_only_root_use_template_fun", false);
http_session_id_name = AText(L"http_session_id_name"); http_session_id_name = AText(L"http_session_id_name");
db_database = AText(L"db_database"); db_database = AText(L"db_database");
db_user = AText(L"db_user"); db_user = AText(L"db_user");
db_pass = AText(L"db_pass"); db_pass = AText(L"db_pass");
item_url_empty = Text(L"item_url_empty"); item_url_empty = Text(L"item_url_empty");
url_proto = Text(L"url_proto", L"http://"); url_proto = Text(L"url_proto", L"http://");
url_ssl_proto = Text(L"url_ssl_proto", L"https://"); url_ssl_proto = Text(L"url_ssl_proto", L"https://");
use_ssl = Bool(L"use_ssl", false); use_ssl = Bool(L"use_ssl", false);
use_ssl_static = Bool(L"use_ssl_static", false); use_ssl_static = Bool(L"use_ssl_static", false);
use_ssl_common = Bool(L"use_ssl_common", false); use_ssl_common = Bool(L"use_ssl_common", false);
use_ssl_only_for_logged_users = Bool(L"use_ssl_only_for_logged_users", true); use_ssl_only_for_logged_users = Bool(L"use_ssl_only_for_logged_users", true);
use_ssl_redirect_code = Int(L"use_ssl_redirect_code", 303); use_ssl_redirect_code = Int(L"use_ssl_redirect_code", 303);
base_url = Text(L"base_url"); base_url = Text(L"base_url");
base_url_static = Text(L"base_url_static"); base_url_static = Text(L"base_url_static");
base_url_common = Text(L"base_url_common"); base_url_common = Text(L"base_url_common");
base_url_redirect = Bool(L"base_url_redirect", false); base_url_redirect = Bool(L"base_url_redirect", false);
base_url_redirect_code = Int(L"base_url_redirect_code", 301); base_url_redirect_code = Int(L"base_url_redirect_code", 301);
NoLastSlash(base_url); NoLastSlash(base_url);
NoLastSlash(base_url_static); NoLastSlash(base_url_static);
NoLastSlash(base_url_common); NoLastSlash(base_url_common);
priv_no_user = Text(L"priv_no_user", L"-- no user --"); priv_no_user = Text(L"priv_no_user", L"-- no user --");
priv_no_group = Text(L"priv_no_group", L"-- no group --"); priv_no_group = Text(L"priv_no_group", L"-- no group --");
session_max_idle = Int(L"session_max_idle", 10800); // 3h session_max_idle = Int(L"session_max_idle", 10800); // 3h
session_remember_max_idle = Int(L"session_remember_max_idle", 16070400); // 3 months session_remember_max_idle = Int(L"session_remember_max_idle", 16070400); // 3 months
session_file = AText(L"session_file"); session_file = AText(L"session_file");
session_max = Size(L"session_max", 1000000); session_max = Size(L"session_max", 1000000);
compression = Bool(L"compression", true); compression = Bool(L"compression", true);
compression_page_min_size = Size(L"compression_page_min_size", 512); compression_page_min_size = Size(L"compression_page_min_size", 512);
compression_encoding = Int(L"compression_encoding", 20); compression_encoding = Int(L"compression_encoding", 20);
html_filter = Bool(L"html_filter", true); html_filter = Bool(L"html_filter", true);
html_filter_trim_white = Bool(L"html_filter_trim_white", true); html_filter_trim_white = Bool(L"html_filter_trim_white", true);
html_filter_break_word = Int(L"html_filter_break_word", 60); html_filter_break_word = Int(L"html_filter_break_word", 60);
html_filter_wrap_line = Int(L"html_filter_wrap_line", 110); html_filter_wrap_line = Int(L"html_filter_wrap_line", 110);
html_filter_tabs = Size(L"html_filter_tabs", 2); html_filter_tabs = Size(L"html_filter_tabs", 2);
html_filter_orphans = Bool(L"html_filter_orphans", true); html_filter_orphans = Bool(L"html_filter_orphans", true);
html_filter_orphans_mode_str = Text(L"html_filter_orphans_mode_str", L"nbsp"); html_filter_orphans_mode_str = Text(L"html_filter_orphans_mode_str", L"nbsp");
locale_dir = Text(L"locale_dir"); locale_dir = Text(L"locale_dir");
locale_dir_default = Text(L"locale_dir_default"); locale_dir_default = Text(L"locale_dir_default");
locale_default = Text(L"locale_default"); locale_max_id = Size(L"locale_max_id", 100);
locale_default_id = Size(L"locale_default_id", 0);
ListText(L"locale_files", locale_files); ListText(L"locale_files", locale_files);
title_separator = Text(L"title_separator", L" / "); title_separator = Text(L"title_separator", L" / ");
http_header_send_file = Text(L"http_header_send_file", L"X-LIGHTTPD-send-file"); http_header_send_file = Text(L"http_header_send_file", L"X-LIGHTTPD-send-file");
debug_info = Bool(L"debug_info", false); debug_info = Bool(L"debug_info", false);
editors_html_safe_mode = Bool(L"editors_html_safe_mode", true); editors_html_safe_mode = Bool(L"editors_html_safe_mode", true);
editors_html_safe_mode_skip_root = Bool(L"editors_html_safe_mode_skip_root", true); editors_html_safe_mode_skip_root = Bool(L"editors_html_safe_mode_skip_root", true);
plugins_dir = Text(L"plugins_dir", L"/usr/local/winix/plugins"); plugins_dir = Text(L"plugins_dir", L"/usr/local/winix/plugins");
NoLastSlash(plugins_dir); NoLastSlash(plugins_dir);
ListText(L"plugins", plugin_file); ListText(L"plugins", plugin_file);
utf8 = Bool(L"utf8", true); utf8 = Bool(L"utf8", true);
symlinks_follow_max = Size(L"symlinks_follow_max", 20); symlinks_follow_max = Size(L"symlinks_follow_max", 20);
ticket_form_prefix = Text(L"ticket_form_prefix", L"ticketparam"); ticket_form_prefix = Text(L"ticket_form_prefix", L"ticketparam");
pass_min_size = Size(L"pass_min_size", 5); pass_min_size = Size(L"pass_min_size", 5);
pass_type = Int(L"pass_type", 12); pass_type = Int(L"pass_type", 12);
pass_hash_use_salt = Bool(L"pass_hash_use_salt", false); pass_hash_use_salt = Bool(L"pass_hash_use_salt", false);
pass_hash_salt = Text(L"pass_hash_salt"); pass_hash_salt = Text(L"pass_hash_salt");
pass_use_rsa = Bool(L"pass_use_rsa", false); pass_use_rsa = Bool(L"pass_use_rsa", false);
pass_rsa_private_key = Text(L"pass_rsa_private_key"); pass_rsa_private_key = Text(L"pass_rsa_private_key");
opensll_path = Text(L"opensll_path", L"/usr/bin/openssl"); opensll_path = Text(L"opensll_path", L"/usr/bin/openssl");
pattern_cacher_when_delete = Size(L"pattern_cacher_when_delete", 130); pattern_cacher_when_delete = Size(L"pattern_cacher_when_delete", 130);
pattern_cacher_how_many_delete = Size(L"pattern_cacher_how_many_delete", 30); pattern_cacher_how_many_delete = Size(L"pattern_cacher_how_many_delete", 30);
content_type_header = Int(L"content_type_header", 0); content_type_header = Int(L"content_type_header", 0);
umask = Int(L"umask", 0222); umask = Int(L"umask", 0222);
ezc_max_elements = Size(L"ezc_max_elements", 50000); ezc_max_elements = Size(L"ezc_max_elements", 50000);
ezc_max_loop_elements = Size(L"ezc_max_loop_elements", 5000); ezc_max_loop_elements = Size(L"ezc_max_loop_elements", 5000);
account_need_email_verification = Bool(L"account_need_email_verification", true); account_need_email_verification = Bool(L"account_need_email_verification", true);
reset_password_code_expiration_time = Long(L"reset_password_code_expiration_time", 86400); reset_password_code_expiration_time = Long(L"reset_password_code_expiration_time", 86400);
time_zone.SetTz(space); time_zone_default_id = Size(L"time_zone_default_id", 34);
time_zone_max_id = Size(L"time_zone_max_id", 130);
etc_dir = Text(L"etc_dir", L""); etc_dir = Text(L"etc_dir", L"");
time_zones_file = Text(L"time_zones_file", L"time_zones.conf"); time_zones_file = Text(L"time_zones_file", L"time_zones.conf");
} }
@ -259,42 +261,17 @@ void Config::SetAdditionalVariables()
for(size_t i=0 ; i<static_dirs.size() ; ++i) for(size_t i=0 ; i<static_dirs.size() ; ++i)
NoLastSlash(static_dirs[i]); NoLastSlash(static_dirs[i]);
CheckLocale();
CheckPasswd(); CheckPasswd();
if( content_type_header < 0 || content_type_header > 2 ) if( content_type_header < 0 || content_type_header > 2 )
content_type_header = 0; content_type_header = 0;
if( locale_default_id > locale_max_id )
locale_default_id = locale_max_id;
} }
void Config::CheckLocale()
{
bool found = false;
if( locale_files.empty() )
locale_files.push_back(L"en");
if( locale_default.empty() )
locale_default = locale_files[0];
for(size_t i=0 ; i<locale_files.size() ; ++i)
{
if( locale_files[i] == locale_default )
{
locale_default_index = i;
found = true;
break;
}
}
if( !found )
{
// we have at least one item
locale_default = locale_files[0];
locale_default_index = 0;
}
}
void Config::CheckPasswd() void Config::CheckPasswd()

View File

@ -13,7 +13,7 @@
#include <string> #include <string>
#include "space/spaceparser.h" #include "space/spaceparser.h"
#include "htmlfilter.h" #include "htmlfilter.h"
#include "timezone.h"
@ -289,7 +289,7 @@ public:
// default: 92 // default: 92
int image_quality; int image_quality;
// the convert program (for images and thumbnails) // the convert program (ImageMagic) (for images and thumbnails)
// default: /usr/local/bin/convert // default: /usr/local/bin/convert
std::wstring convert_cmd; std::wstring convert_cmd;
@ -303,14 +303,16 @@ public:
// default: only one item: en // default: only one item: en
std::vector<std::wstring> locale_files; std::vector<std::wstring> locale_files;
// default locale // a maximum value of a locale identifier
// default: the first item from locale_files // default: 100 (maximum: 1000)
std::wstring locale_default; // each locale files should have its own identifier (in "winix_locale_id" field)
// from zero to this value
// default locale - index to locale_files size_t locale_max_id;
// not available in config -- set automatically based on locale_default
size_t locale_default_index;
// locale for not logged users
// or for newly created accounts
// default: 0
size_t locale_default_id;
// url protocol // url protocol
// default: http:// // default: http://
@ -485,16 +487,17 @@ public:
// default: 86400 (24 hours) // default: 86400 (24 hours)
long reset_password_code_expiration_time; long reset_password_code_expiration_time;
// time zone for guests // time zone identifier for not logged users
// or for users who don't have time zone set // or for newly created accounts
// following options are read: // those identifiers you can see in etc/time_zones.conf file
// "tz_offset" (long) // or by using timezone winix function with 'a' parameter (timezone/a) (!!IMPROVE ME NOT IMPLEMENTED YET)
// "tz_has_dst" (bool) // default: 34 (Coordinated Universal Time UTC+00:00)
// if tz_has_dst is true then also: size_t time_zone_default_id;
// "tz_dst_start" date in the following format: MM:DD HH[:MM[:SS]]
// "tz_dst_end" the same as above // a maximum value of a time zone identifier
// "tz_dst_offset" (long) // time zones with an id greater than this will be skipped
TimeZone time_zone; // default: 130 (maximum: 1000)
size_t time_zone_max_id;
// a directory in which there are some config files // a directory in which there are some config files
// used mainly when winix starts // used mainly when winix starts
@ -548,7 +551,6 @@ private:
void ShowError(); void ShowError();
void AssignValues(bool stdout_is_closed); void AssignValues(bool stdout_is_closed);
void SetAdditionalVariables(); void SetAdditionalVariables();
void CheckLocale();
void CheckPasswd(); void CheckPasswd();
PT::Space space; PT::Space space;

View File

@ -166,6 +166,7 @@ SLog & SLog::TranslateText(const wchar_t * str)
if( locale ) if( locale )
trans = &locale->Get(str); trans = &locale->Get(str);
// !! IMPROVE ME "Not translated" add to locale
if( !trans || trans->empty() ) if( !trans || trans->empty() )
cur->session->log_buffer << "Not translated: " << str; cur->session->log_buffer << "Not translated: " << str;
else else

View File

@ -69,6 +69,7 @@ void System::ReadTimeZones()
name_temp += '/'; name_temp += '/';
name_temp += config->time_zones_file; name_temp += config->time_zones_file;
time_zones.SetTimeZoneMaxId(config->time_zone_max_id);
time_zones.ReadTimeZones(name_temp); time_zones.ReadTimeZones(name_temp);
} }
@ -894,30 +895,40 @@ return status;
time_t System::ToLocal(time_t gmt_time) time_t System::ToLocal(time_t utc_time)
{ {
time_t local_time; size_t tz_id;
if( cur->session && cur->session->puser ) if( cur->session && cur->session->puser )
local_time = cur->session->puser->time_zone.ToLocal(gmt_time); tz_id = cur->session->puser->time_zone_id;
else else
local_time = config->time_zone.ToLocal(gmt_time); tz_id = config->time_zone_default_id;
return local_time; TimeZone * tz = time_zones.GetZone(tz_id);
if( tz )
return tz->ToLocal(utc_time);
return utc_time;
} }
PT::Date System::ToLocal(const PT::Date & gmt_date) PT::Date System::ToLocal(const PT::Date & utc_date)
{ {
PT::Date local_date; size_t tz_id;
if( cur->session && cur->session->puser ) if( cur->session && cur->session->puser )
local_date = cur->session->puser->time_zone.ToLocal(gmt_date); tz_id = cur->session->puser->time_zone_id;
else else
local_date = config->time_zone.ToLocal(gmt_date); tz_id = config->time_zone_default_id;
return local_date; TimeZone * tz = time_zones.GetZone(tz_id);
if( tz )
return tz->ToLocal(utc_date);
return utc_date;
} }
@ -925,28 +936,38 @@ return local_date;
time_t System::ToUTC(time_t local_time) time_t System::ToUTC(time_t local_time)
{ {
time_t utc_time; size_t tz_id;
if( cur->session && cur->session->puser ) if( cur->session && cur->session->puser )
utc_time = cur->session->puser->time_zone.ToUTC(local_time); tz_id = cur->session->puser->time_zone_id;
else else
utc_time = config->time_zone.ToUTC(local_time); tz_id = config->time_zone_default_id;
return utc_time; TimeZone * tz = time_zones.GetZone(tz_id);
if( tz )
return tz->ToUTC(local_time);
return local_time;
} }
PT::Date System::ToUTC(const PT::Date & local_date) PT::Date System::ToUTC(const PT::Date & local_date)
{ {
PT::Date utc_date; size_t tz_id;
if( cur->session && cur->session->puser ) if( cur->session && cur->session->puser )
utc_date = cur->session->puser->time_zone.ToUTC(local_date); tz_id = cur->session->puser->time_zone_id;
else else
utc_date = config->time_zone.ToUTC(local_date); tz_id = config->time_zone_default_id;
return utc_date; TimeZone * tz = time_zones.GetZone(tz_id);
if( tz )
return tz->ToUTC(local_date);
return local_date;
} }

View File

@ -140,8 +140,8 @@ public:
Error EditFile(Item & item, bool with_url = true, int notify_code = 0, bool call_plugins = true); Error EditFile(Item & item, bool with_url = true, int notify_code = 0, bool call_plugins = true);
time_t ToLocal(time_t gmt_time); time_t ToLocal(time_t utc_time);
PT::Date ToLocal(const PT::Date & gmt_date); PT::Date ToLocal(const PT::Date & utc_date);
time_t ToUTC(time_t local_time); time_t ToUTC(time_t local_time);
PT::Date ToUTC(const PT::Date & local_date); PT::Date ToUTC(const PT::Date & local_date);

View File

@ -8,6 +8,61 @@
*/ */
#include "timezone.h" #include "timezone.h"
#include "misc.h"
TimeZone::Dst::Dst()
{
Clear();
}
void TimeZone::Dst::Clear()
{
has_dst = false;
start.Clear();
end.Clear();
offset = 0;
}
bool TimeZone::Dst::IsDstUsed(const PT::Date & date) const
{
if( !has_dst )
return false;
if( Compare(start, date) <= 0 ) // !! CHECK ME <= or < ? (what about the one second?)
if( Compare(date, end) < 0 )
return true;
return false;
}
int TimeZone::Dst::Compare(const PT::Date & date1, const PT::Date & date2) const
{
// year is ignored
if( date1.month != date2.month )
return date1.month - date2.month;
if( date1.day != date2.day )
return date1.day - date2.day;
if( date1.hour != date2.hour )
return date1.hour - date2.hour;
if( date1.min != date2.min )
return date1.min - date2.min;
if( date1.sec != date2.sec )
return date1.sec - date2.sec;
// dates are equal
return 0;
}
@ -22,37 +77,45 @@ TimeZone::TimeZone()
void TimeZone::Clear() void TimeZone::Clear()
{ {
tz_id = -1; name.clear();
tz_offset = 0; id = 0;
tz_has_dst = false; offset = 0;
tz_dst_offset = 0; dst_map.clear();
tz_dst_start.Clear(); }
tz_dst_end.Clear();
TimeZone::Dst * TimeZone::FindDst(int year)
{
if( dst_map.empty() )
return 0;
DstMap::iterator i = dst_map.lower_bound(year);
if( i == dst_map.begin() && i->first > year )
return 0;
if( i == dst_map.end() )
return &(--i)->second;
if( i != dst_map.begin() && i->first > year )
return &(--i)->second;
return &i->second;
} }
time_t TimeZone::CalcLocalOffset(const PT::Date & utc_date) time_t TimeZone::CalcLocalOffset(const PT::Date & utc_date)
{ {
time_t offset; time_t dst_offset = 0;
offset = tz_offset; Dst * dst = FindDst(utc_date.year);
// !! CHECK ME need to be tested if( dst && dst->IsDstUsed(utc_date) )
dst_offset = dst->offset;
if( tz_has_dst ) return offset + dst_offset;
{
PT::Date local(utc_date);
local += tz_offset;
local.year = tz_dst_start.year;
tz_dst_end.year = tz_dst_start.year;
if( tz_dst_start <= local && local < tz_dst_end )
offset += tz_dst_offset;
}
return offset;
} }
@ -76,27 +139,25 @@ return local;
time_t TimeZone::CalcUTCOffset(const PT::Date & local_date) time_t TimeZone::CalcUTCOffset(const PT::Date & local_date)
{ {
time_t offset; time_t dst_offset = 0;
offset = tz_offset; Dst * dst = FindDst(local_date.year);
if( tz_has_dst ) if( dst && dst->has_dst )
{ {
// !! CHECK ME need to be tested // dst date ranges we have in UTC
PT::Date utc(local_date);
utc -= (offset + dst->offset);
PT::Date local(local_date); if( dst->IsDstUsed(utc) )
local -= tz_dst_offset; dst_offset = dst->offset;
local.year = tz_dst_start.year;
tz_dst_end.year = tz_dst_start.year;
if( tz_dst_start <= local && local < tz_dst_end )
offset += tz_dst_offset;
} }
return offset; return offset + dst_offset;
} }
time_t TimeZone::ToUTC(time_t local_time) time_t TimeZone::ToUTC(time_t local_time)
{ {
time_t offset = CalcUTCOffset(PT::Date(local_time)); time_t offset = CalcUTCOffset(PT::Date(local_time));
@ -119,47 +180,110 @@ return utc;
bool TimeZone::SetTz(PT::Space & space) time_t TimeZone::ParseStrOffset(const wchar_t * str)
{ {
bool result = true; PT::Date date;
bool is_sign = false;
time_t offset = 0;
tz_id = space.Int(L"tz_id", -1); str = SkipWhite(str);
tz_offset = space.Long(L"tz_offset", 0);
tz_has_dst = space.Bool(L"tz_has_dst", false);
time_t h13 = 60 * 60 * 13; // 13 hours if( *str == '-' )
time_t h15 = 60 * 60 * 15; // 15 hours
time_t h24 = 60 * 60 * 24; // 24 hours
if( tz_offset < -h13 || tz_offset > h15 )
result = false;
if( tz_has_dst )
{ {
tz_dst_start.year = 1970; is_sign = true;
tz_dst_end.year = 1970; str += 1;
if( !tz_dst_start.ParseMonthDayTime(space.Text(L"tz_dst_start")) )
result = false;
if( !tz_dst_end.ParseMonthDayTime(space.Text(L"tz_dst_end")) )
result = false;
tz_dst_offset = space.Long(L"tz_dst_offset");
if( tz_dst_offset < -h24 || tz_dst_offset > h24 )
result = false;
} }
else else
if( *str == '+' )
{ {
tz_dst_start.Clear(); str += 1;
tz_dst_end.Clear();
tz_dst_offset = 0;
} }
if( !result ) if( date.ParseTime(str) )
Clear(); {
offset = date.hour * 60 * 60 + date.min * 60 + date.sec;
if( is_sign )
offset = -offset;
}
return offset;
}
time_t TimeZone::GetOffset(PT::Space & space)
{
std::wstring * offset_str = space.GetValue(L"offset_str");
if( offset_str )
return ParseStrOffset(offset_str->c_str());
return space.Long(L"offset");
}
bool TimeZone::SetTzDst(PT::Space & year)
{
time_t h24 = 60 * 60 * 24; // 24 hours
bool result = true;
Dst dst;
int year_int = Toi(year.name);
if( year_int < 1970 && year_int > 10000 )
return false;
dst.has_dst = year.Bool(L"has_dst", false);
if( dst.has_dst )
{
dst.start.year = year_int;
dst.end.year = year_int;
if( !dst.start.ParseMonthDayTime(year.Text(L"start")) )
result = false;
if( !dst.end.ParseMonthDayTime(year.Text(L"end")) )
result = false;
dst.offset = GetOffset(year);
if( dst.offset < -h24 || dst.offset > h24 )
result = false;
}
if( result )
dst_map[year_int] = dst;
return result; return result;
} }
bool TimeZone::SetTz(PT::Space & space)
{
bool result = true;
name = space.name;
id = space.Int(L"id", -1);
offset = GetOffset(space);
time_t h24 = 60 * 60 * 24; // 24 hours
if( offset < -h24 || offset > h24 )
result = false;
PT::Space & dst = space.FindAddSpace(L"dst");
for(size_t i=0 ; i<dst.spaces.size() ; ++i)
{
PT::Space & year = *dst.spaces[i];
if( !SetTzDst(year) )
{
result = false;
break;
}
}
return result;
}

View File

@ -11,6 +11,7 @@
#define headerfile_winix_core_timezone #define headerfile_winix_core_timezone
#include <ctime> #include <ctime>
#include <map>
#include "date/date.h" #include "date/date.h"
#include "space/space.h" #include "space/space.h"
@ -20,13 +21,46 @@ class TimeZone
{ {
public: public:
struct Dst
{
// true if a time zone has daylight saving time
bool has_dst;
// time zone daylight saving time (used if has_dst is true)
// the 'year' field is the same in 'start' and 'end'
// start and end are represented in UTC time
PT::Date start, end;
// time zone daylight saving time offset
// used when has_dst is true and the date is whithin start and end
// this offset should be added to time zone offset
time_t offset;
Dst();
void Clear();
// checking whether specified 'date' is in the range of <start, end>
// the year field in date, start and end is ignored
// has_dst must be true
bool IsDstUsed(const PT::Date & date) const;
private:
// Compare returns zero if date1 and date2 are equal
// return value less than zero if date1 is lower than date2
// and a value greater than zero if date1 is greater than date2
// the year field is ignored
int Compare(const PT::Date & date1, const PT::Date & date2) const;
};
TimeZone(); TimeZone();
/* /*
setting:
tz_offset = 0
tz_has_dst = false
*/ */
void Clear(); void Clear();
@ -59,25 +93,39 @@ public:
time_t ToUTC(time_t local_time); time_t ToUTC(time_t local_time);
PT::Date ToUTC(const PT::Date & local_date); PT::Date ToUTC(const PT::Date & local_date);
// return a Dst structure for the specified year
// or null if it not exists
// this method can return a Dst structure for earlier year than 'year'
// if 'year' doesn't exist
Dst * FindDst(int year);
// a time zone name
// this is a key to locale
std::wstring name;
// each locale has its own identifier // each locale has its own identifier
int tz_id; size_t id;
// time zone offset (in seconds) // time zone offset (in seconds)
time_t tz_offset; time_t offset;
// true if the time zone has daylight saving time // daylight saving time map
bool tz_has_dst; // year -> Dst
// if there is not a specified year we are taking the lower year, e.g.
// if we are looking for 2010 and there is no such a year then we take 2009
// (or 2008 if 2009 not exists etc)
typedef std::map<int, Dst> DstMap;
DstMap dst_map;
// time zone daylight saving time (used if tz_has_dst is true)
// the 'year' field is ignored (is always 1970)
// these values (hours) are represented in local time (UTC + tz_offset)
PT::Date tz_dst_start, tz_dst_end;
// time zone daylight saving time offset
// used when tz_has_dst is true and the current date is whithin tz_dst_start and tz_dst_end
time_t tz_dst_offset;
private:
time_t ParseStrOffset(const wchar_t * str);
time_t GetOffset(PT::Space & space);
bool SetTzDst(PT::Space & year);
}; };

View File

@ -19,64 +19,110 @@ TimeZones::TimeZones()
} }
time_t TimeZones::ParseOffset(const wchar_t * str) void TimeZones::Clear()
{ {
PT::Date date; zone_tab.clear();
bool is_sign = false;
time_t offset = 0;
str = SkipWhite(str); for(size_t i=0 ; i<zone_indices.size() ; ++i)
zone_indices[i] = size_t(-1);
if( *str == '-' )
{
is_sign = true;
str += 1;
}
else
if( *str == '+' )
{
str += 1;
}
if( date.ParseTime(str) )
{
offset = date.hour * 60 * 60 + date.min * 60;
if( is_sign )
offset = -offset;
}
return offset;
} }
void TimeZones::SetTimeZoneMaxId(size_t max_id)
{
if( max_id > 1000 )
{
max_id = 1000;
log << log1 << "TZ: time_zone_max_id is too big (changed to 1000)" << logend;
}
size_t old_size = zone_indices.size();
zone_indices.resize(max_id + 1);
for(size_t i=old_size ; i<zone_indices.size() ; ++i)
zone_indices[i] = size_t(-1);
}
bool TimeZones::HasZone(size_t zone_id)
{
if( zone_id < zone_indices.size() )
return zone_indices[zone_id] < zone_tab.size();
return false;
}
TimeZone * TimeZones::GetZone(size_t zone_id)
{
if( zone_id < zone_indices.size() )
{
size_t index = zone_indices[zone_id];
if( index < zone_tab.size() )
return &zone_tab[index];
}
return 0;
}
TimeZone * TimeZones::GetZoneByIndex(size_t zone_index)
{
if( zone_index < zone_tab.size() )
return &zone_tab[zone_index];
return 0;
}
size_t TimeZones::Size() const
{
return zone_tab.size();
}
bool TimeZones::Empty() const
{
return zone_tab.empty();
}
void TimeZones::ParseZones() void TimeZones::ParseZones()
{ {
for(size_t i=0 ; i<temp_space.spaces.size() ; ++i) for(size_t i=0 ; i<temp_space.spaces.size() ; ++i)
{ {
PT::Space & zone = *temp_space.spaces[i]; PT::Space & zone = *temp_space.spaces[i];
zone.Add(L"tz_offset", ParseOffset(zone.Text(L"tz_offset_str").c_str()));
zone.Add(L"tz_dst_offset", ParseOffset(zone.Text(L"tz_dst_offset_str").c_str()));
temp_zone.Clear(); temp_zone.Clear();
if( temp_zone.time_zone.SetTz(zone) ) if( temp_zone.SetTz(zone) )
{ {
temp_zone.name_key = zone.name; if( !HasZone(temp_zone.id) )
if( !FindZone(temp_zone.time_zone.tz_id) )
{ {
tab.push_back(temp_zone); if( temp_zone.id < zone_indices.size() )
{
zone_tab.push_back(temp_zone);
zone_indices[temp_zone.id] = zone_tab.size() - 1;
}
else
{
log << log1 << "Tz: zone: " << temp_zone.name << " has too big id: "
<< temp_zone.id << " (skipping)" << logend;
}
} }
else else
{ {
log << log1 << "Tz: zone with id: " << temp_zone.time_zone.tz_id log << log1 << "Tz: zone with id: " << temp_zone.id
<< " already exists (skipping)" << logend; << " already exists (skipping)" << logend;
} }
} }
else else
{ {
log << log1 << "System: problem with reading info from time zone: " log << log1 << "System: problem with reading time zone info from time zone: "
<< zone.name << " (skipping) " << logend; << zone.name << " (skipping) " << logend;
} }
} }
@ -91,14 +137,15 @@ bool TimeZones::ReadTimeZones(const wchar_t * path)
{ {
parser.UTF8(true); parser.UTF8(true);
parser.SetSpace(temp_space); parser.SetSpace(temp_space);
tab.clear(); zone_tab.clear();
temp_space.Clear();
PT::SpaceParser::Status status = parser.Parse(path); PT::SpaceParser::Status status = parser.Parse(path);
if( status == PT::SpaceParser::ok ) if( status == PT::SpaceParser::ok )
{ {
ParseZones(); ParseZones();
log << log2 << "Tz: time zones loaded, there are " << tab.size() << " zones" << logend; log << log2 << "Tz: time zones loaded, there are " << zone_tab.size() << " zones" << logend;
} }
else else
if( status == PT::SpaceParser::syntax_error ) if( status == PT::SpaceParser::syntax_error )
@ -126,38 +173,6 @@ bool TimeZones::ReadTimeZones(const std::wstring & path)
TimeZones::Zone * TimeZones::FindZone(int tz_id)
{
for(size_t i=0 ; i<tab.size() ; ++i)
{
if( tab[i].time_zone.tz_id == tz_id )
return &tab[i];
}
return 0;
}
TimeZones::Zone & TimeZones::operator[](size_t index)
{
return tab[index];
}
size_t TimeZones::Size() const
{
return tab.size();
}
bool TimeZones::Empty() const
{
return tab.empty();
}
void TimeZones::Clear()
{
tab.clear();
}

View File

@ -21,42 +21,57 @@ class TimeZones
{ {
public: public:
struct Zone
{
TimeZone time_zone;
std::wstring name_key; // a key to locale
void Clear()
{
time_zone.Clear();
name_key.clear();
}
};
TimeZones(); TimeZones();
// maximum allowed time zone's identifier
void SetTimeZoneMaxId(size_t max_id);
// reading time zone from a file
bool ReadTimeZones(const wchar_t * path); bool ReadTimeZones(const wchar_t * path);
bool ReadTimeZones(const std::wstring & path); bool ReadTimeZones(const std::wstring & path);
Zone * FindZone(int tz_id); // returning true if there is a time zone with the zone_id identifier
Zone & operator[](size_t index); bool HasZone(size_t zone_id);
// returning a time zone by time zone's identifier
// can return a null pointer if there is no such a zone
TimeZone * GetZone(size_t zone_id);
// returning the number of all time zones
size_t Size() const; size_t Size() const;
bool Empty() const;
void Clear(); // returning a time zone by an internal index
// usuful for iterating through all zones
// this index is in a range of <0, Size()-1>
// can return a null pointer if the index is out of range
TimeZone * GetZoneByIndex(size_t zone_index);
// return true if there are not any time zones
bool Empty() const;
// clears all time zones
// this does not affect SetTimeZoneMaxId()
// so the size of zone_indices is not changed but all indices are invalidated
void Clear();
private: private:
typedef std::vector<Zone> Tab; // indices to 'tab'
Tab tab; // with this we have O(1) time to find a time zone in 'tab'
// everywhere we use zone_id we refer to this table
// SetTimeZoneMaxId(size_t max_id) sets size of this table to max_id+1
std::vector<size_t> zone_indices;
// time zones
// everywhere we use zone_index we refer to this table
std::vector<TimeZone> zone_tab;
PT::SpaceParser parser; PT::SpaceParser parser;
PT::Space temp_space; PT::Space temp_space;
Zone temp_zone; TimeZone temp_zone;
time_t ParseOffset(const wchar_t * str); void ParseZones();
void ParseZones();
}; };

View File

@ -27,6 +27,8 @@ void User::Clear()
env.Clear(); env.Clear();
aenv.Clear(); aenv.Clear();
status = WINIX_ACCOUNT_BLOCKED; status = WINIX_ACCOUNT_BLOCKED;
locale_id = 0;
time_zone_id = 0;
} }

View File

@ -12,7 +12,6 @@
#include <string> #include <string>
#include <vector> #include <vector>
#include "timezone.h"
#include "space/space.h" #include "space/space.h"
#include "date/date.h" #include "date/date.h"
@ -89,10 +88,11 @@ struct User
// a user can normally login only when status is WINIX_ACCOUNT_READY // a user can normally login only when status is WINIX_ACCOUNT_READY
int status; int status;
// time zone // locale identifier
// values here are the same as those in env space size_t locale_id;
// we provide they here to speed up the process of calculating times
TimeZone time_zone; // time zone identifier
size_t time_zone_id;
User(); User();

View File

@ -5,13 +5,12 @@ db.o: ../core/misc.h ../core/item.h ../../pikotools/space/space.h
db.o: ../../pikotools/date/date.h ../core/requesttypes.h ../core/error.h db.o: ../../pikotools/date/date.h ../core/requesttypes.h ../core/error.h
db.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h db.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h
db.o: dbitemquery.h ../core/item.h dbitemcolumns.h ../core/user.h db.o: dbitemquery.h ../core/item.h dbitemcolumns.h ../core/user.h
db.o: ../core/timezone.h ../core/group.h ../core/dircontainer.h db.o: ../core/group.h ../core/dircontainer.h ../core/ugcontainer.h
db.o: ../core/ugcontainer.h ../core/log.h ../core/textstream.h db.o: ../core/log.h ../core/textstream.h ../core/logmanipulators.h
db.o: ../core/logmanipulators.h ../core/slog.h ../core/cur.h db.o: ../core/slog.h ../core/cur.h ../core/request.h ../core/error.h
db.o: ../core/request.h ../core/error.h ../core/config.h ../core/htmlfilter.h db.o: ../core/config.h ../core/htmlfilter.h ../templates/htmltextstream.h
db.o: ../templates/htmltextstream.h ../core/session.h ../core/user.h db.o: ../core/session.h ../core/user.h ../core/plugindata.h ../core/rebus.h
db.o: ../core/plugindata.h ../core/rebus.h ../core/mount.h db.o: ../core/mount.h ../templates/locale.h ../core/log.h ../core/misc.h
db.o: ../templates/locale.h ../core/log.h ../core/misc.h
dbbase.o: dbbase.h dbconn.h dbtextstream.h ../core/textstream.h dbbase.o: dbbase.h dbconn.h dbtextstream.h ../core/textstream.h
dbbase.o: ../core/misc.h ../core/item.h ../../pikotools/space/space.h dbbase.o: ../core/misc.h ../core/item.h ../../pikotools/space/space.h
dbbase.o: ../../pikotools/date/date.h ../core/requesttypes.h ../core/error.h dbbase.o: ../../pikotools/date/date.h ../core/requesttypes.h ../core/error.h

View File

@ -77,7 +77,7 @@ Error Db::AddUser(User & user, const UserPass & up)
{ {
query.Clear(); query.Clear();
query << R("insert into core.user (login, password, pass_encrypted, super_user, email," query << R("insert into core.user (login, password, pass_encrypted, super_user, email,"
"notify, pass_type, pass_hash_salted, env, aenv, status) values (") "notify, pass_type, pass_hash_salted, env, aenv, status, locale_id, time_zone_id) values (")
<< user.name; << user.name;
// for safety we put up.pass only if there is not an encrypted version // for safety we put up.pass only if there is not an encrypted version
@ -97,6 +97,8 @@ Error Db::AddUser(User & user, const UserPass & up)
<< user.env << user.env
<< user.aenv << user.aenv
<< user.status << user.status
<< user.locale_id
<< user.time_zone_id
<< R(");"); << R(");");
r = AssertQuery(query); r = AssertQuery(query);
@ -194,6 +196,32 @@ return DoCommand(query);
} }
Error Db::ChangeUserLocale(long user_id, size_t locale_id)
{
query.Clear();
query << R("update core.user set(locale_id) = (")
<< locale_id
<< R(") where id = ")
<< user_id
<< R(";");
return DoCommand(query);
}
Error Db::ChangeUserTimeZone(long user_id, size_t time_zone_id)
{
query.Clear();
query << R("update core.user set(time_zone_id) = (")
<< time_zone_id
<< R(") where id = ")
<< user_id
<< R(";");
return DoCommand(query);
}
Error Db::RemoveUser(long user_id) Error Db::RemoveUser(long user_id)
{ {
query.Clear(); query.Clear();
@ -1566,7 +1594,8 @@ void Db::GetUsers(UGContainer<User> & user_tab)
try try
{ {
query.Clear(); query.Clear();
query << R("select id, login, super_user, group_id, email, notify, env, aenv, status" query << R("select id, login, super_user, group_id, email, notify,"
" env, aenv, status, locale_id, time_zone_id"
" from core.user left outer join core.group_mem on" " from core.user left outer join core.group_mem on"
" core.user.id = core.group_mem.user_id order by id asc;"); " core.user.id = core.group_mem.user_id order by id asc;");
@ -1584,6 +1613,8 @@ void Db::GetUsers(UGContainer<User> & user_tab)
int cenv = AssertColumn(r, "env"); int cenv = AssertColumn(r, "env");
int caenv = AssertColumn(r, "aenv"); int caenv = AssertColumn(r, "aenv");
int cstatus = AssertColumn(r, "status"); int cstatus = AssertColumn(r, "status");
int clocale_id = AssertColumn(r, "locale_id");
int ctzone_id = AssertColumn(r, "time_zone_id");
User u; User u;
long last_id = -1; long last_id = -1;
@ -1595,11 +1626,13 @@ void Db::GetUsers(UGContainer<User> & user_tab)
if( u.id != last_id ) if( u.id != last_id )
{ {
u.name = AssertValueWide(r, i, cname); u.name = AssertValueWide(r, i, cname);
u.super_user = AssertValueBool(r, i, csuper_user); u.super_user = AssertValueBool(r, i, csuper_user);
u.email = AssertValueWide(r, i, cemail); u.email = AssertValueWide(r, i, cemail);
u.notify = AssertValueInt(r, i, cnotify); u.notify = AssertValueInt(r, i, cnotify);
u.status = AssertValueInt(r, i, cstatus); u.status = AssertValueInt(r, i, cstatus);
u.locale_id = (size_t)AssertValueInt(r, i, clocale_id);
u.time_zone_id = (size_t)AssertValueInt(r, i, ctzone_id);
AssertValueSpace(r, i, cenv, u.env); AssertValueSpace(r, i, cenv, u.env);
AssertValueSpace(r, i, caenv, u.aenv); AssertValueSpace(r, i, caenv, u.aenv);

View File

@ -51,6 +51,8 @@ public:
Error ChangeUserAdminEnv(long user_id, const PT::Space & space); Error ChangeUserAdminEnv(long user_id, const PT::Space & space);
Error ChangeUserStatus(long user_id, int status); Error ChangeUserStatus(long user_id, int status);
Error ChangeUserEmail(long user_id, const std::wstring & email); Error ChangeUserEmail(long user_id, const std::wstring & email);
Error ChangeUserLocale(long user_id, size_t locale_id);
Error ChangeUserTimeZone(long user_id, size_t time_zone_id);
Error RemoveUser(long user_id); Error RemoveUser(long user_id);
Error AddItem(Item & item); Error AddItem(Item & item);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1 +1 @@
o = adduser.o cat.o chmod.o chown.o ckeditor.o cp.o default.o download.o emacs.o env.o functionbase.o functionparser.o functions.o last.o ln.o login.o logout.o ls.o man.o meta.o mkdir.o mount.o mv.o nicedit.o node.o passwd.o priv.o privchanger.o pw.o reload.o rm.o rmuser.o run.o sort.o specialdefault.o stat.o subject.o template.o tinymce.o uname.o upload.o uptime.o vim.o who.o o = adduser.o cat.o chmod.o chown.o ckeditor.o cp.o default.o download.o emacs.o env.o functionbase.o functionparser.o functions.o last.o ln.o locale.o login.o logout.o ls.o man.o meta.o mkdir.o mount.o mv.o nicedit.o node.o passwd.o priv.o privchanger.o pw.o reload.o rm.o rmuser.o run.o sort.o specialdefault.o stat.o subject.o template.o timezone.o tinymce.o uname.o upload.o uptime.o vim.o who.o

View File

@ -183,11 +183,13 @@ bool AddUser::AddNewUser(const std::wstring & login,
bool use_ses_log) bool use_ses_log)
{ {
user.Clear(); user.Clear();
user.name = login; user.name = login;
user.email = email; user.email = email;
user.super_user = false; user.super_user = false;
user.notify = 0; user.notify = 0;
user.status = (config->account_need_email_verification)? WINIX_ACCOUNT_NOT_ACTIVATED : WINIX_ACCOUNT_READY; user.locale_id = config->locale_default_id;
user.time_zone_id = config->time_zone_default_id;
user.status = (config->account_need_email_verification)? WINIX_ACCOUNT_NOT_ACTIVATED : WINIX_ACCOUNT_READY;
long code = 0; long code = 0;
if( autoactivate ) if( autoactivate )

View File

@ -187,6 +187,7 @@ void Functions::CreateFunctions()
Add(fun_emacs); Add(fun_emacs);
Add(fun_env); Add(fun_env);
Add(fun_last); Add(fun_last);
Add(fun_locale);
Add(fun_login); Add(fun_login);
Add(fun_logout); Add(fun_logout);
Add(fun_ln); Add(fun_ln);
@ -210,6 +211,7 @@ void Functions::CreateFunctions()
Add(fun_stat); Add(fun_stat);
Add(fun_subject); Add(fun_subject);
Add(fun_template); Add(fun_template);
Add(fun_time_zone);
Add(fun_tinymce); Add(fun_tinymce);
Add(fun_uname); Add(fun_uname);
Add(fun_upload); Add(fun_upload);
@ -435,7 +437,7 @@ void Functions::CheckGetPostTimes(time_t difference)
// !!uwaga zwracana wartość zmieniona (true/false) // !!uwaga zwracana warto<EFBFBD><EFBFBD> zmieniona (true/false)
bool Functions::CheckAbuse() bool Functions::CheckAbuse()
{ {
if( !system->rebus.CheckRebus() ) if( !system->rebus.CheckRebus() )

View File

@ -24,6 +24,7 @@
#include "emacs.h" #include "emacs.h"
#include "env.h" #include "env.h"
#include "last.h" #include "last.h"
#include "locale.h"
#include "login.h" #include "login.h"
#include "logout.h" #include "logout.h"
#include "ln.h" #include "ln.h"
@ -47,6 +48,7 @@
#include "stat.h" #include "stat.h"
#include "subject.h" #include "subject.h"
#include "template.h" #include "template.h"
#include "timezone.h"
#include "tinymce.h" #include "tinymce.h"
#include "uname.h" #include "uname.h"
#include "upload.h" #include "upload.h"
@ -75,6 +77,7 @@ public:
Fun::Emacs fun_emacs; Fun::Emacs fun_emacs;
Fun::Env fun_env; Fun::Env fun_env;
Fun::Last fun_last; Fun::Last fun_last;
Fun::Locale fun_locale;
Fun::Login fun_login; Fun::Login fun_login;
Fun::Logout fun_logout; Fun::Logout fun_logout;
Fun::Ln fun_ln; Fun::Ln fun_ln;
@ -98,6 +101,7 @@ public:
Fun::Stat fun_stat; Fun::Stat fun_stat;
Fun::Subject fun_subject; Fun::Subject fun_subject;
Fun::Template fun_template; Fun::Template fun_template;
Fun::TimeZone fun_time_zone;
Fun::Tinymce fun_tinymce; Fun::Tinymce fun_tinymce;
Fun::Uname fun_uname; Fun::Uname fun_uname;
Fun::Upload fun_upload; Fun::Upload fun_upload;

60
functions/locale.cpp Executable file
View File

@ -0,0 +1,60 @@
/*
* This file is a part of Winix
* and is not publicly distributed
*
* Copyright (c) 2012, Tomasz Sowa
* All rights reserved.
*
*/
#include "locale.h"
#include "templates/templates.h"
namespace Fun
{
Locale::Locale()
{
fun.url = L"locale";
}
bool Locale::HasAccess()
{
return cur->session->puser != 0;
}
void Locale::MakePost()
{
if( cur->session->puser )
{
size_t locale_id = size_t(Toi(cur->request->PostVar(L"localeid")));
if( TemplatesFunctions::locale.HasLanguage(locale_id) )
{
cur->session->puser->locale_id = locale_id;
db->ChangeUserLocale(cur->session->puser->id, locale_id);
TemplatesFunctions::locale.SetCurLang(locale_id);
}
else
{
log << log1 << "Locale: incorrect locale id: " << locale_id << logend;
}
}
}
void Locale::MakeGet()
{
}
} // namespace

38
functions/locale.h Executable file
View File

@ -0,0 +1,38 @@
/*
* This file is a part of Winix
* and is not publicly distributed
*
* Copyright (c) 2012, Tomasz Sowa
* All rights reserved.
*
*/
#ifndef headerfile_winix_functions_locale
#define headerfile_winix_functions_locale
#include "functionbase.h"
namespace Fun
{
class Locale : public FunctionBase
{
public:
Locale();
bool HasAccess();
void MakePost();
void MakeGet();
private:
};
} // namespace
#endif

56
functions/timezone.cpp Executable file
View File

@ -0,0 +1,56 @@
/*
* This file is a part of Winix
* and is not publicly distributed
*
* Copyright (c) 2012, Tomasz Sowa
* All rights reserved.
*
*/
#include "timezone.h"
namespace Fun
{
TimeZone::TimeZone()
{
fun.url = L"timezone";
}
bool TimeZone::HasAccess()
{
return cur->session->puser != 0;
}
void TimeZone::MakePost()
{
if( cur->session->puser )
{
size_t tz_id = size_t(Toi(cur->request->PostVar(L"timezoneid")));
if( system->time_zones.HasZone(tz_id) )
{
cur->session->puser->time_zone_id = tz_id;
db->ChangeUserTimeZone(cur->session->puser->id, tz_id);
}
else
{
log << log1 << "TimeZone: incorrect time zone id: " << tz_id << logend;
}
}
}
void TimeZone::MakeGet()
{
}
} // namespace

39
functions/timezone.h Executable file
View File

@ -0,0 +1,39 @@
/*
* This file is a part of Winix
* and is not publicly distributed
*
* Copyright (c) 2012, Tomasz Sowa
* All rights reserved.
*
*/
#ifndef headerfile_winix_functions_timezone
#define headerfile_winix_functions_timezone
#include "functionbase.h"
namespace Fun
{
class TimeZone : public FunctionBase
{
public:
TimeZone();
bool HasAccess();
void MakePost();
void MakeGet();
private:
};
} // namespace
#endif

View File

@ -309,8 +309,7 @@ void Upload::MakePost()
void Upload::CreateJSON() void Upload::CreateJSON()
{ {
// !! locale beda w zaleznosci od uzytkownika size_t loc = TemplatesFunctions::locale.GetCurLang();
size_t loc = TemplatesFunctions::locale.GetLang();
Ezc::Pattern * pat = TemplatesFunctions::patterns.Get(template_index, loc); Ezc::Pattern * pat = TemplatesFunctions::patterns.Get(template_index, loc);
if( pat ) if( pat )

28
html/fun_locale.html Executable file
View File

@ -0,0 +1,28 @@
<h1>{locale_header}</h1>
[if user_has_correct_locale]
<p>{locale_your_locale}: [user_locale_name]</p>
[else]
<p>{locale_has_incorrect_id}</p>
[end]
<form id="additem" method="post" action="[doc_base_url][dir][if-one item_is][item_url]/[end]locale">
<fieldset>
<legend>{locale_form_legend}</legend>
<p class="withnext">{locale_select}:</p>
[# add to styles]
<select name="localeid" style="width: 250px;">
[for winix_locale_tab]
<option value="[winix_locale_tab_id]" [is user_locale_id winix_locale_tab_id]selected="selected"[end]>[winix_locale_tab_name]</option>
[end]
</select>
<input class="submit" type="submit" value="{change}">
</fieldset>
</form>

28
html/fun_timezone.html Executable file
View File

@ -0,0 +1,28 @@
<h1>{timezone_header}</h1>
[if user_has_correct_time_zone]
<p>{timezone_your_zone}: [user_time_zone_name] (UTC[user_time_zone_offset_hour_min])</p>
[else]
<p>{timezone_has_incorrect_id}</p>
[end]
<form id="additem" method="post" action="[doc_base_url][dir][if-one item_is][item_url]/[end]timezone">
<fieldset>
<legend>{timezone_form_legend}</legend>
<p class="withnext">{timezone_select}:</p>
[# add to styles]
<select name="timezoneid" style="width: 250px;">
[for winix_tz_tab]
<option value="[winix_tz_tab_id]" [is user_time_zone_id winix_tz_tab_id]selected="selected"[end]>UTC[winix_tz_tab_offset_hour_min] [winix_tz_tab_name]</option>
[end]
</select>
<input class="submit" type="submit" value="{change}">
</fieldset>
</form>

View File

@ -1,3 +1,6 @@
winix_locale_id = "0"
locale_name = "english"
language = en language = en
charset = UTF-8 charset = UTF-8
@ -308,6 +311,13 @@ admin_upload = "File manager (upload)"
admin_sort = "Sort items (sort)" admin_sort = "Sort items (sort)"
locale_header = Locale
locale_your_locale = Current language
locale_has_incorrect_id = You don't have a correct language set
locale_form_legend = Locale form
locale_select = Select language
login_header = Login login_header = Login
uptime_header = Uptime uptime_header = Uptime
@ -369,6 +379,12 @@ mv_incorrect_dst_path = Incorrect destination path
mv_incorrect_dir = Incorrect directory mv_incorrect_dir = Incorrect directory
timezone_header = Time Zone
timezone_form_legend = Time Zone form
timezone_select = Select your time zone
timezone_your_zone = Your current time zone is
timezone_has_incorrect_id = You don't have a correct time zone set
cp_header = Copy cp_header = Copy
cp_form_legend = Copy form cp_form_legend = Copy form
cp_page = Copy page cp_page = Copy page

View File

@ -1,3 +1,7 @@
winix_locale_id = "1"
locale_name = "polski"
language = pl language = pl
charset = UTF-8 charset = UTF-8
@ -327,6 +331,13 @@ admin_rm = "Usuń stronę (rm)"
admin_upload = "Menedżer plików (upload)" admin_upload = "Menedżer plików (upload)"
admin_sort = "Sortuj elementy (sort)" admin_sort = "Sortuj elementy (sort)"
locale_header = Ustawienia językowe
locale_your_locale = Bieżący język
locale_has_incorrect_id = Nie masz prawidłowo ustawionego bieżącego języka
locale_form_legend = Formularz ustawienia języka
locale_select = Wybierz język
login_header = Logowanie login_header = Logowanie
uptime_header = Czas pracy systemu uptime_header = Czas pracy systemu
@ -388,6 +399,13 @@ mv_incorrect_dst_path = Nieprawidłowa ścieżka docelowa
mv_incorrect_dir = Nieprawidłowy katalog mv_incorrect_dir = Nieprawidłowy katalog
timezone_header = Strefa czasowa
timezone_form_legend = Formularz wyboru strefy czasowej
timezone_select = Wybierz swoją strefę czasową
timezone_your_zone = Twoja aktualna strefa czasowa to
timezone_has_incorrect_id = Nie masz prawidłowo ustawionej strefy czasowej
cp_header = Kopiuj cp_header = Kopiuj
cp_form_legend = Formularz kopiowania cp_form_legend = Formularz kopiowania
cp_page = Kopiuj stronę cp_page = Kopiuj stronę
@ -499,7 +517,7 @@ tz_-11:00 = Uniwersalny czas koordynowany - 11
tz_-10:00 = Hawaje tz_-10:00 = Hawaje
tz_-09:00 = Alaska tz_-09:00 = Alaska
tz_-08:00 = Kalifornia Dolna tz_-08:00 = Kalifornia Dolna
tz_-08:00b = Czas pacyficzny \(Stany Zjednoczony i Kanada\) tz_-08:00b = Czas pacyficzny \(Stany Zjednoczone i Kanada\)
tz_-07:00 = Arizona tz_-07:00 = Arizona
tz_-07:00b = Chihuahua, La Paz, Mazatlan tz_-07:00b = Chihuahua, La Paz, Mazatlan
tz_-07:00c = Stany Zjednoczone i Kanada \(czas górski\) tz_-07:00c = Stany Zjednoczone i Kanada \(czas górski\)

View File

@ -5,7 +5,7 @@ main.o: ../../pikotools/space/space.h ../../pikotools/date/date.h
main.o: ../core/requesttypes.h ../core/logmanipulators.h ../core/slog.h main.o: ../core/requesttypes.h ../core/logmanipulators.h ../core/slog.h
main.o: ../core/cur.h ../core/request.h ../core/error.h ../core/config.h main.o: ../core/cur.h ../core/request.h ../core/error.h ../core/config.h
main.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h main.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h
main.o: ../core/htmlfilter.h ../core/timezone.h ../templates/htmltextstream.h main.o: ../core/htmlfilter.h ../templates/htmltextstream.h
main.o: ../core/textstream.h ../core/session.h ../core/user.h main.o: ../core/textstream.h ../core/session.h ../core/user.h
main.o: ../core/plugindata.h ../core/rebus.h ../core/mount.h main.o: ../core/plugindata.h ../core/rebus.h ../core/mount.h
main.o: ../templates/locale.h ../core/slog.h ../core/app.h ../core/system.h main.o: ../templates/locale.h ../core/slog.h ../core/app.h ../core/system.h
@ -24,21 +24,21 @@ main.o: ../notify/templatesnotify.h ../core/config.h ../core/users.h
main.o: ../core/ugcontainer.h ../core/lastcontainer.h ../core/mounts.h main.o: ../core/ugcontainer.h ../core/lastcontainer.h ../core/mounts.h
main.o: ../core/mountparser.h ../core/crypt.h ../core/run.h ../core/users.h main.o: ../core/mountparser.h ../core/crypt.h ../core/run.h ../core/users.h
main.o: ../core/groups.h ../core/group.h ../core/loadavg.h ../core/image.h main.o: ../core/groups.h ../core/group.h ../core/loadavg.h ../core/image.h
main.o: ../core/threadmanager.h ../core/timezones.h ../core/sessionmanager.h main.o: ../core/threadmanager.h ../core/timezones.h ../core/timezone.h
main.o: ../core/sessioncontainer.h ../functions/functions.h main.o: ../core/sessionmanager.h ../core/sessioncontainer.h
main.o: ../functions/functionbase.h ../core/request.h ../core/system.h main.o: ../functions/functions.h ../functions/functionbase.h
main.o: ../core/synchro.h ../functions/functionparser.h ../core/cur.h main.o: ../core/request.h ../core/system.h ../core/synchro.h
main.o: ../functions/adduser.h ../functions/cat.h ../functions/chmod.h main.o: ../functions/functionparser.h ../core/cur.h ../functions/adduser.h
main.o: ../functions/privchanger.h ../functions/chown.h main.o: ../functions/cat.h ../functions/chmod.h ../functions/privchanger.h
main.o: ../functions/ckeditor.h ../functions/cp.h ../functions/default.h main.o: ../functions/chown.h ../functions/ckeditor.h ../functions/cp.h
main.o: ../functions/download.h ../functions/emacs.h ../functions/env.h main.o: ../functions/default.h ../functions/download.h ../functions/emacs.h
main.o: ../functions/last.h ../functions/login.h ../functions/logout.h main.o: ../functions/env.h ../functions/last.h ../functions/login.h
main.o: ../functions/ln.h ../functions/ls.h ../functions/man.h main.o: ../functions/logout.h ../functions/ln.h ../functions/ls.h
main.o: ../functions/meta.h ../functions/mkdir.h ../functions/mv.h main.o: ../functions/man.h ../functions/meta.h ../functions/mkdir.h
main.o: ../functions/nicedit.h ../functions/node.h ../functions/passwd.h main.o: ../functions/mv.h ../functions/nicedit.h ../functions/node.h
main.o: ../functions/priv.h ../functions/pw.h ../functions/reload.h main.o: ../functions/passwd.h ../functions/priv.h ../functions/pw.h
main.o: ../functions/rm.h ../functions/rmuser.h ../functions/sort.h main.o: ../functions/reload.h ../functions/rm.h ../functions/rmuser.h
main.o: ../functions/specialdefault.h ../functions/stat.h main.o: ../functions/sort.h ../functions/specialdefault.h ../functions/stat.h
main.o: ../functions/subject.h ../functions/template.h ../functions/tinymce.h main.o: ../functions/subject.h ../functions/template.h ../functions/tinymce.h
main.o: ../functions/uname.h ../functions/upload.h ../functions/uptime.h main.o: ../functions/uname.h ../functions/upload.h ../functions/uptime.h
main.o: ../functions/who.h ../functions/vim.h ../core/htmlfilter.h main.o: ../functions/who.h ../functions/vim.h ../core/htmlfilter.h

View File

@ -12,24 +12,23 @@ notify.o: ../templates/htmltextstream.h ../core/textstream.h
notify.o: ../../pikotools/space/space.h ../../pikotools/date/date.h notify.o: ../../pikotools/space/space.h ../../pikotools/date/date.h
notify.o: notifythread.h ../core/basethread.h ../core/synchro.h notify.o: notifythread.h ../core/basethread.h ../core/synchro.h
notify.o: templatesnotify.h ../core/config.h ../core/htmlfilter.h notify.o: templatesnotify.h ../core/config.h ../core/htmlfilter.h
notify.o: ../core/timezone.h ../core/users.h ../core/user.h notify.o: ../core/users.h ../core/user.h ../core/ugcontainer.h ../core/log.h
notify.o: ../core/ugcontainer.h ../core/log.h ../core/textstream.h notify.o: ../core/textstream.h ../core/logmanipulators.h ../core/slog.h
notify.o: ../core/logmanipulators.h ../core/slog.h ../core/cur.h notify.o: ../core/cur.h ../core/request.h ../core/requesttypes.h
notify.o: ../core/request.h ../core/requesttypes.h ../core/error.h notify.o: ../core/error.h ../core/config.h ../templates/htmltextstream.h
notify.o: ../core/config.h ../templates/htmltextstream.h ../core/session.h notify.o: ../core/session.h ../core/plugindata.h ../core/rebus.h
notify.o: ../core/plugindata.h ../core/rebus.h ../core/mount.h notify.o: ../core/mount.h ../core/lastcontainer.h ../db/db.h ../db/dbbase.h
notify.o: ../core/lastcontainer.h ../db/db.h ../db/dbbase.h ../db/dbconn.h notify.o: ../db/dbconn.h ../db/dbtextstream.h ../core/error.h
notify.o: ../db/dbtextstream.h ../core/error.h ../db/dbitemquery.h notify.o: ../db/dbitemquery.h ../core/item.h ../db/dbitemcolumns.h
notify.o: ../core/item.h ../db/dbitemcolumns.h ../core/user.h ../core/group.h notify.o: ../core/user.h ../core/group.h ../core/dircontainer.h
notify.o: ../core/dircontainer.h ../core/ugcontainer.h notify.o: ../core/ugcontainer.h ../templates/templates.h
notify.o: ../templates/templates.h ../templates/patterncacher.h notify.o: ../templates/patterncacher.h ../templates/indexpatterns.h
notify.o: ../templates/indexpatterns.h ../templates/patterns.h notify.o: ../templates/patterns.h ../templates/changepatterns.h ../core/cur.h
notify.o: ../templates/changepatterns.h ../core/cur.h ../core/system.h notify.o: ../core/system.h ../core/job.h ../core/basethread.h ../core/dirs.h
notify.o: ../core/job.h ../core/basethread.h ../core/dirs.h
notify.o: ../core/dircontainer.h ../notify/notify.h ../core/mounts.h notify.o: ../core/dircontainer.h ../notify/notify.h ../core/mounts.h
notify.o: ../core/mountparser.h ../core/crypt.h ../core/run.h ../core/users.h notify.o: ../core/mountparser.h ../core/crypt.h ../core/run.h ../core/users.h
notify.o: ../core/groups.h ../core/group.h ../core/loadavg.h ../core/image.h notify.o: ../core/groups.h ../core/group.h ../core/loadavg.h ../core/image.h
notify.o: ../core/threadmanager.h ../core/timezones.h notify.o: ../core/threadmanager.h ../core/timezones.h ../core/timezone.h
notify.o: ../core/sessionmanager.h ../core/sessioncontainer.h notify.o: ../core/sessionmanager.h ../core/sessioncontainer.h
notify.o: ../core/system.h ../core/htmlfilter.h ../core/request.h notify.o: ../core/system.h ../core/htmlfilter.h ../core/request.h
notify.o: ../core/dirs.h ../core/plugin.h ../core/pluginmsg.h notify.o: ../core/dirs.h ../core/plugin.h ../core/pluginmsg.h
@ -64,18 +63,18 @@ notifythread.o: ../../pikotools/space/space.h ../../pikotools/date/date.h
notifythread.o: notifypool.h ../templates/locale.h notifythread.o: notifypool.h ../templates/locale.h
notifythread.o: ../../pikotools/space/spaceparser.h notifythread.o: ../../pikotools/space/spaceparser.h
notifythread.o: ../../pikotools/space/space.h ../core/config.h notifythread.o: ../../pikotools/space/space.h ../core/config.h
notifythread.o: ../core/htmlfilter.h ../core/timezone.h ../core/users.h notifythread.o: ../core/htmlfilter.h ../core/users.h ../core/user.h
notifythread.o: ../core/user.h ../core/ugcontainer.h ../core/log.h notifythread.o: ../core/ugcontainer.h ../core/log.h ../core/textstream.h
notifythread.o: ../core/textstream.h ../core/logmanipulators.h ../core/slog.h notifythread.o: ../core/logmanipulators.h ../core/slog.h ../core/cur.h
notifythread.o: ../core/cur.h ../core/request.h ../core/requesttypes.h notifythread.o: ../core/request.h ../core/requesttypes.h ../core/error.h
notifythread.o: ../core/error.h ../core/config.h notifythread.o: ../core/config.h ../templates/htmltextstream.h
notifythread.o: ../templates/htmltextstream.h ../core/session.h notifythread.o: ../core/session.h ../core/plugindata.h ../core/rebus.h
notifythread.o: ../core/plugindata.h ../core/rebus.h ../core/mount.h notifythread.o: ../core/mount.h ../core/lastcontainer.h ../db/db.h
notifythread.o: ../core/lastcontainer.h ../db/db.h ../db/dbbase.h notifythread.o: ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h
notifythread.o: ../db/dbconn.h ../db/dbtextstream.h ../core/error.h notifythread.o: ../core/error.h ../db/dbitemquery.h ../core/item.h
notifythread.o: ../db/dbitemquery.h ../core/item.h ../db/dbitemcolumns.h notifythread.o: ../db/dbitemcolumns.h ../core/user.h ../core/group.h
notifythread.o: ../core/user.h ../core/group.h ../core/dircontainer.h notifythread.o: ../core/dircontainer.h ../core/ugcontainer.h
notifythread.o: ../core/ugcontainer.h ../templates/patterns.h notifythread.o: ../templates/patterns.h
templatesnotify.o: templatesnotify.h ../../ezc/src/ezc.h templatesnotify.o: templatesnotify.h ../../ezc/src/ezc.h
templatesnotify.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h templatesnotify.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h
templatesnotify.o: ../../ezc/src/item.h ../../ezc/src/funinfo.h templatesnotify.o: ../../ezc/src/item.h ../../ezc/src/funinfo.h
@ -91,22 +90,22 @@ templatesnotify.o: ../core/pluginmsg.h ../core/log.h ../core/textstream.h
templatesnotify.o: ../core/logmanipulators.h ../core/slog.h ../core/cur.h templatesnotify.o: ../core/logmanipulators.h ../core/slog.h ../core/cur.h
templatesnotify.o: ../core/request.h ../core/requesttypes.h ../core/error.h templatesnotify.o: ../core/request.h ../core/requesttypes.h ../core/error.h
templatesnotify.o: ../core/config.h ../templates/htmltextstream.h templatesnotify.o: ../core/config.h ../templates/htmltextstream.h
templatesnotify.o: ../core/session.h ../core/user.h ../core/timezone.h templatesnotify.o: ../core/session.h ../core/user.h ../core/plugindata.h
templatesnotify.o: ../core/plugindata.h ../core/rebus.h ../core/mount.h templatesnotify.o: ../core/rebus.h ../core/mount.h ../core/system.h
templatesnotify.o: ../core/system.h ../core/sessionmanager.h templatesnotify.o: ../core/sessionmanager.h ../core/synchro.h
templatesnotify.o: ../core/synchro.h ../functions/functions.h templatesnotify.o: ../functions/functions.h ../functions/functionbase.h
templatesnotify.o: ../functions/functionbase.h ../core/item.h ../db/db.h templatesnotify.o: ../core/item.h ../db/db.h ../db/dbbase.h ../db/dbconn.h
templatesnotify.o: ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h templatesnotify.o: ../db/dbtextstream.h ../core/error.h ../db/dbitemquery.h
templatesnotify.o: ../core/error.h ../db/dbitemquery.h ../db/dbitemcolumns.h templatesnotify.o: ../db/dbitemcolumns.h ../core/user.h ../core/group.h
templatesnotify.o: ../core/user.h ../core/group.h ../core/dircontainer.h templatesnotify.o: ../core/dircontainer.h ../core/ugcontainer.h
templatesnotify.o: ../core/ugcontainer.h ../core/request.h ../core/config.h templatesnotify.o: ../core/request.h ../core/config.h ../core/htmlfilter.h
templatesnotify.o: ../core/htmlfilter.h ../core/system.h ../core/job.h templatesnotify.o: ../core/system.h ../core/job.h ../core/basethread.h
templatesnotify.o: ../core/basethread.h ../core/dirs.h ../core/dircontainer.h templatesnotify.o: ../core/dirs.h ../core/dircontainer.h ../notify/notify.h
templatesnotify.o: ../notify/notify.h ../core/mounts.h ../core/mountparser.h templatesnotify.o: ../core/mounts.h ../core/mountparser.h ../core/crypt.h
templatesnotify.o: ../core/crypt.h ../core/run.h ../core/users.h templatesnotify.o: ../core/run.h ../core/users.h ../core/groups.h
templatesnotify.o: ../core/groups.h ../core/group.h ../core/ugcontainer.h templatesnotify.o: ../core/group.h ../core/ugcontainer.h ../core/loadavg.h
templatesnotify.o: ../core/loadavg.h ../core/image.h ../core/threadmanager.h templatesnotify.o: ../core/image.h ../core/threadmanager.h
templatesnotify.o: ../core/timezones.h ../core/synchro.h templatesnotify.o: ../core/timezones.h ../core/timezone.h ../core/synchro.h
templatesnotify.o: ../functions/functionparser.h ../core/cur.h templatesnotify.o: ../functions/functionparser.h ../core/cur.h
templatesnotify.o: ../functions/adduser.h ../functions/cat.h templatesnotify.o: ../functions/adduser.h ../functions/cat.h
templatesnotify.o: ../functions/chmod.h ../functions/privchanger.h templatesnotify.o: ../functions/chmod.h ../functions/privchanger.h

View File

@ -112,7 +112,7 @@ bool res = false;
{ {
msg.name = i->name; msg.name = i->name;
msg.email = i->email; msg.email = i->email;
msg.lang = config->locale_default_index; // !! IMPROVE ME bedzie osobno dla kazdego uzytkownika msg.lang = config->locale_default_id; // !! IMPROVE ME bedzie osobno dla kazdego uzytkownika
notify_user.push_back(msg); notify_user.push_back(msg);
res = true; res = true;

View File

@ -8,31 +8,30 @@ edb.o: ../../../pikotools/space/spaceparser.h
edb.o: ../../../pikotools/space/space.h export.h ../../core/dirs.h edb.o: ../../../pikotools/space/space.h export.h ../../core/dirs.h
edb.o: ../../core/dircontainer.h ../../db/db.h ../../db/dbbase.h edb.o: ../../core/dircontainer.h ../../db/db.h ../../db/dbbase.h
edb.o: ../../db/dbitemquery.h ../../core/item.h ../../db/dbitemcolumns.h edb.o: ../../db/dbitemquery.h ../../core/item.h ../../db/dbitemcolumns.h
edb.o: ../../core/user.h ../../core/timezone.h ../../core/group.h edb.o: ../../core/user.h ../../core/group.h ../../core/dircontainer.h
edb.o: ../../core/dircontainer.h ../../core/ugcontainer.h ../../core/log.h edb.o: ../../core/ugcontainer.h ../../core/log.h ../../core/textstream.h
edb.o: ../../core/textstream.h ../../core/logmanipulators.h ../../core/slog.h edb.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h
edb.o: ../../core/cur.h ../../core/request.h ../../core/error.h edb.o: ../../core/request.h ../../core/error.h ../../core/config.h
edb.o: ../../core/config.h ../../core/htmlfilter.h edb.o: ../../core/htmlfilter.h ../../templates/htmltextstream.h
edb.o: ../../templates/htmltextstream.h ../../core/session.h edb.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h
edb.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h edb.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h
edb.o: ../../core/mount.h ../../templates/locale.h ../../notify/notify.h edb.o: ../../notify/notify.h ../../notify/notifypool.h
edb.o: ../../notify/notifypool.h ../../templates/patterns.h edb.o: ../../templates/patterns.h ../../templates/locale.h
edb.o: ../../templates/locale.h ../../templates/localefilter.h edb.o: ../../templates/localefilter.h ../../../ezc/src/ezc.h
edb.o: ../../../ezc/src/ezc.h ../../../ezc/src/generator.h edb.o: ../../../ezc/src/generator.h ../../../ezc/src/pattern.h
edb.o: ../../../ezc/src/pattern.h ../../../ezc/src/functions.h edb.o: ../../../ezc/src/functions.h ../../../ezc/src/funinfo.h
edb.o: ../../../ezc/src/funinfo.h ../../../ezc/src/stringconv.h edb.o: ../../../ezc/src/stringconv.h ../../../pikotools/utf8/utf8.h
edb.o: ../../../pikotools/utf8/utf8.h ../../notify/notifythread.h edb.o: ../../notify/notifythread.h ../../core/basethread.h
edb.o: ../../core/basethread.h ../../core/synchro.h edb.o: ../../core/synchro.h ../../notify/templatesnotify.h
edb.o: ../../notify/templatesnotify.h ../../core/config.h ../../core/users.h edb.o: ../../core/config.h ../../core/users.h ../../core/ugcontainer.h
edb.o: ../../core/ugcontainer.h ../../core/lastcontainer.h ../../core/log.h edb.o: ../../core/lastcontainer.h ../../core/log.h
exportinfo.o: ../../core/log.h exportinfo.h ../../core/system.h exportinfo.o: ../../core/log.h exportinfo.h ../../core/system.h
exportinfo.o: ../../core/job.h ../../core/basethread.h ../../core/synchro.h exportinfo.o: ../../core/job.h ../../core/basethread.h ../../core/synchro.h
exportinfo.o: ../../../pikotools/space/space.h ../../core/dirs.h exportinfo.o: ../../../pikotools/space/space.h ../../core/dirs.h
exportinfo.o: ../../core/item.h ../../../pikotools/date/date.h exportinfo.o: ../../core/item.h ../../../pikotools/date/date.h
exportinfo.o: ../../core/dircontainer.h ../../db/db.h ../../db/dbbase.h exportinfo.o: ../../core/dircontainer.h ../../db/db.h ../../db/dbbase.h
exportinfo.o: ../../db/dbitemquery.h ../../core/item.h exportinfo.o: ../../db/dbitemquery.h ../../core/item.h
exportinfo.o: ../../db/dbitemcolumns.h ../../core/user.h exportinfo.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
exportinfo.o: ../../core/timezone.h ../../core/group.h
exportinfo.o: ../../core/dircontainer.h ../../core/ugcontainer.h exportinfo.o: ../../core/dircontainer.h ../../core/ugcontainer.h
exportinfo.o: ../../core/log.h ../../core/textstream.h exportinfo.o: ../../core/log.h ../../core/textstream.h
exportinfo.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h exportinfo.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h
@ -56,10 +55,10 @@ exportinfo.o: ../../core/lastcontainer.h ../../core/mounts.h
exportinfo.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h exportinfo.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h
exportinfo.o: ../../core/users.h ../../core/groups.h ../../core/group.h exportinfo.o: ../../core/users.h ../../core/groups.h ../../core/group.h
exportinfo.o: ../../core/loadavg.h ../../core/image.h exportinfo.o: ../../core/loadavg.h ../../core/image.h
exportinfo.o: ../../core/threadmanager.h ../../core/timezones.h export.h exportinfo.o: ../../core/threadmanager.h ../../core/timezones.h
exportinfo.o: edb.h ../../db/dbbase.h ../../db/dbconn.h exportinfo.o: ../../core/timezone.h export.h edb.h ../../db/dbbase.h
exportinfo.o: ../../db/dbtextstream.h ../../core/error.h ../../core/dirs.h exportinfo.o: ../../db/dbconn.h ../../db/dbtextstream.h ../../core/error.h
exportinfo.o: message.h exportthread.h exportinfo.o: ../../core/dirs.h message.h exportthread.h
exportthread.o: exportthread.h ../../core/basethread.h ../../core/synchro.h exportthread.o: exportthread.h ../../core/basethread.h ../../core/synchro.h
exportthread.o: message.h ../../core/log.h ../../core/misc.h exportthread.o: message.h ../../core/log.h ../../core/misc.h
exportthread.o: ../../core/item.h ../../../pikotools/space/space.h exportthread.o: ../../core/item.h ../../../pikotools/space/space.h
@ -73,28 +72,28 @@ init.o: ../../../pikotools/space/space.h ../../../pikotools/date/date.h
init.o: ../../core/error.h ../../core/config.h init.o: ../../core/error.h ../../core/config.h
init.o: ../../../pikotools/space/spaceparser.h init.o: ../../../pikotools/space/spaceparser.h
init.o: ../../../pikotools/space/space.h ../../core/htmlfilter.h init.o: ../../../pikotools/space/space.h ../../core/htmlfilter.h
init.o: ../../core/timezone.h ../../templates/htmltextstream.h init.o: ../../templates/htmltextstream.h ../../core/textstream.h
init.o: ../../core/textstream.h ../../core/misc.h ../../core/session.h init.o: ../../core/misc.h ../../core/session.h ../../core/user.h
init.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h init.o: ../../core/plugindata.h ../../core/rebus.h ../../core/mount.h
init.o: ../../core/mount.h ../../templates/locale.h ../../core/system.h init.o: ../../templates/locale.h ../../core/system.h ../../core/job.h
init.o: ../../core/job.h ../../core/basethread.h ../../core/synchro.h init.o: ../../core/basethread.h ../../core/synchro.h ../../core/dirs.h
init.o: ../../core/dirs.h ../../core/dircontainer.h ../../db/db.h init.o: ../../core/dircontainer.h ../../db/db.h ../../db/dbbase.h
init.o: ../../db/dbbase.h ../../db/dbitemquery.h ../../core/item.h init.o: ../../db/dbitemquery.h ../../core/item.h ../../db/dbitemcolumns.h
init.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h init.o: ../../core/user.h ../../core/group.h ../../core/dircontainer.h
init.o: ../../core/dircontainer.h ../../core/ugcontainer.h init.o: ../../core/ugcontainer.h ../../notify/notify.h
init.o: ../../notify/notify.h ../../notify/notifypool.h init.o: ../../notify/notifypool.h ../../templates/patterns.h
init.o: ../../templates/patterns.h ../../templates/locale.h init.o: ../../templates/locale.h ../../templates/localefilter.h
init.o: ../../templates/localefilter.h ../../../ezc/src/ezc.h init.o: ../../../ezc/src/ezc.h ../../../ezc/src/generator.h
init.o: ../../../ezc/src/generator.h ../../../ezc/src/pattern.h init.o: ../../../ezc/src/pattern.h ../../../ezc/src/functions.h
init.o: ../../../ezc/src/functions.h ../../../ezc/src/funinfo.h init.o: ../../../ezc/src/funinfo.h ../../../ezc/src/stringconv.h
init.o: ../../../ezc/src/stringconv.h ../../../pikotools/utf8/utf8.h init.o: ../../../pikotools/utf8/utf8.h ../../notify/notifythread.h
init.o: ../../notify/notifythread.h ../../core/basethread.h init.o: ../../core/basethread.h ../../notify/templatesnotify.h
init.o: ../../notify/templatesnotify.h ../../core/config.h ../../core/users.h init.o: ../../core/config.h ../../core/users.h ../../core/ugcontainer.h
init.o: ../../core/ugcontainer.h ../../core/lastcontainer.h init.o: ../../core/lastcontainer.h ../../core/mounts.h
init.o: ../../core/mounts.h ../../core/mountparser.h ../../core/crypt.h init.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h
init.o: ../../core/run.h ../../core/users.h ../../core/groups.h init.o: ../../core/users.h ../../core/groups.h ../../core/group.h
init.o: ../../core/group.h ../../core/loadavg.h ../../core/image.h init.o: ../../core/loadavg.h ../../core/image.h ../../core/threadmanager.h
init.o: ../../core/threadmanager.h ../../core/timezones.h init.o: ../../core/timezones.h ../../core/timezone.h
init.o: ../../core/sessionmanager.h ../../core/sessioncontainer.h init.o: ../../core/sessionmanager.h ../../core/sessioncontainer.h
init.o: ../../functions/functions.h ../../functions/functionbase.h init.o: ../../functions/functions.h ../../functions/functionbase.h
init.o: ../../core/request.h ../../core/system.h ../../core/synchro.h init.o: ../../core/request.h ../../core/system.h ../../core/synchro.h

View File

@ -7,9 +7,9 @@ gallery.o: ../../db/dbtextstream.h ../../core/textstream.h ../../core/misc.h
gallery.o: ../../core/item.h ../../core/requesttypes.h ../../core/error.h gallery.o: ../../core/item.h ../../core/requesttypes.h ../../core/error.h
gallery.o: ../../../pikotools/space/spaceparser.h gallery.o: ../../../pikotools/space/spaceparser.h
gallery.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h gallery.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h
gallery.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/timezone.h gallery.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
gallery.o: ../../core/group.h ../../core/dircontainer.h gallery.o: ../../core/dircontainer.h ../../core/ugcontainer.h
gallery.o: ../../core/ugcontainer.h ../../core/log.h ../../core/textstream.h gallery.o: ../../core/log.h ../../core/textstream.h
gallery.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h gallery.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h
gallery.o: ../../core/request.h ../../core/error.h ../../core/config.h gallery.o: ../../core/request.h ../../core/error.h ../../core/config.h
gallery.o: ../../core/htmlfilter.h ../../templates/htmltextstream.h gallery.o: ../../core/htmlfilter.h ../../templates/htmltextstream.h
@ -30,7 +30,8 @@ gallery.o: ../../core/lastcontainer.h ../../core/mounts.h
gallery.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h gallery.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h
gallery.o: ../../core/users.h ../../core/groups.h ../../core/group.h gallery.o: ../../core/users.h ../../core/groups.h ../../core/group.h
gallery.o: ../../core/loadavg.h ../../core/image.h ../../core/threadmanager.h gallery.o: ../../core/loadavg.h ../../core/image.h ../../core/threadmanager.h
gallery.o: ../../core/timezones.h ../../core/synchro.h galleryinfo.h gallery.o: ../../core/timezones.h ../../core/timezone.h ../../core/synchro.h
gallery.o: galleryinfo.h
galleryinfo.o: galleryinfo.h ../../core/item.h galleryinfo.o: galleryinfo.h ../../core/item.h
galleryinfo.o: ../../../pikotools/space/space.h galleryinfo.o: ../../../pikotools/space/space.h
galleryinfo.o: ../../../pikotools/date/date.h galleryinfo.o: ../../../pikotools/date/date.h
@ -41,9 +42,9 @@ init.o: ../../db/dbtextstream.h ../../core/textstream.h ../../core/misc.h
init.o: ../../core/item.h ../../core/requesttypes.h ../../core/error.h init.o: ../../core/item.h ../../core/requesttypes.h ../../core/error.h
init.o: ../../../pikotools/space/spaceparser.h init.o: ../../../pikotools/space/spaceparser.h
init.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h init.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h
init.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/timezone.h init.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
init.o: ../../core/group.h ../../core/dircontainer.h ../../core/ugcontainer.h init.o: ../../core/dircontainer.h ../../core/ugcontainer.h ../../core/log.h
init.o: ../../core/log.h ../../core/textstream.h ../../core/logmanipulators.h init.o: ../../core/textstream.h ../../core/logmanipulators.h
init.o: ../../core/slog.h ../../core/cur.h ../../core/request.h init.o: ../../core/slog.h ../../core/cur.h ../../core/request.h
init.o: ../../core/error.h ../../core/config.h ../../core/htmlfilter.h init.o: ../../core/error.h ../../core/config.h ../../core/htmlfilter.h
init.o: ../../templates/htmltextstream.h ../../core/session.h init.o: ../../templates/htmltextstream.h ../../core/session.h
@ -64,12 +65,13 @@ init.o: ../../core/lastcontainer.h ../../core/mounts.h
init.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h init.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h
init.o: ../../core/users.h ../../core/groups.h ../../core/group.h init.o: ../../core/users.h ../../core/groups.h ../../core/group.h
init.o: ../../core/loadavg.h ../../core/image.h ../../core/threadmanager.h init.o: ../../core/loadavg.h ../../core/image.h ../../core/threadmanager.h
init.o: ../../core/timezones.h ../../core/synchro.h galleryinfo.h init.o: ../../core/timezones.h ../../core/timezone.h ../../core/synchro.h
init.o: ../../core/log.h ../../core/plugin.h ../../core/pluginmsg.h init.o: galleryinfo.h ../../core/log.h ../../core/plugin.h
init.o: ../../core/system.h ../../core/sessionmanager.h init.o: ../../core/pluginmsg.h ../../core/system.h
init.o: ../../core/sessioncontainer.h ../../functions/functions.h init.o: ../../core/sessionmanager.h ../../core/sessioncontainer.h
init.o: ../../functions/functionbase.h ../../functions/functionparser.h init.o: ../../functions/functions.h ../../functions/functionbase.h
init.o: ../../core/cur.h ../../functions/adduser.h ../../functions/cat.h init.o: ../../functions/functionparser.h ../../core/cur.h
init.o: ../../functions/adduser.h ../../functions/cat.h
init.o: ../../functions/chmod.h ../../functions/privchanger.h init.o: ../../functions/chmod.h ../../functions/privchanger.h
init.o: ../../functions/chown.h ../../functions/ckeditor.h init.o: ../../functions/chown.h ../../functions/ckeditor.h
init.o: ../../functions/cp.h ../../functions/default.h init.o: ../../functions/cp.h ../../functions/default.h
@ -97,37 +99,36 @@ templates.o: ../../db/dbtextstream.h ../../core/textstream.h
templates.o: ../../core/misc.h ../../core/item.h ../../core/requesttypes.h templates.o: ../../core/misc.h ../../core/item.h ../../core/requesttypes.h
templates.o: ../../core/error.h ../../../pikotools/space/spaceparser.h templates.o: ../../core/error.h ../../../pikotools/space/spaceparser.h
templates.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h templates.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h
templates.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/timezone.h templates.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
templates.o: ../../core/group.h ../../core/dircontainer.h templates.o: ../../core/dircontainer.h ../../core/ugcontainer.h
templates.o: ../../core/ugcontainer.h ../../core/log.h templates.o: ../../core/log.h ../../core/textstream.h
templates.o: ../../core/textstream.h ../../core/logmanipulators.h templates.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h
templates.o: ../../core/slog.h ../../core/cur.h ../../core/request.h templates.o: ../../core/request.h ../../core/error.h ../../core/config.h
templates.o: ../../core/error.h ../../core/config.h ../../core/htmlfilter.h templates.o: ../../core/htmlfilter.h ../../templates/htmltextstream.h
templates.o: ../../templates/htmltextstream.h ../../core/session.h templates.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h
templates.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h templates.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h
templates.o: ../../core/mount.h ../../templates/locale.h ../../core/request.h templates.o: ../../core/request.h ../../core/config.h ../../core/system.h
templates.o: ../../core/config.h ../../core/system.h ../../core/job.h templates.o: ../../core/job.h ../../core/basethread.h ../../core/synchro.h
templates.o: ../../core/basethread.h ../../core/synchro.h ../../core/dirs.h templates.o: ../../core/dirs.h ../../core/dircontainer.h
templates.o: ../../core/dircontainer.h ../../notify/notify.h templates.o: ../../notify/notify.h ../../notify/notifypool.h
templates.o: ../../notify/notifypool.h ../../templates/patterns.h templates.o: ../../templates/patterns.h ../../templates/locale.h
templates.o: ../../templates/locale.h ../../templates/localefilter.h templates.o: ../../templates/localefilter.h ../../../ezc/src/ezc.h
templates.o: ../../../ezc/src/ezc.h ../../../ezc/src/generator.h templates.o: ../../../ezc/src/generator.h ../../../ezc/src/pattern.h
templates.o: ../../../ezc/src/pattern.h ../../../ezc/src/functions.h templates.o: ../../../ezc/src/functions.h ../../../ezc/src/funinfo.h
templates.o: ../../../ezc/src/funinfo.h ../../../ezc/src/stringconv.h templates.o: ../../../ezc/src/stringconv.h ../../../pikotools/utf8/utf8.h
templates.o: ../../../pikotools/utf8/utf8.h ../../notify/notifythread.h templates.o: ../../notify/notifythread.h ../../core/basethread.h
templates.o: ../../core/basethread.h ../../notify/templatesnotify.h templates.o: ../../notify/templatesnotify.h ../../core/users.h
templates.o: ../../core/users.h ../../core/ugcontainer.h templates.o: ../../core/ugcontainer.h ../../core/lastcontainer.h
templates.o: ../../core/lastcontainer.h ../../core/mounts.h templates.o: ../../core/mounts.h ../../core/mountparser.h ../../core/crypt.h
templates.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h templates.o: ../../core/run.h ../../core/users.h ../../core/groups.h
templates.o: ../../core/users.h ../../core/groups.h ../../core/group.h templates.o: ../../core/group.h ../../core/loadavg.h ../../core/image.h
templates.o: ../../core/loadavg.h ../../core/image.h
templates.o: ../../core/threadmanager.h ../../core/timezones.h templates.o: ../../core/threadmanager.h ../../core/timezones.h
templates.o: ../../core/synchro.h galleryinfo.h ../../core/misc.h templates.o: ../../core/timezone.h ../../core/synchro.h galleryinfo.h
templates.o: ../../core/plugin.h ../../core/pluginmsg.h ../../core/system.h templates.o: ../../core/misc.h ../../core/plugin.h ../../core/pluginmsg.h
templates.o: ../../core/sessionmanager.h ../../core/sessioncontainer.h templates.o: ../../core/system.h ../../core/sessionmanager.h
templates.o: ../../functions/functions.h ../../functions/functionbase.h templates.o: ../../core/sessioncontainer.h ../../functions/functions.h
templates.o: ../../functions/functionparser.h ../../core/cur.h templates.o: ../../functions/functionbase.h ../../functions/functionparser.h
templates.o: ../../functions/adduser.h ../../functions/cat.h templates.o: ../../core/cur.h ../../functions/adduser.h ../../functions/cat.h
templates.o: ../../functions/chmod.h ../../functions/privchanger.h templates.o: ../../functions/chmod.h ../../functions/privchanger.h
templates.o: ../../functions/chown.h ../../functions/ckeditor.h templates.o: ../../functions/chown.h ../../functions/ckeditor.h
templates.o: ../../functions/cp.h ../../functions/default.h templates.o: ../../functions/cp.h ../../functions/default.h

View File

@ -10,14 +10,14 @@ groupinfo.o: ../../db/dbconn.h ../../db/dbtextstream.h
groupinfo.o: ../../core/textstream.h ../../core/misc.h groupinfo.o: ../../core/textstream.h ../../core/misc.h
groupinfo.o: ../../core/requesttypes.h ../../core/error.h groupinfo.o: ../../core/requesttypes.h ../../core/error.h
groupinfo.o: ../../db/dbitemquery.h ../../db/dbitemcolumns.h groupinfo.o: ../../db/dbitemquery.h ../../db/dbitemcolumns.h
groupinfo.o: ../../core/user.h ../../core/timezone.h ../../core/group.h groupinfo.o: ../../core/user.h ../../core/group.h ../../core/dircontainer.h
groupinfo.o: ../../core/dircontainer.h ../../core/ugcontainer.h groupinfo.o: ../../core/ugcontainer.h ../../core/log.h
groupinfo.o: ../../core/log.h ../../core/textstream.h groupinfo.o: ../../core/textstream.h ../../core/logmanipulators.h
groupinfo.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h groupinfo.o: ../../core/slog.h ../../core/cur.h ../../core/request.h
groupinfo.o: ../../core/request.h ../../core/error.h ../../core/config.h groupinfo.o: ../../core/error.h ../../core/config.h ../../core/htmlfilter.h
groupinfo.o: ../../core/htmlfilter.h ../../templates/htmltextstream.h groupinfo.o: ../../templates/htmltextstream.h ../../core/session.h
groupinfo.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h groupinfo.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h
groupinfo.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h groupinfo.o: ../../core/mount.h ../../templates/locale.h
groupinfo.o: ../../notify/notify.h ../../notify/notifypool.h groupinfo.o: ../../notify/notify.h ../../notify/notifypool.h
groupinfo.o: ../../templates/patterns.h ../../templates/locale.h groupinfo.o: ../../templates/patterns.h ../../templates/locale.h
groupinfo.o: ../../templates/localefilter.h ../../../ezc/src/ezc.h groupinfo.o: ../../templates/localefilter.h ../../../ezc/src/ezc.h
@ -31,7 +31,7 @@ groupinfo.o: ../../core/lastcontainer.h ../../core/mounts.h
groupinfo.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h groupinfo.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h
groupinfo.o: ../../core/users.h ../../core/loadavg.h ../../core/image.h groupinfo.o: ../../core/users.h ../../core/loadavg.h ../../core/image.h
groupinfo.o: ../../core/threadmanager.h ../../core/timezones.h groupinfo.o: ../../core/threadmanager.h ../../core/timezones.h
groupinfo.o: ../../core/log.h groupinfo.o: ../../core/timezone.h ../../core/log.h
groups.o: groups.h ../../../pikotools/space/spaceparser.h groups.o: groups.h ../../../pikotools/space/spaceparser.h
groups.o: ../../../pikotools/space/space.h ../../core/log.h groups.o: ../../../pikotools/space/space.h ../../core/log.h
init.o: ../../core/log.h ../../core/plugin.h ../../core/pluginmsg.h init.o: ../../core/log.h ../../core/plugin.h ../../core/pluginmsg.h
@ -40,9 +40,9 @@ init.o: ../../core/slog.h ../../core/cur.h ../../core/request.h
init.o: ../../core/requesttypes.h ../../core/item.h ../../core/error.h init.o: ../../core/requesttypes.h ../../core/item.h ../../core/error.h
init.o: ../../core/config.h ../../../pikotools/space/spaceparser.h init.o: ../../core/config.h ../../../pikotools/space/spaceparser.h
init.o: ../../../pikotools/space/space.h ../../core/htmlfilter.h init.o: ../../../pikotools/space/space.h ../../core/htmlfilter.h
init.o: ../../core/timezone.h ../../../pikotools/date/date.h init.o: ../../templates/htmltextstream.h ../../core/textstream.h
init.o: ../../../pikotools/space/space.h ../../templates/htmltextstream.h init.o: ../../core/misc.h ../../../pikotools/date/date.h
init.o: ../../core/textstream.h ../../core/misc.h ../../core/session.h init.o: ../../../pikotools/space/space.h ../../core/session.h
init.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h init.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h
init.o: ../../core/mount.h ../../templates/locale.h ../../core/system.h init.o: ../../core/mount.h ../../templates/locale.h ../../core/system.h
init.o: ../../core/job.h ../../core/basethread.h ../../core/synchro.h init.o: ../../core/job.h ../../core/basethread.h ../../core/synchro.h
@ -63,9 +63,10 @@ init.o: ../../core/ugcontainer.h ../../core/lastcontainer.h
init.o: ../../core/mounts.h ../../core/mountparser.h ../../core/crypt.h init.o: ../../core/mounts.h ../../core/mountparser.h ../../core/crypt.h
init.o: ../../core/run.h ../../core/users.h groups.h ../../core/loadavg.h init.o: ../../core/run.h ../../core/users.h groups.h ../../core/loadavg.h
init.o: ../../core/image.h ../../core/threadmanager.h ../../core/timezones.h init.o: ../../core/image.h ../../core/threadmanager.h ../../core/timezones.h
init.o: ../../core/sessionmanager.h ../../core/sessioncontainer.h init.o: ../../core/timezone.h ../../core/sessionmanager.h
init.o: ../../functions/functions.h ../../functions/functionbase.h init.o: ../../core/sessioncontainer.h ../../functions/functions.h
init.o: ../../core/request.h ../../core/system.h ../../core/synchro.h init.o: ../../functions/functionbase.h ../../core/request.h
init.o: ../../core/system.h ../../core/synchro.h
init.o: ../../functions/functionparser.h ../../core/cur.h init.o: ../../functions/functionparser.h ../../core/cur.h
init.o: ../../functions/adduser.h ../../functions/cat.h init.o: ../../functions/adduser.h ../../functions/cat.h
init.o: ../../functions/chmod.h ../../functions/privchanger.h init.o: ../../functions/chmod.h ../../functions/privchanger.h
@ -106,15 +107,14 @@ templates.o: ../../db/dbbase.h ../../db/dbconn.h ../../db/dbtextstream.h
templates.o: ../../core/textstream.h ../../core/error.h templates.o: ../../core/textstream.h ../../core/error.h
templates.o: ../../../pikotools/space/spaceparser.h templates.o: ../../../pikotools/space/spaceparser.h
templates.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h templates.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h
templates.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/timezone.h templates.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
templates.o: ../../core/group.h ../../core/dircontainer.h templates.o: ../../core/dircontainer.h ../../core/ugcontainer.h
templates.o: ../../core/ugcontainer.h ../../core/log.h templates.o: ../../core/log.h ../../core/textstream.h
templates.o: ../../core/textstream.h ../../core/logmanipulators.h templates.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h
templates.o: ../../core/slog.h ../../core/cur.h ../../core/request.h templates.o: ../../core/request.h ../../core/error.h ../../core/config.h
templates.o: ../../core/error.h ../../core/config.h ../../core/htmlfilter.h templates.o: ../../core/htmlfilter.h ../../templates/htmltextstream.h
templates.o: ../../templates/htmltextstream.h ../../core/session.h templates.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h
templates.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h templates.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h
templates.o: ../../core/mount.h ../../templates/locale.h
templates.o: ../../notify/notify.h ../../notify/notifypool.h templates.o: ../../notify/notify.h ../../notify/notifypool.h
templates.o: ../../templates/patterns.h ../../notify/notifythread.h templates.o: ../../templates/patterns.h ../../notify/notifythread.h
templates.o: ../../core/basethread.h ../../notify/templatesnotify.h templates.o: ../../core/basethread.h ../../notify/templatesnotify.h
@ -123,9 +123,9 @@ templates.o: ../../core/lastcontainer.h ../../core/mounts.h
templates.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h templates.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h
templates.o: ../../core/users.h groups.h ../../core/loadavg.h templates.o: ../../core/users.h groups.h ../../core/loadavg.h
templates.o: ../../core/image.h ../../core/threadmanager.h templates.o: ../../core/image.h ../../core/threadmanager.h
templates.o: ../../core/timezones.h ../../core/sessionmanager.h templates.o: ../../core/timezones.h ../../core/timezone.h
templates.o: ../../core/htmlfilter.h ../../core/plugin.h templates.o: ../../core/sessionmanager.h ../../core/htmlfilter.h
templates.o: ../../core/pluginmsg.h ../../core/system.h templates.o: ../../core/plugin.h ../../core/pluginmsg.h ../../core/system.h
templates.o: ../../core/sessionmanager.h ../../core/sessioncontainer.h templates.o: ../../core/sessionmanager.h ../../core/sessioncontainer.h
templates.o: ../../functions/functions.h ../../functions/functionbase.h templates.o: ../../functions/functions.h ../../functions/functionbase.h
templates.o: ../../core/request.h ../../core/synchro.h templates.o: ../../core/request.h ../../core/synchro.h

View File

@ -7,32 +7,32 @@ cache.o: ../../db/dbconn.h ../../db/dbtextstream.h ../../core/textstream.h
cache.o: ../../core/misc.h ../../core/requesttypes.h ../../core/error.h cache.o: ../../core/misc.h ../../core/requesttypes.h ../../core/error.h
cache.o: ../../../pikotools/space/spaceparser.h cache.o: ../../../pikotools/space/spaceparser.h
cache.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h cache.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h
cache.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/timezone.h cache.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
cache.o: ../../core/group.h ../../core/dircontainer.h cache.o: ../../core/dircontainer.h ../../core/ugcontainer.h ../../core/log.h
cache.o: ../../core/ugcontainer.h ../../core/log.h ../../core/textstream.h cache.o: ../../core/textstream.h ../../core/logmanipulators.h
cache.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h cache.o: ../../core/slog.h ../../core/cur.h ../../core/request.h
cache.o: ../../core/request.h ../../core/error.h ../../core/config.h cache.o: ../../core/error.h ../../core/config.h ../../core/htmlfilter.h
cache.o: ../../core/htmlfilter.h ../../templates/htmltextstream.h cache.o: ../../templates/htmltextstream.h ../../core/session.h
cache.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h cache.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h
cache.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h cache.o: ../../core/mount.h ../../templates/locale.h ../../notify/notify.h
cache.o: ../../notify/notify.h ../../notify/notifypool.h cache.o: ../../notify/notifypool.h ../../templates/patterns.h
cache.o: ../../templates/patterns.h ../../templates/locale.h cache.o: ../../templates/locale.h ../../templates/localefilter.h
cache.o: ../../templates/localefilter.h ../../../ezc/src/ezc.h cache.o: ../../../ezc/src/ezc.h ../../../ezc/src/generator.h
cache.o: ../../../ezc/src/generator.h ../../../ezc/src/pattern.h cache.o: ../../../ezc/src/pattern.h ../../../ezc/src/functions.h
cache.o: ../../../ezc/src/functions.h ../../../ezc/src/funinfo.h cache.o: ../../../ezc/src/funinfo.h ../../../ezc/src/stringconv.h
cache.o: ../../../ezc/src/stringconv.h ../../../pikotools/utf8/utf8.h cache.o: ../../../pikotools/utf8/utf8.h ../../notify/notifythread.h
cache.o: ../../notify/notifythread.h ../../core/basethread.h cache.o: ../../core/basethread.h ../../core/synchro.h
cache.o: ../../core/synchro.h ../../notify/templatesnotify.h cache.o: ../../notify/templatesnotify.h ../../core/config.h
cache.o: ../../core/config.h ../../core/users.h ../../core/ugcontainer.h cache.o: ../../core/users.h ../../core/ugcontainer.h
cache.o: ../../core/lastcontainer.h ../../core/misc.h cache.o: ../../core/lastcontainer.h ../../core/misc.h
init.o: ../../core/log.h ../../core/textstream.h ../../core/logmanipulators.h init.o: ../../core/log.h ../../core/textstream.h ../../core/logmanipulators.h
init.o: ../../core/slog.h ../../core/cur.h ../../core/request.h init.o: ../../core/slog.h ../../core/cur.h ../../core/request.h
init.o: ../../core/requesttypes.h ../../core/item.h ../../core/error.h init.o: ../../core/requesttypes.h ../../core/item.h ../../core/error.h
init.o: ../../core/config.h ../../../pikotools/space/spaceparser.h init.o: ../../core/config.h ../../../pikotools/space/spaceparser.h
init.o: ../../../pikotools/space/space.h ../../core/htmlfilter.h init.o: ../../../pikotools/space/space.h ../../core/htmlfilter.h
init.o: ../../core/timezone.h ../../../pikotools/date/date.h init.o: ../../templates/htmltextstream.h ../../core/textstream.h
init.o: ../../../pikotools/space/space.h ../../templates/htmltextstream.h init.o: ../../core/misc.h ../../../pikotools/date/date.h
init.o: ../../core/textstream.h ../../core/misc.h ../../core/session.h init.o: ../../../pikotools/space/space.h ../../core/session.h
init.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h init.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h
init.o: ../../core/mount.h ../../templates/locale.h ../../core/plugin.h init.o: ../../core/mount.h ../../templates/locale.h ../../core/plugin.h
init.o: ../../core/pluginmsg.h ../../core/log.h ../../core/system.h init.o: ../../core/pluginmsg.h ../../core/log.h ../../core/system.h
@ -55,9 +55,10 @@ init.o: ../../core/mounts.h ../../core/mountparser.h ../../core/crypt.h
init.o: ../../core/run.h ../../core/users.h ../../core/groups.h init.o: ../../core/run.h ../../core/users.h ../../core/groups.h
init.o: ../../core/group.h ../../core/loadavg.h ../../core/image.h init.o: ../../core/group.h ../../core/loadavg.h ../../core/image.h
init.o: ../../core/threadmanager.h ../../core/timezones.h init.o: ../../core/threadmanager.h ../../core/timezones.h
init.o: ../../core/sessionmanager.h ../../core/sessioncontainer.h init.o: ../../core/timezone.h ../../core/sessionmanager.h
init.o: ../../functions/functions.h ../../functions/functionbase.h init.o: ../../core/sessioncontainer.h ../../functions/functions.h
init.o: ../../core/request.h ../../core/system.h ../../core/synchro.h init.o: ../../functions/functionbase.h ../../core/request.h
init.o: ../../core/system.h ../../core/synchro.h
init.o: ../../functions/functionparser.h ../../core/cur.h init.o: ../../functions/functionparser.h ../../core/cur.h
init.o: ../../functions/adduser.h ../../functions/cat.h init.o: ../../functions/adduser.h ../../functions/cat.h
init.o: ../../functions/chmod.h ../../functions/privchanger.h init.o: ../../functions/chmod.h ../../functions/privchanger.h
@ -97,38 +98,38 @@ templates.o: ../../db/db.h ../../db/dbbase.h ../../db/dbconn.h
templates.o: ../../db/dbtextstream.h ../../core/textstream.h templates.o: ../../db/dbtextstream.h ../../core/textstream.h
templates.o: ../../core/error.h ../../../pikotools/space/spaceparser.h templates.o: ../../core/error.h ../../../pikotools/space/spaceparser.h
templates.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h templates.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h
templates.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/timezone.h templates.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
templates.o: ../../core/group.h ../../core/dircontainer.h templates.o: ../../core/dircontainer.h ../../core/ugcontainer.h
templates.o: ../../core/ugcontainer.h ../../core/log.h templates.o: ../../core/log.h ../../core/textstream.h
templates.o: ../../core/textstream.h ../../core/logmanipulators.h templates.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h
templates.o: ../../core/slog.h ../../core/cur.h ../../core/request.h templates.o: ../../core/request.h ../../core/error.h ../../core/config.h
templates.o: ../../core/error.h ../../core/config.h ../../core/htmlfilter.h templates.o: ../../core/htmlfilter.h ../../templates/htmltextstream.h
templates.o: ../../templates/htmltextstream.h ../../core/session.h templates.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h
templates.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h templates.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h
templates.o: ../../core/mount.h ../../templates/locale.h ../../core/plugin.h templates.o: ../../core/plugin.h ../../core/pluginmsg.h ../../core/system.h
templates.o: ../../core/pluginmsg.h ../../core/system.h ../../core/job.h templates.o: ../../core/job.h ../../core/basethread.h ../../core/synchro.h
templates.o: ../../core/basethread.h ../../core/synchro.h ../../core/dirs.h templates.o: ../../core/dirs.h ../../core/dircontainer.h
templates.o: ../../core/dircontainer.h ../../notify/notify.h templates.o: ../../notify/notify.h ../../notify/notifypool.h
templates.o: ../../notify/notifypool.h ../../templates/patterns.h templates.o: ../../templates/patterns.h ../../notify/notifythread.h
templates.o: ../../notify/notifythread.h ../../core/basethread.h templates.o: ../../core/basethread.h ../../notify/templatesnotify.h
templates.o: ../../notify/templatesnotify.h ../../core/users.h templates.o: ../../core/users.h ../../core/ugcontainer.h
templates.o: ../../core/ugcontainer.h ../../core/lastcontainer.h templates.o: ../../core/lastcontainer.h ../../core/mounts.h
templates.o: ../../core/mounts.h ../../core/mountparser.h ../../core/crypt.h templates.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h
templates.o: ../../core/run.h ../../core/users.h ../../core/groups.h templates.o: ../../core/users.h ../../core/groups.h ../../core/group.h
templates.o: ../../core/group.h ../../core/loadavg.h ../../core/image.h templates.o: ../../core/loadavg.h ../../core/image.h
templates.o: ../../core/threadmanager.h ../../core/timezones.h templates.o: ../../core/threadmanager.h ../../core/timezones.h
templates.o: ../../core/sessionmanager.h ../../core/sessioncontainer.h templates.o: ../../core/timezone.h ../../core/sessionmanager.h
templates.o: ../../functions/functions.h ../../functions/functionbase.h templates.o: ../../core/sessioncontainer.h ../../functions/functions.h
templates.o: ../../core/request.h ../../core/synchro.h templates.o: ../../functions/functionbase.h ../../core/request.h
templates.o: ../../functions/functionparser.h ../../functions/adduser.h templates.o: ../../core/synchro.h ../../functions/functionparser.h
templates.o: ../../functions/cat.h ../../functions/chmod.h templates.o: ../../functions/adduser.h ../../functions/cat.h
templates.o: ../../functions/privchanger.h ../../functions/chown.h templates.o: ../../functions/chmod.h ../../functions/privchanger.h
templates.o: ../../functions/ckeditor.h ../../functions/cp.h templates.o: ../../functions/chown.h ../../functions/ckeditor.h
templates.o: ../../functions/default.h ../../functions/download.h templates.o: ../../functions/cp.h ../../functions/default.h
templates.o: ../../functions/emacs.h ../../functions/env.h templates.o: ../../functions/download.h ../../functions/emacs.h
templates.o: ../../functions/last.h ../../functions/login.h templates.o: ../../functions/env.h ../../functions/last.h
templates.o: ../../functions/logout.h ../../functions/ln.h templates.o: ../../functions/login.h ../../functions/logout.h
templates.o: ../../functions/ls.h ../../functions/man.h templates.o: ../../functions/ln.h ../../functions/ls.h ../../functions/man.h
templates.o: ../../functions/meta.h ../../functions/mkdir.h templates.o: ../../functions/meta.h ../../functions/mkdir.h
templates.o: ../../functions/mv.h ../../functions/nicedit.h templates.o: ../../functions/mv.h ../../functions/nicedit.h
templates.o: ../../functions/node.h ../../functions/passwd.h templates.o: ../../functions/node.h ../../functions/passwd.h

View File

@ -8,31 +8,31 @@ init.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h
init.o: ../../core/request.h ../../core/error.h ../../core/config.h init.o: ../../core/request.h ../../core/error.h ../../core/config.h
init.o: ../../../pikotools/space/spaceparser.h init.o: ../../../pikotools/space/spaceparser.h
init.o: ../../../pikotools/space/space.h ../../core/htmlfilter.h init.o: ../../../pikotools/space/space.h ../../core/htmlfilter.h
init.o: ../../core/timezone.h ../../templates/htmltextstream.h init.o: ../../templates/htmltextstream.h ../../core/textstream.h
init.o: ../../core/textstream.h ../../core/session.h ../../core/user.h init.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h
init.o: ../../core/plugindata.h ../../core/rebus.h ../../core/mount.h init.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h
init.o: ../../templates/locale.h ../../core/request.h ../../core/config.h init.o: ../../core/request.h ../../core/config.h ../../db/db.h
init.o: ../../db/db.h ../../db/dbbase.h ../../db/dbconn.h init.o: ../../db/dbbase.h ../../db/dbconn.h ../../db/dbtextstream.h
init.o: ../../db/dbtextstream.h ../../core/error.h ../../db/dbitemquery.h init.o: ../../core/error.h ../../db/dbitemquery.h ../../core/item.h
init.o: ../../core/item.h ../../db/dbitemcolumns.h ../../core/user.h init.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
init.o: ../../core/group.h ../../core/dircontainer.h ../../core/ugcontainer.h init.o: ../../core/dircontainer.h ../../core/ugcontainer.h ../../core/log.h
init.o: ../../core/log.h bot.h stats.h templates.h ../../core/plugin.h init.o: bot.h stats.h templates.h ../../core/plugin.h ../../core/pluginmsg.h
init.o: ../../core/pluginmsg.h ../../core/system.h ../../core/job.h init.o: ../../core/system.h ../../core/job.h ../../core/basethread.h
init.o: ../../core/basethread.h ../../core/synchro.h ../../core/dirs.h init.o: ../../core/synchro.h ../../core/dirs.h ../../core/dircontainer.h
init.o: ../../core/dircontainer.h ../../notify/notify.h init.o: ../../notify/notify.h ../../notify/notifypool.h
init.o: ../../notify/notifypool.h ../../templates/patterns.h init.o: ../../templates/patterns.h ../../templates/locale.h
init.o: ../../templates/locale.h ../../templates/localefilter.h init.o: ../../templates/localefilter.h ../../../ezc/src/ezc.h
init.o: ../../../ezc/src/ezc.h ../../../ezc/src/generator.h init.o: ../../../ezc/src/generator.h ../../../ezc/src/pattern.h
init.o: ../../../ezc/src/pattern.h ../../../ezc/src/functions.h init.o: ../../../ezc/src/functions.h ../../../ezc/src/funinfo.h
init.o: ../../../ezc/src/funinfo.h ../../../ezc/src/stringconv.h init.o: ../../../ezc/src/stringconv.h ../../../pikotools/utf8/utf8.h
init.o: ../../../pikotools/utf8/utf8.h ../../notify/notifythread.h init.o: ../../notify/notifythread.h ../../core/basethread.h
init.o: ../../core/basethread.h ../../notify/templatesnotify.h init.o: ../../notify/templatesnotify.h ../../core/users.h
init.o: ../../core/users.h ../../core/ugcontainer.h init.o: ../../core/ugcontainer.h ../../core/lastcontainer.h
init.o: ../../core/lastcontainer.h ../../core/mounts.h init.o: ../../core/mounts.h ../../core/mountparser.h ../../core/crypt.h
init.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h init.o: ../../core/run.h ../../core/users.h ../../core/groups.h
init.o: ../../core/users.h ../../core/groups.h ../../core/group.h init.o: ../../core/group.h ../../core/loadavg.h ../../core/image.h
init.o: ../../core/loadavg.h ../../core/image.h ../../core/threadmanager.h init.o: ../../core/threadmanager.h ../../core/timezones.h
init.o: ../../core/timezones.h ../../core/sessionmanager.h init.o: ../../core/timezone.h ../../core/sessionmanager.h
init.o: ../../core/sessioncontainer.h ../../functions/functions.h init.o: ../../core/sessioncontainer.h ../../functions/functions.h
init.o: ../../functions/functionbase.h ../../core/system.h init.o: ../../functions/functionbase.h ../../core/system.h
init.o: ../../core/synchro.h ../../functions/functionparser.h init.o: ../../core/synchro.h ../../functions/functionparser.h
@ -64,18 +64,17 @@ stats.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h
stats.o: ../../core/request.h ../../core/error.h ../../core/config.h stats.o: ../../core/request.h ../../core/error.h ../../core/config.h
stats.o: ../../../pikotools/space/spaceparser.h stats.o: ../../../pikotools/space/spaceparser.h
stats.o: ../../../pikotools/space/space.h ../../core/htmlfilter.h stats.o: ../../../pikotools/space/space.h ../../core/htmlfilter.h
stats.o: ../../core/timezone.h ../../templates/htmltextstream.h stats.o: ../../templates/htmltextstream.h ../../core/textstream.h
stats.o: ../../core/textstream.h ../../core/session.h ../../core/user.h stats.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h
stats.o: ../../core/plugindata.h ../../core/rebus.h ../../core/mount.h stats.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h
stats.o: ../../templates/locale.h ../../../pikotools/utf8/utf8.h stats.o: ../../../pikotools/utf8/utf8.h
templates.o: templates.h ../../core/plugin.h ../../core/pluginmsg.h templates.o: templates.h ../../core/plugin.h ../../core/pluginmsg.h
templates.o: ../../core/log.h ../../core/plugindata.h ../../core/config.h templates.o: ../../core/log.h ../../core/plugindata.h ../../core/config.h
templates.o: ../../../pikotools/space/spaceparser.h templates.o: ../../../pikotools/space/spaceparser.h
templates.o: ../../../pikotools/space/space.h ../../core/htmlfilter.h templates.o: ../../../pikotools/space/space.h ../../core/htmlfilter.h
templates.o: ../../core/timezone.h ../../../pikotools/date/date.h templates.o: ../../core/request.h ../../core/requesttypes.h ../../core/item.h
templates.o: ../../../pikotools/space/space.h ../../core/request.h templates.o: ../../../pikotools/space/space.h ../../../pikotools/date/date.h
templates.o: ../../core/requesttypes.h ../../core/item.h ../../core/error.h templates.o: ../../core/error.h ../../core/textstream.h ../../core/misc.h
templates.o: ../../core/textstream.h ../../core/misc.h
templates.o: ../../templates/htmltextstream.h ../../core/textstream.h templates.o: ../../templates/htmltextstream.h ../../core/textstream.h
templates.o: ../../core/system.h ../../core/job.h ../../core/basethread.h templates.o: ../../core/system.h ../../core/job.h ../../core/basethread.h
templates.o: ../../core/synchro.h ../../core/dirs.h ../../core/dircontainer.h templates.o: ../../core/synchro.h ../../core/dirs.h ../../core/dircontainer.h
@ -99,10 +98,10 @@ templates.o: ../../core/mount.h ../../core/mounts.h ../../core/mountparser.h
templates.o: ../../core/crypt.h ../../core/run.h ../../core/users.h templates.o: ../../core/crypt.h ../../core/run.h ../../core/users.h
templates.o: ../../core/groups.h ../../core/group.h ../../core/loadavg.h templates.o: ../../core/groups.h ../../core/group.h ../../core/loadavg.h
templates.o: ../../core/image.h ../../core/threadmanager.h templates.o: ../../core/image.h ../../core/threadmanager.h
templates.o: ../../core/timezones.h ../../core/sessionmanager.h templates.o: ../../core/timezones.h ../../core/timezone.h
templates.o: ../../core/sessioncontainer.h ../../functions/functions.h templates.o: ../../core/sessionmanager.h ../../core/sessioncontainer.h
templates.o: ../../functions/functionbase.h ../../core/request.h templates.o: ../../functions/functions.h ../../functions/functionbase.h
templates.o: ../../core/system.h ../../core/synchro.h templates.o: ../../core/request.h ../../core/system.h ../../core/synchro.h
templates.o: ../../functions/functionparser.h ../../core/cur.h templates.o: ../../functions/functionparser.h ../../core/cur.h
templates.o: ../../functions/adduser.h ../../functions/cat.h templates.o: ../../functions/adduser.h ../../functions/cat.h
templates.o: ../../functions/chmod.h ../../functions/privchanger.h templates.o: ../../functions/chmod.h ../../functions/privchanger.h

View File

@ -8,8 +8,7 @@ createthread.o: ../../core/textstream.h ../../core/misc.h ../../core/item.h
createthread.o: ../../core/requesttypes.h ../../core/error.h createthread.o: ../../core/requesttypes.h ../../core/error.h
createthread.o: ../../../pikotools/space/spaceparser.h createthread.o: ../../../pikotools/space/spaceparser.h
createthread.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h createthread.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h
createthread.o: ../../db/dbitemcolumns.h ../../core/user.h createthread.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
createthread.o: ../../core/timezone.h ../../core/group.h
createthread.o: ../../core/dircontainer.h ../../core/ugcontainer.h createthread.o: ../../core/dircontainer.h ../../core/ugcontainer.h
createthread.o: ../../core/log.h ../../core/textstream.h createthread.o: ../../core/log.h ../../core/textstream.h
createthread.o: ../../core/logmanipulators.h ../../core/slog.h createthread.o: ../../core/logmanipulators.h ../../core/slog.h
@ -34,8 +33,9 @@ createthread.o: ../../core/mounts.h ../../core/mountparser.h
createthread.o: ../../core/crypt.h ../../core/run.h ../../core/users.h createthread.o: ../../core/crypt.h ../../core/run.h ../../core/users.h
createthread.o: ../../core/groups.h ../../core/group.h ../../core/loadavg.h createthread.o: ../../core/groups.h ../../core/group.h ../../core/loadavg.h
createthread.o: ../../core/image.h ../../core/threadmanager.h createthread.o: ../../core/image.h ../../core/threadmanager.h
createthread.o: ../../core/timezones.h ../../core/synchro.h tdb.h thread.h createthread.o: ../../core/timezones.h ../../core/timezone.h
createthread.o: ../../db/dbbase.h threadinfo.h ../../functions/functions.h createthread.o: ../../core/synchro.h tdb.h thread.h ../../db/dbbase.h
createthread.o: threadinfo.h ../../functions/functions.h
createthread.o: ../../functions/functionbase.h createthread.o: ../../functions/functionbase.h
createthread.o: ../../functions/functionparser.h ../../core/cur.h createthread.o: ../../functions/functionparser.h ../../core/cur.h
createthread.o: ../../functions/adduser.h ../../functions/cat.h createthread.o: ../../functions/adduser.h ../../functions/cat.h
@ -66,33 +66,32 @@ funthread.o: ../../db/dbconn.h ../../db/dbtextstream.h
funthread.o: ../../core/textstream.h ../../core/misc.h ../../core/error.h funthread.o: ../../core/textstream.h ../../core/misc.h ../../core/error.h
funthread.o: ../../../pikotools/space/spaceparser.h funthread.o: ../../../pikotools/space/spaceparser.h
funthread.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h funthread.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h
funthread.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/timezone.h funthread.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
funthread.o: ../../core/group.h ../../core/dircontainer.h funthread.o: ../../core/dircontainer.h ../../core/ugcontainer.h
funthread.o: ../../core/ugcontainer.h ../../core/log.h funthread.o: ../../core/log.h ../../core/textstream.h
funthread.o: ../../core/textstream.h ../../core/logmanipulators.h funthread.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h
funthread.o: ../../core/slog.h ../../core/cur.h ../../core/request.h funthread.o: ../../core/request.h ../../core/error.h ../../core/config.h
funthread.o: ../../core/error.h ../../core/config.h ../../core/htmlfilter.h funthread.o: ../../core/htmlfilter.h ../../templates/htmltextstream.h
funthread.o: ../../templates/htmltextstream.h ../../core/session.h funthread.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h
funthread.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h funthread.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h
funthread.o: ../../core/mount.h ../../templates/locale.h ../../core/request.h funthread.o: ../../core/request.h ../../core/config.h ../../core/system.h
funthread.o: ../../core/config.h ../../core/system.h ../../core/job.h funthread.o: ../../core/job.h ../../core/basethread.h ../../core/synchro.h
funthread.o: ../../core/basethread.h ../../core/synchro.h ../../core/dirs.h funthread.o: ../../core/dirs.h ../../core/dircontainer.h
funthread.o: ../../core/dircontainer.h ../../notify/notify.h funthread.o: ../../notify/notify.h ../../notify/notifypool.h
funthread.o: ../../notify/notifypool.h ../../templates/patterns.h funthread.o: ../../templates/patterns.h ../../templates/locale.h
funthread.o: ../../templates/locale.h ../../templates/localefilter.h funthread.o: ../../templates/localefilter.h ../../../ezc/src/ezc.h
funthread.o: ../../../ezc/src/ezc.h ../../../ezc/src/generator.h funthread.o: ../../../ezc/src/generator.h ../../../ezc/src/pattern.h
funthread.o: ../../../ezc/src/pattern.h ../../../ezc/src/functions.h funthread.o: ../../../ezc/src/functions.h ../../../ezc/src/funinfo.h
funthread.o: ../../../ezc/src/funinfo.h ../../../ezc/src/stringconv.h funthread.o: ../../../ezc/src/stringconv.h ../../../pikotools/utf8/utf8.h
funthread.o: ../../../pikotools/utf8/utf8.h ../../notify/notifythread.h funthread.o: ../../notify/notifythread.h ../../core/basethread.h
funthread.o: ../../core/basethread.h ../../notify/templatesnotify.h funthread.o: ../../notify/templatesnotify.h ../../core/users.h
funthread.o: ../../core/users.h ../../core/ugcontainer.h funthread.o: ../../core/ugcontainer.h ../../core/lastcontainer.h
funthread.o: ../../core/lastcontainer.h ../../core/mounts.h funthread.o: ../../core/mounts.h ../../core/mountparser.h ../../core/crypt.h
funthread.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h funthread.o: ../../core/run.h ../../core/users.h ../../core/groups.h
funthread.o: ../../core/users.h ../../core/groups.h ../../core/group.h funthread.o: ../../core/group.h ../../core/loadavg.h ../../core/image.h
funthread.o: ../../core/loadavg.h ../../core/image.h
funthread.o: ../../core/threadmanager.h ../../core/timezones.h funthread.o: ../../core/threadmanager.h ../../core/timezones.h
funthread.o: ../../core/synchro.h tdb.h thread.h ../../db/dbbase.h funthread.o: ../../core/timezone.h ../../core/synchro.h tdb.h thread.h
funthread.o: threadinfo.h funthread.o: ../../db/dbbase.h threadinfo.h
init.o: tdb.h thread.h ../../../pikotools/date/date.h ../../db/dbbase.h init.o: tdb.h thread.h ../../../pikotools/date/date.h ../../db/dbbase.h
init.o: ../../core/error.h reply.h ../../functions/functionbase.h init.o: ../../core/error.h reply.h ../../functions/functionbase.h
init.o: ../../core/item.h ../../../pikotools/space/space.h ../../db/db.h init.o: ../../core/item.h ../../../pikotools/space/space.h ../../db/db.h
@ -100,9 +99,9 @@ init.o: ../../db/dbbase.h ../../db/dbconn.h ../../db/dbtextstream.h
init.o: ../../core/textstream.h ../../core/misc.h ../../core/item.h init.o: ../../core/textstream.h ../../core/misc.h ../../core/item.h
init.o: ../../core/requesttypes.h ../../../pikotools/space/spaceparser.h init.o: ../../core/requesttypes.h ../../../pikotools/space/spaceparser.h
init.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h init.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h
init.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/timezone.h init.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
init.o: ../../core/group.h ../../core/dircontainer.h ../../core/ugcontainer.h init.o: ../../core/dircontainer.h ../../core/ugcontainer.h ../../core/log.h
init.o: ../../core/log.h ../../core/textstream.h ../../core/logmanipulators.h init.o: ../../core/textstream.h ../../core/logmanipulators.h
init.o: ../../core/slog.h ../../core/cur.h ../../core/request.h init.o: ../../core/slog.h ../../core/cur.h ../../core/request.h
init.o: ../../core/error.h ../../core/config.h ../../core/htmlfilter.h init.o: ../../core/error.h ../../core/config.h ../../core/htmlfilter.h
init.o: ../../templates/htmltextstream.h ../../core/session.h init.o: ../../templates/htmltextstream.h ../../core/session.h
@ -123,12 +122,13 @@ init.o: ../../core/lastcontainer.h ../../core/mounts.h
init.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h init.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h
init.o: ../../core/users.h ../../core/groups.h ../../core/group.h init.o: ../../core/users.h ../../core/groups.h ../../core/group.h
init.o: ../../core/loadavg.h ../../core/image.h ../../core/threadmanager.h init.o: ../../core/loadavg.h ../../core/image.h ../../core/threadmanager.h
init.o: ../../core/timezones.h ../../core/synchro.h threadinfo.h funthread.h init.o: ../../core/timezones.h ../../core/timezone.h ../../core/synchro.h
init.o: createthread.h showthreads.h ../../core/log.h ../../core/plugin.h init.o: threadinfo.h funthread.h createthread.h showthreads.h
init.o: pluginmsg.h ../../core/system.h ../../core/sessionmanager.h init.o: ../../core/log.h ../../core/plugin.h pluginmsg.h ../../core/system.h
init.o: ../../core/sessioncontainer.h ../../functions/functions.h init.o: ../../core/sessionmanager.h ../../core/sessioncontainer.h
init.o: ../../functions/functionbase.h ../../functions/functionparser.h init.o: ../../functions/functions.h ../../functions/functionbase.h
init.o: ../../core/cur.h ../../functions/adduser.h ../../functions/cat.h init.o: ../../functions/functionparser.h ../../core/cur.h
init.o: ../../functions/adduser.h ../../functions/cat.h
init.o: ../../functions/chmod.h ../../functions/privchanger.h init.o: ../../functions/chmod.h ../../functions/privchanger.h
init.o: ../../functions/chown.h ../../functions/ckeditor.h init.o: ../../functions/chown.h ../../functions/ckeditor.h
init.o: ../../functions/cp.h ../../functions/default.h init.o: ../../functions/cp.h ../../functions/default.h
@ -156,17 +156,17 @@ reply.o: ../../db/dbtextstream.h ../../core/textstream.h ../../core/misc.h
reply.o: ../../core/item.h ../../core/requesttypes.h ../../core/error.h reply.o: ../../core/item.h ../../core/requesttypes.h ../../core/error.h
reply.o: ../../../pikotools/space/spaceparser.h reply.o: ../../../pikotools/space/spaceparser.h
reply.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h reply.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h
reply.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/timezone.h reply.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
reply.o: ../../core/group.h ../../core/dircontainer.h reply.o: ../../core/dircontainer.h ../../core/ugcontainer.h ../../core/log.h
reply.o: ../../core/ugcontainer.h ../../core/log.h ../../core/textstream.h reply.o: ../../core/textstream.h ../../core/logmanipulators.h
reply.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h reply.o: ../../core/slog.h ../../core/cur.h ../../core/request.h
reply.o: ../../core/request.h ../../core/error.h ../../core/config.h reply.o: ../../core/error.h ../../core/config.h ../../core/htmlfilter.h
reply.o: ../../core/htmlfilter.h ../../templates/htmltextstream.h reply.o: ../../templates/htmltextstream.h ../../core/session.h
reply.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h reply.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h
reply.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h reply.o: ../../core/mount.h ../../templates/locale.h ../../core/request.h
reply.o: ../../core/request.h ../../core/config.h ../../core/system.h reply.o: ../../core/config.h ../../core/system.h ../../core/job.h
reply.o: ../../core/job.h ../../core/basethread.h ../../core/synchro.h reply.o: ../../core/basethread.h ../../core/synchro.h ../../core/dirs.h
reply.o: ../../core/dirs.h ../../core/dircontainer.h ../../notify/notify.h reply.o: ../../core/dircontainer.h ../../notify/notify.h
reply.o: ../../notify/notifypool.h ../../templates/patterns.h reply.o: ../../notify/notifypool.h ../../templates/patterns.h
reply.o: ../../templates/locale.h ../../templates/localefilter.h reply.o: ../../templates/locale.h ../../templates/localefilter.h
reply.o: ../../../ezc/src/ezc.h ../../../ezc/src/generator.h reply.o: ../../../ezc/src/ezc.h ../../../ezc/src/generator.h
@ -179,10 +179,11 @@ reply.o: ../../core/lastcontainer.h ../../core/mounts.h
reply.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h reply.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h
reply.o: ../../core/users.h ../../core/groups.h ../../core/group.h reply.o: ../../core/users.h ../../core/groups.h ../../core/group.h
reply.o: ../../core/loadavg.h ../../core/image.h ../../core/threadmanager.h reply.o: ../../core/loadavg.h ../../core/image.h ../../core/threadmanager.h
reply.o: ../../core/timezones.h ../../core/synchro.h tdb.h thread.h reply.o: ../../core/timezones.h ../../core/timezone.h ../../core/synchro.h
reply.o: ../../db/dbbase.h threadinfo.h ../../functions/functions.h reply.o: tdb.h thread.h ../../db/dbbase.h threadinfo.h
reply.o: ../../functions/functionbase.h ../../functions/functionparser.h reply.o: ../../functions/functions.h ../../functions/functionbase.h
reply.o: ../../core/cur.h ../../functions/adduser.h ../../functions/cat.h reply.o: ../../functions/functionparser.h ../../core/cur.h
reply.o: ../../functions/adduser.h ../../functions/cat.h
reply.o: ../../functions/chmod.h ../../functions/privchanger.h reply.o: ../../functions/chmod.h ../../functions/privchanger.h
reply.o: ../../functions/chown.h ../../functions/ckeditor.h reply.o: ../../functions/chown.h ../../functions/ckeditor.h
reply.o: ../../functions/cp.h ../../functions/default.h reply.o: ../../functions/cp.h ../../functions/default.h
@ -213,8 +214,7 @@ showthreads.o: ../../core/textstream.h ../../core/misc.h ../../core/item.h
showthreads.o: ../../core/requesttypes.h ../../core/error.h showthreads.o: ../../core/requesttypes.h ../../core/error.h
showthreads.o: ../../../pikotools/space/spaceparser.h showthreads.o: ../../../pikotools/space/spaceparser.h
showthreads.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h showthreads.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h
showthreads.o: ../../db/dbitemcolumns.h ../../core/user.h showthreads.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
showthreads.o: ../../core/timezone.h ../../core/group.h
showthreads.o: ../../core/dircontainer.h ../../core/ugcontainer.h showthreads.o: ../../core/dircontainer.h ../../core/ugcontainer.h
showthreads.o: ../../core/log.h ../../core/textstream.h showthreads.o: ../../core/log.h ../../core/textstream.h
showthreads.o: ../../core/logmanipulators.h ../../core/slog.h showthreads.o: ../../core/logmanipulators.h ../../core/slog.h
@ -239,8 +239,9 @@ showthreads.o: ../../core/mounts.h ../../core/mountparser.h
showthreads.o: ../../core/crypt.h ../../core/run.h ../../core/users.h showthreads.o: ../../core/crypt.h ../../core/run.h ../../core/users.h
showthreads.o: ../../core/groups.h ../../core/group.h ../../core/loadavg.h showthreads.o: ../../core/groups.h ../../core/group.h ../../core/loadavg.h
showthreads.o: ../../core/image.h ../../core/threadmanager.h showthreads.o: ../../core/image.h ../../core/threadmanager.h
showthreads.o: ../../core/timezones.h ../../core/synchro.h tdb.h thread.h showthreads.o: ../../core/timezones.h ../../core/timezone.h
showthreads.o: ../../db/dbbase.h threadinfo.h showthreads.o: ../../core/synchro.h tdb.h thread.h ../../db/dbbase.h
showthreads.o: threadinfo.h
tdb.o: tdb.h thread.h ../../../pikotools/date/date.h ../../db/dbbase.h tdb.o: tdb.h thread.h ../../../pikotools/date/date.h ../../db/dbbase.h
tdb.o: ../../core/error.h ../../core/log.h tdb.o: ../../core/error.h ../../core/log.h
templates.o: threadinfo.h ../../core/item.h ../../../pikotools/space/space.h templates.o: threadinfo.h ../../core/item.h ../../../pikotools/space/space.h
@ -252,15 +253,14 @@ templates.o: ../../db/dbtextstream.h ../../core/textstream.h
templates.o: ../../core/misc.h ../../core/requesttypes.h ../../core/error.h templates.o: ../../core/misc.h ../../core/requesttypes.h ../../core/error.h
templates.o: ../../../pikotools/space/spaceparser.h templates.o: ../../../pikotools/space/spaceparser.h
templates.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h templates.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h
templates.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/timezone.h templates.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
templates.o: ../../core/group.h ../../core/dircontainer.h templates.o: ../../core/dircontainer.h ../../core/ugcontainer.h
templates.o: ../../core/ugcontainer.h ../../core/log.h templates.o: ../../core/log.h ../../core/textstream.h
templates.o: ../../core/textstream.h ../../core/logmanipulators.h templates.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h
templates.o: ../../core/slog.h ../../core/cur.h ../../core/request.h templates.o: ../../core/request.h ../../core/error.h ../../core/config.h
templates.o: ../../core/error.h ../../core/config.h ../../core/htmlfilter.h templates.o: ../../core/htmlfilter.h ../../templates/htmltextstream.h
templates.o: ../../templates/htmltextstream.h ../../core/session.h templates.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h
templates.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h templates.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h
templates.o: ../../core/mount.h ../../templates/locale.h
templates.o: ../../notify/notify.h ../../notify/notifypool.h templates.o: ../../notify/notify.h ../../notify/notifypool.h
templates.o: ../../templates/patterns.h ../../templates/locale.h templates.o: ../../templates/patterns.h ../../templates/locale.h
templates.o: ../../templates/localefilter.h ../../../ezc/src/ezc.h templates.o: ../../templates/localefilter.h ../../../ezc/src/ezc.h
@ -274,15 +274,15 @@ templates.o: ../../core/lastcontainer.h ../../core/mounts.h
templates.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h templates.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h
templates.o: ../../core/users.h ../../core/groups.h ../../core/group.h templates.o: ../../core/users.h ../../core/groups.h ../../core/group.h
templates.o: ../../core/loadavg.h ../../core/image.h templates.o: ../../core/loadavg.h ../../core/image.h
templates.o: ../../core/threadmanager.h ../../core/timezones.h thread.h tdb.h templates.o: ../../core/threadmanager.h ../../core/timezones.h
templates.o: ../../db/dbbase.h reply.h ../../functions/functionbase.h templates.o: ../../core/timezone.h thread.h tdb.h ../../db/dbbase.h reply.h
templates.o: ../../core/request.h ../../core/synchro.h funthread.h templates.o: ../../functions/functionbase.h ../../core/request.h
templates.o: createthread.h showthreads.h ../../core/misc.h templates.o: ../../core/synchro.h funthread.h createthread.h showthreads.h
templates.o: ../../core/plugin.h pluginmsg.h ../../core/system.h templates.o: ../../core/misc.h ../../core/plugin.h pluginmsg.h
templates.o: ../../core/sessionmanager.h ../../core/sessioncontainer.h templates.o: ../../core/system.h ../../core/sessionmanager.h
templates.o: ../../functions/functions.h ../../functions/functionbase.h templates.o: ../../core/sessioncontainer.h ../../functions/functions.h
templates.o: ../../functions/functionparser.h ../../core/cur.h templates.o: ../../functions/functionbase.h ../../functions/functionparser.h
templates.o: ../../functions/adduser.h ../../functions/cat.h templates.o: ../../core/cur.h ../../functions/adduser.h ../../functions/cat.h
templates.o: ../../functions/chmod.h ../../functions/privchanger.h templates.o: ../../functions/chmod.h ../../functions/privchanger.h
templates.o: ../../functions/chown.h ../../functions/ckeditor.h templates.o: ../../functions/chown.h ../../functions/ckeditor.h
templates.o: ../../functions/cp.h ../../functions/default.h templates.o: ../../functions/cp.h ../../functions/default.h
@ -314,8 +314,7 @@ threadinfo.o: ../../db/dbtextstream.h ../../core/textstream.h
threadinfo.o: ../../core/misc.h ../../core/requesttypes.h ../../core/error.h threadinfo.o: ../../core/misc.h ../../core/requesttypes.h ../../core/error.h
threadinfo.o: ../../../pikotools/space/spaceparser.h threadinfo.o: ../../../pikotools/space/spaceparser.h
threadinfo.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h threadinfo.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h
threadinfo.o: ../../db/dbitemcolumns.h ../../core/user.h threadinfo.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
threadinfo.o: ../../core/timezone.h ../../core/group.h
threadinfo.o: ../../core/dircontainer.h ../../core/ugcontainer.h threadinfo.o: ../../core/dircontainer.h ../../core/ugcontainer.h
threadinfo.o: ../../core/log.h ../../core/textstream.h threadinfo.o: ../../core/log.h ../../core/textstream.h
threadinfo.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h threadinfo.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h
@ -336,5 +335,5 @@ threadinfo.o: ../../core/lastcontainer.h ../../core/mounts.h
threadinfo.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h threadinfo.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h
threadinfo.o: ../../core/users.h ../../core/groups.h ../../core/group.h threadinfo.o: ../../core/users.h ../../core/groups.h ../../core/group.h
threadinfo.o: ../../core/loadavg.h ../../core/image.h threadinfo.o: ../../core/loadavg.h ../../core/image.h
threadinfo.o: ../../core/threadmanager.h ../../core/timezones.h thread.h threadinfo.o: ../../core/threadmanager.h ../../core/timezones.h
threadinfo.o: tdb.h ../../db/dbbase.h threadinfo.o: ../../core/timezone.h thread.h tdb.h ../../db/dbbase.h

View File

@ -9,8 +9,7 @@ createticket.o: ../../core/error.h ../../../pikotools/space/spaceparser.h
createticket.o: ../../../pikotools/space/space.h createticket.o: ../../../pikotools/space/space.h
createticket.o: ../../functions/functionbase.h ../../core/item.h createticket.o: ../../functions/functionbase.h ../../core/item.h
createticket.o: ../../db/db.h ../../db/dbbase.h ../../db/dbitemquery.h createticket.o: ../../db/db.h ../../db/dbbase.h ../../db/dbitemquery.h
createticket.o: ../../db/dbitemcolumns.h ../../core/user.h createticket.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
createticket.o: ../../core/timezone.h ../../core/group.h
createticket.o: ../../core/dircontainer.h ../../core/ugcontainer.h createticket.o: ../../core/dircontainer.h ../../core/ugcontainer.h
createticket.o: ../../core/log.h ../../core/textstream.h createticket.o: ../../core/log.h ../../core/textstream.h
createticket.o: ../../core/logmanipulators.h ../../core/slog.h createticket.o: ../../core/logmanipulators.h ../../core/slog.h
@ -35,8 +34,9 @@ createticket.o: ../../core/mounts.h ../../core/mountparser.h
createticket.o: ../../core/crypt.h ../../core/run.h ../../core/users.h createticket.o: ../../core/crypt.h ../../core/run.h ../../core/users.h
createticket.o: ../../core/groups.h ../../core/group.h ../../core/loadavg.h createticket.o: ../../core/groups.h ../../core/group.h ../../core/loadavg.h
createticket.o: ../../core/image.h ../../core/threadmanager.h createticket.o: ../../core/image.h ../../core/threadmanager.h
createticket.o: ../../core/timezones.h ../../core/synchro.h ticketinfo.h createticket.o: ../../core/timezones.h ../../core/timezone.h
createticket.o: ../../functions/functions.h ../../functions/functionbase.h createticket.o: ../../core/synchro.h ticketinfo.h ../../functions/functions.h
createticket.o: ../../functions/functionbase.h
createticket.o: ../../functions/functionparser.h ../../core/cur.h createticket.o: ../../functions/functionparser.h ../../core/cur.h
createticket.o: ../../functions/adduser.h ../../functions/cat.h createticket.o: ../../functions/adduser.h ../../functions/cat.h
createticket.o: ../../functions/chmod.h ../../functions/privchanger.h createticket.o: ../../functions/chmod.h ../../functions/privchanger.h
@ -70,14 +70,14 @@ editticket.o: ../../core/system.h ../../core/job.h ../../core/basethread.h
editticket.o: ../../core/synchro.h ../../core/dirs.h editticket.o: ../../core/synchro.h ../../core/dirs.h
editticket.o: ../../core/dircontainer.h ../../db/db.h ../../db/dbbase.h editticket.o: ../../core/dircontainer.h ../../db/db.h ../../db/dbbase.h
editticket.o: ../../db/dbitemquery.h ../../db/dbitemcolumns.h editticket.o: ../../db/dbitemquery.h ../../db/dbitemcolumns.h
editticket.o: ../../core/user.h ../../core/timezone.h ../../core/group.h editticket.o: ../../core/user.h ../../core/group.h ../../core/dircontainer.h
editticket.o: ../../core/dircontainer.h ../../core/ugcontainer.h editticket.o: ../../core/ugcontainer.h ../../core/log.h
editticket.o: ../../core/log.h ../../core/textstream.h editticket.o: ../../core/textstream.h ../../core/logmanipulators.h
editticket.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h editticket.o: ../../core/slog.h ../../core/cur.h ../../core/request.h
editticket.o: ../../core/request.h ../../core/error.h ../../core/config.h editticket.o: ../../core/error.h ../../core/config.h ../../core/htmlfilter.h
editticket.o: ../../core/htmlfilter.h ../../templates/htmltextstream.h editticket.o: ../../templates/htmltextstream.h ../../core/session.h
editticket.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h editticket.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h
editticket.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h editticket.o: ../../core/mount.h ../../templates/locale.h
editticket.o: ../../notify/notify.h ../../notify/notifypool.h editticket.o: ../../notify/notify.h ../../notify/notifypool.h
editticket.o: ../../templates/patterns.h ../../templates/locale.h editticket.o: ../../templates/patterns.h ../../templates/locale.h
editticket.o: ../../templates/localefilter.h ../../../ezc/src/ezc.h editticket.o: ../../templates/localefilter.h ../../../ezc/src/ezc.h
@ -92,17 +92,17 @@ editticket.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h
editticket.o: ../../core/users.h ../../core/groups.h ../../core/group.h editticket.o: ../../core/users.h ../../core/groups.h ../../core/group.h
editticket.o: ../../core/loadavg.h ../../core/image.h editticket.o: ../../core/loadavg.h ../../core/image.h
editticket.o: ../../core/threadmanager.h ../../core/timezones.h editticket.o: ../../core/threadmanager.h ../../core/timezones.h
editticket.o: ../../functions/functions.h ../../functions/functionbase.h editticket.o: ../../core/timezone.h ../../functions/functions.h
editticket.o: ../../functions/functionparser.h ../../core/cur.h editticket.o: ../../functions/functionbase.h ../../functions/functionparser.h
editticket.o: ../../functions/adduser.h ../../functions/cat.h editticket.o: ../../core/cur.h ../../functions/adduser.h
editticket.o: ../../functions/chmod.h ../../functions/privchanger.h editticket.o: ../../functions/cat.h ../../functions/chmod.h
editticket.o: ../../core/request.h ../../functions/chown.h editticket.o: ../../functions/privchanger.h ../../core/request.h
editticket.o: ../../functions/ckeditor.h ../../functions/cp.h editticket.o: ../../functions/chown.h ../../functions/ckeditor.h
editticket.o: ../../functions/default.h ../../functions/download.h editticket.o: ../../functions/cp.h ../../functions/default.h
editticket.o: ../../functions/emacs.h ../../functions/env.h editticket.o: ../../functions/download.h ../../functions/emacs.h
editticket.o: ../../functions/last.h ../../functions/login.h editticket.o: ../../functions/env.h ../../functions/last.h
editticket.o: ../../functions/logout.h ../../functions/ln.h editticket.o: ../../functions/login.h ../../functions/logout.h
editticket.o: ../../functions/ls.h ../../functions/man.h editticket.o: ../../functions/ln.h ../../functions/ls.h ../../functions/man.h
editticket.o: ../../functions/meta.h ../../functions/mkdir.h editticket.o: ../../functions/meta.h ../../functions/mkdir.h
editticket.o: ../../functions/mv.h ../../functions/nicedit.h editticket.o: ../../functions/mv.h ../../functions/nicedit.h
editticket.o: ../../functions/node.h ../../functions/passwd.h editticket.o: ../../functions/node.h ../../functions/passwd.h
@ -127,15 +127,14 @@ funticket.o: ../../../pikotools/space/space.h ticketinfo.h ../../core/item.h
funticket.o: ../../core/system.h ../../core/job.h ../../core/basethread.h funticket.o: ../../core/system.h ../../core/job.h ../../core/basethread.h
funticket.o: ../../core/synchro.h ../../core/dirs.h ../../core/dircontainer.h funticket.o: ../../core/synchro.h ../../core/dirs.h ../../core/dircontainer.h
funticket.o: ../../db/db.h ../../db/dbbase.h ../../db/dbitemquery.h funticket.o: ../../db/db.h ../../db/dbbase.h ../../db/dbitemquery.h
funticket.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/timezone.h funticket.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
funticket.o: ../../core/group.h ../../core/dircontainer.h funticket.o: ../../core/dircontainer.h ../../core/ugcontainer.h
funticket.o: ../../core/ugcontainer.h ../../core/log.h funticket.o: ../../core/log.h ../../core/textstream.h
funticket.o: ../../core/textstream.h ../../core/logmanipulators.h funticket.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h
funticket.o: ../../core/slog.h ../../core/cur.h ../../core/request.h funticket.o: ../../core/request.h ../../core/error.h ../../core/config.h
funticket.o: ../../core/error.h ../../core/config.h ../../core/htmlfilter.h funticket.o: ../../core/htmlfilter.h ../../templates/htmltextstream.h
funticket.o: ../../templates/htmltextstream.h ../../core/session.h funticket.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h
funticket.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h funticket.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h
funticket.o: ../../core/mount.h ../../templates/locale.h
funticket.o: ../../notify/notify.h ../../notify/notifypool.h funticket.o: ../../notify/notify.h ../../notify/notifypool.h
funticket.o: ../../templates/patterns.h ../../templates/locale.h funticket.o: ../../templates/patterns.h ../../templates/locale.h
funticket.o: ../../templates/localefilter.h ../../../ezc/src/ezc.h funticket.o: ../../templates/localefilter.h ../../../ezc/src/ezc.h
@ -150,9 +149,9 @@ funticket.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h
funticket.o: ../../core/users.h ../../core/groups.h ../../core/group.h funticket.o: ../../core/users.h ../../core/groups.h ../../core/group.h
funticket.o: ../../core/loadavg.h ../../core/image.h funticket.o: ../../core/loadavg.h ../../core/image.h
funticket.o: ../../core/threadmanager.h ../../core/timezones.h funticket.o: ../../core/threadmanager.h ../../core/timezones.h
funticket.o: ../../functions/functions.h ../../functions/functionbase.h funticket.o: ../../core/timezone.h ../../functions/functions.h
funticket.o: ../../functions/functionparser.h ../../core/cur.h funticket.o: ../../functions/functionbase.h ../../functions/functionparser.h
funticket.o: ../../functions/adduser.h ../../functions/cat.h funticket.o: ../../core/cur.h ../../functions/adduser.h ../../functions/cat.h
funticket.o: ../../functions/chmod.h ../../functions/privchanger.h funticket.o: ../../functions/chmod.h ../../functions/privchanger.h
funticket.o: ../../core/request.h ../../functions/chown.h funticket.o: ../../core/request.h ../../functions/chown.h
funticket.o: ../../functions/ckeditor.h ../../functions/cp.h funticket.o: ../../functions/ckeditor.h ../../functions/cp.h
@ -190,26 +189,26 @@ init.o: ../../core/item.h ../../core/system.h ../../core/job.h
init.o: ../../core/basethread.h ../../core/synchro.h ../../core/dirs.h init.o: ../../core/basethread.h ../../core/synchro.h ../../core/dirs.h
init.o: ../../core/dircontainer.h ../../db/db.h ../../db/dbbase.h init.o: ../../core/dircontainer.h ../../db/db.h ../../db/dbbase.h
init.o: ../../db/dbitemquery.h ../../db/dbitemcolumns.h ../../core/user.h init.o: ../../db/dbitemquery.h ../../db/dbitemcolumns.h ../../core/user.h
init.o: ../../core/timezone.h ../../core/group.h ../../core/dircontainer.h init.o: ../../core/group.h ../../core/dircontainer.h ../../core/ugcontainer.h
init.o: ../../core/ugcontainer.h ../../core/log.h ../../core/textstream.h init.o: ../../core/log.h ../../core/textstream.h ../../core/logmanipulators.h
init.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h init.o: ../../core/slog.h ../../core/cur.h ../../core/request.h
init.o: ../../core/request.h ../../core/error.h ../../core/config.h init.o: ../../core/error.h ../../core/config.h ../../core/htmlfilter.h
init.o: ../../core/htmlfilter.h ../../templates/htmltextstream.h init.o: ../../templates/htmltextstream.h ../../core/session.h
init.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h init.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h
init.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h init.o: ../../core/mount.h ../../templates/locale.h ../../notify/notify.h
init.o: ../../notify/notify.h ../../notify/notifypool.h init.o: ../../notify/notifypool.h ../../templates/patterns.h
init.o: ../../templates/patterns.h ../../templates/locale.h init.o: ../../templates/locale.h ../../templates/localefilter.h
init.o: ../../templates/localefilter.h ../../../ezc/src/ezc.h init.o: ../../../ezc/src/ezc.h ../../../ezc/src/generator.h
init.o: ../../../ezc/src/generator.h ../../../ezc/src/pattern.h init.o: ../../../ezc/src/pattern.h ../../../ezc/src/functions.h
init.o: ../../../ezc/src/functions.h ../../../ezc/src/funinfo.h init.o: ../../../ezc/src/funinfo.h ../../../ezc/src/stringconv.h
init.o: ../../../ezc/src/stringconv.h ../../../pikotools/utf8/utf8.h init.o: ../../../pikotools/utf8/utf8.h ../../notify/notifythread.h
init.o: ../../notify/notifythread.h ../../core/basethread.h init.o: ../../core/basethread.h ../../notify/templatesnotify.h
init.o: ../../notify/templatesnotify.h ../../core/config.h ../../core/users.h init.o: ../../core/config.h ../../core/users.h ../../core/ugcontainer.h
init.o: ../../core/ugcontainer.h ../../core/lastcontainer.h init.o: ../../core/lastcontainer.h ../../core/mounts.h
init.o: ../../core/mounts.h ../../core/mountparser.h ../../core/crypt.h init.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h
init.o: ../../core/run.h ../../core/users.h ../../core/groups.h init.o: ../../core/users.h ../../core/groups.h ../../core/group.h
init.o: ../../core/group.h ../../core/loadavg.h ../../core/image.h init.o: ../../core/loadavg.h ../../core/image.h ../../core/threadmanager.h
init.o: ../../core/threadmanager.h ../../core/timezones.h init.o: ../../core/timezones.h ../../core/timezone.h
init.o: ../../functions/functions.h ../../functions/functionbase.h init.o: ../../functions/functions.h ../../functions/functionbase.h
init.o: ../../functions/functionparser.h ../../core/cur.h init.o: ../../functions/functionparser.h ../../core/cur.h
init.o: ../../functions/adduser.h ../../functions/cat.h init.o: ../../functions/adduser.h ../../functions/cat.h
@ -253,12 +252,11 @@ showtickets.o: ../../core/item.h ../../core/system.h ../../core/job.h
showtickets.o: ../../core/basethread.h ../../core/synchro.h ../../core/dirs.h showtickets.o: ../../core/basethread.h ../../core/synchro.h ../../core/dirs.h
showtickets.o: ../../core/dircontainer.h ../../db/db.h ../../db/dbbase.h showtickets.o: ../../core/dircontainer.h ../../db/db.h ../../db/dbbase.h
showtickets.o: ../../db/dbitemquery.h ../../db/dbitemcolumns.h showtickets.o: ../../db/dbitemquery.h ../../db/dbitemcolumns.h
showtickets.o: ../../core/user.h ../../core/timezone.h ../../core/group.h showtickets.o: ../../core/user.h ../../core/group.h ../../core/dircontainer.h
showtickets.o: ../../core/dircontainer.h ../../core/ugcontainer.h showtickets.o: ../../core/ugcontainer.h ../../core/log.h
showtickets.o: ../../core/log.h ../../core/textstream.h showtickets.o: ../../core/textstream.h ../../core/logmanipulators.h
showtickets.o: ../../core/logmanipulators.h ../../core/slog.h showtickets.o: ../../core/slog.h ../../core/cur.h ../../core/request.h
showtickets.o: ../../core/cur.h ../../core/request.h ../../core/error.h showtickets.o: ../../core/error.h ../../core/config.h ../../core/htmlfilter.h
showtickets.o: ../../core/config.h ../../core/htmlfilter.h
showtickets.o: ../../templates/htmltextstream.h ../../core/session.h showtickets.o: ../../templates/htmltextstream.h ../../core/session.h
showtickets.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h showtickets.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h
showtickets.o: ../../core/mount.h ../../templates/locale.h showtickets.o: ../../core/mount.h ../../templates/locale.h
@ -276,7 +274,8 @@ showtickets.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h
showtickets.o: ../../core/users.h ../../core/groups.h ../../core/group.h showtickets.o: ../../core/users.h ../../core/groups.h ../../core/group.h
showtickets.o: ../../core/loadavg.h ../../core/image.h showtickets.o: ../../core/loadavg.h ../../core/image.h
showtickets.o: ../../core/threadmanager.h ../../core/timezones.h showtickets.o: ../../core/threadmanager.h ../../core/timezones.h
showtickets.o: ../../functions/functions.h ../../functions/functionbase.h showtickets.o: ../../core/timezone.h ../../functions/functions.h
showtickets.o: ../../functions/functionbase.h
showtickets.o: ../../functions/functionparser.h ../../core/cur.h showtickets.o: ../../functions/functionparser.h ../../core/cur.h
showtickets.o: ../../functions/adduser.h ../../functions/cat.h showtickets.o: ../../functions/adduser.h ../../functions/cat.h
showtickets.o: ../../functions/chmod.h ../../functions/privchanger.h showtickets.o: ../../functions/chmod.h ../../functions/privchanger.h
@ -322,12 +321,12 @@ templates.o: ticketinfo.h ticket.h ../../core/item.h ../../core/system.h
templates.o: ../../core/job.h ../../core/basethread.h ../../core/synchro.h templates.o: ../../core/job.h ../../core/basethread.h ../../core/synchro.h
templates.o: ../../core/dirs.h ../../core/dircontainer.h ../../db/db.h templates.o: ../../core/dirs.h ../../core/dircontainer.h ../../db/db.h
templates.o: ../../db/dbbase.h ../../db/dbitemquery.h templates.o: ../../db/dbbase.h ../../db/dbitemquery.h
templates.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/timezone.h templates.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
templates.o: ../../core/group.h ../../core/dircontainer.h templates.o: ../../core/dircontainer.h ../../core/ugcontainer.h
templates.o: ../../core/ugcontainer.h ../../core/log.h templates.o: ../../core/log.h ../../core/textstream.h
templates.o: ../../core/textstream.h ../../core/logmanipulators.h templates.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h
templates.o: ../../core/slog.h ../../core/cur.h ../../core/request.h templates.o: ../../core/request.h ../../core/requesttypes.h
templates.o: ../../core/requesttypes.h ../../core/error.h ../../core/config.h templates.o: ../../core/error.h ../../core/config.h
templates.o: ../../../pikotools/space/spaceparser.h templates.o: ../../../pikotools/space/spaceparser.h
templates.o: ../../../pikotools/space/space.h ../../core/htmlfilter.h templates.o: ../../../pikotools/space/space.h ../../core/htmlfilter.h
templates.o: ../../templates/htmltextstream.h ../../core/textstream.h templates.o: ../../templates/htmltextstream.h ../../core/textstream.h
@ -344,9 +343,9 @@ templates.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h
templates.o: ../../core/users.h ../../core/groups.h ../../core/group.h templates.o: ../../core/users.h ../../core/groups.h ../../core/group.h
templates.o: ../../core/loadavg.h ../../core/image.h templates.o: ../../core/loadavg.h ../../core/image.h
templates.o: ../../core/threadmanager.h ../../core/timezones.h templates.o: ../../core/threadmanager.h ../../core/timezones.h
templates.o: ../../functions/functions.h ../../functions/functionbase.h templates.o: ../../core/timezone.h ../../functions/functions.h
templates.o: ../../functions/functionparser.h ../../core/cur.h templates.o: ../../functions/functionbase.h ../../functions/functionparser.h
templates.o: ../../functions/adduser.h ../../functions/cat.h templates.o: ../../core/cur.h ../../functions/adduser.h ../../functions/cat.h
templates.o: ../../functions/chmod.h ../../functions/privchanger.h templates.o: ../../functions/chmod.h ../../functions/privchanger.h
templates.o: ../../core/request.h ../../functions/chown.h templates.o: ../../core/request.h ../../functions/chown.h
templates.o: ../../functions/ckeditor.h ../../functions/cp.h templates.o: ../../functions/ckeditor.h ../../functions/cp.h
@ -384,13 +383,12 @@ ticketinfo.o: ../../../pikotools/space/space.h ../../core/dirs.h
ticketinfo.o: ../../core/item.h ../../../pikotools/date/date.h ticketinfo.o: ../../core/item.h ../../../pikotools/date/date.h
ticketinfo.o: ../../core/dircontainer.h ../../db/db.h ../../db/dbbase.h ticketinfo.o: ../../core/dircontainer.h ../../db/db.h ../../db/dbbase.h
ticketinfo.o: ../../db/dbitemquery.h ../../db/dbitemcolumns.h ticketinfo.o: ../../db/dbitemquery.h ../../db/dbitemcolumns.h
ticketinfo.o: ../../core/user.h ../../core/timezone.h ../../core/group.h ticketinfo.o: ../../core/user.h ../../core/group.h ../../core/dircontainer.h
ticketinfo.o: ../../core/dircontainer.h ../../core/ugcontainer.h ticketinfo.o: ../../core/ugcontainer.h ../../core/log.h
ticketinfo.o: ../../core/log.h ../../core/textstream.h ticketinfo.o: ../../core/textstream.h ../../core/logmanipulators.h
ticketinfo.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h ticketinfo.o: ../../core/slog.h ../../core/cur.h ../../core/request.h
ticketinfo.o: ../../core/request.h ../../core/requesttypes.h ticketinfo.o: ../../core/requesttypes.h ../../core/error.h
ticketinfo.o: ../../core/error.h ../../core/config.h ticketinfo.o: ../../core/config.h ../../../pikotools/space/spaceparser.h
ticketinfo.o: ../../../pikotools/space/spaceparser.h
ticketinfo.o: ../../../pikotools/space/space.h ../../core/htmlfilter.h ticketinfo.o: ../../../pikotools/space/space.h ../../core/htmlfilter.h
ticketinfo.o: ../../templates/htmltextstream.h ../../core/textstream.h ticketinfo.o: ../../templates/htmltextstream.h ../../core/textstream.h
ticketinfo.o: ../../core/misc.h ../../core/session.h ../../core/user.h ticketinfo.o: ../../core/misc.h ../../core/session.h ../../core/user.h
@ -409,17 +407,17 @@ ticketinfo.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h
ticketinfo.o: ../../core/users.h ../../core/groups.h ../../core/group.h ticketinfo.o: ../../core/users.h ../../core/groups.h ../../core/group.h
ticketinfo.o: ../../core/loadavg.h ../../core/image.h ticketinfo.o: ../../core/loadavg.h ../../core/image.h
ticketinfo.o: ../../core/threadmanager.h ../../core/timezones.h ticketinfo.o: ../../core/threadmanager.h ../../core/timezones.h
ticketinfo.o: ../../functions/functions.h ../../functions/functionbase.h ticketinfo.o: ../../core/timezone.h ../../functions/functions.h
ticketinfo.o: ../../functions/functionparser.h ../../core/cur.h ticketinfo.o: ../../functions/functionbase.h ../../functions/functionparser.h
ticketinfo.o: ../../functions/adduser.h ../../functions/cat.h ticketinfo.o: ../../core/cur.h ../../functions/adduser.h
ticketinfo.o: ../../functions/chmod.h ../../functions/privchanger.h ticketinfo.o: ../../functions/cat.h ../../functions/chmod.h
ticketinfo.o: ../../core/request.h ../../functions/chown.h ticketinfo.o: ../../functions/privchanger.h ../../core/request.h
ticketinfo.o: ../../functions/ckeditor.h ../../functions/cp.h ticketinfo.o: ../../functions/chown.h ../../functions/ckeditor.h
ticketinfo.o: ../../functions/default.h ../../functions/download.h ticketinfo.o: ../../functions/cp.h ../../functions/default.h
ticketinfo.o: ../../functions/emacs.h ../../functions/env.h ticketinfo.o: ../../functions/download.h ../../functions/emacs.h
ticketinfo.o: ../../functions/last.h ../../functions/login.h ticketinfo.o: ../../functions/env.h ../../functions/last.h
ticketinfo.o: ../../functions/logout.h ../../functions/ln.h ticketinfo.o: ../../functions/login.h ../../functions/logout.h
ticketinfo.o: ../../functions/ls.h ../../functions/man.h ticketinfo.o: ../../functions/ln.h ../../functions/ls.h ../../functions/man.h
ticketinfo.o: ../../functions/meta.h ../../functions/mkdir.h ticketinfo.o: ../../functions/meta.h ../../functions/mkdir.h
ticketinfo.o: ../../functions/mv.h ../../functions/nicedit.h ticketinfo.o: ../../functions/mv.h ../../functions/nicedit.h
ticketinfo.o: ../../functions/node.h ../../functions/passwd.h ticketinfo.o: ../../functions/node.h ../../functions/passwd.h

File diff suppressed because it is too large Load Diff

View File

@ -10,16 +10,13 @@
#include <algorithm> #include <algorithm>
#include "locale.h" #include "locale.h"
#include "core/log.h" #include "core/log.h"
#include "core/misc.h"
#include "utf8/utf8.h" #include "utf8/utf8.h"
Locale::Locale() Locale::Locale()
{ {
locale_files.push_back(L"en");
loc_tab.resize(locale_files.size());
loc_tab_multi.resize(locale_files.size());
default_lang = 0; default_lang = 0;
current_lang = 0; current_lang = 0;
input_as_utf8 = false; input_as_utf8 = false;
@ -29,55 +26,75 @@ Locale::Locale()
void Locale::SetLocaleFiles(const std::vector<std::wstring> & files) void Locale::SetLocaleFiles(const std::vector<std::wstring> & files)
{ {
locale_files = files; locale_files = files;
if( locale_files.empty() )
locale_files.push_back(L"en");
loc_tab.resize(locale_files.size());
loc_tab_multi.resize(locale_files.size());
} }
void Locale::SetLocaleMaxId(size_t max_id)
void Locale::ReadFile(const char * dir, const char * dir_def, size_t lang, const char * file)
{ {
if( lang >= loc_tab.size() ) if( max_id > 1000 )
return; {
max_id = 1000;
log << log1 << "Locale: locale_max_id is too big (changed to 1000)" << logend;
}
loc_tab[lang].clear(); size_t old_size = locale_indices.size();
bool read = false; locale_indices.resize(max_id + 1);
if( dir_def && ReadFile(dir_def, lang, file) ) for(size_t i=old_size ; i<locale_indices.size() ; ++i)
read = true; locale_indices[i] = size_t(-1);
if( dir && ReadFile(dir, lang, file) )
read = true;
if( !read )
log << log1 << "Locale: can't open locale's file: " << file << logend;
} }
bool Locale::ReadFile(const char * dir, size_t lang, const char * file)
bool Locale::HasLanguage(size_t lang_id)
{
if( lang_id < locale_indices.size() )
return locale_indices[lang_id] < locale_tab.size();
return false;
}
void Locale::ReadFile(const char * dir, const char * dir_def, const char * file)
{
bool read = false;
temp_space.Clear();
if( dir_def && ReadFile(dir_def, file) )
read = true;
if( dir && ReadFile(dir, file) )
read = true;
if( read )
AddLocale(file);
else
log << log1 << "Locale: can't open locale's file: " << file << logend;
}
bool Locale::ReadFile(const char * dir, const char * file)
{ {
bool read = false; bool read = false;
file_name = dir; file_name = dir;
file_name += '/'; file_name += '/';
file_name += file; // !! dodac sprawdzenie poprawnosci nazwy pliku (czy nie zawiera specjalnych znakow) file_name += file;
loc_parser.SplitSingle(true); loc_parser.SplitSingle(true);
loc_parser.UTF8(input_as_utf8); loc_parser.UTF8(input_as_utf8);
loc_parser.SetSpace(space); loc_parser.SetSpace(temp_space);
PT::SpaceParser::Status status = loc_parser.Parse(file_name); PT::SpaceParser::Status status = loc_parser.Parse(file_name);
if( status == PT::SpaceParser::ok ) if( status == PT::SpaceParser::ok )
{ {
read = true; read = true;
AddLocale(lang);
log << log3 << "Locale: read locale from: " << file_name << logend; log << log3 << "Locale: read locale from: " << file_name << logend;
} }
else else
@ -91,22 +108,31 @@ return read;
void Locale::AddLocale(size_t lang) void Locale::AddLocale(const char * file)
{ {
PT::Space::TableSingle::iterator i = space.table_single.begin(); std::wstring * id_str = temp_space.GetValue(L"winix_locale_id");
for( ; i != space.table_single.end() ; ++i) if( !id_str )
loc_tab[lang][i->first] = i->second; {
log << log1 << "Locale: winix_locale_id field should be defined in locale file: "
<< file << " (skipping)" << logend;
return;
}
size_t id = (size_t)Tol(*id_str);
// lists if( id >= locale_indices.size() )
PT::Space::Table::iterator i2 = space.table.begin(); {
log << log1 << "Locale: locale identifier is greater than locale_max_id (skipping)" << logend;
return;
}
for( ; i2 != space.table.end() ; ++i2) locale_tab.push_back(temp_space);
loc_tab_multi[lang][i2->first] = i2->second; locale_indices[id] = locale_tab.size() - 1;
} }
void Locale::ReadSubstTable(const char * dir, const char * dir_def) void Locale::ReadSubstTable(const char * dir, const char * dir_def)
{ {
bool read = false; bool read = false;
@ -137,14 +163,15 @@ bool read = false;
loc_parser.SplitSingle(true); loc_parser.SplitSingle(true);
loc_parser.UTF8(input_as_utf8); loc_parser.UTF8(input_as_utf8);
loc_parser.SetSpace(temp_space);
if( loc_parser.Parse(file_name) == PT::SpaceParser::ok ) if( loc_parser.Parse(file_name) == PT::SpaceParser::ok )
{ {
read = true; read = true;
CreateSubstVector(subst_url, space.table_single[L"url_original"], space.table_single[L"url_changeto"]); CreateSubstVector(subst_url, temp_space.table_single[L"url_original"], temp_space.table_single[L"url_changeto"]);
CreateSubstVector(subst_smalllet, space.table_single[L"smallleters"], space.table_single[L"capitalics"]); CreateSubstVector(subst_smalllet, temp_space.table_single[L"smallleters"], temp_space.table_single[L"capitalics"]);
CreateSubstVector(subst_capitallet, space.table_single[L"capitalics"], space.table_single[L"smallleters"]); CreateSubstVector(subst_capitallet, temp_space.table_single[L"capitalics"], temp_space.table_single[L"smallleters"]);
CreateSubstSortVector(subst_sort, space.table[L"sort"]); CreateSubstSortVector(subst_sort, temp_space.table[L"sort"]);
log << log3 << "Locale: read characters substitution tables from: " << file_name << logend; log << log3 << "Locale: read characters substitution tables from: " << file_name << logend;
} }
@ -206,10 +233,15 @@ void Locale::CreateSubstSortVector(std::vector<SubstItem> & vect, std::vector<st
void Locale::Read(const char * dir, const char * dir_def) void Locale::Read(const char * dir, const char * dir_def)
{ {
locale_tab.clear();
for(size_t i=0 ; i<locale_indices.size() ; ++i)
locale_indices[i] = size_t(-1);
for(size_t i=0 ; i<locale_files.size() ; ++i) for(size_t i=0 ; i<locale_files.size() ; ++i)
{ {
PT::WideToUTF8(locale_files[i], locale_filea); PT::WideToUTF8(locale_files[i], locale_filea);
ReadFile(dir, dir_def, i, locale_filea.c_str()); ReadFile(dir, dir_def, locale_filea.c_str());
} }
ReadSubstTable(dir, dir_def); ReadSubstTable(dir, dir_def);
@ -250,37 +282,27 @@ void Locale::Read(const std::wstring & dir, const std::wstring & dir_def)
} }
size_t Locale::Size() const
void Locale::SetCurLang(size_t lang_id)
{ {
return loc_tab.size(); current_lang = lang_id;
} }
void Locale::SetLang(size_t lang) size_t Locale::GetCurLang() const
{
current_lang = lang;
if( current_lang >= loc_tab.size() )
current_lang = loc_tab.size() - 1;
}
size_t Locale::GetLang() const
{ {
return current_lang; return current_lang;
} }
void Locale::SetDefLang(size_t lang_id)
void Locale::SetLangDef(size_t lang)
{ {
default_lang = lang; default_lang = lang_id;
if( default_lang >= loc_tab.size() )
default_lang = loc_tab.size() - 1;
} }
size_t Locale::GetLangDef() const
size_t Locale::GetDefLang() const
{ {
return default_lang; return default_lang;
} }
@ -293,10 +315,10 @@ bool Locale::IsKey(const wchar_t * key)
} }
bool Locale::IsKey(const wchar_t * key, size_t lang) bool Locale::IsKey(const wchar_t * key, size_t lang_id)
{ {
key_str = key; key_str = key;
return IsKey(key_str, lang); return IsKey(key_str, lang_id);
} }
@ -307,32 +329,31 @@ bool Locale::IsKey(const std::wstring & key) const
} }
bool Locale::IsKey(const std::wstring & key, size_t lang) const const std::wstring * Locale::GetKeyInLanguage(const std::wstring & key, size_t lang_id) const
{ {
if( lang >= loc_tab.size() ) if( lang_id < locale_indices.size() )
return false; {
size_t index = locale_indices[lang_id];
if( index < locale_tab.size() )
return locale_tab[index].GetValue(key);
}
return 0;
}
bool Locale::IsKey(const std::wstring & key, size_t lang_id) const
{
const std::wstring * value = GetKeyInLanguage(key, lang_id);
// looking in the 'lang' language if( value )
PT::Space::TableSingle::const_iterator i = loc_tab[lang].find(key);
if( i != loc_tab[lang].end() )
return true; return true;
if( lang == default_lang ) if( lang_id == default_lang )
return false; return false;
return GetKeyInLanguage(key, default_lang) != 0;
if( default_lang >= loc_tab.size() )
return false;
// looking in a default language
i = loc_tab[default_lang].find(key);
if( i != loc_tab[default_lang].end() )
return true;
// there is no such a key
return false;
} }
@ -343,19 +364,12 @@ bool Locale::IsKeyLang(const wchar_t * key, size_t lang)
} }
bool Locale::IsKeyLang(const std::wstring & key, size_t lang) const bool Locale::IsKeyLang(const std::wstring & key, size_t lang_id) const
{ {
if( lang >= loc_tab.size() ) return GetKeyInLanguage(key, lang_id) != 0;
return false;
// looking in the 'lang' language
PT::Space::TableSingle::const_iterator i = loc_tab[lang].find(key);
return i != loc_tab[lang].end();
} }
const std::wstring & Locale::Get(const wchar_t * key) const std::wstring & Locale::Get(const wchar_t * key)
{ {
key_str = key; key_str = key;
@ -363,10 +377,10 @@ const std::wstring & Locale::Get(const wchar_t * key)
} }
const std::wstring & Locale::Get(const wchar_t * key, size_t lang) const std::wstring & Locale::Get(const wchar_t * key, size_t lang_id)
{ {
key_str = key; key_str = key;
return Get(key_str, lang); return Get(key_str, lang_id);
} }
@ -378,52 +392,36 @@ const std::wstring & Locale::Get(const std::wstring & key) const
const std::wstring & Locale::Get(const std::wstring & key, size_t lang) const const std::wstring & Locale::Get(const std::wstring & key, size_t lang_id) const
{ {
if( lang >= loc_tab.size() ) const std::wstring * value = GetKeyInLanguage(key, lang_id);
return empty;
if( value )
return *value;
// looking in the 'lang' language if( lang_id == default_lang )
PT::Space::TableSingle::const_iterator i = loc_tab[lang].find(key);
if( i != loc_tab[lang].end() )
return i->second;
if( lang == default_lang )
return empty; return empty;
value = GetKeyInLanguage(key, default_lang);
if( default_lang >= loc_tab.size() ) if( value )
return empty; return *value;
// looking in a default language return empty;
i = loc_tab[default_lang].find(key);
if( i != loc_tab[default_lang].end() )
return i->second;
// there is no such a key
return empty;
} }
bool Locale::IsKeyLangList(const wchar_t * key, size_t lang) bool Locale::IsKeyLangList(const wchar_t * key, size_t lang_id)
{ {
key_str = key; key_str = key;
return IsKeyLangList(key_str, lang); return IsKeyLangList(key_str, lang_id);
} }
bool Locale::IsKeyLangList(const std::wstring & key, size_t lang) const bool Locale::IsKeyLangList(const std::wstring & key, size_t lang_id) const
{ {
if( lang >= loc_tab_multi.size() ) return GetListInLanguage(key, lang_id) != 0;
return false;
// looking in the 'lang' language
PT::Space::Table::const_iterator i = loc_tab_multi[lang].find(key);
return i != loc_tab_multi[lang].end();
} }
@ -433,56 +431,88 @@ const std::vector<std::wstring> & Locale::GetList(const std::wstring & key) cons
} }
const std::vector<std::wstring> & Locale::GetList(const std::wstring & key, size_t lang) const
const std::vector<std::wstring> * Locale::GetListInLanguage(const std::wstring & key, size_t lang_id) const
{ {
if( lang >= loc_tab_multi.size() ) if( lang_id < locale_indices.size() )
{
size_t index = locale_indices[lang_id];
if( index < locale_tab.size() )
{
PT::Space::Table::const_iterator i = locale_tab[index].table.find(key);
if( i != locale_tab[index].table.end() )
return &i->second;
}
}
return 0;
}
const std::vector<std::wstring> & Locale::GetList(const std::wstring & key, size_t lang_id) const
{
const std::vector<std::wstring> * list = GetListInLanguage(key, lang_id);
if( list )
return *list;
if( lang_id == default_lang )
return empty_list; return empty_list;
// looking in the 'lang' language list = GetListInLanguage(key, default_lang);
PT::Space::Table::const_iterator i = loc_tab_multi[lang].find(key);
if( i != loc_tab_multi[lang].end() ) if( list )
return i->second; return *list;
if( lang == default_lang ) return empty_list;
return empty_list;
if( default_lang >= loc_tab_multi.size() )
return empty_list;
// looking in a default language
i = loc_tab_multi[default_lang].find(key);
if( i != loc_tab_multi[default_lang].end() )
return i->second;
// there is no such a key
return empty_list;
} }
size_t Locale::FileNameToLang(const std::wstring & str) const
size_t Locale::IdToIndex(size_t lang_id)
{ {
for(size_t i=0 ; i<locale_files.size() ; ++i) if( lang_id < locale_indices.size() )
return locale_indices[lang_id]; // here can be size(-1) as well
return size_t(-1);
}
size_t Locale::Size() const
{
return locale_tab.size();
}
const std::wstring & Locale::GetByIndex(const wchar_t * key, size_t index)
{
key_str = key;
return GetByIndex(key_str, index);
}
const std::wstring & Locale::GetByIndex(const std::wstring & key, size_t index) const
{
if( index < locale_tab.size() )
{ {
if( locale_files[i] == str ) const std::wstring * value = locale_tab[index].GetValue(key);
return i;
if( value )
return *value;
} }
// we have at least one item "en" return empty;
return 0;
} }
const std::wstring & Locale::LangToFileName(size_t lang) const
{
if( lang >=locale_files.size() )
return empty;
return locale_files[lang];
}
@ -492,6 +522,7 @@ void Locale::UTF8(bool utf)
} }
/* /*
binary search in vect binary search in vect
vect should be sorted by 'from' vect should be sorted by 'from'

View File

@ -27,6 +27,11 @@ public:
// default one item: en // default one item: en
void SetLocaleFiles(const std::vector<std::wstring> & files); void SetLocaleFiles(const std::vector<std::wstring> & files);
// preparing locale_indices table
// if you change this values you should reload all locale files
void SetLocaleMaxId(size_t max_id);
// reading locales // reading locales
// you should call SetLocaleFiles() beforehand // you should call SetLocaleFiles() beforehand
void Read(const char * dir, const char * dir_def = 0); void Read(const char * dir, const char * dir_def = 0);
@ -34,57 +39,67 @@ public:
void Read(const wchar_t * dir, const wchar_t * dir_def = 0); void Read(const wchar_t * dir, const wchar_t * dir_def = 0);
void Read(const std::wstring & dir, const std::wstring & dir_def); void Read(const std::wstring & dir, const std::wstring & dir_def);
// returns true if a language with lang_id exists
bool HasLanguage(size_t lang_id);
// checking whether there is a 'key' in the current language (or in 'lang' language) // checking whether there is a 'key' in the current language (or in 'lang' language)
bool IsKey(const wchar_t * key); bool IsKey(const wchar_t * key);
bool IsKey(const wchar_t * key, size_t lang); bool IsKey(const wchar_t * key, size_t lang_id);
bool IsKey(const std::wstring & key) const; bool IsKey(const std::wstring & key) const;
bool IsKey(const std::wstring & key, size_t lang) const; bool IsKey(const std::wstring & key, size_t lang_id) const;
// checking whether there is a 'key' in the lang language // checking whether there is a 'key' in the lang language
// (default language is not checked) // (default language is not checked)
bool IsKeyLang(const wchar_t * key, size_t lang); bool IsKeyLang(const wchar_t * key, size_t lang_id);
bool IsKeyLang(const std::wstring & key, size_t lang) const; bool IsKeyLang(const std::wstring & key, size_t lang_id) const;
// returning specific 'key' // returning specific 'key'
const std::wstring & Get(const wchar_t * key); const std::wstring & Get(const wchar_t * key);
const std::wstring & Get(const wchar_t * key, size_t lang); const std::wstring & Get(const wchar_t * key, size_t lang_id);
const std::wstring & Get(const std::wstring & key) const; const std::wstring & Get(const std::wstring & key) const;
const std::wstring & Get(const std::wstring & key, size_t lang) const; const std::wstring & Get(const std::wstring & key, size_t lang_id) const;
/* // lists
lists bool IsKeyLangList(const wchar_t * key, size_t lang_id);
*/ bool IsKeyLangList(const std::wstring & key, size_t lang_id) const;
// checking whether there is a 'key' in the lang language
// (default language is not checked)
bool IsKeyLangList(const wchar_t * key, size_t lang);
bool IsKeyLangList(const std::wstring & key, size_t lang) const;
const std::vector<std::wstring> & GetList(const std::wstring & key) const; const std::vector<std::wstring> & GetList(const std::wstring & key) const;
const std::vector<std::wstring> & GetList(const std::wstring & key, size_t lang) const; const std::vector<std::wstring> & GetList(const std::wstring & key, size_t lang_id) const;
// setting/getting current language // setting/getting current language
// default: 0 // default: 0
void SetLang(size_t lang); void SetCurLang(size_t lang_id);
size_t GetLang() const; size_t GetCurLang() const;
// which language is used instead if there is no a key in an other language // which language is used instead of if there is no a key in an other language
// default: 0 // default: 0
void SetLangDef(size_t lang); void SetDefLang(size_t lang_id);
size_t GetLangDef() const; size_t GetDefLang() const;
// return an index of a language file's name
// those set by SetLocaleFiles()
// or 0 if there is no such a file name
size_t FileNameToLang(const std::wstring & str) const;
// return a file name for the 'lang'
const std::wstring & LangToFileName(size_t lang) const;
// converting lang_id to an internal index
// returns an index from <0, Size()-1> or size_t(-1) if lang_id is incorrect
// it does it in O(1) time
size_t IdToIndex(size_t lang_id);
// returning how many locale files (languages) there are // returning how many locale files (languages) there are
// this is how many files were correctly parsed
// this is size of locale_tab table
size_t Size() const; size_t Size() const;
// accessing by an internal index
// internal index is from zero to Size()-1
const std::wstring & GetByIndex(const wchar_t * key, size_t index);
const std::wstring & GetByIndex(const std::wstring & key, size_t index) const;
// it sets whether we should parse locale files as utf-8 files // it sets whether we should parse locale files as utf-8 files
// default: false // default: false
void UTF8(bool utf); void UTF8(bool utf);
@ -104,8 +119,11 @@ public:
int Compare(wchar_t c1, wchar_t c2); int Compare(wchar_t c1, wchar_t c2);
int Compare(const std::wstring & str1, const std::wstring & str2); int Compare(const std::wstring & str1, const std::wstring & str2);
private: private:
// struct to used for substitution // struct to used for substitution
struct SubstItem struct SubstItem
{ {
@ -116,36 +134,45 @@ private:
bool operator<(const SubstItem & arg) const { return from < arg.from; } bool operator<(const SubstItem & arg) const { return from < arg.from; }
}; };
void AddLocale(size_t lang); void AddLocale(const char * file);
void ReadFile(const char * dir, const char * dir_def, size_t lang, const char * file); void ReadFile(const char * dir, const char * dir_def, const char * file);
bool ReadFile(const char * dir, size_t lang, const char * file); bool ReadFile(const char * dir, const char * file);
void ReadSubstTable(const char * dir, const char * dir_def); void ReadSubstTable(const char * dir, const char * dir_def);
bool ReadSubstTable(const char * dir); bool ReadSubstTable(const char * dir);
void CreateSubstVector(std::vector<SubstItem> & vect, const std::wstring & tab1, const std::wstring & tab2); void CreateSubstVector(std::vector<SubstItem> & vect, const std::wstring & tab1, const std::wstring & tab2);
void CreateSubstSortVector(std::vector<SubstItem> & vect, std::vector<std::wstring> & tab); void CreateSubstSortVector(std::vector<SubstItem> & vect, std::vector<std::wstring> & tab);
size_t SubstFindIndex(const std::vector<SubstItem> & vect, wchar_t val); size_t SubstFindIndex(const std::vector<SubstItem> & vect, wchar_t val);
wchar_t SubstFind(const std::vector<SubstItem> & vect, wchar_t val); wchar_t SubstFind(const std::vector<SubstItem> & vect, wchar_t val);
const std::wstring * GetKeyInLanguage(const std::wstring & key, size_t lang_id) const;
const std::vector<std::wstring> * GetListInLanguage(const std::wstring & key, size_t lang_id) const;
// locale files // locale files
// we have at least one item "en"
std::vector<std::wstring> locale_files; std::vector<std::wstring> locale_files;
// messages vector<via language> // a map from <0, config->locale_max_id> returning an index to
// this table has the same size as locale_files (at least one item) // locale_tab table (you should check whether the index is correct)
std::vector<PT::Space::TableSingle> loc_tab; // with this we have O(1) time to find the specified locale
// and locale_tab doesn't have to be so large
std::vector<size_t> locale_indices;
// messages vector<via language> // messages vector<via language>
// this table has the same size as locale_files (at least one item) std::vector<PT::Space> locale_tab;
std::vector<PT::Space::Table> loc_tab_multi;
// default locale index (index to locale_indexes)
size_t default_lang;
// current locale index (index to locale_indexes)
size_t current_lang;
// vectors of characters substitution (sort by 'from') // vectors of characters substitution (sort by 'from')
std::vector<SubstItem> subst_url; std::vector<SubstItem> subst_url; // for url substitution
std::vector<SubstItem> subst_smalllet; // changing from small to capital std::vector<SubstItem> subst_smalllet; // changing from small to capital
std::vector<SubstItem> subst_capitallet; // changing from capital to small std::vector<SubstItem> subst_capitallet; // changing from capital to small
std::vector<SubstItem> subst_sort; // local characters for comparison std::vector<SubstItem> subst_sort; // local characters for comparison
PT::Space space; PT::Space temp_space;
PT::SpaceParser loc_parser; PT::SpaceParser loc_parser;
std::string locale_filea; std::string locale_filea;
std::string file_name; std::string file_name;
@ -153,8 +180,6 @@ private:
const std::wstring empty; // used when returning a non existing key from loc_tab (or in LangToFileName) const std::wstring empty; // used when returning a non existing key from loc_tab (or in LangToFileName)
const std::vector<std::wstring> empty_list; // the same as above const std::vector<std::wstring> empty_list; // the same as above
std::string adir1, adir2; std::string adir1, adir2;
size_t default_lang; // index to loc_tab
size_t current_lang; // index to loc_tab
bool input_as_utf8; bool input_as_utf8;
}; };

View File

@ -2,7 +2,7 @@
* This file is a part of Winix * This file is a part of Winix
* and is not publicly distributed * and is not publicly distributed
* *
* Copyright (c) 2010, Tomasz Sowa * Copyright (c) 2010-2012, Tomasz Sowa
* All rights reserved. * All rights reserved.
* *
*/ */
@ -35,35 +35,6 @@ void LocaleFilter::ReadKey()
} }
std::wstring & LocaleFilter::FilterValue(const std::wstring & in)
{
value.clear();
const wchar_t * p = in.c_str();
while( *p )
{
if( *p == '\\' && (*(p+1) == 'n') )
{
value += '\n';
p += 2;
}
else
if( *p == '\\' && (*(p+1) == '\\') )
{
value += '\\';
p += 2;
}
else
{
value += *p;
p += 1;
}
}
return value;
}
void LocaleFilter::Parse(std::wstring & str) void LocaleFilter::Parse(std::wstring & str)
{ {
@ -76,7 +47,7 @@ void LocaleFilter::Parse(std::wstring & str)
{ {
++pchar; ++pchar;
ReadKey(); ReadKey();
res += FilterValue(plocale->Get(key, lang)); res += plocale->GetByIndex(key, lang);
} }
else else
if( *pchar == '\\' && (*(pchar+1) == open_mark || *(pchar+1) == closing_mark || *(pchar+1) == '\\') ) if( *pchar == '\\' && (*(pchar+1) == open_mark || *(pchar+1) == closing_mark || *(pchar+1) == '\\') )
@ -96,7 +67,6 @@ void LocaleFilter::Parse(std::wstring & str)
void LocaleFilter::FilterText(Ezc::Item & item) void LocaleFilter::FilterText(Ezc::Item & item)
{ {
if( !item.text.empty() ) if( !item.text.empty() )
@ -110,10 +80,10 @@ void LocaleFilter::FilterText(Ezc::Item & item)
void LocaleFilter::Filter(Ezc::Pattern & pattern, const Locale & locale, size_t lang_) void LocaleFilter::Filter(Ezc::Pattern & pattern, const Locale & locale, size_t lang_index)
{ {
plocale = &locale; plocale = &locale;
lang = lang_; lang = lang_index;
FilterText( pattern.item_root ); FilterText( pattern.item_root );
} }

View File

@ -2,7 +2,7 @@
* This file is a part of Winix * This file is a part of Winix
* and is not publicly distributed * and is not publicly distributed
* *
* Copyright (c) 2010, Tomasz Sowa * Copyright (c) 2010-2012, Tomasz Sowa
* All rights reserved. * All rights reserved.
* *
*/ */
@ -21,11 +21,12 @@ class LocaleFilter
public: public:
LocaleFilter(); LocaleFilter();
void Filter(Ezc::Pattern & pattern, const Locale & locale, size_t lang_);
// lang_index is an internal index from Locale <0, Size()-1>
void Filter(Ezc::Pattern & pattern, const Locale & locale, size_t lang_index);
private: private:
void ReadKey(); void ReadKey();
std::wstring & FilterValue(const std::wstring & in);
void FilterText(Ezc::Item & item); void FilterText(Ezc::Item & item);
void Parse(std::wstring & str); void Parse(std::wstring & str);

View File

@ -2,7 +2,7 @@
* This file is a part of Winix * This file is a part of Winix
* and is not publicly distributed * and is not publicly distributed
* *
* Copyright (c) 2011, Tomasz Sowa * Copyright (c) 2011-2012, Tomasz Sowa
* All rights reserved. * All rights reserved.
* *
*/ */
@ -115,12 +115,17 @@ void Patterns::ReadPatterns(Template & templ)
Ezc::Pattern * Patterns::Get(size_t index, size_t lang) Ezc::Pattern * Patterns::Get(size_t index, size_t lang_id)
{ {
if( index >= pat_tab.size() || pat_tab[index].references == 0 || lang >= pat_tab[index].patterns.size() ) if( index >= pat_tab.size() || pat_tab[index].references == 0 )
return 0; return 0;
return &pat_tab[index].patterns[lang]; size_t lang_index = locale->IdToIndex(lang_id);
if( lang_index >= pat_tab[index].patterns.size() )
return 0;
return &pat_tab[index].patterns[lang_index];
} }
@ -149,7 +154,7 @@ void Patterns::Clear()
void Patterns::Erase(size_t index) void Patterns::Erase(size_t index)
{ {
if( index < pat_tab.size() ) if( index < pat_tab.size() && pat_tab[index].references > 0 )
{ {
pat_tab[index].references -= 1; pat_tab[index].references -= 1;
@ -160,7 +165,7 @@ void Patterns::Erase(size_t index)
pat_tab[index].file_name.clear(); pat_tab[index].file_name.clear();
pat_tab[index].patterns.clear(); pat_tab[index].patterns.clear();
// don't erase pat_tab.erase() here // don't erase pat_tab.erase() here
// because indexes would be invalidated // because indices would be invalidated
// those gaps will be cleared when Clear() method is called // those gaps will be cleared when Clear() method is called
// normally in reload/templates winix function // normally in reload/templates winix function
} }

View File

@ -2,7 +2,7 @@
* This file is a part of Winix * This file is a part of Winix
* and is not publicly distributed * and is not publicly distributed
* *
* Copyright (c) 2011, Tomasz Sowa * Copyright (c) 2011-2012, Tomasz Sowa
* All rights reserved. * All rights reserved.
* *
*/ */
@ -58,7 +58,7 @@ public:
returning a pattern (if exists) returning a pattern (if exists)
if the pattern does not exist return a null pointer if the pattern does not exist return a null pointer
*/ */
Ezc::Pattern * Get(size_t index, size_t lang); Ezc::Pattern * Get(size_t index, size_t lang_id);
/* /*
@ -110,7 +110,9 @@ private:
bool to_delete; bool to_delete;
std::wstring file_name; std::wstring file_name;
size_t references; // starts from 1 (zero means the pattern was deleted) size_t references; // starts from 1 (zero means the pattern was deleted)
std::vector<Ezc::Pattern> patterns; // table[lang] // (we do not delete the Template immediately because
// indices would be invalidated)
std::vector<Ezc::Pattern> patterns; // table[through lang index]
}; };
typedef std::vector<Template> PatTab; typedef std::vector<Template> PatTab;

View File

@ -72,12 +72,12 @@ static std::wstring fun_file;
fun_file += cur->request->function->fun.url; fun_file += cur->request->function->fun.url;
fun_file += config->templates_fun_postfix; fun_file += config->templates_fun_postfix;
Ezc::Pattern * p = change_patterns.Get(cur->mount->dir_id, fun_file, locale.GetLang()); Ezc::Pattern * p = change_patterns.Get(cur->mount->dir_id, fun_file, locale.GetCurLang());
if( p ) if( p )
return p; return p;
return patterns.Get(cur->request->function->template_index, locale.GetLang()); return patterns.Get(cur->request->function->template_index, locale.GetCurLang());
} }
@ -99,14 +99,14 @@ Ezc::Pattern * p = 0;
case WINIX_ERR_CANT_CHANGE_GROUP: case WINIX_ERR_CANT_CHANGE_GROUP:
case WINIX_ERR_CANT_CHANGE_PRIVILEGES: case WINIX_ERR_CANT_CHANGE_PRIVILEGES:
// !! locale.GetLang() bedzie brane indywidualnie dla kazdego uzytkownika // !! locale.GetLang() bedzie brane indywidualnie dla kazdego uzytkownika
p = patterns.Get(pat_err_per_denied, locale.GetLang()); p = patterns.Get(pat_err_per_denied, locale.GetCurLang());
break; break;
case WINIX_ERR_NO_ITEM: case WINIX_ERR_NO_ITEM:
case WINIX_ERR_NO_FUNCTION: case WINIX_ERR_NO_FUNCTION:
case WINIX_ERR_UNKNOWN_PARAM: case WINIX_ERR_UNKNOWN_PARAM:
// !! locale.GetLang() bedzie brane indywidualnie dla kazdego uzytkownika // !! locale.GetLang() bedzie brane indywidualnie dla kazdego uzytkownika
p = patterns.Get(pat_err_404, locale.GetLang()); p = patterns.Get(pat_err_404, locale.GetCurLang());
break; break;
//default: //default:
@ -507,6 +507,13 @@ void Templates::CreateFunctions()
ezc_functions.Insert("user_can_use_html", user_can_use_html); ezc_functions.Insert("user_can_use_html", user_can_use_html);
ezc_functions.Insert("user_can_use_bbcode", user_can_use_bbcode); ezc_functions.Insert("user_can_use_bbcode", user_can_use_bbcode);
ezc_functions.Insert("user_can_use_raw", user_can_use_raw); ezc_functions.Insert("user_can_use_raw", user_can_use_raw);
ezc_functions.Insert("user_has_correct_time_zone",user_has_correct_time_zone);
ezc_functions.Insert("user_time_zone_name", user_time_zone_name);
ezc_functions.Insert("user_time_zone_id", user_time_zone_id);
ezc_functions.Insert("user_time_zone_offset_hour_min", user_time_zone_offset_hour_min);
ezc_functions.Insert("user_has_correct_locale", user_has_correct_locale);
ezc_functions.Insert("user_locale_name", user_locale_name);
ezc_functions.Insert("user_locale_id", user_locale_id);
ezc_functions.Insert("user_tab", user_tab); ezc_functions.Insert("user_tab", user_tab);
ezc_functions.Insert("user_tab_index", user_tab_index); ezc_functions.Insert("user_tab_index", user_tab_index);
ezc_functions.Insert("user_tab_id", user_tab_id); ezc_functions.Insert("user_tab_id", user_tab_id);
@ -573,11 +580,9 @@ void Templates::CreateFunctions()
ezc_functions.Insert("winix_tz_tab_name", winix_tz_tab_name); ezc_functions.Insert("winix_tz_tab_name", winix_tz_tab_name);
ezc_functions.Insert("winix_tz_tab_offset_sec", winix_tz_tab_offset_sec); ezc_functions.Insert("winix_tz_tab_offset_sec", winix_tz_tab_offset_sec);
ezc_functions.Insert("winix_tz_tab_offset_hour_min", winix_tz_tab_offset_hour_min); ezc_functions.Insert("winix_tz_tab_offset_hour_min", winix_tz_tab_offset_hour_min);
ezc_functions.Insert("winix_tz_tab_has_dst", winix_tz_tab_has_dst); ezc_functions.Insert("winix_locale_tab", winix_locale_tab);
ezc_functions.Insert("winix_tz_tab_dst_offset_sec", winix_tz_tab_dst_offset_sec); ezc_functions.Insert("winix_locale_tab_id", winix_locale_tab_id);
ezc_functions.Insert("winix_tz_tab_dst_offset_hour_min", winix_tz_tab_dst_offset_hour_min); ezc_functions.Insert("winix_locale_tab_name", winix_locale_tab_name);
ezc_functions.Insert("winix_tz_tab_dst_start", winix_tz_tab_dst_start);
ezc_functions.Insert("winix_tz_tab_dst_end", winix_tz_tab_dst_end);
/* /*
@ -612,9 +617,8 @@ using namespace TemplatesFunctions;
locale.UTF8(config->utf8); locale.UTF8(config->utf8);
locale.SetLocaleFiles(config->locale_files); locale.SetLocaleFiles(config->locale_files);
// !! tutaj nie potrzeba ustawiac locali SetLang/SetLangDef (nie odczytujemy kluczy) locale.SetLocaleMaxId(config->locale_max_id);
locale.SetLang(config->locale_default_index); // !! w przyszlosci locale beda ustawiane dla kazdego uzytkownika osobno locale.SetDefLang(config->locale_default_id);
locale.SetLangDef(config->locale_default_index);
locale.Read(config->locale_dir, config->locale_dir_default); locale.Read(config->locale_dir, config->locale_dir_default);
log << log3 << "Templates: there are " << locale.Size() << " locales" << logend; log << log3 << "Templates: there are " << locale.Size() << " locales" << logend;
@ -682,6 +686,8 @@ using namespace TemplatesFunctions;
// !! IMPROVE ME
// we need such a html filter for each language (orphans are different in each language)
void Templates::SetHtmlFilter() void Templates::SetHtmlFilter()
{ {
using namespace TemplatesFunctions; using namespace TemplatesFunctions;
@ -701,6 +707,9 @@ using namespace TemplatesFunctions;
if( locale.IsKeyLang(L"html_lang_attr_value", i) && if( locale.IsKeyLang(L"html_lang_attr_value", i) &&
locale.IsKeyLangList(L"language_orphans", i) ) locale.IsKeyLangList(L"language_orphans", i) )
{ {
// !! FIX ME
// this is not the proper index
// we should use locale.GetByIndex() instead
html_filter.AssignOrphans(locale.Get(L"html_lang_attr_value", i), html_filter.AssignOrphans(locale.Get(L"html_lang_attr_value", i),
locale.GetList(L"language_orphans", i)); locale.GetList(L"language_orphans", i));
} }
@ -835,7 +844,7 @@ using namespace TemplatesFunctions;
} }
if( index_file_local && *index_file_local != config->templates_index ) if( index_file_local && *index_file_local != config->templates_index )
index = index_patterns.Get(*index_file_local, locale.GetLang()); index = index_patterns.Get(*index_file_local, locale.GetCurLang());
return index; return index;
} }
@ -851,18 +860,18 @@ using namespace TemplatesFunctions;
Ezc::Pattern * index = 0; Ezc::Pattern * index = 0;
if( cur->request->IsParam(L"rawcontent") ) if( cur->request->IsParam(L"rawcontent") )
index = patterns.Get(pat_index_rawcontent, locale.GetLang()); index = patterns.Get(pat_index_rawcontent, locale.GetCurLang());
else else
if( cur->request->IsParam(L"fullscreen") ) if( cur->request->IsParam(L"fullscreen") )
index = patterns.Get(pat_index_fullscreen, locale.GetLang()); index = patterns.Get(pat_index_fullscreen, locale.GetCurLang());
else else
index = SelectIndexPatternFromItemAndMountPoint(); index = SelectIndexPatternFromItemAndMountPoint();
if( !index ) if( !index )
index = change_patterns.Get(cur->mount->dir_id, config->templates_index, locale.GetLang()); index = change_patterns.Get(cur->mount->dir_id, config->templates_index, locale.GetCurLang());
if( !index ) if( !index )
index = patterns.Get(pat_index, locale.GetLang());; index = patterns.Get(pat_index, locale.GetCurLang());;
return index; return index;
} }

View File

@ -425,6 +425,13 @@ namespace TemplatesFunctions
void user_can_use_html(Info & i); void user_can_use_html(Info & i);
void user_can_use_bbcode(Info & i); void user_can_use_bbcode(Info & i);
void user_can_use_raw(Info & i); void user_can_use_raw(Info & i);
void user_has_correct_time_zone(Info & i);
void user_time_zone_name(Info & i);
void user_time_zone_id(Info & i);
void user_time_zone_offset_hour_min(Info & i);
void user_has_correct_locale(Info & i);
void user_locale_name(Info & i);
void user_locale_id(Info & i);
void user_tab(Info & i); void user_tab(Info & i);
void user_tab_index(Info & i); void user_tab_index(Info & i);
void user_tab_id(Info & i); void user_tab_id(Info & i);
@ -491,11 +498,9 @@ namespace TemplatesFunctions
void winix_tz_tab_name(Info & i); void winix_tz_tab_name(Info & i);
void winix_tz_tab_offset_sec(Info & i); void winix_tz_tab_offset_sec(Info & i);
void winix_tz_tab_offset_hour_min(Info & i); void winix_tz_tab_offset_hour_min(Info & i);
void winix_tz_tab_has_dst(Info & i); void winix_locale_tab(Info & i);
void winix_tz_tab_dst_offset_sec(Info & i); void winix_locale_tab_id(Info & i);
void winix_tz_tab_dst_offset_hour_min(Info & i); void winix_locale_tab_name(Info & i);
void winix_tz_tab_dst_start(Info & i);
void winix_tz_tab_dst_end(Info & i);
/* /*

View File

@ -110,6 +110,79 @@ void user_can_use_raw(Info & i)
} }
void user_has_correct_time_zone(Info & i)
{
if( cur->session->puser )
i.res = system->time_zones.HasZone(cur->session->puser->time_zone_id);
}
void user_time_zone_name(Info & i)
{
if( cur->session->puser )
{
TimeZone * tz = system->time_zones.GetZone(cur->session->puser->time_zone_id);
if( tz )
i.out << locale.Get(tz->name);
}
}
void user_time_zone_id(Info & i)
{
if( cur->session->puser )
i.out << cur->session->puser->time_zone_id;
}
void user_time_zone_offset_hour_min(Info & i)
{
if( cur->session->puser )
{
TimeZone * tz = system->time_zones.GetZoneByIndex(cur->session->puser->time_zone_id);
if( tz )
{
time_t offset = tz->offset;
if( offset < 0 )
{
i.out << '-';
offset = -offset;
}
else
{
i.out << '+';
}
print_hour_min(i, offset);
}
}
}
void user_has_correct_locale(Info & i)
{
if( cur->session->puser )
i.res = locale.HasLanguage(cur->session->puser->locale_id);
}
void user_locale_name(Info & i)
{
if( cur->session->puser )
i.out << locale.Get(L"locale_name");
}
void user_locale_id(Info & i)
{
if( cur->session->puser )
i.out << cur->session->puser->locale_id;
}
static Users::Iterator user_iter; static Users::Iterator user_iter;

View File

@ -2,7 +2,7 @@
* This file is a part of Winix * This file is a part of Winix
* and is not publicly distributed * and is not publicly distributed
* *
* Copyright (c) 2008-2010, Tomasz Sowa * Copyright (c) 2008-2012, Tomasz Sowa
* All rights reserved. * All rights reserved.
* *
*/ */
@ -336,33 +336,38 @@ void winix_tz_tab(Info & i)
void winix_tz_tab_id(Info & i) void winix_tz_tab_id(Info & i)
{ {
if( tz_index < system->time_zones.Size() ) TimeZone * tz = system->time_zones.GetZoneByIndex(tz_index);
i.out << system->time_zones[tz_index].time_zone.tz_id;
if( tz )
i.out << tz->id;
} }
void winix_tz_tab_name(Info & i) void winix_tz_tab_name(Info & i)
{ {
if( tz_index < system->time_zones.Size() ) TimeZone * tz = system->time_zones.GetZoneByIndex(tz_index);
{
std::wstring & key = system->time_zones[tz_index].name_key; if( tz )
i.out << locale.Get(key); // !! IMPROVE ME which locale? i.out << locale.Get(tz->name);
}
} }
void winix_tz_tab_offset_sec(Info & i) void winix_tz_tab_offset_sec(Info & i)
{ {
if( tz_index < system->time_zones.Size() ) TimeZone * tz = system->time_zones.GetZoneByIndex(tz_index);
i.out << system->time_zones[tz_index].time_zone.tz_offset;
if( tz )
i.out << tz->offset;
} }
void winix_tz_tab_offset_hour_min(Info & i) void winix_tz_tab_offset_hour_min(Info & i)
{ {
if( tz_index < system->time_zones.Size() ) TimeZone * tz = system->time_zones.GetZoneByIndex(tz_index);
if( tz )
{ {
time_t offset = system->time_zones[tz_index].time_zone.tz_offset; time_t offset = tz->offset;
if( offset < 0 ) if( offset < 0 )
{ {
@ -379,65 +384,31 @@ void winix_tz_tab_offset_hour_min(Info & i)
} }
void winix_tz_tab_has_dst(Info & i)
static size_t locale_id;
void winix_locale_tab(Info & i)
{ {
if( tz_index < system->time_zones.Size() ) locale_id = i.iter;
i.res = system->time_zones[tz_index].time_zone.tz_has_dst; i.res = locale_id < locale.Size();
} }
void winix_tz_tab_dst_offset_sec(Info & i) void winix_locale_tab_id(Info & i)
{ {
if( tz_index < system->time_zones.Size() ) if( locale_id < locale.Size() )
i.out << system->time_zones[tz_index].time_zone.tz_dst_offset; i.out << Toi(locale.GetByIndex(L"winix_locale_id", locale_id));
} }
void winix_tz_tab_dst_offset_hour_min(Info & i) void winix_locale_tab_name(Info & i)
{ {
if( tz_index < system->time_zones.Size() ) if( locale_id < locale.Size() )
{ i.out << locale.GetByIndex(L"locale_name", locale_id);
time_t offset = system->time_zones[tz_index].time_zone.tz_dst_offset;
if( offset < 0 )
{
i.out << '-';
offset = -offset;
}
else
{
i.out << '+';
}
print_hour_min(i, offset);
}
} }
void winix_tz_tab_dst_start(Info & i)
{
if( tz_index < system->time_zones.Size() )
{
PT::Date & date = system->time_zones[tz_index].time_zone.tz_dst_start;
date.SerializeMonthDay(i.out);
i.out << ' ';
date.SerializeHourMin(i.out);
}
}
void winix_tz_tab_dst_end(Info & i)
{
if( tz_index < system->time_zones.Size() )
{
PT::Date & date = system->time_zones[tz_index].time_zone.tz_dst_end;
date.SerializeMonthDay(i.out);
i.out << ' ';
date.SerializeHourMin(i.out);
}
}
} // namespace } // namespace