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
app.o: app.h config.h ../../pikotools/space/spaceparser.h
app.o: ../../pikotools/space/space.h htmlfilter.h timezone.h
app.o: ../../pikotools/date/date.h ../../pikotools/space/space.h system.h
app.o: job.h basethread.h synchro.h dirs.h item.h dircontainer.h ../db/db.h
app.o: ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h
app.o: ../core/textstream.h misc.h requesttypes.h ../core/error.h
app.o: ../db/dbitemquery.h ../core/item.h ../db/dbitemcolumns.h
app.o: ../core/user.h ../core/group.h ../core/dircontainer.h
app.o: ../core/ugcontainer.h log.h textstream.h logmanipulators.h slog.h
app.o: cur.h request.h error.h ../templates/htmltextstream.h session.h user.h
app.o: plugindata.h rebus.h mount.h ../templates/locale.h ../notify/notify.h
app.o: ../../pikotools/space/space.h htmlfilter.h system.h job.h basethread.h
app.o: synchro.h ../../pikotools/space/space.h dirs.h item.h
app.o: ../../pikotools/date/date.h dircontainer.h ../db/db.h ../db/dbbase.h
app.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h misc.h
app.o: requesttypes.h ../core/error.h ../db/dbitemquery.h ../core/item.h
app.o: ../db/dbitemcolumns.h ../core/user.h ../core/group.h
app.o: ../core/dircontainer.h ../core/ugcontainer.h log.h textstream.h
app.o: logmanipulators.h slog.h cur.h request.h error.h
app.o: ../templates/htmltextstream.h session.h user.h plugindata.h rebus.h
app.o: mount.h ../templates/locale.h ../notify/notify.h
app.o: ../notify/notifypool.h ../templates/patterns.h ../templates/locale.h
app.o: ../templates/localefilter.h ../../ezc/src/ezc.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: 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: sessionmanager.h sessioncontainer.h ../functions/functions.h
app.o: ../functions/functionbase.h ../core/request.h ../core/system.h
app.o: ../core/synchro.h ../functions/functionparser.h ../core/cur.h
app.o: ../functions/adduser.h ../functions/cat.h ../functions/chmod.h
app.o: ../functions/privchanger.h ../functions/chown.h
app.o: timezone.h sessionmanager.h sessioncontainer.h
app.o: ../functions/functions.h ../functions/functionbase.h ../core/request.h
app.o: ../core/system.h ../core/synchro.h ../functions/functionparser.h
app.o: ../core/cur.h ../functions/adduser.h ../functions/cat.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/download.h ../functions/emacs.h ../functions/env.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: ../../pikotools/date/date.h error.h config.h
compress.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h
compress.o: htmlfilter.h timezone.h ../templates/htmltextstream.h
compress.o: ../core/textstream.h misc.h session.h user.h plugindata.h rebus.h
compress.o: mount.h ../templates/locale.h
compress.o: htmlfilter.h ../templates/htmltextstream.h ../core/textstream.h
compress.o: misc.h session.h user.h plugindata.h rebus.h mount.h
compress.o: ../templates/locale.h
config.o: config.h ../../pikotools/space/spaceparser.h
config.o: ../../pikotools/space/space.h htmlfilter.h timezone.h
config.o: ../../pikotools/date/date.h ../../pikotools/space/space.h log.h
config.o: textstream.h logmanipulators.h slog.h cur.h request.h
config.o: requesttypes.h item.h error.h ../templates/htmltextstream.h
config.o: ../core/textstream.h misc.h session.h user.h plugindata.h rebus.h
config.o: mount.h ../templates/locale.h plugin.h pluginmsg.h system.h job.h
config.o: basethread.h synchro.h dirs.h dircontainer.h ../db/db.h
config.o: ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h ../core/error.h
config.o: ../db/dbitemquery.h ../core/item.h ../db/dbitemcolumns.h
config.o: ../core/user.h ../core/group.h ../core/dircontainer.h
config.o: ../core/ugcontainer.h ../notify/notify.h ../notify/notifypool.h
config.o: ../templates/patterns.h ../templates/locale.h
config.o: ../templates/localefilter.h ../../ezc/src/ezc.h
config.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h
config.o: ../../ezc/src/functions.h ../../ezc/src/funinfo.h
config.o: ../../ezc/src/stringconv.h ../../pikotools/utf8/utf8.h
config.o: ../notify/notifythread.h ../core/basethread.h
config.o: ../notify/templatesnotify.h ../core/config.h ../core/users.h
config.o: ugcontainer.h lastcontainer.h mounts.h mountparser.h crypt.h run.h
config.o: users.h groups.h group.h loadavg.h image.h threadmanager.h
config.o: timezones.h sessionmanager.h sessioncontainer.h
config.o: ../functions/functions.h ../functions/functionbase.h
config.o: ../core/request.h ../core/system.h ../core/synchro.h
config.o: ../functions/functionparser.h ../core/cur.h ../functions/adduser.h
config.o: ../functions/cat.h ../functions/chmod.h ../functions/privchanger.h
config.o: ../functions/chown.h ../functions/ckeditor.h ../functions/cp.h
config.o: ../functions/default.h ../functions/download.h ../functions/emacs.h
config.o: ../functions/env.h ../functions/last.h ../functions/login.h
config.o: ../functions/logout.h ../functions/ln.h ../functions/ls.h
config.o: ../functions/man.h ../functions/meta.h ../functions/mkdir.h
config.o: ../functions/mv.h ../functions/nicedit.h ../functions/node.h
config.o: ../functions/passwd.h ../functions/priv.h ../functions/pw.h
config.o: ../functions/reload.h ../functions/rm.h ../functions/rmuser.h
config.o: ../functions/sort.h ../functions/specialdefault.h
config.o: ../functions/stat.h ../functions/subject.h ../functions/template.h
config.o: ../../pikotools/space/space.h htmlfilter.h log.h textstream.h
config.o: logmanipulators.h slog.h cur.h request.h requesttypes.h item.h
config.o: ../../pikotools/space/space.h ../../pikotools/date/date.h error.h
config.o: ../templates/htmltextstream.h ../core/textstream.h misc.h session.h
config.o: user.h plugindata.h rebus.h mount.h ../templates/locale.h plugin.h
config.o: pluginmsg.h system.h job.h basethread.h synchro.h dirs.h
config.o: dircontainer.h ../db/db.h ../db/dbbase.h ../db/dbconn.h
config.o: ../db/dbtextstream.h ../core/error.h ../db/dbitemquery.h
config.o: ../core/item.h ../db/dbitemcolumns.h ../core/user.h ../core/group.h
config.o: ../core/dircontainer.h ../core/ugcontainer.h ../notify/notify.h
config.o: ../notify/notifypool.h ../templates/patterns.h
config.o: ../templates/locale.h ../templates/localefilter.h
config.o: ../../ezc/src/ezc.h ../../ezc/src/generator.h
config.o: ../../ezc/src/pattern.h ../../ezc/src/functions.h
config.o: ../../ezc/src/funinfo.h ../../ezc/src/stringconv.h
config.o: ../../pikotools/utf8/utf8.h ../notify/notifythread.h
config.o: ../core/basethread.h ../notify/templatesnotify.h ../core/config.h
config.o: ../core/users.h ugcontainer.h lastcontainer.h mounts.h
config.o: mountparser.h crypt.h run.h users.h groups.h group.h loadavg.h
config.o: image.h threadmanager.h timezones.h timezone.h sessionmanager.h
config.o: sessioncontainer.h ../functions/functions.h
config.o: ../functions/functionbase.h ../core/request.h ../core/system.h
config.o: ../core/synchro.h ../functions/functionparser.h ../core/cur.h
config.o: ../functions/adduser.h ../functions/cat.h ../functions/chmod.h
config.o: ../functions/privchanger.h ../functions/chown.h
config.o: ../functions/ckeditor.h ../functions/cp.h ../functions/default.h
config.o: ../functions/download.h ../functions/emacs.h ../functions/env.h
config.o: ../functions/last.h ../functions/login.h ../functions/logout.h
config.o: ../functions/ln.h ../functions/ls.h ../functions/man.h
config.o: ../functions/meta.h ../functions/mkdir.h ../functions/mv.h
config.o: ../functions/nicedit.h ../functions/node.h ../functions/passwd.h
config.o: ../functions/priv.h ../functions/pw.h ../functions/reload.h
config.o: ../functions/rm.h ../functions/rmuser.h ../functions/sort.h
config.o: ../functions/specialdefault.h ../functions/stat.h
config.o: ../functions/subject.h ../functions/template.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: ../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/htmltextstream.h ../core/sessionmanager.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/date/date.h ../../pikotools/space/space.h user.h
crypt.o: ../../pikotools/utf8/utf8.h misc.h item.h requesttypes.h log.h
crypt.o: textstream.h logmanipulators.h slog.h cur.h request.h error.h
crypt.o: ../templates/htmltextstream.h ../core/textstream.h session.h
crypt.o: plugindata.h rebus.h mount.h ../templates/locale.h
crypt.o: ../../pikotools/space/space.h htmlfilter.h user.h
crypt.o: ../../pikotools/utf8/utf8.h misc.h item.h
crypt.o: ../../pikotools/space/space.h ../../pikotools/date/date.h
crypt.o: requesttypes.h log.h textstream.h logmanipulators.h slog.h cur.h
crypt.o: request.h error.h ../templates/htmltextstream.h ../core/textstream.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: ../../pikotools/date/date.h log.h textstream.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: ../../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: session.h user.h plugindata.h rebus.h mount.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: requesttypes.h ../core/error.h ../../pikotools/space/spaceparser.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: logmanipulators.h slog.h cur.h request.h error.h config.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: requesttypes.h ../core/error.h ../../pikotools/space/spaceparser.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: logmanipulators.h slog.h cur.h request.h error.h config.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/space/spaceparser.h ../../pikotools/space/space.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: error.h config.h htmlfilter.h ../templates/htmltextstream.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: 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: 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: ../core/request.h ../core/system.h ../core/synchro.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: misc.h requesttypes.h crypt.h run.h config.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: 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: 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: 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
@ -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: 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: sessionmanager.h sessioncontainer.h ../functions/functions.h
job.o: ../functions/functionbase.h ../core/request.h ../core/system.h
job.o: ../core/synchro.h ../functions/functionparser.h ../core/cur.h
job.o: ../functions/adduser.h ../functions/cat.h ../functions/chmod.h
job.o: ../functions/privchanger.h ../functions/chown.h
job.o: timezone.h sessionmanager.h sessioncontainer.h
job.o: ../functions/functions.h ../functions/functionbase.h ../core/request.h
job.o: ../core/system.h ../core/synchro.h ../functions/functionparser.h
job.o: ../core/cur.h ../functions/adduser.h ../functions/cat.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/download.h ../functions/emacs.h ../functions/env.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: requesttypes.h item.h ../../pikotools/space/space.h error.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: session.h user.h plugindata.h rebus.h mount.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: ../../pikotools/date/date.h error.h config.h
loadavg.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h
loadavg.o: htmlfilter.h timezone.h ../templates/htmltextstream.h
loadavg.o: ../core/textstream.h misc.h session.h user.h plugindata.h rebus.h
loadavg.o: mount.h ../templates/locale.h
loadavg.o: htmlfilter.h ../templates/htmltextstream.h ../core/textstream.h
loadavg.o: misc.h session.h user.h plugindata.h rebus.h mount.h
loadavg.o: ../templates/locale.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: ../../pikotools/date/date.h error.h config.h
log.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h
log.o: htmlfilter.h timezone.h ../templates/htmltextstream.h
log.o: ../core/textstream.h misc.h session.h user.h plugindata.h rebus.h
log.o: mount.h ../templates/locale.h ../../pikotools/utf8/utf8.h
log.o: htmlfilter.h ../templates/htmltextstream.h ../core/textstream.h misc.h
log.o: session.h user.h plugindata.h rebus.h mount.h ../templates/locale.h
log.o: ../../pikotools/utf8/utf8.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: logmanipulators.h slog.h cur.h request.h error.h config.h
misc.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h
misc.o: htmlfilter.h timezone.h ../templates/htmltextstream.h
misc.o: ../core/textstream.h session.h user.h plugindata.h rebus.h mount.h
misc.o: ../templates/locale.h ../templates/templates.h ../../ezc/src/ezc.h
misc.o: htmlfilter.h ../templates/htmltextstream.h ../core/textstream.h
misc.o: session.h user.h plugindata.h rebus.h mount.h ../templates/locale.h
misc.o: ../templates/templates.h ../../ezc/src/ezc.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/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: ../../pikotools/space/spaceparser.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: log.h textstream.h logmanipulators.h slog.h cur.h request.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: ../core/error.h ../../pikotools/space/spaceparser.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: 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
@ -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: 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: sessionmanager.h sessioncontainer.h ../functions/functions.h
mounts.o: ../functions/functionbase.h ../core/request.h ../core/system.h
mounts.o: ../core/synchro.h ../functions/functionparser.h ../core/cur.h
mounts.o: ../functions/adduser.h ../functions/cat.h ../functions/chmod.h
mounts.o: ../functions/privchanger.h ../functions/chown.h
mounts.o: ../functions/ckeditor.h ../functions/cp.h ../functions/default.h
mounts.o: ../functions/download.h ../functions/emacs.h ../functions/env.h
mounts.o: ../functions/last.h ../functions/login.h ../functions/logout.h
mounts.o: ../functions/ln.h ../functions/ls.h ../functions/man.h
mounts.o: ../functions/meta.h ../functions/mkdir.h ../functions/mv.h
mounts.o: ../functions/nicedit.h ../functions/node.h ../functions/passwd.h
mounts.o: ../functions/priv.h ../functions/pw.h ../functions/reload.h
mounts.o: ../functions/rm.h ../functions/rmuser.h ../functions/sort.h
mounts.o: ../functions/specialdefault.h ../functions/stat.h
mounts.o: ../functions/subject.h ../functions/template.h
mounts.o: timezone.h sessionmanager.h sessioncontainer.h
mounts.o: ../functions/functions.h ../functions/functionbase.h
mounts.o: ../core/request.h ../core/system.h ../core/synchro.h
mounts.o: ../functions/functionparser.h ../core/cur.h ../functions/adduser.h
mounts.o: ../functions/cat.h ../functions/chmod.h ../functions/privchanger.h
mounts.o: ../functions/chown.h ../functions/ckeditor.h ../functions/cp.h
mounts.o: ../functions/default.h ../functions/download.h ../functions/emacs.h
mounts.o: ../functions/env.h ../functions/last.h ../functions/login.h
mounts.o: ../functions/logout.h ../functions/ln.h ../functions/ls.h
mounts.o: ../functions/man.h ../functions/meta.h ../functions/mkdir.h
mounts.o: ../functions/mv.h ../functions/nicedit.h ../functions/node.h
mounts.o: ../functions/passwd.h ../functions/priv.h ../functions/pw.h
mounts.o: ../functions/reload.h ../functions/rm.h ../functions/rmuser.h
mounts.o: ../functions/sort.h ../functions/specialdefault.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/uptime.h ../functions/who.h ../functions/vim.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: ../../pikotools/date/date.h error.h config.h
plugin.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h
plugin.o: htmlfilter.h timezone.h ../templates/htmltextstream.h
plugin.o: ../core/textstream.h misc.h session.h user.h plugindata.h rebus.h
plugin.o: mount.h ../templates/locale.h system.h job.h basethread.h synchro.h
plugin.o: dirs.h dircontainer.h ../db/db.h ../db/dbbase.h ../db/dbconn.h
plugin.o: htmlfilter.h ../templates/htmltextstream.h ../core/textstream.h
plugin.o: misc.h session.h user.h plugindata.h rebus.h mount.h
plugin.o: ../templates/locale.h system.h job.h basethread.h synchro.h dirs.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: ../core/item.h ../db/dbitemcolumns.h ../core/user.h ../core/group.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/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: 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: ../functions/functionbase.h ../core/request.h ../core/system.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: ../../pikotools/space/space.h ../../pikotools/date/date.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: 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
@ -394,8 +394,8 @@ plugindata.o: ../../pikotools/utf8/utf8.h ../notify/notifythread.h
plugindata.o: ../core/basethread.h ../notify/templatesnotify.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: loadavg.h image.h threadmanager.h timezones.h sessionmanager.h
plugindata.o: sessioncontainer.h ../functions/functions.h
plugindata.o: loadavg.h image.h threadmanager.h timezones.h timezone.h
plugindata.o: sessionmanager.h sessioncontainer.h ../functions/functions.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: ../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
postmultiparser.o: postmultiparser.h error.h requesttypes.h config.h
postmultiparser.o: ../../pikotools/space/spaceparser.h
postmultiparser.o: ../../pikotools/space/space.h htmlfilter.h timezone.h
postmultiparser.o: ../../pikotools/date/date.h ../../pikotools/space/space.h
postmultiparser.o: misc.h item.h log.h textstream.h logmanipulators.h slog.h
postmultiparser.o: cur.h request.h ../templates/htmltextstream.h
postmultiparser.o: ../../pikotools/space/space.h htmlfilter.h misc.h item.h
postmultiparser.o: ../../pikotools/space/space.h ../../pikotools/date/date.h
postmultiparser.o: log.h textstream.h logmanipulators.h slog.h cur.h
postmultiparser.o: request.h ../templates/htmltextstream.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
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: ../../pikotools/date/date.h error.h config.h
rebus.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h
rebus.o: htmlfilter.h timezone.h ../templates/htmltextstream.h
rebus.o: ../core/textstream.h misc.h session.h user.h plugindata.h rebus.h
rebus.o: mount.h ../templates/locale.h
rebus.o: htmlfilter.h ../templates/htmltextstream.h ../core/textstream.h
rebus.o: misc.h session.h user.h plugindata.h rebus.h mount.h
rebus.o: ../templates/locale.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/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: session.h user.h plugindata.h rebus.h mount.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: 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: 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: ../core/request.h ../core/system.h ../core/synchro.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: ../../pikotools/date/date.h error.h config.h
run.o: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.h
run.o: htmlfilter.h timezone.h ../templates/htmltextstream.h
run.o: ../core/textstream.h misc.h session.h user.h plugindata.h rebus.h
run.o: mount.h ../templates/locale.h
run.o: htmlfilter.h ../templates/htmltextstream.h ../core/textstream.h misc.h
run.o: session.h user.h plugindata.h rebus.h mount.h ../templates/locale.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: 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: request.h requesttypes.h config.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: mount.h log.h logmanipulators.h slog.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: request.h requesttypes.h config.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: mount.h lastcontainer.h system.h job.h basethread.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/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: 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: ../functions/functions.h ../functions/functionbase.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: sessioncontainer.h cur.h request.h requesttypes.h config.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: mount.h users.h log.h logmanipulators.h slog.h
sessionparser.o: ../templates/locale.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: 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: user.h plugindata.h rebus.h mount.h logmanipulators.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: ../../pikotools/space/spaceparser.h ../../pikotools/space/space.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: cur.h request.h error.h config.h htmlfilter.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/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: image.h threadmanager.h timezones.h ../templates/templates.h
system.o: ../templates/patterncacher.h ../templates/indexpatterns.h
system.o: ../templates/patterns.h ../templates/changepatterns.h
system.o: ../templates/htmltextstream.h ../core/cur.h ../core/system.h
system.o: ../core/sessionmanager.h ../core/htmlfilter.h
system.o: ../functions/functions.h ../functions/functionbase.h
system.o: ../core/request.h ../core/synchro.h ../functions/functionparser.h
system.o: ../functions/adduser.h ../functions/cat.h ../functions/chmod.h
system.o: ../functions/privchanger.h ../functions/chown.h
system.o: ../functions/ckeditor.h ../functions/cp.h ../functions/default.h
system.o: ../functions/download.h ../functions/emacs.h ../functions/env.h
system.o: ../functions/last.h ../functions/login.h ../functions/logout.h
system.o: ../functions/ln.h ../functions/ls.h ../functions/man.h
system.o: ../functions/meta.h ../functions/mkdir.h ../functions/mv.h
system.o: ../functions/nicedit.h ../functions/node.h ../functions/passwd.h
system.o: ../functions/priv.h ../functions/pw.h ../functions/reload.h
system.o: ../functions/rm.h ../functions/rmuser.h ../functions/sort.h
system.o: ../functions/specialdefault.h ../functions/stat.h
system.o: ../functions/subject.h ../functions/template.h
system.o: image.h threadmanager.h timezones.h timezone.h
system.o: ../templates/templates.h ../templates/patterncacher.h
system.o: ../templates/indexpatterns.h ../templates/patterns.h
system.o: ../templates/changepatterns.h ../templates/htmltextstream.h
system.o: ../core/cur.h ../core/system.h ../core/sessionmanager.h
system.o: ../core/htmlfilter.h ../functions/functions.h
system.o: ../functions/functionbase.h ../core/request.h ../core/synchro.h
system.o: ../functions/functionparser.h ../functions/adduser.h
system.o: ../functions/cat.h ../functions/chmod.h ../functions/privchanger.h
system.o: ../functions/chown.h ../functions/ckeditor.h ../functions/cp.h
system.o: ../functions/default.h ../functions/download.h ../functions/emacs.h
system.o: ../functions/env.h ../functions/last.h ../functions/login.h
system.o: ../functions/logout.h ../functions/ln.h ../functions/ls.h
system.o: ../functions/man.h ../functions/meta.h ../functions/mkdir.h
system.o: ../functions/mv.h ../functions/nicedit.h ../functions/node.h
system.o: ../functions/passwd.h ../functions/priv.h ../functions/pw.h
system.o: ../functions/reload.h ../functions/rm.h ../functions/rmuser.h
system.o: ../functions/sort.h ../functions/specialdefault.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/uptime.h ../functions/who.h ../functions/vim.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: ../../pikotools/date/date.h error.h config.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: session.h user.h plugindata.h rebus.h mount.h
threadmanager.o: ../templates/locale.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: ../../pikotools/space/space.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: user.h plugindata.h rebus.h textstream.h cur.h request.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: 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
@ -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/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: loadavg.h image.h threadmanager.h timezones.h plugin.h pluginmsg.h
users.o: ../functions/functions.h ../functions/functionbase.h
users.o: loadavg.h image.h threadmanager.h timezones.h timezone.h plugin.h
users.o: pluginmsg.h ../functions/functions.h ../functions/functionbase.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/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()
{
@ -304,6 +323,7 @@ void App::ProcessRequestThrow()
{
session_manager.SetSession();
cur.session = session_manager.GetCurSession();
SetLocale();
if( cur.session->new_session )
{

View File

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

View File

@ -197,7 +197,8 @@ void Config::AssignValues(bool stdout_is_closed)
locale_dir = Text(L"locale_dir");
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);
title_separator = Text(L"title_separator", L" / ");
@ -238,7 +239,8 @@ void Config::AssignValues(bool stdout_is_closed)
account_need_email_verification = Bool(L"account_need_email_verification", true);
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"");
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)
NoLastSlash(static_dirs[i]);
CheckLocale();
CheckPasswd();
if( content_type_header < 0 || content_type_header > 2 )
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()

View File

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

View File

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

View File

@ -69,6 +69,7 @@ void System::ReadTimeZones()
name_temp += '/';
name_temp += config->time_zones_file;
time_zones.SetTimeZoneMaxId(config->time_zone_max_id);
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 )
local_time = cur->session->puser->time_zone.ToLocal(gmt_time);
tz_id = cur->session->puser->time_zone_id;
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 )
local_date = cur->session->puser->time_zone.ToLocal(gmt_date);
tz_id = cur->session->puser->time_zone_id;
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 utc_time;
size_t tz_id;
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
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 utc_date;
size_t tz_id;
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
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);
time_t ToLocal(time_t gmt_time);
PT::Date ToLocal(const PT::Date & gmt_date);
time_t ToLocal(time_t utc_time);
PT::Date ToLocal(const PT::Date & utc_date);
time_t ToUTC(time_t local_time);
PT::Date ToUTC(const PT::Date & local_date);

View File

@ -8,6 +8,61 @@
*/
#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()
{
tz_id = -1;
tz_offset = 0;
tz_has_dst = false;
tz_dst_offset = 0;
tz_dst_start.Clear();
tz_dst_end.Clear();
name.clear();
id = 0;
offset = 0;
dst_map.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 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 )
{
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;
return offset + dst_offset;
}
@ -76,27 +139,25 @@ return local;
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);
local -= tz_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;
if( dst->IsDstUsed(utc) )
dst_offset = dst->offset;
}
return offset;
return offset + dst_offset;
}
time_t TimeZone::ToUTC(time_t 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);
tz_offset = space.Long(L"tz_offset", 0);
tz_has_dst = space.Bool(L"tz_has_dst", false);
str = SkipWhite(str);
time_t h13 = 60 * 60 * 13; // 13 hours
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 )
if( *str == '-' )
{
tz_dst_start.year = 1970;
tz_dst_end.year = 1970;
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;
is_sign = true;
str += 1;
}
else
if( *str == '+' )
{
tz_dst_start.Clear();
tz_dst_end.Clear();
tz_dst_offset = 0;
str += 1;
}
if( !result )
Clear();
if( date.ParseTime(str) )
{
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;
}
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
#include <ctime>
#include <map>
#include "date/date.h"
#include "space/space.h"
@ -20,13 +21,46 @@ class TimeZone
{
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();
/*
setting:
tz_offset = 0
tz_has_dst = false
*/
void Clear();
@ -59,25 +93,39 @@ public:
time_t ToUTC(time_t local_time);
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
int tz_id;
size_t id;
// time zone offset (in seconds)
time_t tz_offset;
time_t offset;
// true if the time zone has daylight saving time
bool tz_has_dst;
// daylight saving time map
// 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;
bool is_sign = false;
time_t offset = 0;
zone_tab.clear();
str = SkipWhite(str);
if( *str == '-' )
{
is_sign = true;
str += 1;
}
else
if( *str == '+' )
{
str += 1;
for(size_t i=0 ; i<zone_indices.size() ; ++i)
zone_indices[i] = size_t(-1);
}
if( date.ParseTime(str) )
void TimeZones::SetTimeZoneMaxId(size_t max_id)
{
offset = date.hour * 60 * 60 + date.min * 60;
if( is_sign )
offset = -offset;
if( max_id > 1000 )
{
max_id = 1000;
log << log1 << "TZ: time_zone_max_id is too big (changed to 1000)" << logend;
}
return offset;
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()
{
for(size_t i=0 ; i<temp_space.spaces.size() ; ++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();
if( temp_zone.time_zone.SetTz(zone) )
if( temp_zone.SetTz(zone) )
{
temp_zone.name_key = zone.name;
if( !FindZone(temp_zone.time_zone.tz_id) )
if( !HasZone(temp_zone.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 with id: " << temp_zone.time_zone.tz_id
log << log1 << "Tz: zone: " << temp_zone.name << " has too big id: "
<< temp_zone.id << " (skipping)" << logend;
}
}
else
{
log << log1 << "Tz: zone with id: " << temp_zone.id
<< " already exists (skipping)" << logend;
}
}
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;
}
}
@ -91,14 +137,15 @@ bool TimeZones::ReadTimeZones(const wchar_t * path)
{
parser.UTF8(true);
parser.SetSpace(temp_space);
tab.clear();
zone_tab.clear();
temp_space.Clear();
PT::SpaceParser::Status status = parser.Parse(path);
if( status == PT::SpaceParser::ok )
{
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
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,41 +21,56 @@ class TimeZones
{
public:
struct Zone
{
TimeZone time_zone;
std::wstring name_key; // a key to locale
void Clear()
{
time_zone.Clear();
name_key.clear();
}
};
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 std::wstring & path);
Zone * FindZone(int tz_id);
Zone & operator[](size_t index);
// returning true if there is a time zone with the zone_id identifier
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;
// 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:
typedef std::vector<Zone> Tab;
Tab tab;
// indices to '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::Space temp_space;
Zone temp_zone;
TimeZone temp_zone;
time_t ParseOffset(const wchar_t * str);
void ParseZones();
};

View File

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

View File

@ -12,7 +12,6 @@
#include <string>
#include <vector>
#include "timezone.h"
#include "space/space.h"
#include "date/date.h"
@ -89,10 +88,11 @@ struct User
// a user can normally login only when status is WINIX_ACCOUNT_READY
int status;
// time zone
// values here are the same as those in env space
// we provide they here to speed up the process of calculating times
TimeZone time_zone;
// locale identifier
size_t locale_id;
// time zone identifier
size_t time_zone_id;
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/space/spaceparser.h ../../pikotools/space/space.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/ugcontainer.h ../core/log.h ../core/textstream.h
db.o: ../core/logmanipulators.h ../core/slog.h ../core/cur.h
db.o: ../core/request.h ../core/error.h ../core/config.h ../core/htmlfilter.h
db.o: ../templates/htmltextstream.h ../core/session.h ../core/user.h
db.o: ../core/plugindata.h ../core/rebus.h ../core/mount.h
db.o: ../templates/locale.h ../core/log.h ../core/misc.h
db.o: ../core/group.h ../core/dircontainer.h ../core/ugcontainer.h
db.o: ../core/log.h ../core/textstream.h ../core/logmanipulators.h
db.o: ../core/slog.h ../core/cur.h ../core/request.h ../core/error.h
db.o: ../core/config.h ../core/htmlfilter.h ../templates/htmltextstream.h
db.o: ../core/session.h ../core/user.h ../core/plugindata.h ../core/rebus.h
db.o: ../core/mount.h ../templates/locale.h ../core/log.h ../core/misc.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: ../../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 << 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;
// 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.aenv
<< user.status
<< user.locale_id
<< user.time_zone_id
<< R(");");
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)
{
query.Clear();
@ -1566,7 +1594,8 @@ void Db::GetUsers(UGContainer<User> & user_tab)
try
{
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"
" 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 caenv = AssertColumn(r, "aenv");
int cstatus = AssertColumn(r, "status");
int clocale_id = AssertColumn(r, "locale_id");
int ctzone_id = AssertColumn(r, "time_zone_id");
User u;
long last_id = -1;
@ -1600,6 +1631,8 @@ void Db::GetUsers(UGContainer<User> & user_tab)
u.email = AssertValueWide(r, i, cemail);
u.notify = AssertValueInt(r, i, cnotify);
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, caenv, u.aenv);

View File

@ -51,6 +51,8 @@ public:
Error ChangeUserAdminEnv(long user_id, const PT::Space & space);
Error ChangeUserStatus(long user_id, int status);
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 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

@ -187,6 +187,8 @@ bool AddUser::AddNewUser(const std::wstring & login,
user.email = email;
user.super_user = false;
user.notify = 0;
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;

View File

@ -187,6 +187,7 @@ void Functions::CreateFunctions()
Add(fun_emacs);
Add(fun_env);
Add(fun_last);
Add(fun_locale);
Add(fun_login);
Add(fun_logout);
Add(fun_ln);
@ -210,6 +211,7 @@ void Functions::CreateFunctions()
Add(fun_stat);
Add(fun_subject);
Add(fun_template);
Add(fun_time_zone);
Add(fun_tinymce);
Add(fun_uname);
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()
{
if( !system->rebus.CheckRebus() )

View File

@ -24,6 +24,7 @@
#include "emacs.h"
#include "env.h"
#include "last.h"
#include "locale.h"
#include "login.h"
#include "logout.h"
#include "ln.h"
@ -47,6 +48,7 @@
#include "stat.h"
#include "subject.h"
#include "template.h"
#include "timezone.h"
#include "tinymce.h"
#include "uname.h"
#include "upload.h"
@ -75,6 +77,7 @@ public:
Fun::Emacs fun_emacs;
Fun::Env fun_env;
Fun::Last fun_last;
Fun::Locale fun_locale;
Fun::Login fun_login;
Fun::Logout fun_logout;
Fun::Ln fun_ln;
@ -98,6 +101,7 @@ public:
Fun::Stat fun_stat;
Fun::Subject fun_subject;
Fun::Template fun_template;
Fun::TimeZone fun_time_zone;
Fun::Tinymce fun_tinymce;
Fun::Uname fun_uname;
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()
{
// !! locale beda w zaleznosci od uzytkownika
size_t loc = TemplatesFunctions::locale.GetLang();
size_t loc = TemplatesFunctions::locale.GetCurLang();
Ezc::Pattern * pat = TemplatesFunctions::patterns.Get(template_index, loc);
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
charset = UTF-8
@ -308,6 +311,13 @@ admin_upload = "File manager (upload)"
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
uptime_header = Uptime
@ -369,6 +379,12 @@ mv_incorrect_dst_path = Incorrect destination path
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_form_legend = Copy form
cp_page = Copy page

View File

@ -1,3 +1,7 @@
winix_locale_id = "1"
locale_name = "polski"
language = pl
charset = UTF-8
@ -327,6 +331,13 @@ admin_rm = "Usuń stronę (rm)"
admin_upload = "Menedżer plików (upload)"
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
uptime_header = Czas pracy systemu
@ -388,6 +399,13 @@ mv_incorrect_dst_path = Nieprawidłowa ścieżka docelowa
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_form_legend = Formularz kopiowania
cp_page = Kopiuj stronę
@ -499,7 +517,7 @@ tz_-11:00 = Uniwersalny czas koordynowany - 11
tz_-10:00 = Hawaje
tz_-09:00 = Alaska
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:00b = Chihuahua, La Paz, Mazatlan
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/cur.h ../core/request.h ../core/error.h ../core/config.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/plugindata.h ../core/rebus.h ../core/mount.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/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/threadmanager.h ../core/timezones.h ../core/sessionmanager.h
main.o: ../core/sessioncontainer.h ../functions/functions.h
main.o: ../functions/functionbase.h ../core/request.h ../core/system.h
main.o: ../core/synchro.h ../functions/functionparser.h ../core/cur.h
main.o: ../functions/adduser.h ../functions/cat.h ../functions/chmod.h
main.o: ../functions/privchanger.h ../functions/chown.h
main.o: ../functions/ckeditor.h ../functions/cp.h ../functions/default.h
main.o: ../functions/download.h ../functions/emacs.h ../functions/env.h
main.o: ../functions/last.h ../functions/login.h ../functions/logout.h
main.o: ../functions/ln.h ../functions/ls.h ../functions/man.h
main.o: ../functions/meta.h ../functions/mkdir.h ../functions/mv.h
main.o: ../functions/nicedit.h ../functions/node.h ../functions/passwd.h
main.o: ../functions/priv.h ../functions/pw.h ../functions/reload.h
main.o: ../functions/rm.h ../functions/rmuser.h ../functions/sort.h
main.o: ../functions/specialdefault.h ../functions/stat.h
main.o: ../core/threadmanager.h ../core/timezones.h ../core/timezone.h
main.o: ../core/sessionmanager.h ../core/sessioncontainer.h
main.o: ../functions/functions.h ../functions/functionbase.h
main.o: ../core/request.h ../core/system.h ../core/synchro.h
main.o: ../functions/functionparser.h ../core/cur.h ../functions/adduser.h
main.o: ../functions/cat.h ../functions/chmod.h ../functions/privchanger.h
main.o: ../functions/chown.h ../functions/ckeditor.h ../functions/cp.h
main.o: ../functions/default.h ../functions/download.h ../functions/emacs.h
main.o: ../functions/env.h ../functions/last.h ../functions/login.h
main.o: ../functions/logout.h ../functions/ln.h ../functions/ls.h
main.o: ../functions/man.h ../functions/meta.h ../functions/mkdir.h
main.o: ../functions/mv.h ../functions/nicedit.h ../functions/node.h
main.o: ../functions/passwd.h ../functions/priv.h ../functions/pw.h
main.o: ../functions/reload.h ../functions/rm.h ../functions/rmuser.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/uname.h ../functions/upload.h ../functions/uptime.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: notifythread.h ../core/basethread.h ../core/synchro.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/ugcontainer.h ../core/log.h ../core/textstream.h
notify.o: ../core/logmanipulators.h ../core/slog.h ../core/cur.h
notify.o: ../core/request.h ../core/requesttypes.h ../core/error.h
notify.o: ../core/config.h ../templates/htmltextstream.h ../core/session.h
notify.o: ../core/plugindata.h ../core/rebus.h ../core/mount.h
notify.o: ../core/lastcontainer.h ../db/db.h ../db/dbbase.h ../db/dbconn.h
notify.o: ../db/dbtextstream.h ../core/error.h ../db/dbitemquery.h
notify.o: ../core/item.h ../db/dbitemcolumns.h ../core/user.h ../core/group.h
notify.o: ../core/dircontainer.h ../core/ugcontainer.h
notify.o: ../templates/templates.h ../templates/patterncacher.h
notify.o: ../templates/indexpatterns.h ../templates/patterns.h
notify.o: ../templates/changepatterns.h ../core/cur.h ../core/system.h
notify.o: ../core/job.h ../core/basethread.h ../core/dirs.h
notify.o: ../core/users.h ../core/user.h ../core/ugcontainer.h ../core/log.h
notify.o: ../core/textstream.h ../core/logmanipulators.h ../core/slog.h
notify.o: ../core/cur.h ../core/request.h ../core/requesttypes.h
notify.o: ../core/error.h ../core/config.h ../templates/htmltextstream.h
notify.o: ../core/session.h ../core/plugindata.h ../core/rebus.h
notify.o: ../core/mount.h ../core/lastcontainer.h ../db/db.h ../db/dbbase.h
notify.o: ../db/dbconn.h ../db/dbtextstream.h ../core/error.h
notify.o: ../db/dbitemquery.h ../core/item.h ../db/dbitemcolumns.h
notify.o: ../core/user.h ../core/group.h ../core/dircontainer.h
notify.o: ../core/ugcontainer.h ../templates/templates.h
notify.o: ../templates/patterncacher.h ../templates/indexpatterns.h
notify.o: ../templates/patterns.h ../templates/changepatterns.h ../core/cur.h
notify.o: ../core/system.h ../core/job.h ../core/basethread.h ../core/dirs.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/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/system.h ../core/htmlfilter.h ../core/request.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: ../../pikotools/space/spaceparser.h
notifythread.o: ../../pikotools/space/space.h ../core/config.h
notifythread.o: ../core/htmlfilter.h ../core/timezone.h ../core/users.h
notifythread.o: ../core/user.h ../core/ugcontainer.h ../core/log.h
notifythread.o: ../core/textstream.h ../core/logmanipulators.h ../core/slog.h
notifythread.o: ../core/cur.h ../core/request.h ../core/requesttypes.h
notifythread.o: ../core/error.h ../core/config.h
notifythread.o: ../templates/htmltextstream.h ../core/session.h
notifythread.o: ../core/plugindata.h ../core/rebus.h ../core/mount.h
notifythread.o: ../core/lastcontainer.h ../db/db.h ../db/dbbase.h
notifythread.o: ../db/dbconn.h ../db/dbtextstream.h ../core/error.h
notifythread.o: ../db/dbitemquery.h ../core/item.h ../db/dbitemcolumns.h
notifythread.o: ../core/user.h ../core/group.h ../core/dircontainer.h
notifythread.o: ../core/ugcontainer.h ../templates/patterns.h
notifythread.o: ../core/htmlfilter.h ../core/users.h ../core/user.h
notifythread.o: ../core/ugcontainer.h ../core/log.h ../core/textstream.h
notifythread.o: ../core/logmanipulators.h ../core/slog.h ../core/cur.h
notifythread.o: ../core/request.h ../core/requesttypes.h ../core/error.h
notifythread.o: ../core/config.h ../templates/htmltextstream.h
notifythread.o: ../core/session.h ../core/plugindata.h ../core/rebus.h
notifythread.o: ../core/mount.h ../core/lastcontainer.h ../db/db.h
notifythread.o: ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h
notifythread.o: ../core/error.h ../db/dbitemquery.h ../core/item.h
notifythread.o: ../db/dbitemcolumns.h ../core/user.h ../core/group.h
notifythread.o: ../core/dircontainer.h ../core/ugcontainer.h
notifythread.o: ../templates/patterns.h
templatesnotify.o: templatesnotify.h ../../ezc/src/ezc.h
templatesnotify.o: ../../ezc/src/generator.h ../../ezc/src/pattern.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/request.h ../core/requesttypes.h ../core/error.h
templatesnotify.o: ../core/config.h ../templates/htmltextstream.h
templatesnotify.o: ../core/session.h ../core/user.h ../core/timezone.h
templatesnotify.o: ../core/plugindata.h ../core/rebus.h ../core/mount.h
templatesnotify.o: ../core/system.h ../core/sessionmanager.h
templatesnotify.o: ../core/synchro.h ../functions/functions.h
templatesnotify.o: ../functions/functionbase.h ../core/item.h ../db/db.h
templatesnotify.o: ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h
templatesnotify.o: ../core/error.h ../db/dbitemquery.h ../db/dbitemcolumns.h
templatesnotify.o: ../core/user.h ../core/group.h ../core/dircontainer.h
templatesnotify.o: ../core/ugcontainer.h ../core/request.h ../core/config.h
templatesnotify.o: ../core/htmlfilter.h ../core/system.h ../core/job.h
templatesnotify.o: ../core/basethread.h ../core/dirs.h ../core/dircontainer.h
templatesnotify.o: ../notify/notify.h ../core/mounts.h ../core/mountparser.h
templatesnotify.o: ../core/crypt.h ../core/run.h ../core/users.h
templatesnotify.o: ../core/groups.h ../core/group.h ../core/ugcontainer.h
templatesnotify.o: ../core/loadavg.h ../core/image.h ../core/threadmanager.h
templatesnotify.o: ../core/timezones.h ../core/synchro.h
templatesnotify.o: ../core/session.h ../core/user.h ../core/plugindata.h
templatesnotify.o: ../core/rebus.h ../core/mount.h ../core/system.h
templatesnotify.o: ../core/sessionmanager.h ../core/synchro.h
templatesnotify.o: ../functions/functions.h ../functions/functionbase.h
templatesnotify.o: ../core/item.h ../db/db.h ../db/dbbase.h ../db/dbconn.h
templatesnotify.o: ../db/dbtextstream.h ../core/error.h ../db/dbitemquery.h
templatesnotify.o: ../db/dbitemcolumns.h ../core/user.h ../core/group.h
templatesnotify.o: ../core/dircontainer.h ../core/ugcontainer.h
templatesnotify.o: ../core/request.h ../core/config.h ../core/htmlfilter.h
templatesnotify.o: ../core/system.h ../core/job.h ../core/basethread.h
templatesnotify.o: ../core/dirs.h ../core/dircontainer.h ../notify/notify.h
templatesnotify.o: ../core/mounts.h ../core/mountparser.h ../core/crypt.h
templatesnotify.o: ../core/run.h ../core/users.h ../core/groups.h
templatesnotify.o: ../core/group.h ../core/ugcontainer.h ../core/loadavg.h
templatesnotify.o: ../core/image.h ../core/threadmanager.h
templatesnotify.o: ../core/timezones.h ../core/timezone.h ../core/synchro.h
templatesnotify.o: ../functions/functionparser.h ../core/cur.h
templatesnotify.o: ../functions/adduser.h ../functions/cat.h
templatesnotify.o: ../functions/chmod.h ../functions/privchanger.h

View File

@ -112,7 +112,7 @@ bool res = false;
{
msg.name = i->name;
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);
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: ../../core/dircontainer.h ../../db/db.h ../../db/dbbase.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/dircontainer.h ../../core/ugcontainer.h ../../core/log.h
edb.o: ../../core/textstream.h ../../core/logmanipulators.h ../../core/slog.h
edb.o: ../../core/cur.h ../../core/request.h ../../core/error.h
edb.o: ../../core/config.h ../../core/htmlfilter.h
edb.o: ../../templates/htmltextstream.h ../../core/session.h
edb.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h
edb.o: ../../core/mount.h ../../templates/locale.h ../../notify/notify.h
edb.o: ../../notify/notifypool.h ../../templates/patterns.h
edb.o: ../../templates/locale.h ../../templates/localefilter.h
edb.o: ../../../ezc/src/ezc.h ../../../ezc/src/generator.h
edb.o: ../../../ezc/src/pattern.h ../../../ezc/src/functions.h
edb.o: ../../../ezc/src/funinfo.h ../../../ezc/src/stringconv.h
edb.o: ../../../pikotools/utf8/utf8.h ../../notify/notifythread.h
edb.o: ../../core/basethread.h ../../core/synchro.h
edb.o: ../../notify/templatesnotify.h ../../core/config.h ../../core/users.h
edb.o: ../../core/ugcontainer.h ../../core/lastcontainer.h ../../core/log.h
edb.o: ../../core/user.h ../../core/group.h ../../core/dircontainer.h
edb.o: ../../core/ugcontainer.h ../../core/log.h ../../core/textstream.h
edb.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h
edb.o: ../../core/request.h ../../core/error.h ../../core/config.h
edb.o: ../../core/htmlfilter.h ../../templates/htmltextstream.h
edb.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h
edb.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h
edb.o: ../../notify/notify.h ../../notify/notifypool.h
edb.o: ../../templates/patterns.h ../../templates/locale.h
edb.o: ../../templates/localefilter.h ../../../ezc/src/ezc.h
edb.o: ../../../ezc/src/generator.h ../../../ezc/src/pattern.h
edb.o: ../../../ezc/src/functions.h ../../../ezc/src/funinfo.h
edb.o: ../../../ezc/src/stringconv.h ../../../pikotools/utf8/utf8.h
edb.o: ../../notify/notifythread.h ../../core/basethread.h
edb.o: ../../core/synchro.h ../../notify/templatesnotify.h
edb.o: ../../core/config.h ../../core/users.h ../../core/ugcontainer.h
edb.o: ../../core/lastcontainer.h ../../core/log.h
exportinfo.o: ../../core/log.h exportinfo.h ../../core/system.h
exportinfo.o: ../../core/job.h ../../core/basethread.h ../../core/synchro.h
exportinfo.o: ../../../pikotools/space/space.h ../../core/dirs.h
exportinfo.o: ../../core/item.h ../../../pikotools/date/date.h
exportinfo.o: ../../core/dircontainer.h ../../db/db.h ../../db/dbbase.h
exportinfo.o: ../../db/dbitemquery.h ../../core/item.h
exportinfo.o: ../../db/dbitemcolumns.h ../../core/user.h
exportinfo.o: ../../core/timezone.h ../../core/group.h
exportinfo.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
exportinfo.o: ../../core/dircontainer.h ../../core/ugcontainer.h
exportinfo.o: ../../core/log.h ../../core/textstream.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/users.h ../../core/groups.h ../../core/group.h
exportinfo.o: ../../core/loadavg.h ../../core/image.h
exportinfo.o: ../../core/threadmanager.h ../../core/timezones.h export.h
exportinfo.o: edb.h ../../db/dbbase.h ../../db/dbconn.h
exportinfo.o: ../../db/dbtextstream.h ../../core/error.h ../../core/dirs.h
exportinfo.o: message.h exportthread.h
exportinfo.o: ../../core/threadmanager.h ../../core/timezones.h
exportinfo.o: ../../core/timezone.h export.h edb.h ../../db/dbbase.h
exportinfo.o: ../../db/dbconn.h ../../db/dbtextstream.h ../../core/error.h
exportinfo.o: ../../core/dirs.h message.h exportthread.h
exportthread.o: exportthread.h ../../core/basethread.h ../../core/synchro.h
exportthread.o: message.h ../../core/log.h ../../core/misc.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: ../../../pikotools/space/spaceparser.h
init.o: ../../../pikotools/space/space.h ../../core/htmlfilter.h
init.o: ../../core/timezone.h ../../templates/htmltextstream.h
init.o: ../../core/textstream.h ../../core/misc.h ../../core/session.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/job.h ../../core/basethread.h ../../core/synchro.h
init.o: ../../core/dirs.h ../../core/dircontainer.h ../../db/db.h
init.o: ../../db/dbbase.h ../../db/dbitemquery.h ../../core/item.h
init.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
init.o: ../../core/dircontainer.h ../../core/ugcontainer.h
init.o: ../../notify/notify.h ../../notify/notifypool.h
init.o: ../../templates/patterns.h ../../templates/locale.h
init.o: ../../templates/localefilter.h ../../../ezc/src/ezc.h
init.o: ../../../ezc/src/generator.h ../../../ezc/src/pattern.h
init.o: ../../../ezc/src/functions.h ../../../ezc/src/funinfo.h
init.o: ../../../ezc/src/stringconv.h ../../../pikotools/utf8/utf8.h
init.o: ../../notify/notifythread.h ../../core/basethread.h
init.o: ../../notify/templatesnotify.h ../../core/config.h ../../core/users.h
init.o: ../../core/ugcontainer.h ../../core/lastcontainer.h
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/group.h ../../core/loadavg.h ../../core/image.h
init.o: ../../core/threadmanager.h ../../core/timezones.h
init.o: ../../templates/htmltextstream.h ../../core/textstream.h
init.o: ../../core/misc.h ../../core/session.h ../../core/user.h
init.o: ../../core/plugindata.h ../../core/rebus.h ../../core/mount.h
init.o: ../../templates/locale.h ../../core/system.h ../../core/job.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: ../../db/dbitemquery.h ../../core/item.h ../../db/dbitemcolumns.h
init.o: ../../core/user.h ../../core/group.h ../../core/dircontainer.h
init.o: ../../core/ugcontainer.h ../../notify/notify.h
init.o: ../../notify/notifypool.h ../../templates/patterns.h
init.o: ../../templates/locale.h ../../templates/localefilter.h
init.o: ../../../ezc/src/ezc.h ../../../ezc/src/generator.h
init.o: ../../../ezc/src/pattern.h ../../../ezc/src/functions.h
init.o: ../../../ezc/src/funinfo.h ../../../ezc/src/stringconv.h
init.o: ../../../pikotools/utf8/utf8.h ../../notify/notifythread.h
init.o: ../../core/basethread.h ../../notify/templatesnotify.h
init.o: ../../core/config.h ../../core/users.h ../../core/ugcontainer.h
init.o: ../../core/lastcontainer.h ../../core/mounts.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/loadavg.h ../../core/image.h ../../core/threadmanager.h
init.o: ../../core/timezones.h ../../core/timezone.h
init.o: ../../core/sessionmanager.h ../../core/sessioncontainer.h
init.o: ../../functions/functions.h ../../functions/functionbase.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: ../../../pikotools/space/spaceparser.h
gallery.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h
gallery.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/timezone.h
gallery.o: ../../core/group.h ../../core/dircontainer.h
gallery.o: ../../core/ugcontainer.h ../../core/log.h ../../core/textstream.h
gallery.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
gallery.o: ../../core/dircontainer.h ../../core/ugcontainer.h
gallery.o: ../../core/log.h ../../core/textstream.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/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/users.h ../../core/groups.h ../../core/group.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: ../../../pikotools/space/space.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: ../../../pikotools/space/spaceparser.h
init.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h
init.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/timezone.h
init.o: ../../core/group.h ../../core/dircontainer.h ../../core/ugcontainer.h
init.o: ../../core/log.h ../../core/textstream.h ../../core/logmanipulators.h
init.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
init.o: ../../core/dircontainer.h ../../core/ugcontainer.h ../../core/log.h
init.o: ../../core/textstream.h ../../core/logmanipulators.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: ../../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/users.h ../../core/groups.h ../../core/group.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/log.h ../../core/plugin.h ../../core/pluginmsg.h
init.o: ../../core/system.h ../../core/sessionmanager.h
init.o: ../../core/sessioncontainer.h ../../functions/functions.h
init.o: ../../functions/functionbase.h ../../functions/functionparser.h
init.o: ../../core/cur.h ../../functions/adduser.h ../../functions/cat.h
init.o: ../../core/timezones.h ../../core/timezone.h ../../core/synchro.h
init.o: galleryinfo.h ../../core/log.h ../../core/plugin.h
init.o: ../../core/pluginmsg.h ../../core/system.h
init.o: ../../core/sessionmanager.h ../../core/sessioncontainer.h
init.o: ../../functions/functions.h ../../functions/functionbase.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/chown.h ../../functions/ckeditor.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/error.h ../../../pikotools/space/spaceparser.h
templates.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h
templates.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/timezone.h
templates.o: ../../core/group.h ../../core/dircontainer.h
templates.o: ../../core/ugcontainer.h ../../core/log.h
templates.o: ../../core/textstream.h ../../core/logmanipulators.h
templates.o: ../../core/slog.h ../../core/cur.h ../../core/request.h
templates.o: ../../core/error.h ../../core/config.h ../../core/htmlfilter.h
templates.o: ../../templates/htmltextstream.h ../../core/session.h
templates.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h
templates.o: ../../core/mount.h ../../templates/locale.h ../../core/request.h
templates.o: ../../core/config.h ../../core/system.h ../../core/job.h
templates.o: ../../core/basethread.h ../../core/synchro.h ../../core/dirs.h
templates.o: ../../core/dircontainer.h ../../notify/notify.h
templates.o: ../../notify/notifypool.h ../../templates/patterns.h
templates.o: ../../templates/locale.h ../../templates/localefilter.h
templates.o: ../../../ezc/src/ezc.h ../../../ezc/src/generator.h
templates.o: ../../../ezc/src/pattern.h ../../../ezc/src/functions.h
templates.o: ../../../ezc/src/funinfo.h ../../../ezc/src/stringconv.h
templates.o: ../../../pikotools/utf8/utf8.h ../../notify/notifythread.h
templates.o: ../../core/basethread.h ../../notify/templatesnotify.h
templates.o: ../../core/users.h ../../core/ugcontainer.h
templates.o: ../../core/lastcontainer.h ../../core/mounts.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/loadavg.h ../../core/image.h
templates.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
templates.o: ../../core/dircontainer.h ../../core/ugcontainer.h
templates.o: ../../core/log.h ../../core/textstream.h
templates.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h
templates.o: ../../core/request.h ../../core/error.h ../../core/config.h
templates.o: ../../core/htmlfilter.h ../../templates/htmltextstream.h
templates.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h
templates.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h
templates.o: ../../core/request.h ../../core/config.h ../../core/system.h
templates.o: ../../core/job.h ../../core/basethread.h ../../core/synchro.h
templates.o: ../../core/dirs.h ../../core/dircontainer.h
templates.o: ../../notify/notify.h ../../notify/notifypool.h
templates.o: ../../templates/patterns.h ../../templates/locale.h
templates.o: ../../templates/localefilter.h ../../../ezc/src/ezc.h
templates.o: ../../../ezc/src/generator.h ../../../ezc/src/pattern.h
templates.o: ../../../ezc/src/functions.h ../../../ezc/src/funinfo.h
templates.o: ../../../ezc/src/stringconv.h ../../../pikotools/utf8/utf8.h
templates.o: ../../notify/notifythread.h ../../core/basethread.h
templates.o: ../../notify/templatesnotify.h ../../core/users.h
templates.o: ../../core/ugcontainer.h ../../core/lastcontainer.h
templates.o: ../../core/mounts.h ../../core/mountparser.h ../../core/crypt.h
templates.o: ../../core/run.h ../../core/users.h ../../core/groups.h
templates.o: ../../core/group.h ../../core/loadavg.h ../../core/image.h
templates.o: ../../core/threadmanager.h ../../core/timezones.h
templates.o: ../../core/synchro.h galleryinfo.h ../../core/misc.h
templates.o: ../../core/plugin.h ../../core/pluginmsg.h ../../core/system.h
templates.o: ../../core/sessionmanager.h ../../core/sessioncontainer.h
templates.o: ../../functions/functions.h ../../functions/functionbase.h
templates.o: ../../functions/functionparser.h ../../core/cur.h
templates.o: ../../functions/adduser.h ../../functions/cat.h
templates.o: ../../core/timezone.h ../../core/synchro.h galleryinfo.h
templates.o: ../../core/misc.h ../../core/plugin.h ../../core/pluginmsg.h
templates.o: ../../core/system.h ../../core/sessionmanager.h
templates.o: ../../core/sessioncontainer.h ../../functions/functions.h
templates.o: ../../functions/functionbase.h ../../functions/functionparser.h
templates.o: ../../core/cur.h ../../functions/adduser.h ../../functions/cat.h
templates.o: ../../functions/chmod.h ../../functions/privchanger.h
templates.o: ../../functions/chown.h ../../functions/ckeditor.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/requesttypes.h ../../core/error.h
groupinfo.o: ../../db/dbitemquery.h ../../db/dbitemcolumns.h
groupinfo.o: ../../core/user.h ../../core/timezone.h ../../core/group.h
groupinfo.o: ../../core/dircontainer.h ../../core/ugcontainer.h
groupinfo.o: ../../core/log.h ../../core/textstream.h
groupinfo.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h
groupinfo.o: ../../core/request.h ../../core/error.h ../../core/config.h
groupinfo.o: ../../core/htmlfilter.h ../../templates/htmltextstream.h
groupinfo.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h
groupinfo.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h
groupinfo.o: ../../core/user.h ../../core/group.h ../../core/dircontainer.h
groupinfo.o: ../../core/ugcontainer.h ../../core/log.h
groupinfo.o: ../../core/textstream.h ../../core/logmanipulators.h
groupinfo.o: ../../core/slog.h ../../core/cur.h ../../core/request.h
groupinfo.o: ../../core/error.h ../../core/config.h ../../core/htmlfilter.h
groupinfo.o: ../../templates/htmltextstream.h ../../core/session.h
groupinfo.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h
groupinfo.o: ../../core/mount.h ../../templates/locale.h
groupinfo.o: ../../notify/notify.h ../../notify/notifypool.h
groupinfo.o: ../../templates/patterns.h ../../templates/locale.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/users.h ../../core/loadavg.h ../../core/image.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: ../../../pikotools/space/space.h ../../core/log.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/config.h ../../../pikotools/space/spaceparser.h
init.o: ../../../pikotools/space/space.h ../../core/htmlfilter.h
init.o: ../../core/timezone.h ../../../pikotools/date/date.h
init.o: ../../../pikotools/space/space.h ../../templates/htmltextstream.h
init.o: ../../core/textstream.h ../../core/misc.h ../../core/session.h
init.o: ../../templates/htmltextstream.h ../../core/textstream.h
init.o: ../../core/misc.h ../../../pikotools/date/date.h
init.o: ../../../pikotools/space/space.h ../../core/session.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/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/run.h ../../core/users.h groups.h ../../core/loadavg.h
init.o: ../../core/image.h ../../core/threadmanager.h ../../core/timezones.h
init.o: ../../core/sessionmanager.h ../../core/sessioncontainer.h
init.o: ../../functions/functions.h ../../functions/functionbase.h
init.o: ../../core/request.h ../../core/system.h ../../core/synchro.h
init.o: ../../core/timezone.h ../../core/sessionmanager.h
init.o: ../../core/sessioncontainer.h ../../functions/functions.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/adduser.h ../../functions/cat.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: ../../../pikotools/space/spaceparser.h
templates.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h
templates.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/timezone.h
templates.o: ../../core/group.h ../../core/dircontainer.h
templates.o: ../../core/ugcontainer.h ../../core/log.h
templates.o: ../../core/textstream.h ../../core/logmanipulators.h
templates.o: ../../core/slog.h ../../core/cur.h ../../core/request.h
templates.o: ../../core/error.h ../../core/config.h ../../core/htmlfilter.h
templates.o: ../../templates/htmltextstream.h ../../core/session.h
templates.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h
templates.o: ../../core/mount.h ../../templates/locale.h
templates.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
templates.o: ../../core/dircontainer.h ../../core/ugcontainer.h
templates.o: ../../core/log.h ../../core/textstream.h
templates.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h
templates.o: ../../core/request.h ../../core/error.h ../../core/config.h
templates.o: ../../core/htmlfilter.h ../../templates/htmltextstream.h
templates.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h
templates.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h
templates.o: ../../notify/notify.h ../../notify/notifypool.h
templates.o: ../../templates/patterns.h ../../notify/notifythread.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/users.h groups.h ../../core/loadavg.h
templates.o: ../../core/image.h ../../core/threadmanager.h
templates.o: ../../core/timezones.h ../../core/sessionmanager.h
templates.o: ../../core/htmlfilter.h ../../core/plugin.h
templates.o: ../../core/pluginmsg.h ../../core/system.h
templates.o: ../../core/timezones.h ../../core/timezone.h
templates.o: ../../core/sessionmanager.h ../../core/htmlfilter.h
templates.o: ../../core/plugin.h ../../core/pluginmsg.h ../../core/system.h
templates.o: ../../core/sessionmanager.h ../../core/sessioncontainer.h
templates.o: ../../functions/functions.h ../../functions/functionbase.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: ../../../pikotools/space/spaceparser.h
cache.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h
cache.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/timezone.h
cache.o: ../../core/group.h ../../core/dircontainer.h
cache.o: ../../core/ugcontainer.h ../../core/log.h ../../core/textstream.h
cache.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h
cache.o: ../../core/request.h ../../core/error.h ../../core/config.h
cache.o: ../../core/htmlfilter.h ../../templates/htmltextstream.h
cache.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h
cache.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h
cache.o: ../../notify/notify.h ../../notify/notifypool.h
cache.o: ../../templates/patterns.h ../../templates/locale.h
cache.o: ../../templates/localefilter.h ../../../ezc/src/ezc.h
cache.o: ../../../ezc/src/generator.h ../../../ezc/src/pattern.h
cache.o: ../../../ezc/src/functions.h ../../../ezc/src/funinfo.h
cache.o: ../../../ezc/src/stringconv.h ../../../pikotools/utf8/utf8.h
cache.o: ../../notify/notifythread.h ../../core/basethread.h
cache.o: ../../core/synchro.h ../../notify/templatesnotify.h
cache.o: ../../core/config.h ../../core/users.h ../../core/ugcontainer.h
cache.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
cache.o: ../../core/dircontainer.h ../../core/ugcontainer.h ../../core/log.h
cache.o: ../../core/textstream.h ../../core/logmanipulators.h
cache.o: ../../core/slog.h ../../core/cur.h ../../core/request.h
cache.o: ../../core/error.h ../../core/config.h ../../core/htmlfilter.h
cache.o: ../../templates/htmltextstream.h ../../core/session.h
cache.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h
cache.o: ../../core/mount.h ../../templates/locale.h ../../notify/notify.h
cache.o: ../../notify/notifypool.h ../../templates/patterns.h
cache.o: ../../templates/locale.h ../../templates/localefilter.h
cache.o: ../../../ezc/src/ezc.h ../../../ezc/src/generator.h
cache.o: ../../../ezc/src/pattern.h ../../../ezc/src/functions.h
cache.o: ../../../ezc/src/funinfo.h ../../../ezc/src/stringconv.h
cache.o: ../../../pikotools/utf8/utf8.h ../../notify/notifythread.h
cache.o: ../../core/basethread.h ../../core/synchro.h
cache.o: ../../notify/templatesnotify.h ../../core/config.h
cache.o: ../../core/users.h ../../core/ugcontainer.h
cache.o: ../../core/lastcontainer.h ../../core/misc.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/requesttypes.h ../../core/item.h ../../core/error.h
init.o: ../../core/config.h ../../../pikotools/space/spaceparser.h
init.o: ../../../pikotools/space/space.h ../../core/htmlfilter.h
init.o: ../../core/timezone.h ../../../pikotools/date/date.h
init.o: ../../../pikotools/space/space.h ../../templates/htmltextstream.h
init.o: ../../core/textstream.h ../../core/misc.h ../../core/session.h
init.o: ../../templates/htmltextstream.h ../../core/textstream.h
init.o: ../../core/misc.h ../../../pikotools/date/date.h
init.o: ../../../pikotools/space/space.h ../../core/session.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/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/group.h ../../core/loadavg.h ../../core/image.h
init.o: ../../core/threadmanager.h ../../core/timezones.h
init.o: ../../core/sessionmanager.h ../../core/sessioncontainer.h
init.o: ../../functions/functions.h ../../functions/functionbase.h
init.o: ../../core/request.h ../../core/system.h ../../core/synchro.h
init.o: ../../core/timezone.h ../../core/sessionmanager.h
init.o: ../../core/sessioncontainer.h ../../functions/functions.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/adduser.h ../../functions/cat.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: ../../core/error.h ../../../pikotools/space/spaceparser.h
templates.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h
templates.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/timezone.h
templates.o: ../../core/group.h ../../core/dircontainer.h
templates.o: ../../core/ugcontainer.h ../../core/log.h
templates.o: ../../core/textstream.h ../../core/logmanipulators.h
templates.o: ../../core/slog.h ../../core/cur.h ../../core/request.h
templates.o: ../../core/error.h ../../core/config.h ../../core/htmlfilter.h
templates.o: ../../templates/htmltextstream.h ../../core/session.h
templates.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h
templates.o: ../../core/mount.h ../../templates/locale.h ../../core/plugin.h
templates.o: ../../core/pluginmsg.h ../../core/system.h ../../core/job.h
templates.o: ../../core/basethread.h ../../core/synchro.h ../../core/dirs.h
templates.o: ../../core/dircontainer.h ../../notify/notify.h
templates.o: ../../notify/notifypool.h ../../templates/patterns.h
templates.o: ../../notify/notifythread.h ../../core/basethread.h
templates.o: ../../notify/templatesnotify.h ../../core/users.h
templates.o: ../../core/ugcontainer.h ../../core/lastcontainer.h
templates.o: ../../core/mounts.h ../../core/mountparser.h ../../core/crypt.h
templates.o: ../../core/run.h ../../core/users.h ../../core/groups.h
templates.o: ../../core/group.h ../../core/loadavg.h ../../core/image.h
templates.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
templates.o: ../../core/dircontainer.h ../../core/ugcontainer.h
templates.o: ../../core/log.h ../../core/textstream.h
templates.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h
templates.o: ../../core/request.h ../../core/error.h ../../core/config.h
templates.o: ../../core/htmlfilter.h ../../templates/htmltextstream.h
templates.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h
templates.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h
templates.o: ../../core/plugin.h ../../core/pluginmsg.h ../../core/system.h
templates.o: ../../core/job.h ../../core/basethread.h ../../core/synchro.h
templates.o: ../../core/dirs.h ../../core/dircontainer.h
templates.o: ../../notify/notify.h ../../notify/notifypool.h
templates.o: ../../templates/patterns.h ../../notify/notifythread.h
templates.o: ../../core/basethread.h ../../notify/templatesnotify.h
templates.o: ../../core/users.h ../../core/ugcontainer.h
templates.o: ../../core/lastcontainer.h ../../core/mounts.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/loadavg.h ../../core/image.h
templates.o: ../../core/threadmanager.h ../../core/timezones.h
templates.o: ../../core/sessionmanager.h ../../core/sessioncontainer.h
templates.o: ../../functions/functions.h ../../functions/functionbase.h
templates.o: ../../core/request.h ../../core/synchro.h
templates.o: ../../functions/functionparser.h ../../functions/adduser.h
templates.o: ../../functions/cat.h ../../functions/chmod.h
templates.o: ../../functions/privchanger.h ../../functions/chown.h
templates.o: ../../functions/ckeditor.h ../../functions/cp.h
templates.o: ../../functions/default.h ../../functions/download.h
templates.o: ../../functions/emacs.h ../../functions/env.h
templates.o: ../../functions/last.h ../../functions/login.h
templates.o: ../../functions/logout.h ../../functions/ln.h
templates.o: ../../functions/ls.h ../../functions/man.h
templates.o: ../../core/timezone.h ../../core/sessionmanager.h
templates.o: ../../core/sessioncontainer.h ../../functions/functions.h
templates.o: ../../functions/functionbase.h ../../core/request.h
templates.o: ../../core/synchro.h ../../functions/functionparser.h
templates.o: ../../functions/adduser.h ../../functions/cat.h
templates.o: ../../functions/chmod.h ../../functions/privchanger.h
templates.o: ../../functions/chown.h ../../functions/ckeditor.h
templates.o: ../../functions/cp.h ../../functions/default.h
templates.o: ../../functions/download.h ../../functions/emacs.h
templates.o: ../../functions/env.h ../../functions/last.h
templates.o: ../../functions/login.h ../../functions/logout.h
templates.o: ../../functions/ln.h ../../functions/ls.h ../../functions/man.h
templates.o: ../../functions/meta.h ../../functions/mkdir.h
templates.o: ../../functions/mv.h ../../functions/nicedit.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: ../../../pikotools/space/spaceparser.h
init.o: ../../../pikotools/space/space.h ../../core/htmlfilter.h
init.o: ../../core/timezone.h ../../templates/htmltextstream.h
init.o: ../../core/textstream.h ../../core/session.h ../../core/user.h
init.o: ../../core/plugindata.h ../../core/rebus.h ../../core/mount.h
init.o: ../../templates/locale.h ../../core/request.h ../../core/config.h
init.o: ../../db/db.h ../../db/dbbase.h ../../db/dbconn.h
init.o: ../../db/dbtextstream.h ../../core/error.h ../../db/dbitemquery.h
init.o: ../../core/item.h ../../db/dbitemcolumns.h ../../core/user.h
init.o: ../../core/group.h ../../core/dircontainer.h ../../core/ugcontainer.h
init.o: ../../core/log.h bot.h stats.h templates.h ../../core/plugin.h
init.o: ../../core/pluginmsg.h ../../core/system.h ../../core/job.h
init.o: ../../core/basethread.h ../../core/synchro.h ../../core/dirs.h
init.o: ../../core/dircontainer.h ../../notify/notify.h
init.o: ../../notify/notifypool.h ../../templates/patterns.h
init.o: ../../templates/locale.h ../../templates/localefilter.h
init.o: ../../../ezc/src/ezc.h ../../../ezc/src/generator.h
init.o: ../../../ezc/src/pattern.h ../../../ezc/src/functions.h
init.o: ../../../ezc/src/funinfo.h ../../../ezc/src/stringconv.h
init.o: ../../../pikotools/utf8/utf8.h ../../notify/notifythread.h
init.o: ../../core/basethread.h ../../notify/templatesnotify.h
init.o: ../../core/users.h ../../core/ugcontainer.h
init.o: ../../core/lastcontainer.h ../../core/mounts.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/loadavg.h ../../core/image.h ../../core/threadmanager.h
init.o: ../../core/timezones.h ../../core/sessionmanager.h
init.o: ../../templates/htmltextstream.h ../../core/textstream.h
init.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h
init.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h
init.o: ../../core/request.h ../../core/config.h ../../db/db.h
init.o: ../../db/dbbase.h ../../db/dbconn.h ../../db/dbtextstream.h
init.o: ../../core/error.h ../../db/dbitemquery.h ../../core/item.h
init.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
init.o: ../../core/dircontainer.h ../../core/ugcontainer.h ../../core/log.h
init.o: bot.h stats.h templates.h ../../core/plugin.h ../../core/pluginmsg.h
init.o: ../../core/system.h ../../core/job.h ../../core/basethread.h
init.o: ../../core/synchro.h ../../core/dirs.h ../../core/dircontainer.h
init.o: ../../notify/notify.h ../../notify/notifypool.h
init.o: ../../templates/patterns.h ../../templates/locale.h
init.o: ../../templates/localefilter.h ../../../ezc/src/ezc.h
init.o: ../../../ezc/src/generator.h ../../../ezc/src/pattern.h
init.o: ../../../ezc/src/functions.h ../../../ezc/src/funinfo.h
init.o: ../../../ezc/src/stringconv.h ../../../pikotools/utf8/utf8.h
init.o: ../../notify/notifythread.h ../../core/basethread.h
init.o: ../../notify/templatesnotify.h ../../core/users.h
init.o: ../../core/ugcontainer.h ../../core/lastcontainer.h
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/group.h ../../core/loadavg.h ../../core/image.h
init.o: ../../core/threadmanager.h ../../core/timezones.h
init.o: ../../core/timezone.h ../../core/sessionmanager.h
init.o: ../../core/sessioncontainer.h ../../functions/functions.h
init.o: ../../functions/functionbase.h ../../core/system.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: ../../../pikotools/space/spaceparser.h
stats.o: ../../../pikotools/space/space.h ../../core/htmlfilter.h
stats.o: ../../core/timezone.h ../../templates/htmltextstream.h
stats.o: ../../core/textstream.h ../../core/session.h ../../core/user.h
stats.o: ../../core/plugindata.h ../../core/rebus.h ../../core/mount.h
stats.o: ../../templates/locale.h ../../../pikotools/utf8/utf8.h
stats.o: ../../templates/htmltextstream.h ../../core/textstream.h
stats.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h
stats.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h
stats.o: ../../../pikotools/utf8/utf8.h
templates.o: templates.h ../../core/plugin.h ../../core/pluginmsg.h
templates.o: ../../core/log.h ../../core/plugindata.h ../../core/config.h
templates.o: ../../../pikotools/space/spaceparser.h
templates.o: ../../../pikotools/space/space.h ../../core/htmlfilter.h
templates.o: ../../core/timezone.h ../../../pikotools/date/date.h
templates.o: ../../../pikotools/space/space.h ../../core/request.h
templates.o: ../../core/requesttypes.h ../../core/item.h ../../core/error.h
templates.o: ../../core/textstream.h ../../core/misc.h
templates.o: ../../core/request.h ../../core/requesttypes.h ../../core/item.h
templates.o: ../../../pikotools/space/space.h ../../../pikotools/date/date.h
templates.o: ../../core/error.h ../../core/textstream.h ../../core/misc.h
templates.o: ../../templates/htmltextstream.h ../../core/textstream.h
templates.o: ../../core/system.h ../../core/job.h ../../core/basethread.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/groups.h ../../core/group.h ../../core/loadavg.h
templates.o: ../../core/image.h ../../core/threadmanager.h
templates.o: ../../core/timezones.h ../../core/sessionmanager.h
templates.o: ../../core/sessioncontainer.h ../../functions/functions.h
templates.o: ../../functions/functionbase.h ../../core/request.h
templates.o: ../../core/system.h ../../core/synchro.h
templates.o: ../../core/timezones.h ../../core/timezone.h
templates.o: ../../core/sessionmanager.h ../../core/sessioncontainer.h
templates.o: ../../functions/functions.h ../../functions/functionbase.h
templates.o: ../../core/request.h ../../core/system.h ../../core/synchro.h
templates.o: ../../functions/functionparser.h ../../core/cur.h
templates.o: ../../functions/adduser.h ../../functions/cat.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: ../../../pikotools/space/spaceparser.h
createthread.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h
createthread.o: ../../db/dbitemcolumns.h ../../core/user.h
createthread.o: ../../core/timezone.h ../../core/group.h
createthread.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
createthread.o: ../../core/dircontainer.h ../../core/ugcontainer.h
createthread.o: ../../core/log.h ../../core/textstream.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/groups.h ../../core/group.h ../../core/loadavg.h
createthread.o: ../../core/image.h ../../core/threadmanager.h
createthread.o: ../../core/timezones.h ../../core/synchro.h tdb.h thread.h
createthread.o: ../../db/dbbase.h threadinfo.h ../../functions/functions.h
createthread.o: ../../core/timezones.h ../../core/timezone.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/functionparser.h ../../core/cur.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: ../../../pikotools/space/spaceparser.h
funthread.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h
funthread.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/timezone.h
funthread.o: ../../core/group.h ../../core/dircontainer.h
funthread.o: ../../core/ugcontainer.h ../../core/log.h
funthread.o: ../../core/textstream.h ../../core/logmanipulators.h
funthread.o: ../../core/slog.h ../../core/cur.h ../../core/request.h
funthread.o: ../../core/error.h ../../core/config.h ../../core/htmlfilter.h
funthread.o: ../../templates/htmltextstream.h ../../core/session.h
funthread.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h
funthread.o: ../../core/mount.h ../../templates/locale.h ../../core/request.h
funthread.o: ../../core/config.h ../../core/system.h ../../core/job.h
funthread.o: ../../core/basethread.h ../../core/synchro.h ../../core/dirs.h
funthread.o: ../../core/dircontainer.h ../../notify/notify.h
funthread.o: ../../notify/notifypool.h ../../templates/patterns.h
funthread.o: ../../templates/locale.h ../../templates/localefilter.h
funthread.o: ../../../ezc/src/ezc.h ../../../ezc/src/generator.h
funthread.o: ../../../ezc/src/pattern.h ../../../ezc/src/functions.h
funthread.o: ../../../ezc/src/funinfo.h ../../../ezc/src/stringconv.h
funthread.o: ../../../pikotools/utf8/utf8.h ../../notify/notifythread.h
funthread.o: ../../core/basethread.h ../../notify/templatesnotify.h
funthread.o: ../../core/users.h ../../core/ugcontainer.h
funthread.o: ../../core/lastcontainer.h ../../core/mounts.h
funthread.o: ../../core/mountparser.h ../../core/crypt.h ../../core/run.h
funthread.o: ../../core/users.h ../../core/groups.h ../../core/group.h
funthread.o: ../../core/loadavg.h ../../core/image.h
funthread.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
funthread.o: ../../core/dircontainer.h ../../core/ugcontainer.h
funthread.o: ../../core/log.h ../../core/textstream.h
funthread.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h
funthread.o: ../../core/request.h ../../core/error.h ../../core/config.h
funthread.o: ../../core/htmlfilter.h ../../templates/htmltextstream.h
funthread.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h
funthread.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h
funthread.o: ../../core/request.h ../../core/config.h ../../core/system.h
funthread.o: ../../core/job.h ../../core/basethread.h ../../core/synchro.h
funthread.o: ../../core/dirs.h ../../core/dircontainer.h
funthread.o: ../../notify/notify.h ../../notify/notifypool.h
funthread.o: ../../templates/patterns.h ../../templates/locale.h
funthread.o: ../../templates/localefilter.h ../../../ezc/src/ezc.h
funthread.o: ../../../ezc/src/generator.h ../../../ezc/src/pattern.h
funthread.o: ../../../ezc/src/functions.h ../../../ezc/src/funinfo.h
funthread.o: ../../../ezc/src/stringconv.h ../../../pikotools/utf8/utf8.h
funthread.o: ../../notify/notifythread.h ../../core/basethread.h
funthread.o: ../../notify/templatesnotify.h ../../core/users.h
funthread.o: ../../core/ugcontainer.h ../../core/lastcontainer.h
funthread.o: ../../core/mounts.h ../../core/mountparser.h ../../core/crypt.h
funthread.o: ../../core/run.h ../../core/users.h ../../core/groups.h
funthread.o: ../../core/group.h ../../core/loadavg.h ../../core/image.h
funthread.o: ../../core/threadmanager.h ../../core/timezones.h
funthread.o: ../../core/synchro.h tdb.h thread.h ../../db/dbbase.h
funthread.o: threadinfo.h
funthread.o: ../../core/timezone.h ../../core/synchro.h tdb.h thread.h
funthread.o: ../../db/dbbase.h threadinfo.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/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/requesttypes.h ../../../pikotools/space/spaceparser.h
init.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h
init.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/timezone.h
init.o: ../../core/group.h ../../core/dircontainer.h ../../core/ugcontainer.h
init.o: ../../core/log.h ../../core/textstream.h ../../core/logmanipulators.h
init.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
init.o: ../../core/dircontainer.h ../../core/ugcontainer.h ../../core/log.h
init.o: ../../core/textstream.h ../../core/logmanipulators.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: ../../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/users.h ../../core/groups.h ../../core/group.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: createthread.h showthreads.h ../../core/log.h ../../core/plugin.h
init.o: pluginmsg.h ../../core/system.h ../../core/sessionmanager.h
init.o: ../../core/sessioncontainer.h ../../functions/functions.h
init.o: ../../functions/functionbase.h ../../functions/functionparser.h
init.o: ../../core/cur.h ../../functions/adduser.h ../../functions/cat.h
init.o: ../../core/timezones.h ../../core/timezone.h ../../core/synchro.h
init.o: threadinfo.h funthread.h createthread.h showthreads.h
init.o: ../../core/log.h ../../core/plugin.h pluginmsg.h ../../core/system.h
init.o: ../../core/sessionmanager.h ../../core/sessioncontainer.h
init.o: ../../functions/functions.h ../../functions/functionbase.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/chown.h ../../functions/ckeditor.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: ../../../pikotools/space/spaceparser.h
reply.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h
reply.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/timezone.h
reply.o: ../../core/group.h ../../core/dircontainer.h
reply.o: ../../core/ugcontainer.h ../../core/log.h ../../core/textstream.h
reply.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h
reply.o: ../../core/request.h ../../core/error.h ../../core/config.h
reply.o: ../../core/htmlfilter.h ../../templates/htmltextstream.h
reply.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h
reply.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h
reply.o: ../../core/request.h ../../core/config.h ../../core/system.h
reply.o: ../../core/job.h ../../core/basethread.h ../../core/synchro.h
reply.o: ../../core/dirs.h ../../core/dircontainer.h ../../notify/notify.h
reply.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
reply.o: ../../core/dircontainer.h ../../core/ugcontainer.h ../../core/log.h
reply.o: ../../core/textstream.h ../../core/logmanipulators.h
reply.o: ../../core/slog.h ../../core/cur.h ../../core/request.h
reply.o: ../../core/error.h ../../core/config.h ../../core/htmlfilter.h
reply.o: ../../templates/htmltextstream.h ../../core/session.h
reply.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h
reply.o: ../../core/mount.h ../../templates/locale.h ../../core/request.h
reply.o: ../../core/config.h ../../core/system.h ../../core/job.h
reply.o: ../../core/basethread.h ../../core/synchro.h ../../core/dirs.h
reply.o: ../../core/dircontainer.h ../../notify/notify.h
reply.o: ../../notify/notifypool.h ../../templates/patterns.h
reply.o: ../../templates/locale.h ../../templates/localefilter.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/users.h ../../core/groups.h ../../core/group.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: ../../db/dbbase.h threadinfo.h ../../functions/functions.h
reply.o: ../../functions/functionbase.h ../../functions/functionparser.h
reply.o: ../../core/cur.h ../../functions/adduser.h ../../functions/cat.h
reply.o: ../../core/timezones.h ../../core/timezone.h ../../core/synchro.h
reply.o: tdb.h thread.h ../../db/dbbase.h threadinfo.h
reply.o: ../../functions/functions.h ../../functions/functionbase.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/chown.h ../../functions/ckeditor.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: ../../../pikotools/space/spaceparser.h
showthreads.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h
showthreads.o: ../../db/dbitemcolumns.h ../../core/user.h
showthreads.o: ../../core/timezone.h ../../core/group.h
showthreads.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
showthreads.o: ../../core/dircontainer.h ../../core/ugcontainer.h
showthreads.o: ../../core/log.h ../../core/textstream.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/groups.h ../../core/group.h ../../core/loadavg.h
showthreads.o: ../../core/image.h ../../core/threadmanager.h
showthreads.o: ../../core/timezones.h ../../core/synchro.h tdb.h thread.h
showthreads.o: ../../db/dbbase.h threadinfo.h
showthreads.o: ../../core/timezones.h ../../core/timezone.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: ../../core/error.h ../../core/log.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: ../../../pikotools/space/spaceparser.h
templates.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h
templates.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/timezone.h
templates.o: ../../core/group.h ../../core/dircontainer.h
templates.o: ../../core/ugcontainer.h ../../core/log.h
templates.o: ../../core/textstream.h ../../core/logmanipulators.h
templates.o: ../../core/slog.h ../../core/cur.h ../../core/request.h
templates.o: ../../core/error.h ../../core/config.h ../../core/htmlfilter.h
templates.o: ../../templates/htmltextstream.h ../../core/session.h
templates.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h
templates.o: ../../core/mount.h ../../templates/locale.h
templates.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
templates.o: ../../core/dircontainer.h ../../core/ugcontainer.h
templates.o: ../../core/log.h ../../core/textstream.h
templates.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h
templates.o: ../../core/request.h ../../core/error.h ../../core/config.h
templates.o: ../../core/htmlfilter.h ../../templates/htmltextstream.h
templates.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h
templates.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h
templates.o: ../../notify/notify.h ../../notify/notifypool.h
templates.o: ../../templates/patterns.h ../../templates/locale.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/users.h ../../core/groups.h ../../core/group.h
templates.o: ../../core/loadavg.h ../../core/image.h
templates.o: ../../core/threadmanager.h ../../core/timezones.h thread.h tdb.h
templates.o: ../../db/dbbase.h reply.h ../../functions/functionbase.h
templates.o: ../../core/request.h ../../core/synchro.h funthread.h
templates.o: createthread.h showthreads.h ../../core/misc.h
templates.o: ../../core/plugin.h pluginmsg.h ../../core/system.h
templates.o: ../../core/sessionmanager.h ../../core/sessioncontainer.h
templates.o: ../../functions/functions.h ../../functions/functionbase.h
templates.o: ../../functions/functionparser.h ../../core/cur.h
templates.o: ../../functions/adduser.h ../../functions/cat.h
templates.o: ../../core/threadmanager.h ../../core/timezones.h
templates.o: ../../core/timezone.h thread.h tdb.h ../../db/dbbase.h reply.h
templates.o: ../../functions/functionbase.h ../../core/request.h
templates.o: ../../core/synchro.h funthread.h createthread.h showthreads.h
templates.o: ../../core/misc.h ../../core/plugin.h pluginmsg.h
templates.o: ../../core/system.h ../../core/sessionmanager.h
templates.o: ../../core/sessioncontainer.h ../../functions/functions.h
templates.o: ../../functions/functionbase.h ../../functions/functionparser.h
templates.o: ../../core/cur.h ../../functions/adduser.h ../../functions/cat.h
templates.o: ../../functions/chmod.h ../../functions/privchanger.h
templates.o: ../../functions/chown.h ../../functions/ckeditor.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: ../../../pikotools/space/spaceparser.h
threadinfo.o: ../../../pikotools/space/space.h ../../db/dbitemquery.h
threadinfo.o: ../../db/dbitemcolumns.h ../../core/user.h
threadinfo.o: ../../core/timezone.h ../../core/group.h
threadinfo.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
threadinfo.o: ../../core/dircontainer.h ../../core/ugcontainer.h
threadinfo.o: ../../core/log.h ../../core/textstream.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/users.h ../../core/groups.h ../../core/group.h
threadinfo.o: ../../core/loadavg.h ../../core/image.h
threadinfo.o: ../../core/threadmanager.h ../../core/timezones.h thread.h
threadinfo.o: tdb.h ../../db/dbbase.h
threadinfo.o: ../../core/threadmanager.h ../../core/timezones.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: ../../functions/functionbase.h ../../core/item.h
createticket.o: ../../db/db.h ../../db/dbbase.h ../../db/dbitemquery.h
createticket.o: ../../db/dbitemcolumns.h ../../core/user.h
createticket.o: ../../core/timezone.h ../../core/group.h
createticket.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
createticket.o: ../../core/dircontainer.h ../../core/ugcontainer.h
createticket.o: ../../core/log.h ../../core/textstream.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/groups.h ../../core/group.h ../../core/loadavg.h
createticket.o: ../../core/image.h ../../core/threadmanager.h
createticket.o: ../../core/timezones.h ../../core/synchro.h ticketinfo.h
createticket.o: ../../functions/functions.h ../../functions/functionbase.h
createticket.o: ../../core/timezones.h ../../core/timezone.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/adduser.h ../../functions/cat.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/dircontainer.h ../../db/db.h ../../db/dbbase.h
editticket.o: ../../db/dbitemquery.h ../../db/dbitemcolumns.h
editticket.o: ../../core/user.h ../../core/timezone.h ../../core/group.h
editticket.o: ../../core/dircontainer.h ../../core/ugcontainer.h
editticket.o: ../../core/log.h ../../core/textstream.h
editticket.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h
editticket.o: ../../core/request.h ../../core/error.h ../../core/config.h
editticket.o: ../../core/htmlfilter.h ../../templates/htmltextstream.h
editticket.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h
editticket.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h
editticket.o: ../../core/user.h ../../core/group.h ../../core/dircontainer.h
editticket.o: ../../core/ugcontainer.h ../../core/log.h
editticket.o: ../../core/textstream.h ../../core/logmanipulators.h
editticket.o: ../../core/slog.h ../../core/cur.h ../../core/request.h
editticket.o: ../../core/error.h ../../core/config.h ../../core/htmlfilter.h
editticket.o: ../../templates/htmltextstream.h ../../core/session.h
editticket.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h
editticket.o: ../../core/mount.h ../../templates/locale.h
editticket.o: ../../notify/notify.h ../../notify/notifypool.h
editticket.o: ../../templates/patterns.h ../../templates/locale.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/loadavg.h ../../core/image.h
editticket.o: ../../core/threadmanager.h ../../core/timezones.h
editticket.o: ../../functions/functions.h ../../functions/functionbase.h
editticket.o: ../../functions/functionparser.h ../../core/cur.h
editticket.o: ../../functions/adduser.h ../../functions/cat.h
editticket.o: ../../functions/chmod.h ../../functions/privchanger.h
editticket.o: ../../core/request.h ../../functions/chown.h
editticket.o: ../../functions/ckeditor.h ../../functions/cp.h
editticket.o: ../../functions/default.h ../../functions/download.h
editticket.o: ../../functions/emacs.h ../../functions/env.h
editticket.o: ../../functions/last.h ../../functions/login.h
editticket.o: ../../functions/logout.h ../../functions/ln.h
editticket.o: ../../functions/ls.h ../../functions/man.h
editticket.o: ../../core/timezone.h ../../functions/functions.h
editticket.o: ../../functions/functionbase.h ../../functions/functionparser.h
editticket.o: ../../core/cur.h ../../functions/adduser.h
editticket.o: ../../functions/cat.h ../../functions/chmod.h
editticket.o: ../../functions/privchanger.h ../../core/request.h
editticket.o: ../../functions/chown.h ../../functions/ckeditor.h
editticket.o: ../../functions/cp.h ../../functions/default.h
editticket.o: ../../functions/download.h ../../functions/emacs.h
editticket.o: ../../functions/env.h ../../functions/last.h
editticket.o: ../../functions/login.h ../../functions/logout.h
editticket.o: ../../functions/ln.h ../../functions/ls.h ../../functions/man.h
editticket.o: ../../functions/meta.h ../../functions/mkdir.h
editticket.o: ../../functions/mv.h ../../functions/nicedit.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/synchro.h ../../core/dirs.h ../../core/dircontainer.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: ../../core/group.h ../../core/dircontainer.h
funticket.o: ../../core/ugcontainer.h ../../core/log.h
funticket.o: ../../core/textstream.h ../../core/logmanipulators.h
funticket.o: ../../core/slog.h ../../core/cur.h ../../core/request.h
funticket.o: ../../core/error.h ../../core/config.h ../../core/htmlfilter.h
funticket.o: ../../templates/htmltextstream.h ../../core/session.h
funticket.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h
funticket.o: ../../core/mount.h ../../templates/locale.h
funticket.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
funticket.o: ../../core/dircontainer.h ../../core/ugcontainer.h
funticket.o: ../../core/log.h ../../core/textstream.h
funticket.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h
funticket.o: ../../core/request.h ../../core/error.h ../../core/config.h
funticket.o: ../../core/htmlfilter.h ../../templates/htmltextstream.h
funticket.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h
funticket.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h
funticket.o: ../../notify/notify.h ../../notify/notifypool.h
funticket.o: ../../templates/patterns.h ../../templates/locale.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/loadavg.h ../../core/image.h
funticket.o: ../../core/threadmanager.h ../../core/timezones.h
funticket.o: ../../functions/functions.h ../../functions/functionbase.h
funticket.o: ../../functions/functionparser.h ../../core/cur.h
funticket.o: ../../functions/adduser.h ../../functions/cat.h
funticket.o: ../../core/timezone.h ../../functions/functions.h
funticket.o: ../../functions/functionbase.h ../../functions/functionparser.h
funticket.o: ../../core/cur.h ../../functions/adduser.h ../../functions/cat.h
funticket.o: ../../functions/chmod.h ../../functions/privchanger.h
funticket.o: ../../core/request.h ../../functions/chown.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/dircontainer.h ../../db/db.h ../../db/dbbase.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/ugcontainer.h ../../core/log.h ../../core/textstream.h
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/htmlfilter.h ../../templates/htmltextstream.h
init.o: ../../core/session.h ../../core/user.h ../../core/plugindata.h
init.o: ../../core/rebus.h ../../core/mount.h ../../templates/locale.h
init.o: ../../notify/notify.h ../../notify/notifypool.h
init.o: ../../templates/patterns.h ../../templates/locale.h
init.o: ../../templates/localefilter.h ../../../ezc/src/ezc.h
init.o: ../../../ezc/src/generator.h ../../../ezc/src/pattern.h
init.o: ../../../ezc/src/functions.h ../../../ezc/src/funinfo.h
init.o: ../../../ezc/src/stringconv.h ../../../pikotools/utf8/utf8.h
init.o: ../../notify/notifythread.h ../../core/basethread.h
init.o: ../../notify/templatesnotify.h ../../core/config.h ../../core/users.h
init.o: ../../core/ugcontainer.h ../../core/lastcontainer.h
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/group.h ../../core/loadavg.h ../../core/image.h
init.o: ../../core/threadmanager.h ../../core/timezones.h
init.o: ../../core/group.h ../../core/dircontainer.h ../../core/ugcontainer.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/error.h ../../core/config.h ../../core/htmlfilter.h
init.o: ../../templates/htmltextstream.h ../../core/session.h
init.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.h
init.o: ../../core/mount.h ../../templates/locale.h ../../notify/notify.h
init.o: ../../notify/notifypool.h ../../templates/patterns.h
init.o: ../../templates/locale.h ../../templates/localefilter.h
init.o: ../../../ezc/src/ezc.h ../../../ezc/src/generator.h
init.o: ../../../ezc/src/pattern.h ../../../ezc/src/functions.h
init.o: ../../../ezc/src/funinfo.h ../../../ezc/src/stringconv.h
init.o: ../../../pikotools/utf8/utf8.h ../../notify/notifythread.h
init.o: ../../core/basethread.h ../../notify/templatesnotify.h
init.o: ../../core/config.h ../../core/users.h ../../core/ugcontainer.h
init.o: ../../core/lastcontainer.h ../../core/mounts.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/loadavg.h ../../core/image.h ../../core/threadmanager.h
init.o: ../../core/timezones.h ../../core/timezone.h
init.o: ../../functions/functions.h ../../functions/functionbase.h
init.o: ../../functions/functionparser.h ../../core/cur.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/dircontainer.h ../../db/db.h ../../db/dbbase.h
showtickets.o: ../../db/dbitemquery.h ../../db/dbitemcolumns.h
showtickets.o: ../../core/user.h ../../core/timezone.h ../../core/group.h
showtickets.o: ../../core/dircontainer.h ../../core/ugcontainer.h
showtickets.o: ../../core/log.h ../../core/textstream.h
showtickets.o: ../../core/logmanipulators.h ../../core/slog.h
showtickets.o: ../../core/cur.h ../../core/request.h ../../core/error.h
showtickets.o: ../../core/config.h ../../core/htmlfilter.h
showtickets.o: ../../core/user.h ../../core/group.h ../../core/dircontainer.h
showtickets.o: ../../core/ugcontainer.h ../../core/log.h
showtickets.o: ../../core/textstream.h ../../core/logmanipulators.h
showtickets.o: ../../core/slog.h ../../core/cur.h ../../core/request.h
showtickets.o: ../../core/error.h ../../core/config.h ../../core/htmlfilter.h
showtickets.o: ../../templates/htmltextstream.h ../../core/session.h
showtickets.o: ../../core/user.h ../../core/plugindata.h ../../core/rebus.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/loadavg.h ../../core/image.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/adduser.h ../../functions/cat.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/dirs.h ../../core/dircontainer.h ../../db/db.h
templates.o: ../../db/dbbase.h ../../db/dbitemquery.h
templates.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/timezone.h
templates.o: ../../core/group.h ../../core/dircontainer.h
templates.o: ../../core/ugcontainer.h ../../core/log.h
templates.o: ../../core/textstream.h ../../core/logmanipulators.h
templates.o: ../../core/slog.h ../../core/cur.h ../../core/request.h
templates.o: ../../core/requesttypes.h ../../core/error.h ../../core/config.h
templates.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
templates.o: ../../core/dircontainer.h ../../core/ugcontainer.h
templates.o: ../../core/log.h ../../core/textstream.h
templates.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h
templates.o: ../../core/request.h ../../core/requesttypes.h
templates.o: ../../core/error.h ../../core/config.h
templates.o: ../../../pikotools/space/spaceparser.h
templates.o: ../../../pikotools/space/space.h ../../core/htmlfilter.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/loadavg.h ../../core/image.h
templates.o: ../../core/threadmanager.h ../../core/timezones.h
templates.o: ../../functions/functions.h ../../functions/functionbase.h
templates.o: ../../functions/functionparser.h ../../core/cur.h
templates.o: ../../functions/adduser.h ../../functions/cat.h
templates.o: ../../core/timezone.h ../../functions/functions.h
templates.o: ../../functions/functionbase.h ../../functions/functionparser.h
templates.o: ../../core/cur.h ../../functions/adduser.h ../../functions/cat.h
templates.o: ../../functions/chmod.h ../../functions/privchanger.h
templates.o: ../../core/request.h ../../functions/chown.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/dircontainer.h ../../db/db.h ../../db/dbbase.h
ticketinfo.o: ../../db/dbitemquery.h ../../db/dbitemcolumns.h
ticketinfo.o: ../../core/user.h ../../core/timezone.h ../../core/group.h
ticketinfo.o: ../../core/dircontainer.h ../../core/ugcontainer.h
ticketinfo.o: ../../core/log.h ../../core/textstream.h
ticketinfo.o: ../../core/logmanipulators.h ../../core/slog.h ../../core/cur.h
ticketinfo.o: ../../core/request.h ../../core/requesttypes.h
ticketinfo.o: ../../core/error.h ../../core/config.h
ticketinfo.o: ../../../pikotools/space/spaceparser.h
ticketinfo.o: ../../core/user.h ../../core/group.h ../../core/dircontainer.h
ticketinfo.o: ../../core/ugcontainer.h ../../core/log.h
ticketinfo.o: ../../core/textstream.h ../../core/logmanipulators.h
ticketinfo.o: ../../core/slog.h ../../core/cur.h ../../core/request.h
ticketinfo.o: ../../core/requesttypes.h ../../core/error.h
ticketinfo.o: ../../core/config.h ../../../pikotools/space/spaceparser.h
ticketinfo.o: ../../../pikotools/space/space.h ../../core/htmlfilter.h
ticketinfo.o: ../../templates/htmltextstream.h ../../core/textstream.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/loadavg.h ../../core/image.h
ticketinfo.o: ../../core/threadmanager.h ../../core/timezones.h
ticketinfo.o: ../../functions/functions.h ../../functions/functionbase.h
ticketinfo.o: ../../functions/functionparser.h ../../core/cur.h
ticketinfo.o: ../../functions/adduser.h ../../functions/cat.h
ticketinfo.o: ../../functions/chmod.h ../../functions/privchanger.h
ticketinfo.o: ../../core/request.h ../../functions/chown.h
ticketinfo.o: ../../functions/ckeditor.h ../../functions/cp.h
ticketinfo.o: ../../functions/default.h ../../functions/download.h
ticketinfo.o: ../../functions/emacs.h ../../functions/env.h
ticketinfo.o: ../../functions/last.h ../../functions/login.h
ticketinfo.o: ../../functions/logout.h ../../functions/ln.h
ticketinfo.o: ../../functions/ls.h ../../functions/man.h
ticketinfo.o: ../../core/timezone.h ../../functions/functions.h
ticketinfo.o: ../../functions/functionbase.h ../../functions/functionparser.h
ticketinfo.o: ../../core/cur.h ../../functions/adduser.h
ticketinfo.o: ../../functions/cat.h ../../functions/chmod.h
ticketinfo.o: ../../functions/privchanger.h ../../core/request.h
ticketinfo.o: ../../functions/chown.h ../../functions/ckeditor.h
ticketinfo.o: ../../functions/cp.h ../../functions/default.h
ticketinfo.o: ../../functions/download.h ../../functions/emacs.h
ticketinfo.o: ../../functions/env.h ../../functions/last.h
ticketinfo.o: ../../functions/login.h ../../functions/logout.h
ticketinfo.o: ../../functions/ln.h ../../functions/ls.h ../../functions/man.h
ticketinfo.o: ../../functions/meta.h ../../functions/mkdir.h
ticketinfo.o: ../../functions/mv.h ../../functions/nicedit.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 "locale.h"
#include "core/log.h"
#include "core/misc.h"
#include "utf8/utf8.h"
Locale::Locale()
{
locale_files.push_back(L"en");
loc_tab.resize(locale_files.size());
loc_tab_multi.resize(locale_files.size());
default_lang = 0;
current_lang = 0;
input_as_utf8 = false;
@ -29,55 +26,75 @@ Locale::Locale()
void Locale::SetLocaleFiles(const std::vector<std::wstring> & 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)
{
if( max_id > 1000 )
{
max_id = 1000;
log << log1 << "Locale: locale_max_id is too big (changed to 1000)" << logend;
}
size_t old_size = locale_indices.size();
locale_indices.resize(max_id + 1);
for(size_t i=old_size ; i<locale_indices.size() ; ++i)
locale_indices[i] = size_t(-1);
}
void Locale::ReadFile(const char * dir, const char * dir_def, size_t lang, const char * file)
bool Locale::HasLanguage(size_t lang_id)
{
if( lang >= loc_tab.size() )
return;
if( lang_id < locale_indices.size() )
return locale_indices[lang_id] < locale_tab.size();
loc_tab[lang].clear();
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, lang, file) )
if( dir_def && ReadFile(dir_def, file) )
read = true;
if( dir && ReadFile(dir, lang, file) )
if( dir && ReadFile(dir, file) )
read = true;
if( !read )
if( read )
AddLocale(file);
else
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::ReadFile(const char * dir, const char * file)
{
bool read = false;
file_name = dir;
file_name += '/';
file_name += file; // !! dodac sprawdzenie poprawnosci nazwy pliku (czy nie zawiera specjalnych znakow)
file_name += file;
loc_parser.SplitSingle(true);
loc_parser.UTF8(input_as_utf8);
loc_parser.SetSpace(space);
loc_parser.SetSpace(temp_space);
PT::SpaceParser::Status status = loc_parser.Parse(file_name);
if( status == PT::SpaceParser::ok )
{
read = true;
AddLocale(lang);
log << log3 << "Locale: read locale from: " << file_name << logend;
}
else
@ -91,21 +108,30 @@ 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)
loc_tab[lang][i->first] = i->second;
// lists
PT::Space::Table::iterator i2 = space.table.begin();
for( ; i2 != space.table.end() ; ++i2)
loc_tab_multi[lang][i2->first] = i2->second;
if( !id_str )
{
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);
if( id >= locale_indices.size() )
{
log << log1 << "Locale: locale identifier is greater than locale_max_id (skipping)" << logend;
return;
}
locale_tab.push_back(temp_space);
locale_indices[id] = locale_tab.size() - 1;
}
void Locale::ReadSubstTable(const char * dir, const char * dir_def)
{
@ -137,14 +163,15 @@ bool read = false;
loc_parser.SplitSingle(true);
loc_parser.UTF8(input_as_utf8);
loc_parser.SetSpace(temp_space);
if( loc_parser.Parse(file_name) == PT::SpaceParser::ok )
{
read = true;
CreateSubstVector(subst_url, space.table_single[L"url_original"], space.table_single[L"url_changeto"]);
CreateSubstVector(subst_smalllet, space.table_single[L"smallleters"], space.table_single[L"capitalics"]);
CreateSubstVector(subst_capitallet, space.table_single[L"capitalics"], space.table_single[L"smallleters"]);
CreateSubstSortVector(subst_sort, space.table[L"sort"]);
CreateSubstVector(subst_url, temp_space.table_single[L"url_original"], temp_space.table_single[L"url_changeto"]);
CreateSubstVector(subst_smalllet, temp_space.table_single[L"smallleters"], temp_space.table_single[L"capitalics"]);
CreateSubstVector(subst_capitallet, temp_space.table_single[L"capitalics"], temp_space.table_single[L"smallleters"]);
CreateSubstSortVector(subst_sort, temp_space.table[L"sort"]);
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)
{
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)
{
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);
@ -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)
{
current_lang = lang;
if( current_lang >= loc_tab.size() )
current_lang = loc_tab.size() - 1;
}
size_t Locale::GetLang() const
size_t Locale::GetCurLang() const
{
return current_lang;
}
void Locale::SetLangDef(size_t lang)
void Locale::SetDefLang(size_t lang_id)
{
default_lang = lang;
if( default_lang >= loc_tab.size() )
default_lang = loc_tab.size() - 1;
default_lang = lang_id;
}
size_t Locale::GetLangDef() const
size_t Locale::GetDefLang() const
{
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;
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() )
return false;
if( lang_id < locale_indices.size() )
{
size_t index = locale_indices[lang_id];
// looking in the 'lang' language
PT::Space::TableSingle::const_iterator i = loc_tab[lang].find(key);
if( index < locale_tab.size() )
return locale_tab[index].GetValue(key);
}
if( i != loc_tab[lang].end() )
return 0;
}
bool Locale::IsKey(const std::wstring & key, size_t lang_id) const
{
const std::wstring * value = GetKeyInLanguage(key, lang_id);
if( value )
return true;
if( lang == default_lang )
if( lang_id == default_lang )
return false;
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;
return GetKeyInLanguage(key, default_lang) != 0;
}
@ -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 false;
// looking in the 'lang' language
PT::Space::TableSingle::const_iterator i = loc_tab[lang].find(key);
return i != loc_tab[lang].end();
return GetKeyInLanguage(key, lang_id) != 0;
}
const std::wstring & Locale::Get(const wchar_t * 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;
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);
if( value )
return *value;
if( lang_id == default_lang )
return empty;
// looking in the 'lang' language
PT::Space::TableSingle::const_iterator i = loc_tab[lang].find(key);
value = GetKeyInLanguage(key, default_lang);
if( i != loc_tab[lang].end() )
return i->second;
if( value )
return *value;
if( lang == default_lang )
return empty;
if( default_lang >= loc_tab.size() )
return empty;
// looking in a default language
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;
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 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();
return GetListInLanguage(key, lang_id) != 0;
}
@ -433,65 +431,98 @@ 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() )
return empty_list;
if( lang_id < locale_indices.size() )
{
size_t index = locale_indices[lang_id];
// looking in the 'lang' language
PT::Space::Table::const_iterator i = loc_tab_multi[lang].find(key);
if( index < locale_tab.size() )
{
PT::Space::Table::const_iterator i = locale_tab[index].table.find(key);
if( i != loc_tab_multi[lang].end() )
return i->second;
if( lang == default_lang )
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;
if( i != locale_tab[index].table.end() )
return &i->second;
}
}
size_t Locale::FileNameToLang(const std::wstring & str) const
{
for(size_t i=0 ; i<locale_files.size() ; ++i)
{
if( locale_files[i] == str )
return i;
}
// we have at least one item "en"
return 0;
}
const std::wstring & Locale::LangToFileName(size_t lang) const
const std::vector<std::wstring> & Locale::GetList(const std::wstring & key, size_t lang_id) const
{
if( lang >=locale_files.size() )
return empty;
const std::vector<std::wstring> * list = GetListInLanguage(key, lang_id);
return locale_files[lang];
if( list )
return *list;
if( lang_id == default_lang )
return empty_list;
list = GetListInLanguage(key, default_lang);
if( list )
return *list;
return empty_list;
}
size_t Locale::IdToIndex(size_t lang_id)
{
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() )
{
const std::wstring * value = locale_tab[index].GetValue(key);
if( value )
return *value;
}
return empty;
}
void Locale::UTF8(bool utf)
{
input_as_utf8 = utf;
}
/*
binary search in vect
vect should be sorted by 'from'

View File

@ -27,6 +27,11 @@ public:
// default one item: en
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
// you should call SetLocaleFiles() beforehand
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 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)
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, 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
// (default language is not checked)
bool IsKeyLang(const wchar_t * key, size_t lang);
bool IsKeyLang(const std::wstring & key, size_t lang) const;
bool IsKeyLang(const wchar_t * key, size_t lang_id);
bool IsKeyLang(const std::wstring & key, size_t lang_id) const;
// returning specific '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, size_t lang) const;
const std::wstring & Get(const std::wstring & key, size_t lang_id) const;
/*
lists
*/
// 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;
// lists
bool IsKeyLangList(const wchar_t * key, size_t lang_id);
bool IsKeyLangList(const std::wstring & key, size_t lang_id) 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
// default: 0
void SetLang(size_t lang);
size_t GetLang() const;
void SetCurLang(size_t lang_id);
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
void SetLangDef(size_t lang);
size_t GetLangDef() const;
void SetDefLang(size_t lang_id);
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
// this is how many files were correctly parsed
// this is size of locale_tab table
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
// default: false
void UTF8(bool utf);
@ -104,8 +119,11 @@ public:
int Compare(wchar_t c1, wchar_t c2);
int Compare(const std::wstring & str1, const std::wstring & str2);
private:
// struct to used for substitution
struct SubstItem
{
@ -116,36 +134,45 @@ private:
bool operator<(const SubstItem & arg) const { return from < arg.from; }
};
void AddLocale(size_t lang);
void ReadFile(const char * dir, const char * dir_def, size_t lang, const char * file);
bool ReadFile(const char * dir, size_t lang, const char * file);
void AddLocale(const char * file);
void ReadFile(const char * dir, const char * dir_def, const char * file);
bool ReadFile(const char * dir, const char * file);
void ReadSubstTable(const char * dir, const char * dir_def);
bool ReadSubstTable(const char * dir);
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);
size_t SubstFindIndex(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
// we have at least one item "en"
std::vector<std::wstring> locale_files;
// messages vector<via language>
// this table has the same size as locale_files (at least one item)
std::vector<PT::Space::TableSingle> loc_tab;
// a map from <0, config->locale_max_id> returning an index to
// locale_tab table (you should check whether the index is correct)
// 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>
// this table has the same size as locale_files (at least one item)
std::vector<PT::Space::Table> loc_tab_multi;
std::vector<PT::Space> locale_tab;
// 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')
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_capitallet; // changing from capital to small
std::vector<SubstItem> subst_sort; // local characters for comparison
PT::Space space;
PT::Space temp_space;
PT::SpaceParser loc_parser;
std::string locale_filea;
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::vector<std::wstring> empty_list; // the same as above
std::string adir1, adir2;
size_t default_lang; // index to loc_tab
size_t current_lang; // index to loc_tab
bool input_as_utf8;
};

View File

@ -2,7 +2,7 @@
* This file is a part of Winix
* and is not publicly distributed
*
* Copyright (c) 2010, Tomasz Sowa
* Copyright (c) 2010-2012, Tomasz Sowa
* 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)
{
@ -76,7 +47,7 @@ void LocaleFilter::Parse(std::wstring & str)
{
++pchar;
ReadKey();
res += FilterValue(plocale->Get(key, lang));
res += plocale->GetByIndex(key, lang);
}
else
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)
{
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;
lang = lang_;
lang = lang_index;
FilterText( pattern.item_root );
}

View File

@ -2,7 +2,7 @@
* This file is a part of Winix
* and is not publicly distributed
*
* Copyright (c) 2010, Tomasz Sowa
* Copyright (c) 2010-2012, Tomasz Sowa
* All rights reserved.
*
*/
@ -21,11 +21,12 @@ class LocaleFilter
public:
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:
void ReadKey();
std::wstring & FilterValue(const std::wstring & in);
void FilterText(Ezc::Item & item);
void Parse(std::wstring & str);

View File

@ -2,7 +2,7 @@
* This file is a part of Winix
* and is not publicly distributed
*
* Copyright (c) 2011, Tomasz Sowa
* Copyright (c) 2011-2012, Tomasz Sowa
* 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 &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)
{
if( index < pat_tab.size() )
if( index < pat_tab.size() && pat_tab[index].references > 0 )
{
pat_tab[index].references -= 1;
@ -160,7 +165,7 @@ void Patterns::Erase(size_t index)
pat_tab[index].file_name.clear();
pat_tab[index].patterns.clear();
// 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
// normally in reload/templates winix function
}

View File

@ -2,7 +2,7 @@
* This file is a part of Winix
* and is not publicly distributed
*
* Copyright (c) 2011, Tomasz Sowa
* Copyright (c) 2011-2012, Tomasz Sowa
* All rights reserved.
*
*/
@ -58,7 +58,7 @@ public:
returning a pattern (if exists)
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;
std::wstring file_name;
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;

View File

@ -72,12 +72,12 @@ static std::wstring fun_file;
fun_file += cur->request->function->fun.url;
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 )
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_PRIVILEGES:
// !! 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;
case WINIX_ERR_NO_ITEM:
case WINIX_ERR_NO_FUNCTION:
case WINIX_ERR_UNKNOWN_PARAM:
// !! 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;
//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_bbcode", user_can_use_bbcode);
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_index", user_tab_index);
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_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_has_dst", winix_tz_tab_has_dst);
ezc_functions.Insert("winix_tz_tab_dst_offset_sec", winix_tz_tab_dst_offset_sec);
ezc_functions.Insert("winix_tz_tab_dst_offset_hour_min", winix_tz_tab_dst_offset_hour_min);
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);
ezc_functions.Insert("winix_locale_tab", winix_locale_tab);
ezc_functions.Insert("winix_locale_tab_id", winix_locale_tab_id);
ezc_functions.Insert("winix_locale_tab_name", winix_locale_tab_name);
/*
@ -612,9 +617,8 @@ using namespace TemplatesFunctions;
locale.UTF8(config->utf8);
locale.SetLocaleFiles(config->locale_files);
// !! tutaj nie potrzeba ustawiac locali SetLang/SetLangDef (nie odczytujemy kluczy)
locale.SetLang(config->locale_default_index); // !! w przyszlosci locale beda ustawiane dla kazdego uzytkownika osobno
locale.SetLangDef(config->locale_default_index);
locale.SetLocaleMaxId(config->locale_max_id);
locale.SetDefLang(config->locale_default_id);
locale.Read(config->locale_dir, config->locale_dir_default);
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()
{
using namespace TemplatesFunctions;
@ -701,6 +707,9 @@ using namespace TemplatesFunctions;
if( locale.IsKeyLang(L"html_lang_attr_value", 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),
locale.GetList(L"language_orphans", i));
}
@ -835,7 +844,7 @@ using namespace TemplatesFunctions;
}
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;
}
@ -851,18 +860,18 @@ using namespace TemplatesFunctions;
Ezc::Pattern * index = 0;
if( cur->request->IsParam(L"rawcontent") )
index = patterns.Get(pat_index_rawcontent, locale.GetLang());
index = patterns.Get(pat_index_rawcontent, locale.GetCurLang());
else
if( cur->request->IsParam(L"fullscreen") )
index = patterns.Get(pat_index_fullscreen, locale.GetLang());
index = patterns.Get(pat_index_fullscreen, locale.GetCurLang());
else
index = SelectIndexPatternFromItemAndMountPoint();
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 )
index = patterns.Get(pat_index, locale.GetLang());;
index = patterns.Get(pat_index, locale.GetCurLang());;
return index;
}

View File

@ -425,6 +425,13 @@ namespace TemplatesFunctions
void user_can_use_html(Info & i);
void user_can_use_bbcode(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_index(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_offset_sec(Info & i);
void winix_tz_tab_offset_hour_min(Info & i);
void winix_tz_tab_has_dst(Info & i);
void winix_tz_tab_dst_offset_sec(Info & i);
void winix_tz_tab_dst_offset_hour_min(Info & i);
void winix_tz_tab_dst_start(Info & i);
void winix_tz_tab_dst_end(Info & i);
void winix_locale_tab(Info & i);
void winix_locale_tab_id(Info & i);
void winix_locale_tab_name(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;

View File

@ -2,7 +2,7 @@
* This file is a part of Winix
* and is not publicly distributed
*
* Copyright (c) 2008-2010, Tomasz Sowa
* Copyright (c) 2008-2012, Tomasz Sowa
* All rights reserved.
*
*/
@ -336,33 +336,38 @@ void winix_tz_tab(Info & i)
void winix_tz_tab_id(Info & i)
{
if( tz_index < system->time_zones.Size() )
i.out << system->time_zones[tz_index].time_zone.tz_id;
TimeZone * tz = system->time_zones.GetZoneByIndex(tz_index);
if( tz )
i.out << tz->id;
}
void winix_tz_tab_name(Info & i)
{
if( tz_index < system->time_zones.Size() )
{
std::wstring & key = system->time_zones[tz_index].name_key;
i.out << locale.Get(key); // !! IMPROVE ME which locale?
}
TimeZone * tz = system->time_zones.GetZoneByIndex(tz_index);
if( tz )
i.out << locale.Get(tz->name);
}
void winix_tz_tab_offset_sec(Info & i)
{
if( tz_index < system->time_zones.Size() )
i.out << system->time_zones[tz_index].time_zone.tz_offset;
TimeZone * tz = system->time_zones.GetZoneByIndex(tz_index);
if( tz )
i.out << tz->offset;
}
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 )
{
@ -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() )
i.res = system->time_zones[tz_index].time_zone.tz_has_dst;
locale_id = i.iter;
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() )
i.out << system->time_zones[tz_index].time_zone.tz_dst_offset;
if( locale_id < locale.Size() )
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() )
{
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);
}
if( locale_id < locale.Size() )
i.out << locale.GetByIndex(L"locale_name", locale_id);
}
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