mirror of
https://github.com/acanas/swad-core.git
synced 2024-09-20 00:02:42 +02:00
Version 18.6.3
This commit is contained in:
parent
182b6eb2e1
commit
c95fe7dc36
|
@ -355,10 +355,11 @@ En OpenSWAD:
|
||||||
ps2pdf source.ps destination.pdf
|
ps2pdf source.ps destination.pdf
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define Log_PLATFORM_VERSION "SWAD 18.6.2 (2018-10-17)"
|
#define Log_PLATFORM_VERSION "SWAD 18.6.3 (2018-10-17)"
|
||||||
#define CSS_FILE "swad18.4.css"
|
#define CSS_FILE "swad18.4.css"
|
||||||
#define JS_FILE "swad17.17.1.js"
|
#define JS_FILE "swad17.17.1.js"
|
||||||
/*
|
/*
|
||||||
|
Version 18.6.3: Oct 17, 2018 Some sprintf changed by snprintf or asprintf. (235954 lines)
|
||||||
Version 18.6.2: Oct 17, 2018 Some sprintf changed by snprintf. (235808 lines)
|
Version 18.6.2: Oct 17, 2018 Some sprintf changed by snprintf. (235808 lines)
|
||||||
Version 18.6.1: Oct 16, 2018 Some sprintf changed by snprintf. (235755 lines)
|
Version 18.6.1: Oct 16, 2018 Some sprintf changed by snprintf. (235755 lines)
|
||||||
Version 18.6: Oct 16, 2018 sprintf changed by snprintf in alerts. (235730 lines)
|
Version 18.6: Oct 16, 2018 sprintf changed by snprintf in alerts. (235730 lines)
|
||||||
|
|
85
swad_chat.c
85
swad_chat.c
|
@ -144,7 +144,9 @@ void Cht_ShowListOfAvailableChatRooms (void)
|
||||||
/***** Link to chat available for all the users *****/
|
/***** Link to chat available for all the users *****/
|
||||||
IsLastItemInLevel[1] = (!Gbl.Usrs.Me.IBelongToCurrentCrs &&
|
IsLastItemInLevel[1] = (!Gbl.Usrs.Me.IBelongToCurrentCrs &&
|
||||||
!Gbl.Usrs.Me.MyDegs.Num);
|
!Gbl.Usrs.Me.MyDegs.Num);
|
||||||
sprintf (ThisRoomFullName,"%s (%s)",Txt_General,Txt_SEX_PLURAL_abc[Usr_SEX_ALL]);
|
snprintf (ThisRoomFullName,sizeof (ThisRoomFullName),
|
||||||
|
"%s (%s)",
|
||||||
|
Txt_General,Txt_SEX_PLURAL_abc[Usr_SEX_ALL]);
|
||||||
Cht_WriteLinkToChat1 ("GBL_USR",Txt_SEX_PLURAL_Abc[Usr_SEX_ALL],ThisRoomFullName,1,IsLastItemInLevel);
|
Cht_WriteLinkToChat1 ("GBL_USR",Txt_SEX_PLURAL_Abc[Usr_SEX_ALL],ThisRoomFullName,1,IsLastItemInLevel);
|
||||||
fprintf (Gbl.F.Out,"<img src=\"%s/chat64x64.gif\""
|
fprintf (Gbl.F.Out,"<img src=\"%s/chat64x64.gif\""
|
||||||
" alt=\"%s\" title=\"%s\""
|
" alt=\"%s\" title=\"%s\""
|
||||||
|
@ -158,7 +160,8 @@ void Cht_ShowListOfAvailableChatRooms (void)
|
||||||
switch (Gbl.Usrs.Me.Role.Logged)
|
switch (Gbl.Usrs.Me.Role.Logged)
|
||||||
{
|
{
|
||||||
case Rol_STD:
|
case Rol_STD:
|
||||||
sprintf (ThisRoomFullName,"%s (%s)",
|
snprintf (ThisRoomFullName,sizeof (ThisRoomFullName),
|
||||||
|
"%s (%s)",
|
||||||
Txt_General,Txt_ROLES_PLURAL_abc[Rol_STD][Usr_SEX_ALL]);
|
Txt_General,Txt_ROLES_PLURAL_abc[Rol_STD][Usr_SEX_ALL]);
|
||||||
Cht_WriteLinkToChat1 ("GBL_STD",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD],ThisRoomFullName,1,IsLastItemInLevel);
|
Cht_WriteLinkToChat1 ("GBL_STD",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD],ThisRoomFullName,1,IsLastItemInLevel);
|
||||||
fprintf (Gbl.F.Out,"<img src=\"%s/chat64x64.gif\""
|
fprintf (Gbl.F.Out,"<img src=\"%s/chat64x64.gif\""
|
||||||
|
@ -170,7 +173,8 @@ void Cht_ShowListOfAvailableChatRooms (void)
|
||||||
break;
|
break;
|
||||||
case Rol_NET:
|
case Rol_NET:
|
||||||
case Rol_TCH:
|
case Rol_TCH:
|
||||||
sprintf (ThisRoomFullName,"%s (%s)",
|
snprintf (ThisRoomFullName,sizeof (ThisRoomFullName),
|
||||||
|
"%s (%s)",
|
||||||
Txt_General,Txt_ROLES_PLURAL_abc[Rol_TCH][Usr_SEX_ALL]);
|
Txt_General,Txt_ROLES_PLURAL_abc[Rol_TCH][Usr_SEX_ALL]);
|
||||||
Cht_WriteLinkToChat1 ("GBL_TCH",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH],ThisRoomFullName,1,IsLastItemInLevel);
|
Cht_WriteLinkToChat1 ("GBL_TCH",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH],ThisRoomFullName,1,IsLastItemInLevel);
|
||||||
fprintf (Gbl.F.Out,"<img src=\"%s/chat64x64.gif\""
|
fprintf (Gbl.F.Out,"<img src=\"%s/chat64x64.gif\""
|
||||||
|
@ -196,9 +200,15 @@ void Cht_ShowListOfAvailableChatRooms (void)
|
||||||
|
|
||||||
/* Link to the room of this degree */
|
/* Link to the room of this degree */
|
||||||
IsLastItemInLevel[1] = (NumMyDeg == Gbl.Usrs.Me.MyDegs.Num - 1);
|
IsLastItemInLevel[1] = (NumMyDeg == Gbl.Usrs.Me.MyDegs.Num - 1);
|
||||||
sprintf (ThisRoomCode,"DEG_%ld",Deg.DegCod);
|
snprintf (ThisRoomCode,sizeof (ThisRoomCode),
|
||||||
sprintf (ThisRoomShrtName,"%s",Deg.ShrtName);
|
"DEG_%ld",
|
||||||
sprintf (ThisRoomFullName,"%s %s",Txt_Degree,Deg.ShrtName);
|
Deg.DegCod);
|
||||||
|
snprintf (ThisRoomShrtName,sizeof (ThisRoomShrtName),
|
||||||
|
"%s",
|
||||||
|
Deg.ShrtName);
|
||||||
|
snprintf (ThisRoomFullName,sizeof (ThisRoomFullName),
|
||||||
|
"%s %s",
|
||||||
|
Txt_Degree,Deg.ShrtName);
|
||||||
Cht_WriteLinkToChat1 (ThisRoomCode,ThisRoomShrtName,ThisRoomFullName,1,IsLastItemInLevel);
|
Cht_WriteLinkToChat1 (ThisRoomCode,ThisRoomShrtName,ThisRoomFullName,1,IsLastItemInLevel);
|
||||||
Log_DrawLogo (Sco_SCOPE_DEG,Deg.DegCod,Deg.ShrtName,20,NULL,true);
|
Log_DrawLogo (Sco_SCOPE_DEG,Deg.DegCod,Deg.ShrtName,20,NULL,true);
|
||||||
Cht_WriteLinkToChat2 (ThisRoomCode,ThisRoomFullName);
|
Cht_WriteLinkToChat2 (ThisRoomCode,ThisRoomFullName);
|
||||||
|
@ -220,9 +230,15 @@ void Cht_ShowListOfAvailableChatRooms (void)
|
||||||
|
|
||||||
/* Link to the room of this course */
|
/* Link to the room of this course */
|
||||||
IsLastItemInLevel[2] = (NumRow == NumRows - 1);
|
IsLastItemInLevel[2] = (NumRow == NumRows - 1);
|
||||||
sprintf (ThisRoomCode,"CRS_%ld",Crs.CrsCod);
|
snprintf (ThisRoomCode,sizeof (ThisRoomCode),
|
||||||
sprintf (ThisRoomShrtName,"%s",Crs.ShrtName);
|
"CRS_%ld",
|
||||||
sprintf (ThisRoomFullName,"%s %s",Txt_Course,Crs.ShrtName);
|
Crs.CrsCod);
|
||||||
|
snprintf (ThisRoomShrtName,sizeof (ThisRoomShrtName),
|
||||||
|
"%s",
|
||||||
|
Crs.ShrtName);
|
||||||
|
snprintf (ThisRoomFullName,sizeof (ThisRoomFullName),
|
||||||
|
"%s %s",
|
||||||
|
Txt_Course,Crs.ShrtName);
|
||||||
Cht_WriteLinkToChat1 (ThisRoomCode,ThisRoomShrtName,ThisRoomFullName,2,IsLastItemInLevel);
|
Cht_WriteLinkToChat1 (ThisRoomCode,ThisRoomShrtName,ThisRoomFullName,2,IsLastItemInLevel);
|
||||||
fprintf (Gbl.F.Out,"<img src=\"%s/dot64x64.png\""
|
fprintf (Gbl.F.Out,"<img src=\"%s/dot64x64.png\""
|
||||||
" alt=\"%s\" title=\"%s\""
|
" alt=\"%s\" title=\"%s\""
|
||||||
|
@ -448,7 +464,9 @@ void Cht_OpenChatWindow (void)
|
||||||
Usr_MAX_BYTES_FULL_NAME);
|
Usr_MAX_BYTES_FULL_NAME);
|
||||||
|
|
||||||
/***** Build the lists of available rooms *****/
|
/***** Build the lists of available rooms *****/
|
||||||
sprintf (ListRoomCodes,"#%s",RoomCode);
|
snprintf (ListRoomCodes,sizeof (ListRoomCodes),
|
||||||
|
"#%s",
|
||||||
|
RoomCode);
|
||||||
Str_Copy (ListRoomShrtNames,RoomShrtName,
|
Str_Copy (ListRoomShrtNames,RoomShrtName,
|
||||||
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
|
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
|
||||||
Str_Copy (ListRoomFullNames ,RoomFullName,
|
Str_Copy (ListRoomFullNames ,RoomFullName,
|
||||||
|
@ -459,11 +477,14 @@ void Cht_OpenChatWindow (void)
|
||||||
Str_Concat (ListRoomCodes,"|#GBL_USR",
|
Str_Concat (ListRoomCodes,"|#GBL_USR",
|
||||||
Cht_MAX_BYTES_ROOM_CODES);
|
Cht_MAX_BYTES_ROOM_CODES);
|
||||||
|
|
||||||
sprintf (RoomShrtName,"|%s",Txt_SEX_PLURAL_Abc[Usr_SEX_ALL]);
|
snprintf (RoomShrtName,sizeof (RoomShrtName),
|
||||||
|
"|%s",
|
||||||
|
Txt_SEX_PLURAL_Abc[Usr_SEX_ALL]);
|
||||||
Str_Concat (ListRoomShrtNames,RoomShrtName,
|
Str_Concat (ListRoomShrtNames,RoomShrtName,
|
||||||
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
|
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
|
||||||
|
|
||||||
sprintf (RoomFullName,"|%s (%s)",
|
snprintf (RoomFullName,sizeof (RoomFullName),
|
||||||
|
"|%s (%s)",
|
||||||
Txt_General,Txt_SEX_PLURAL_abc[Usr_SEX_ALL]);
|
Txt_General,Txt_SEX_PLURAL_abc[Usr_SEX_ALL]);
|
||||||
Str_Concat (ListRoomFullNames,RoomFullName,
|
Str_Concat (ListRoomFullNames,RoomFullName,
|
||||||
Cht_MAX_BYTES_ROOM_FULL_NAMES);
|
Cht_MAX_BYTES_ROOM_FULL_NAMES);
|
||||||
|
@ -475,12 +496,15 @@ void Cht_OpenChatWindow (void)
|
||||||
Str_Concat (ListRoomCodes,"|#GBL_STD",
|
Str_Concat (ListRoomCodes,"|#GBL_STD",
|
||||||
Cht_MAX_BYTES_ROOM_CODES);
|
Cht_MAX_BYTES_ROOM_CODES);
|
||||||
|
|
||||||
sprintf (RoomShrtName,"|%s",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD]);
|
snprintf (RoomShrtName,sizeof (RoomShrtName),
|
||||||
|
"|%s",
|
||||||
|
Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD]);
|
||||||
Str_Concat (ListRoomShrtNames,RoomShrtName,
|
Str_Concat (ListRoomShrtNames,RoomShrtName,
|
||||||
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
|
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
|
||||||
|
|
||||||
sprintf (RoomFullName,"|%s (%s)",Txt_General,
|
snprintf (RoomFullName,sizeof (RoomFullName),
|
||||||
Txt_ROLES_PLURAL_abc[Rol_STD][Usr_SEX_ALL]);
|
"|%s (%s)",
|
||||||
|
Txt_General,Txt_ROLES_PLURAL_abc[Rol_STD][Usr_SEX_ALL]);
|
||||||
Str_Concat (ListRoomFullNames,RoomFullName,
|
Str_Concat (ListRoomFullNames,RoomFullName,
|
||||||
Cht_MAX_BYTES_ROOM_FULL_NAMES);
|
Cht_MAX_BYTES_ROOM_FULL_NAMES);
|
||||||
}
|
}
|
||||||
|
@ -492,11 +516,14 @@ void Cht_OpenChatWindow (void)
|
||||||
Str_Concat (ListRoomCodes,"|#GBL_TCH",
|
Str_Concat (ListRoomCodes,"|#GBL_TCH",
|
||||||
Cht_MAX_BYTES_ROOM_CODES);
|
Cht_MAX_BYTES_ROOM_CODES);
|
||||||
|
|
||||||
sprintf (RoomShrtName,"|%s",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]);
|
snprintf (RoomShrtName,sizeof (RoomShrtName),
|
||||||
|
"|%s",
|
||||||
|
Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]);
|
||||||
Str_Concat (ListRoomShrtNames,RoomShrtName,
|
Str_Concat (ListRoomShrtNames,RoomShrtName,
|
||||||
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
|
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
|
||||||
|
|
||||||
sprintf (RoomFullName,"|%s (%s)",
|
snprintf (RoomFullName,sizeof (RoomFullName),
|
||||||
|
"|%s (%s)",
|
||||||
Txt_General,Txt_ROLES_PLURAL_abc[Rol_TCH][Usr_SEX_ALL]);
|
Txt_General,Txt_ROLES_PLURAL_abc[Rol_TCH][Usr_SEX_ALL]);
|
||||||
Str_Concat (ListRoomFullNames,RoomFullName,
|
Str_Concat (ListRoomFullNames,RoomFullName,
|
||||||
Cht_MAX_BYTES_ROOM_FULL_NAMES);
|
Cht_MAX_BYTES_ROOM_FULL_NAMES);
|
||||||
|
@ -506,7 +533,9 @@ void Cht_OpenChatWindow (void)
|
||||||
NumMyDeg < Gbl.Usrs.Me.MyDegs.Num;
|
NumMyDeg < Gbl.Usrs.Me.MyDegs.Num;
|
||||||
NumMyDeg++)
|
NumMyDeg++)
|
||||||
{
|
{
|
||||||
sprintf (ThisRoomCode,"DEG_%ld",Gbl.Usrs.Me.MyDegs.Degs[NumMyDeg].DegCod);
|
snprintf (ThisRoomCode,sizeof (ThisRoomCode),
|
||||||
|
"DEG_%ld",
|
||||||
|
Gbl.Usrs.Me.MyDegs.Degs[NumMyDeg].DegCod);
|
||||||
if (strcmp (RoomCode,ThisRoomCode))
|
if (strcmp (RoomCode,ThisRoomCode))
|
||||||
{
|
{
|
||||||
Str_Concat (ListRoomCodes,"|#",
|
Str_Concat (ListRoomCodes,"|#",
|
||||||
|
@ -518,13 +547,17 @@ void Cht_OpenChatWindow (void)
|
||||||
Deg.DegCod = Gbl.Usrs.Me.MyDegs.Degs[NumMyDeg].DegCod;
|
Deg.DegCod = Gbl.Usrs.Me.MyDegs.Degs[NumMyDeg].DegCod;
|
||||||
Deg_GetDataOfDegreeByCod (&Deg);
|
Deg_GetDataOfDegreeByCod (&Deg);
|
||||||
|
|
||||||
sprintf (ThisRoomShortName,"%s",Deg.ShrtName);
|
snprintf (ThisRoomShortName,sizeof (ThisRoomShortName),
|
||||||
|
"%s",
|
||||||
|
Deg.ShrtName);
|
||||||
Str_Concat (ListRoomShrtNames,"|",
|
Str_Concat (ListRoomShrtNames,"|",
|
||||||
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
|
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
|
||||||
Str_Concat (ListRoomShrtNames,ThisRoomShortName,
|
Str_Concat (ListRoomShrtNames,ThisRoomShortName,
|
||||||
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
|
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
|
||||||
|
|
||||||
sprintf (ThisRoomFullName,"%s %s",Txt_Degree,Deg.ShrtName);
|
snprintf (ThisRoomFullName,sizeof (ThisRoomFullName),
|
||||||
|
"%s %s",
|
||||||
|
Txt_Degree,Deg.ShrtName);
|
||||||
Str_Concat (ListRoomFullNames,"|",
|
Str_Concat (ListRoomFullNames,"|",
|
||||||
Cht_MAX_BYTES_ROOM_FULL_NAMES);
|
Cht_MAX_BYTES_ROOM_FULL_NAMES);
|
||||||
Str_Concat (ListRoomFullNames,ThisRoomFullName,
|
Str_Concat (ListRoomFullNames,ThisRoomFullName,
|
||||||
|
@ -536,7 +569,9 @@ void Cht_OpenChatWindow (void)
|
||||||
NumMyCrs < Gbl.Usrs.Me.MyCrss.Num;
|
NumMyCrs < Gbl.Usrs.Me.MyCrss.Num;
|
||||||
NumMyCrs++)
|
NumMyCrs++)
|
||||||
{
|
{
|
||||||
sprintf (ThisRoomCode,"CRS_%ld",Gbl.Usrs.Me.MyCrss.Crss[NumMyCrs].CrsCod);
|
snprintf (ThisRoomCode,sizeof (ThisRoomCode),
|
||||||
|
"CRS_%ld",
|
||||||
|
Gbl.Usrs.Me.MyCrss.Crss[NumMyCrs].CrsCod);
|
||||||
if (strcmp (RoomCode,ThisRoomCode))
|
if (strcmp (RoomCode,ThisRoomCode))
|
||||||
{
|
{
|
||||||
Str_Concat (ListRoomCodes,"|#",
|
Str_Concat (ListRoomCodes,"|#",
|
||||||
|
@ -548,13 +583,17 @@ void Cht_OpenChatWindow (void)
|
||||||
Crs.CrsCod = Gbl.Usrs.Me.MyCrss.Crss[NumMyCrs].CrsCod;
|
Crs.CrsCod = Gbl.Usrs.Me.MyCrss.Crss[NumMyCrs].CrsCod;
|
||||||
Crs_GetDataOfCourseByCod (&Crs);
|
Crs_GetDataOfCourseByCod (&Crs);
|
||||||
|
|
||||||
sprintf (ThisRoomShortName,"%s",Crs.ShrtName);
|
snprintf (ThisRoomShortName,sizeof (ThisRoomShortName),
|
||||||
|
"%s",
|
||||||
|
Crs.ShrtName);
|
||||||
Str_Concat (ListRoomShrtNames,"|",
|
Str_Concat (ListRoomShrtNames,"|",
|
||||||
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
|
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
|
||||||
Str_Concat (ListRoomShrtNames,ThisRoomShortName,
|
Str_Concat (ListRoomShrtNames,ThisRoomShortName,
|
||||||
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
|
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
|
||||||
|
|
||||||
sprintf (ThisRoomFullName,"%s %s",Txt_Course,Crs.ShrtName);
|
snprintf (ThisRoomFullName,sizeof (ThisRoomFullName),
|
||||||
|
"%s %s",
|
||||||
|
Txt_Course,Crs.ShrtName);
|
||||||
Str_Concat (ListRoomFullNames,"|",
|
Str_Concat (ListRoomFullNames,"|",
|
||||||
Cht_MAX_BYTES_ROOM_FULL_NAMES);
|
Cht_MAX_BYTES_ROOM_FULL_NAMES);
|
||||||
Str_Concat (ListRoomFullNames,ThisRoomFullName,
|
Str_Concat (ListRoomFullNames,ThisRoomFullName,
|
||||||
|
|
|
@ -28,9 +28,9 @@
|
||||||
/** Uncomment one of the following installations of SWAD or create your own **/
|
/** Uncomment one of the following installations of SWAD or create your own **/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
//#define LOCALHOST_UBUNTU // Comment this line if not applicable
|
#define LOCALHOST_UBUNTU // Comment this line if not applicable
|
||||||
//#define OPENSWAD_ORG // Comment this line if not applicable
|
//#define OPENSWAD_ORG // Comment this line if not applicable
|
||||||
#define SWAD_UGR_ES // Comment this line if not applicable
|
//#define SWAD_UGR_ES // Comment this line if not applicable
|
||||||
//#define SWADBERRY_UGR_ES // Comment this line if not applicable
|
//#define SWADBERRY_UGR_ES // Comment this line if not applicable
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -97,7 +97,9 @@ void Con_ShowConnectedUsrs (void)
|
||||||
|
|
||||||
/***** Start box *****/
|
/***** Start box *****/
|
||||||
/* Current time */
|
/* Current time */
|
||||||
sprintf (Gbl.Title,"%s<div id=\"connected_current_time\"></div>",
|
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||||
|
"%s"
|
||||||
|
"<div id=\"connected_current_time\"></div>",
|
||||||
Txt_Connected_users);
|
Txt_Connected_users);
|
||||||
Box_StartBox (NULL,Gbl.Title,Con_PutIconToUpdateConnected,
|
Box_StartBox (NULL,Gbl.Title,Con_PutIconToUpdateConnected,
|
||||||
Hlp_USERS_Connected,Box_NOT_CLOSABLE);
|
Hlp_USERS_Connected,Box_NOT_CLOSABLE);
|
||||||
|
|
|
@ -52,16 +52,19 @@ int main (void)
|
||||||
char OldPathUsr[PATH_MAX + 1];
|
char OldPathUsr[PATH_MAX + 1];
|
||||||
char Command[1024 + PATH_MAX * 2];
|
char Command[1024 + PATH_MAX * 2];
|
||||||
|
|
||||||
sprintf (Command,"mv %s/%s %s/%s_backup",
|
snprintf (Command,sizeof (Command),
|
||||||
|
"mv %s/%s %s/%s_backup",
|
||||||
PATH_SWAD_PRIVATE,FOLDER_USR,
|
PATH_SWAD_PRIVATE,FOLDER_USR,
|
||||||
PATH_SWAD_PRIVATE,FOLDER_USR);
|
PATH_SWAD_PRIVATE,FOLDER_USR);
|
||||||
ExecuteCommand (Command);
|
ExecuteCommand (Command);
|
||||||
sprintf (Command,"mkdir %s/%s",
|
snprintf (Command,sizeof (Command),
|
||||||
|
"mkdir %s/%s",
|
||||||
PATH_SWAD_PRIVATE,FOLDER_USR);
|
PATH_SWAD_PRIVATE,FOLDER_USR);
|
||||||
ExecuteCommand (Command);
|
ExecuteCommand (Command);
|
||||||
for (i=0; i<100; i++)
|
for (i=0; i<100; i++)
|
||||||
{
|
{
|
||||||
sprintf (Command,"mkdir %s/%s/%02u",
|
snprintf (Command,sizeof (Command),
|
||||||
|
"mkdir %s/%s/%02u",
|
||||||
PATH_SWAD_PRIVATE,FOLDER_USR,i);
|
PATH_SWAD_PRIVATE,FOLDER_USR,i);
|
||||||
ExecuteCommand (Command);
|
ExecuteCommand (Command);
|
||||||
}
|
}
|
||||||
|
@ -98,11 +101,13 @@ int main (void)
|
||||||
{
|
{
|
||||||
Str_Copy (UsrID,row[1],
|
Str_Copy (UsrID,row[1],
|
||||||
ID_MAX_BYTES_USR_ID); // UsrID
|
ID_MAX_BYTES_USR_ID); // UsrID
|
||||||
sprintf (OldPathUsr,"%s/%s_backup/%c/%s",
|
snprintf (OldPathUsr,sizeof (OldPathUsr),
|
||||||
|
"%s/%s_backup/%c/%s",
|
||||||
PATH_SWAD_PRIVATE,FOLDER_USR,UsrID[strlen (UsrID)-1],UsrID);
|
PATH_SWAD_PRIVATE,FOLDER_USR,UsrID[strlen (UsrID)-1],UsrID);
|
||||||
if (CheckIfPathExists (OldPathUsr))
|
if (CheckIfPathExists (OldPathUsr))
|
||||||
{
|
{
|
||||||
sprintf (Command,"mv %s %s/%s/%02u/%ld",
|
snprintf (Command,sizeof (Command),
|
||||||
|
"mv %s %s/%s/%02u/%ld",
|
||||||
OldPathUsr,
|
OldPathUsr,
|
||||||
PATH_SWAD_PRIVATE,FOLDER_USR,(unsigned) (UsrCod % 100),UsrCod);
|
PATH_SWAD_PRIVATE,FOLDER_USR,(unsigned) (UsrCod % 100),UsrCod);
|
||||||
ExecuteCommand (Command);
|
ExecuteCommand (Command);
|
||||||
|
@ -112,7 +117,8 @@ int main (void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mysql_free_result (mysql_res);
|
mysql_free_result (mysql_res);
|
||||||
sprintf (Command,"chown -R %s:%s %s/%s",
|
snprintf (Command,sizeof (Command),
|
||||||
|
"chown -R %s:%s %s/%s",
|
||||||
WEB_USER,WEB_USER,
|
WEB_USER,WEB_USER,
|
||||||
PATH_SWAD_PRIVATE,FOLDER_USR);
|
PATH_SWAD_PRIVATE,FOLDER_USR);
|
||||||
ExecuteCommand (Command);
|
ExecuteCommand (Command);
|
||||||
|
|
|
@ -53,16 +53,19 @@ int main (void)
|
||||||
char OldPathPhoto[PATH_MAX + 1];
|
char OldPathPhoto[PATH_MAX + 1];
|
||||||
char Command[1024 + PATH_MAX * 2];
|
char Command[1024 + PATH_MAX * 2];
|
||||||
|
|
||||||
sprintf (Command,"mv %s/%s %s/%s_backup",
|
snprintf (Command,sizeof (Command),
|
||||||
|
"mv %s/%s %s/%s_backup",
|
||||||
PATH_SWAD_PRIVATE,FOLDER_PHOTO,
|
PATH_SWAD_PRIVATE,FOLDER_PHOTO,
|
||||||
PATH_SWAD_PRIVATE,FOLDER_PHOTO);
|
PATH_SWAD_PRIVATE,FOLDER_PHOTO);
|
||||||
ExecuteCommand (Command);
|
ExecuteCommand (Command);
|
||||||
sprintf (Command,"mkdir %s/%s",
|
snprintf (Command,sizeof (Command),
|
||||||
|
"mkdir %s/%s",
|
||||||
PATH_SWAD_PRIVATE,FOLDER_PHOTO);
|
PATH_SWAD_PRIVATE,FOLDER_PHOTO);
|
||||||
ExecuteCommand (Command);
|
ExecuteCommand (Command);
|
||||||
for (i=0; i<100; i++)
|
for (i=0; i<100; i++)
|
||||||
{
|
{
|
||||||
sprintf (Command,"mkdir %s/%s/%02u",
|
snprintf (Command,sizeof (Command),
|
||||||
|
"mkdir %s/%s/%02u",
|
||||||
PATH_SWAD_PRIVATE,FOLDER_PHOTO,i);
|
PATH_SWAD_PRIVATE,FOLDER_PHOTO,i);
|
||||||
ExecuteCommand (Command);
|
ExecuteCommand (Command);
|
||||||
}
|
}
|
||||||
|
@ -99,21 +102,25 @@ int main (void)
|
||||||
{
|
{
|
||||||
Str_Copy (UsrID,row[1],
|
Str_Copy (UsrID,row[1],
|
||||||
ID_MAX_BYTES_USR_ID); // UsrID
|
ID_MAX_BYTES_USR_ID); // UsrID
|
||||||
sprintf (OldPathPhoto,"%s/%s_backup/%s_original.jpg",
|
snprintf (OldPathPhoto,sizeof (OldPathPhoto),
|
||||||
|
"%s/%s_backup/%s_original.jpg",
|
||||||
PATH_SWAD_PRIVATE,FOLDER_PHOTO,UsrID);
|
PATH_SWAD_PRIVATE,FOLDER_PHOTO,UsrID);
|
||||||
if (CheckIfPathExists (OldPathPhoto))
|
if (CheckIfPathExists (OldPathPhoto))
|
||||||
{
|
{
|
||||||
sprintf (Command,"cp -a %s %s/%s/%02u/%ld_original.jpg",
|
snprintf (Command,sizeof (Command),
|
||||||
|
"cp -a %s %s/%s/%02u/%ld_original.jpg",
|
||||||
OldPathPhoto,
|
OldPathPhoto,
|
||||||
PATH_SWAD_PRIVATE,FOLDER_PHOTO,(unsigned) (UsrCod % 100),UsrCod);
|
PATH_SWAD_PRIVATE,FOLDER_PHOTO,(unsigned) (UsrCod % 100),UsrCod);
|
||||||
ExecuteCommand (Command);
|
ExecuteCommand (Command);
|
||||||
}
|
}
|
||||||
|
|
||||||
sprintf (OldPathPhoto,"%s/%s_backup/%s.jpg",
|
snprintf (OldPathPhoto,sizeof (OldPathPhoto),
|
||||||
|
"%s/%s_backup/%s.jpg",
|
||||||
PATH_SWAD_PRIVATE,FOLDER_PHOTO,UsrID);
|
PATH_SWAD_PRIVATE,FOLDER_PHOTO,UsrID);
|
||||||
if (CheckIfPathExists (OldPathPhoto))
|
if (CheckIfPathExists (OldPathPhoto))
|
||||||
{
|
{
|
||||||
sprintf (Command,"cp -a %s %s/%s/%02u/%ld.jpg",
|
snprintf (Command,sizeof (Command),
|
||||||
|
"cp -a %s %s/%s/%02u/%ld.jpg",
|
||||||
OldPathPhoto,
|
OldPathPhoto,
|
||||||
PATH_SWAD_PRIVATE,FOLDER_PHOTO,(unsigned) (UsrCod % 100),UsrCod);
|
PATH_SWAD_PRIVATE,FOLDER_PHOTO,(unsigned) (UsrCod % 100),UsrCod);
|
||||||
ExecuteCommand (Command);
|
ExecuteCommand (Command);
|
||||||
|
@ -123,12 +130,14 @@ int main (void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mysql_free_result (mysql_res);
|
mysql_free_result (mysql_res);
|
||||||
sprintf (Command,"chown -R %s:%s %s/%s",
|
snprintf (Command,sizeof (Command),
|
||||||
|
"chown -R %s:%s %s/%s",
|
||||||
WEB_USER,WEB_USER,
|
WEB_USER,WEB_USER,
|
||||||
PATH_SWAD_PRIVATE,FOLDER_PHOTO);
|
PATH_SWAD_PRIVATE,FOLDER_PHOTO);
|
||||||
ExecuteCommand (Command);
|
ExecuteCommand (Command);
|
||||||
|
|
||||||
sprintf (Command,"rm -f %s/%s/*.jpg",
|
snprintf (Command,sizeof (Command),
|
||||||
|
"rm -f %s/%s/*.jpg",
|
||||||
PATH_SWAD_PUBLIC,FOLDER_PHOTO);
|
PATH_SWAD_PUBLIC,FOLDER_PHOTO);
|
||||||
ExecuteCommand (Command);
|
ExecuteCommand (Command);
|
||||||
|
|
||||||
|
|
|
@ -82,21 +82,28 @@ int main (void)
|
||||||
}
|
}
|
||||||
if ((NumCrss = (unsigned) mysql_num_rows (mysql_res_crs)))
|
if ((NumCrss = (unsigned) mysql_num_rows (mysql_res_crs)))
|
||||||
{
|
{
|
||||||
for (NumCrs=0; NumCrs<NumCrss; NumCrs++)
|
for (NumCrs = 0;
|
||||||
|
NumCrs < NumCrss;
|
||||||
|
NumCrs++)
|
||||||
{
|
{
|
||||||
row = mysql_fetch_row (mysql_res_crs);
|
row = mysql_fetch_row (mysql_res_crs);
|
||||||
if (row[0])
|
if (row[0])
|
||||||
if (row[0][0])
|
if (row[0][0])
|
||||||
if (sscanf (row[0],"%ld",&CrsCod) == 1) // CrsCod
|
if (sscanf (row[0],"%ld",&CrsCod) == 1) // CrsCod
|
||||||
{
|
{
|
||||||
sprintf (OldPathUsrs,"%s/%s/%ld/%s",
|
snprintf (OldPathUsrs,sizeof (OldPathUsrs),
|
||||||
|
"%s/%s/%ld/%s",
|
||||||
PATH_SWAD_PRIVATE,FOLDER_CRS,CrsCod,FOLDER_USR);
|
PATH_SWAD_PRIVATE,FOLDER_CRS,CrsCod,FOLDER_USR);
|
||||||
if (CheckIfPathExists (OldPathUsrs))
|
if (CheckIfPathExists (OldPathUsrs))
|
||||||
{
|
{
|
||||||
sprintf (Command,"mv %s %s_backup",OldPathUsrs,OldPathUsrs);
|
snprintf (Command,sizeof (Command),
|
||||||
|
"mv %s %s_backup",
|
||||||
|
OldPathUsrs,OldPathUsrs);
|
||||||
ExecuteCommand (Command);
|
ExecuteCommand (Command);
|
||||||
|
|
||||||
sprintf (Command,"mkdir %s",OldPathUsrs);
|
snprintf (Command,sizeof (Command),
|
||||||
|
"mkdir %s",
|
||||||
|
OldPathUsrs);
|
||||||
ExecuteCommand (Command);
|
ExecuteCommand (Command);
|
||||||
|
|
||||||
sprintf (Query,"SELECT usr_IDs.UsrCod,usr_IDs.UsrID"
|
sprintf (Query,"SELECT usr_IDs.UsrCod,usr_IDs.UsrID"
|
||||||
|
@ -128,27 +135,38 @@ int main (void)
|
||||||
{
|
{
|
||||||
Str_Copy (UsrID,row[1],
|
Str_Copy (UsrID,row[1],
|
||||||
ID_MAX_BYTES_USR_ID,62); // UsrID
|
ID_MAX_BYTES_USR_ID,62); // UsrID
|
||||||
sprintf (OldPathUsr,"%s_backup/%s",OldPathUsrs,UsrID);
|
snprintf (OldPathUsr,sizeof (OldPathUsr),
|
||||||
|
"%s_backup/%s",
|
||||||
|
OldPathUsrs,UsrID);
|
||||||
if (CheckIfPathExists (OldPathUsr))
|
if (CheckIfPathExists (OldPathUsr))
|
||||||
{
|
{
|
||||||
sprintf (Path02u,"%s/%02u",
|
snprintf (Path02u,sizeof (Path02u),
|
||||||
|
"%s/%02u",
|
||||||
OldPathUsrs,(unsigned) (UsrCod % 100));
|
OldPathUsrs,(unsigned) (UsrCod % 100));
|
||||||
if (!CheckIfPathExists (Path02u))
|
if (!CheckIfPathExists (Path02u))
|
||||||
{
|
{
|
||||||
sprintf (Command,"mkdir %s",Path02u);
|
snprintf (Command,sizeof (Command),
|
||||||
|
"mkdir %s",
|
||||||
|
Path02u);
|
||||||
ExecuteCommand (Command);
|
ExecuteCommand (Command);
|
||||||
}
|
}
|
||||||
sprintf (Command,"mv %s %s/%ld",OldPathUsr,Path02u,UsrCod);
|
snprintf (Command,sizeof (Command),
|
||||||
|
"mv %s %s/%ld",
|
||||||
|
OldPathUsr,Path02u,UsrCod);
|
||||||
ExecuteCommand (Command);
|
ExecuteCommand (Command);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mysql_free_result (mysql_res_usr);
|
mysql_free_result (mysql_res_usr);
|
||||||
}
|
}
|
||||||
sprintf (Command,"chown -R %s:%s %s",WEB_USER,WEB_USER,OldPathUsrs);
|
snprintf (Command,sizeof (Command),
|
||||||
|
"chown -R %s:%s %s",
|
||||||
|
WEB_USER,WEB_USER,OldPathUsrs);
|
||||||
ExecuteCommand (Command);
|
ExecuteCommand (Command);
|
||||||
/*
|
/*
|
||||||
sprintf (Command,"rm -Rf %s_backup",OldPathUsrs);
|
snprintf (Command,sizeof (Command),
|
||||||
|
"rm -Rf %s_backup",
|
||||||
|
OldPathUsrs);
|
||||||
ExecuteCommand (Command);
|
ExecuteCommand (Command);
|
||||||
*/
|
*/
|
||||||
printf ("\n");
|
printf ("\n");
|
||||||
|
|
|
@ -385,7 +385,8 @@ static void Cty_Configuration (bool PrintView)
|
||||||
/* Form to go to see institutions of this country */
|
/* Form to go to see institutions of this country */
|
||||||
Act_StartFormGoTo (ActSeeIns);
|
Act_StartFormGoTo (ActSeeIns);
|
||||||
Cty_PutParamCtyCod (Gbl.CurrentCty.Cty.CtyCod);
|
Cty_PutParamCtyCod (Gbl.CurrentCty.Cty.CtyCod);
|
||||||
sprintf (Gbl.Title,Txt_Institutions_of_COUNTRY_X,
|
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||||
|
Txt_Institutions_of_COUNTRY_X,
|
||||||
Gbl.CurrentCty.Cty.Name[Gbl.Prefs.Language]);
|
Gbl.CurrentCty.Cty.Name[Gbl.Prefs.Language]);
|
||||||
Act_LinkFormSubmit (Gbl.Title,"DAT",NULL);
|
Act_LinkFormSubmit (Gbl.Title,"DAT",NULL);
|
||||||
fprintf (Gbl.F.Out,"%u</a>",
|
fprintf (Gbl.F.Out,"%u</a>",
|
||||||
|
@ -803,7 +804,9 @@ void Cty_DrawCountryMapAndNameWithLink (struct Country *Cty,Act_Action_t Action,
|
||||||
fprintf (Gbl.F.Out,"<div class=\"%s\">",ClassContainer);
|
fprintf (Gbl.F.Out,"<div class=\"%s\">",ClassContainer);
|
||||||
|
|
||||||
/***** Link to action *****/
|
/***** Link to action *****/
|
||||||
sprintf (Gbl.Title,Txt_Go_to_X,Cty->Name[Gbl.Prefs.Language]);
|
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||||
|
Txt_Go_to_X,
|
||||||
|
Cty->Name[Gbl.Prefs.Language]);
|
||||||
Act_LinkFormSubmit (Gbl.Title,ClassLink,NULL);
|
Act_LinkFormSubmit (Gbl.Title,ClassLink,NULL);
|
||||||
|
|
||||||
/***** Draw country map *****/
|
/***** Draw country map *****/
|
||||||
|
@ -852,7 +855,8 @@ bool Cty_CheckIfCountryMapExists (struct Country *Cty)
|
||||||
{
|
{
|
||||||
char PathMap[PATH_MAX + 1];
|
char PathMap[PATH_MAX + 1];
|
||||||
|
|
||||||
sprintf (PathMap,"%s/%s/%s/%s/%s.png",
|
snprintf (PathMap,sizeof (PathMap),
|
||||||
|
"%s/%s/%s/%s/%s.png",
|
||||||
Cfg_PATH_SWAD_PUBLIC,
|
Cfg_PATH_SWAD_PUBLIC,
|
||||||
Cfg_FOLDER_PUBLIC_ICON,
|
Cfg_FOLDER_PUBLIC_ICON,
|
||||||
Cfg_ICON_FOLDER_COUNTRIES,
|
Cfg_ICON_FOLDER_COUNTRIES,
|
||||||
|
@ -1015,20 +1019,24 @@ void Cty_GetListCountries (Cty_GetExtraData_t GetExtraData)
|
||||||
Lan <= Txt_NUM_LANGUAGES;
|
Lan <= Txt_NUM_LANGUAGES;
|
||||||
Lan++)
|
Lan++)
|
||||||
{
|
{
|
||||||
sprintf (StrField,"countries.Name_%s,",
|
snprintf (StrField,sizeof (StrField),
|
||||||
|
"countries.Name_%s,",
|
||||||
Txt_STR_LANG_ID[Lan]);
|
Txt_STR_LANG_ID[Lan]);
|
||||||
Str_Concat (SubQueryNam1,StrField,
|
Str_Concat (SubQueryNam1,StrField,
|
||||||
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
||||||
sprintf (StrField,"Name_%s,",
|
snprintf (StrField,sizeof (StrField),
|
||||||
|
"Name_%s,",
|
||||||
Txt_STR_LANG_ID[Lan]);
|
Txt_STR_LANG_ID[Lan]);
|
||||||
Str_Concat (SubQueryNam2,StrField,
|
Str_Concat (SubQueryNam2,StrField,
|
||||||
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
||||||
|
|
||||||
sprintf (StrField,"countries.WWW_%s,",
|
snprintf (StrField,sizeof (StrField),
|
||||||
|
"countries.WWW_%s,",
|
||||||
Txt_STR_LANG_ID[Lan]);
|
Txt_STR_LANG_ID[Lan]);
|
||||||
Str_Concat (SubQueryWWW1,StrField,
|
Str_Concat (SubQueryWWW1,StrField,
|
||||||
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
||||||
sprintf (StrField,"WWW_%s,",
|
snprintf (StrField,sizeof (StrField),
|
||||||
|
"WWW_%s,",
|
||||||
Txt_STR_LANG_ID[Lan]);
|
Txt_STR_LANG_ID[Lan]);
|
||||||
Str_Concat (SubQueryWWW2,StrField,
|
Str_Concat (SubQueryWWW2,StrField,
|
||||||
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
||||||
|
@ -1311,17 +1319,25 @@ bool Cty_GetDataOfCountryByCod (struct Country *Cty,Cty_GetExtraData_t GetExtraD
|
||||||
Lan <= Txt_NUM_LANGUAGES;
|
Lan <= Txt_NUM_LANGUAGES;
|
||||||
Lan++)
|
Lan++)
|
||||||
{
|
{
|
||||||
sprintf (StrField,"countries.Name_%s,",Txt_STR_LANG_ID[Lan]);
|
snprintf (StrField,sizeof (StrField),
|
||||||
|
"countries.Name_%s,",
|
||||||
|
Txt_STR_LANG_ID[Lan]);
|
||||||
Str_Concat (SubQueryNam1,StrField,
|
Str_Concat (SubQueryNam1,StrField,
|
||||||
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
||||||
sprintf (StrField,"Name_%s,",Txt_STR_LANG_ID[Lan]);
|
snprintf (StrField,sizeof (StrField),
|
||||||
|
"Name_%s,",
|
||||||
|
Txt_STR_LANG_ID[Lan]);
|
||||||
Str_Concat (SubQueryNam2,StrField,
|
Str_Concat (SubQueryNam2,StrField,
|
||||||
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
||||||
|
|
||||||
sprintf (StrField,"countries.WWW_%s,",Txt_STR_LANG_ID[Lan]);
|
snprintf (StrField,sizeof (StrField),
|
||||||
|
"countries.WWW_%s,",
|
||||||
|
Txt_STR_LANG_ID[Lan]);
|
||||||
Str_Concat (SubQueryWWW1,StrField,
|
Str_Concat (SubQueryWWW1,StrField,
|
||||||
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
||||||
sprintf (StrField,"WWW_%s,",Txt_STR_LANG_ID[Lan]);
|
snprintf (StrField,sizeof (StrField),
|
||||||
|
"WWW_%s,",
|
||||||
|
Txt_STR_LANG_ID[Lan]);
|
||||||
Str_Concat (SubQueryWWW2,StrField,
|
Str_Concat (SubQueryWWW2,StrField,
|
||||||
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
||||||
}
|
}
|
||||||
|
@ -1773,7 +1789,9 @@ void Cty_RenameCountry (void)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Update the table changing old name by new name */
|
/* Update the table changing old name by new name */
|
||||||
sprintf (FieldName,"Name_%s",Txt_STR_LANG_ID[Language]);
|
snprintf (FieldName,sizeof (FieldName),
|
||||||
|
"Name_%s",
|
||||||
|
Txt_STR_LANG_ID[Language]);
|
||||||
Cty_UpdateCtyNameDB (Cty->CtyCod,FieldName,NewCtyName);
|
Cty_UpdateCtyNameDB (Cty->CtyCod,FieldName,NewCtyName);
|
||||||
|
|
||||||
/* Write message to show the change made */
|
/* Write message to show the change made */
|
||||||
|
@ -2149,7 +2167,9 @@ void Cty_RecFormNewCountry (void)
|
||||||
Lan <= Txt_NUM_LANGUAGES;
|
Lan <= Txt_NUM_LANGUAGES;
|
||||||
Lan++)
|
Lan++)
|
||||||
{
|
{
|
||||||
sprintf (ParamName,"Name_%s",Txt_STR_LANG_ID[Lan]);
|
snprintf (ParamName,sizeof (ParamName),
|
||||||
|
"Name_%s",
|
||||||
|
Txt_STR_LANG_ID[Lan]);
|
||||||
Par_GetParToText (ParamName,Cty->Name[Lan],Cty_MAX_BYTES_NAME);
|
Par_GetParToText (ParamName,Cty->Name[Lan],Cty_MAX_BYTES_NAME);
|
||||||
|
|
||||||
if (Cty->Name[Lan][0]) // If there's a country name
|
if (Cty->Name[Lan][0]) // If there's a country name
|
||||||
|
@ -2172,7 +2192,9 @@ void Cty_RecFormNewCountry (void)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
sprintf (ParamName,"WWW_%s",Txt_STR_LANG_ID[Lan]);
|
snprintf (ParamName,sizeof (ParamName),
|
||||||
|
"WWW_%s",
|
||||||
|
Txt_STR_LANG_ID[Lan]);
|
||||||
Par_GetParToText (ParamName,Cty->WWW[Lan],Cns_MAX_BYTES_WWW);
|
Par_GetParToText (ParamName,Cty->WWW[Lan],Cns_MAX_BYTES_WWW);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2218,7 +2240,9 @@ static void Cty_CreateCountry (struct Country *Cty)
|
||||||
Lan <= Txt_NUM_LANGUAGES;
|
Lan <= Txt_NUM_LANGUAGES;
|
||||||
Lan++)
|
Lan++)
|
||||||
{
|
{
|
||||||
sprintf (StrField,",Name_%s",Txt_STR_LANG_ID[Lan]);
|
snprintf (StrField,sizeof (StrField),
|
||||||
|
",Name_%s",
|
||||||
|
Txt_STR_LANG_ID[Lan]);
|
||||||
Str_Concat (SubQueryNam1,StrField,
|
Str_Concat (SubQueryNam1,StrField,
|
||||||
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
||||||
|
|
||||||
|
@ -2229,7 +2253,9 @@ static void Cty_CreateCountry (struct Country *Cty)
|
||||||
Str_Concat (SubQueryNam2,"'",
|
Str_Concat (SubQueryNam2,"'",
|
||||||
Cty_MAX_BYTES_SUBQUERY_CTYS_NAME);
|
Cty_MAX_BYTES_SUBQUERY_CTYS_NAME);
|
||||||
|
|
||||||
sprintf (StrField,",WWW_%s",Txt_STR_LANG_ID[Lan]);
|
snprintf (StrField,sizeof (StrField),
|
||||||
|
",WWW_%s",
|
||||||
|
Txt_STR_LANG_ID[Lan]);
|
||||||
Str_Concat (SubQueryWWW1,StrField,
|
Str_Concat (SubQueryWWW1,StrField,
|
||||||
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
||||||
|
|
||||||
|
@ -2379,7 +2405,8 @@ unsigned Cty_ListCtysFound (const char *Query)
|
||||||
{
|
{
|
||||||
/***** Start box and table *****/
|
/***** Start box and table *****/
|
||||||
/* Number of countries found */
|
/* Number of countries found */
|
||||||
sprintf (Gbl.Title,"%u %s",
|
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||||
|
"%u %s",
|
||||||
NumCtys,NumCtys == 1 ? Txt_country :
|
NumCtys,NumCtys == 1 ? Txt_country :
|
||||||
Txt_countries);
|
Txt_countries);
|
||||||
Box_StartBoxTable (NULL,Gbl.Title,NULL,
|
Box_StartBoxTable (NULL,Gbl.Title,NULL,
|
||||||
|
|
|
@ -448,8 +448,10 @@ static void Crs_Configuration (bool PrintView)
|
||||||
The_ClassForm[Gbl.Prefs.Theme],
|
The_ClassForm[Gbl.Prefs.Theme],
|
||||||
Txt_Indicators);
|
Txt_Indicators);
|
||||||
Act_StartForm (ActReqStaCrs);
|
Act_StartForm (ActReqStaCrs);
|
||||||
sprintf (Gbl.Title,"%u %s %u",
|
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||||
Indicators.NumIndicators,Txt_of_PART_OF_A_TOTAL,Ind_NUM_INDICATORS);
|
"%u %s %u",
|
||||||
|
Indicators.NumIndicators,
|
||||||
|
Txt_of_PART_OF_A_TOTAL,Ind_NUM_INDICATORS);
|
||||||
Act_LinkFormSubmit (Gbl.Title,"DAT",NULL);
|
Act_LinkFormSubmit (Gbl.Title,"DAT",NULL);
|
||||||
fprintf (Gbl.F.Out,"%s "
|
fprintf (Gbl.F.Out,"%s "
|
||||||
"<img src=\"%s/%s\" alt=\"%s\""
|
"<img src=\"%s/%s\" alt=\"%s\""
|
||||||
|
@ -544,7 +546,9 @@ static void Crs_WriteListMyCoursesToSelectOne (void)
|
||||||
char ClassHighlight[64];
|
char ClassHighlight[64];
|
||||||
|
|
||||||
ClassNormal = The_ClassForm[Gbl.Prefs.Theme];
|
ClassNormal = The_ClassForm[Gbl.Prefs.Theme];
|
||||||
sprintf (ClassHighlight,"%s LIGHT_BLUE",The_ClassFormDark[Gbl.Prefs.Theme]);
|
snprintf (ClassHighlight,sizeof (ClassHighlight),
|
||||||
|
"%s LIGHT_BLUE",
|
||||||
|
The_ClassFormDark[Gbl.Prefs.Theme]);
|
||||||
|
|
||||||
/***** Start box *****/
|
/***** Start box *****/
|
||||||
Box_StartBox (NULL,Txt_My_courses,Crs_PutIconToSearchCourses,
|
Box_StartBox (NULL,Txt_My_courses,Crs_PutIconToSearchCourses,
|
||||||
|
@ -734,7 +738,9 @@ static void Crs_WriteListMyCoursesToSelectOne (void)
|
||||||
Lay_IndentDependingOnLevel (5,IsLastItemInLevel);
|
Lay_IndentDependingOnLevel (5,IsLastItemInLevel);
|
||||||
Act_StartForm (ActMyCrs);
|
Act_StartForm (ActMyCrs);
|
||||||
Crs_PutParamCrsCod (Crs.CrsCod);
|
Crs_PutParamCrsCod (Crs.CrsCod);
|
||||||
sprintf (Gbl.Title,Txt_Go_to_X,Crs.ShrtName);
|
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||||
|
Txt_Go_to_X,
|
||||||
|
Crs.ShrtName);
|
||||||
Act_LinkFormSubmit (Gbl.Title,
|
Act_LinkFormSubmit (Gbl.Title,
|
||||||
Highlight ? ClassHighlight :
|
Highlight ? ClassHighlight :
|
||||||
ClassNormal,NULL);
|
ClassNormal,NULL);
|
||||||
|
@ -1135,7 +1141,9 @@ static void Crs_ListCourses (void)
|
||||||
unsigned Year;
|
unsigned Year;
|
||||||
|
|
||||||
/***** Start box *****/
|
/***** Start box *****/
|
||||||
sprintf (Gbl.Title,Txt_Courses_of_DEGREE_X,Gbl.CurrentDeg.Deg.ShrtName);
|
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||||
|
Txt_Courses_of_DEGREE_X,
|
||||||
|
Gbl.CurrentDeg.Deg.ShrtName);
|
||||||
Box_StartBox (NULL,Gbl.Title,Crs_PutIconsListCourses,
|
Box_StartBox (NULL,Gbl.Title,Crs_PutIconsListCourses,
|
||||||
Hlp_DEGREE_Courses,Box_NOT_CLOSABLE);
|
Hlp_DEGREE_Courses,Box_NOT_CLOSABLE);
|
||||||
|
|
||||||
|
@ -1284,7 +1292,9 @@ static bool Crs_ListCoursesOfAYearForSeeing (unsigned Year)
|
||||||
TxtClassStrong,BgColor);
|
TxtClassStrong,BgColor);
|
||||||
Act_StartFormGoTo (ActSeeCrsInf);
|
Act_StartFormGoTo (ActSeeCrsInf);
|
||||||
Crs_PutParamCrsCod (Crs->CrsCod);
|
Crs_PutParamCrsCod (Crs->CrsCod);
|
||||||
sprintf (Gbl.Title,Txt_Go_to_X,Crs->FullName);
|
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||||
|
Txt_Go_to_X,
|
||||||
|
Crs->FullName);
|
||||||
Act_LinkFormSubmit (Gbl.Title,TxtClassStrong,NULL);
|
Act_LinkFormSubmit (Gbl.Title,TxtClassStrong,NULL);
|
||||||
fprintf (Gbl.F.Out,"%s</a>",
|
fprintf (Gbl.F.Out,"%s</a>",
|
||||||
Crs->FullName);
|
Crs->FullName);
|
||||||
|
@ -2274,10 +2284,12 @@ static void Crs_EmptyCourseCompletely (long CrsCod)
|
||||||
DB_QueryDELETE (Query,"can not remove users from a course");
|
DB_QueryDELETE (Query,"can not remove users from a course");
|
||||||
|
|
||||||
/***** Remove directories of the course *****/
|
/***** Remove directories of the course *****/
|
||||||
sprintf (PathRelCrs,"%s/%s/%ld",
|
snprintf (PathRelCrs,sizeof (PathRelCrs),
|
||||||
|
"%s/%s/%ld",
|
||||||
Cfg_PATH_SWAD_PRIVATE,Cfg_FOLDER_CRS,CrsCod);
|
Cfg_PATH_SWAD_PRIVATE,Cfg_FOLDER_CRS,CrsCod);
|
||||||
Fil_RemoveTree (PathRelCrs);
|
Fil_RemoveTree (PathRelCrs);
|
||||||
sprintf (PathRelCrs,"%s/%s/%ld",
|
snprintf (PathRelCrs,sizeof (PathRelCrs),
|
||||||
|
"%s/%s/%ld",
|
||||||
Cfg_PATH_SWAD_PUBLIC,Cfg_FOLDER_CRS,CrsCod);
|
Cfg_PATH_SWAD_PUBLIC,Cfg_FOLDER_CRS,CrsCod);
|
||||||
Fil_RemoveTree (PathRelCrs);
|
Fil_RemoveTree (PathRelCrs);
|
||||||
}
|
}
|
||||||
|
@ -2881,7 +2893,9 @@ static void Crs_PutButtonToGoToCrs (void)
|
||||||
{
|
{
|
||||||
Act_StartForm (ActSeeCrsInf);
|
Act_StartForm (ActSeeCrsInf);
|
||||||
Crs_PutParamCrsCod (Gbl.Degs.EditingCrs.CrsCod);
|
Crs_PutParamCrsCod (Gbl.Degs.EditingCrs.CrsCod);
|
||||||
sprintf (Gbl.Title,Txt_Go_to_X,Gbl.Degs.EditingCrs.ShrtName);
|
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||||
|
Txt_Go_to_X,
|
||||||
|
Gbl.Degs.EditingCrs.ShrtName);
|
||||||
Btn_PutConfirmButton (Gbl.Title);
|
Btn_PutConfirmButton (Gbl.Title);
|
||||||
Act_EndForm ();
|
Act_EndForm ();
|
||||||
}
|
}
|
||||||
|
@ -2901,7 +2915,9 @@ static void Crs_PutButtonToRegisterInCrs (void)
|
||||||
// If the course beeing edited is different to the current one...
|
// If the course beeing edited is different to the current one...
|
||||||
if (Gbl.Degs.EditingCrs.CrsCod != Gbl.CurrentCrs.Crs.CrsCod)
|
if (Gbl.Degs.EditingCrs.CrsCod != Gbl.CurrentCrs.Crs.CrsCod)
|
||||||
Crs_PutParamCrsCod (Gbl.Degs.EditingCrs.CrsCod);
|
Crs_PutParamCrsCod (Gbl.Degs.EditingCrs.CrsCod);
|
||||||
sprintf (Gbl.Title,Txt_Register_me_in_X,Gbl.Degs.EditingCrs.ShrtName);
|
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||||
|
Txt_Register_me_in_X,
|
||||||
|
Gbl.Degs.EditingCrs.ShrtName);
|
||||||
Btn_PutCreateButton (Gbl.Title);
|
Btn_PutCreateButton (Gbl.Title);
|
||||||
Act_EndForm ();
|
Act_EndForm ();
|
||||||
}
|
}
|
||||||
|
@ -3075,7 +3091,8 @@ void Crs_GetAndWriteCrssOfAUsr (const struct UsrData *UsrDat,Rol_Role_t Role)
|
||||||
NULL,Box_NOT_CLOSABLE,2);
|
NULL,Box_NOT_CLOSABLE,2);
|
||||||
|
|
||||||
/* Heading row */
|
/* Heading row */
|
||||||
sprintf (Gbl.Title,Txt_USER_in_COURSE,
|
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||||
|
Txt_USER_in_COURSE,
|
||||||
Role == Rol_UNK ? Txt_User[Usr_SEX_UNKNOWN] : // Role == Rol_UNK ==> any role
|
Role == Rol_UNK ? Txt_User[Usr_SEX_UNKNOWN] : // Role == Rol_UNK ==> any role
|
||||||
Txt_ROLES_SINGUL_Abc[Role][UsrDat->Sex]);
|
Txt_ROLES_SINGUL_Abc[Role][UsrDat->Sex]);
|
||||||
fprintf (Gbl.F.Out,"<tr>"
|
fprintf (Gbl.F.Out,"<tr>"
|
||||||
|
@ -3153,7 +3170,8 @@ unsigned Crs_ListCrssFound (const char *Query)
|
||||||
{
|
{
|
||||||
/***** Start box and table *****/
|
/***** Start box and table *****/
|
||||||
/* Number of courses found */
|
/* Number of courses found */
|
||||||
sprintf (Gbl.Title,"%u %s",
|
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||||
|
"%u %s",
|
||||||
NumCrss,(NumCrss == 1) ? Txt_course :
|
NumCrss,(NumCrss == 1) ? Txt_course :
|
||||||
Txt_courses);
|
Txt_courses);
|
||||||
Box_StartBoxTable (NULL,Gbl.Title,NULL,
|
Box_StartBoxTable (NULL,Gbl.Title,NULL,
|
||||||
|
@ -3298,7 +3316,9 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA
|
||||||
StyleNoBR,BgColor);
|
StyleNoBR,BgColor);
|
||||||
Act_StartFormGoTo (ActSeeDegInf);
|
Act_StartFormGoTo (ActSeeDegInf);
|
||||||
Deg_PutParamDegCod (Deg.DegCod);
|
Deg_PutParamDegCod (Deg.DegCod);
|
||||||
sprintf (Gbl.Title,Txt_Go_to_X,row[2]);
|
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||||
|
Txt_Go_to_X,
|
||||||
|
row[2]);
|
||||||
Act_LinkFormSubmit (Gbl.Title,StyleNoBR,NULL);
|
Act_LinkFormSubmit (Gbl.Title,StyleNoBR,NULL);
|
||||||
Log_DrawLogo (Sco_SCOPE_DEG,Deg.DegCod,Deg.ShrtName,20,"CENTER_TOP",true);
|
Log_DrawLogo (Sco_SCOPE_DEG,Deg.DegCod,Deg.ShrtName,20,"CENTER_TOP",true);
|
||||||
fprintf (Gbl.F.Out," %s (%s)"
|
fprintf (Gbl.F.Out," %s (%s)"
|
||||||
|
@ -3318,7 +3338,9 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA
|
||||||
Style,BgColor);
|
Style,BgColor);
|
||||||
Act_StartFormGoTo (ActSeeCrsInf);
|
Act_StartFormGoTo (ActSeeCrsInf);
|
||||||
Crs_PutParamCrsCod (CrsCod);
|
Crs_PutParamCrsCod (CrsCod);
|
||||||
sprintf (Gbl.Title,Txt_Go_to_X,row[6]);
|
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||||
|
Txt_Go_to_X,
|
||||||
|
row[6]);
|
||||||
Act_LinkFormSubmit (Gbl.Title,Style,NULL);
|
Act_LinkFormSubmit (Gbl.Title,Style,NULL);
|
||||||
fprintf (Gbl.F.Out,"%s</a>",row[5]);
|
fprintf (Gbl.F.Out,"%s</a>",row[5]);
|
||||||
Act_EndForm ();
|
Act_EndForm ();
|
||||||
|
|
|
@ -149,7 +149,8 @@ void Cry_CreateUniqueNameEncrypted (char UniqueNameEncrypted[Cry_BYTES_ENCRYPTED
|
||||||
char UniqueNamePlain[Cns_MAX_BYTES_IP + 1 + 10 + 1 + 10 + 1 + 10 + 1];
|
char UniqueNamePlain[Cns_MAX_BYTES_IP + 1 + 10 + 1 + 10 + 1 + 10 + 1];
|
||||||
|
|
||||||
NumCall++;
|
NumCall++;
|
||||||
sprintf (UniqueNamePlain,"%s-%lx-%x-%x",
|
snprintf (UniqueNamePlain,sizeof (UniqueNamePlain),
|
||||||
|
"%s-%lx-%x-%x",
|
||||||
Gbl.IP,Gbl.StartExecutionTimeUTC,Gbl.PID,NumCall);
|
Gbl.IP,Gbl.StartExecutionTimeUTC,Gbl.PID,NumCall);
|
||||||
Cry_EncryptSHA256Base64 (UniqueNamePlain,UniqueNameEncrypted); // Make difficult to guess a unique name
|
Cry_EncryptSHA256Base64 (UniqueNamePlain,UniqueNameEncrypted); // Make difficult to guess a unique name
|
||||||
}
|
}
|
||||||
|
|
|
@ -3195,9 +3195,10 @@ void DB_FreeMySQLResult (MYSQL_RES **mysql_res)
|
||||||
|
|
||||||
void DB_ExitOnMySQLError (const char *Message)
|
void DB_ExitOnMySQLError (const char *Message)
|
||||||
{
|
{
|
||||||
char BigErrorMsg[1024 * 1024];
|
char BigErrorMsg[64 * 1024];
|
||||||
|
|
||||||
sprintf (BigErrorMsg,"Database error: %s (%s).",
|
snprintf (BigErrorMsg,sizeof (BigErrorMsg),
|
||||||
|
"Database error: %s (%s).",
|
||||||
Message,mysql_error (&Gbl.mysql));
|
Message,mysql_error (&Gbl.mysql));
|
||||||
Lay_ShowErrorAndExit (BigErrorMsg);
|
Lay_ShowErrorAndExit (BigErrorMsg);
|
||||||
}
|
}
|
||||||
|
|
21
swad_date.c
21
swad_date.c
|
@ -251,11 +251,13 @@ void Dat_GetAndConvertCurrentDateTime (void)
|
||||||
Gbl.Now.Time.Second = tm_ptr->tm_sec;
|
Gbl.Now.Time.Second = tm_ptr->tm_sec;
|
||||||
|
|
||||||
/***** Initialize current date in format YYYYMMDD *****/
|
/***** Initialize current date in format YYYYMMDD *****/
|
||||||
sprintf (Gbl.Now.Date.YYYYMMDD,"%04u%02u%02u",
|
snprintf (Gbl.Now.Date.YYYYMMDD,sizeof (Gbl.Now.Date.YYYYMMDD),
|
||||||
|
"%04u%02u%02u",
|
||||||
Gbl.Now.Date.Year,Gbl.Now.Date.Month,Gbl.Now.Date.Day);
|
Gbl.Now.Date.Year,Gbl.Now.Date.Month,Gbl.Now.Date.Day);
|
||||||
|
|
||||||
/***** Initialize current time in format YYYYMMDDHHMMSS *****/
|
/***** Initialize current time in format YYYYMMDDHHMMSS *****/
|
||||||
sprintf (Gbl.Now.YYYYMMDDHHMMSS,"%04u%02u%02u%02u%02u%02u",
|
snprintf (Gbl.Now.YYYYMMDDHHMMSS,sizeof (Gbl.Now.YYYYMMDDHHMMSS),
|
||||||
|
"%04u%02u%02u%02u%02u%02u",
|
||||||
Gbl.Now.Date.Year,Gbl.Now.Date.Month,Gbl.Now.Date.Day,
|
Gbl.Now.Date.Year,Gbl.Now.Date.Month,Gbl.Now.Date.Day,
|
||||||
Gbl.Now.Time.Hour,Gbl.Now.Time.Minute,Gbl.Now.Time.Second);
|
Gbl.Now.Time.Hour,Gbl.Now.Time.Minute,Gbl.Now.Time.Second);
|
||||||
|
|
||||||
|
@ -393,19 +395,22 @@ void Dat_ConvDateToDateStr (struct Date *Date,char StrDate[Cns_MAX_BYTES_DATE +
|
||||||
switch (Gbl.Prefs.DateFormat)
|
switch (Gbl.Prefs.DateFormat)
|
||||||
{
|
{
|
||||||
case Dat_FORMAT_YYYY_MM_DD:
|
case Dat_FORMAT_YYYY_MM_DD:
|
||||||
sprintf (StrDate,"%04u-%02u-%02u",
|
snprintf (StrDate,Cns_MAX_BYTES_DATE,
|
||||||
|
"%04u-%02u-%02u",
|
||||||
Date->Year,
|
Date->Year,
|
||||||
Date->Month,
|
Date->Month,
|
||||||
Date->Day);
|
Date->Day);
|
||||||
break;
|
break;
|
||||||
case Dat_FORMAT_DD_MONTH_YYYY:
|
case Dat_FORMAT_DD_MONTH_YYYY:
|
||||||
sprintf (StrDate,"%u %s %04u",
|
snprintf (StrDate,Cns_MAX_BYTES_DATE,
|
||||||
|
"%u %s %04u",
|
||||||
Date->Day,
|
Date->Day,
|
||||||
Txt_MONTHS_SMALL_SHORT[Date->Month - 1],
|
Txt_MONTHS_SMALL_SHORT[Date->Month - 1],
|
||||||
Date->Year);
|
Date->Year);
|
||||||
break;
|
break;
|
||||||
case Dat_FORMAT_MONTH_DD_YYYY:
|
case Dat_FORMAT_MONTH_DD_YYYY:
|
||||||
sprintf (StrDate,"%s %u, %04u",
|
snprintf (StrDate,Cns_MAX_BYTES_DATE,
|
||||||
|
"%s %u, %04u",
|
||||||
Txt_MONTHS_SMALL_SHORT[Date->Month - 1],
|
Txt_MONTHS_SMALL_SHORT[Date->Month - 1],
|
||||||
Date->Day,
|
Date->Day,
|
||||||
Date->Year);
|
Date->Year);
|
||||||
|
@ -776,11 +781,13 @@ void Dat_GetBrowserTimeZone (char BrowserTimeZone[Dat_MAX_BYTES_TIME_ZONE + 1])
|
||||||
/* Convert from minutes to +-hh:mm */
|
/* Convert from minutes to +-hh:mm */
|
||||||
// BrowserTimeZone must have space for strings in +hh:mm format (6 chars + \0)
|
// BrowserTimeZone must have space for strings in +hh:mm format (6 chars + \0)
|
||||||
if (ClientUTCMinusLocal > 0)
|
if (ClientUTCMinusLocal > 0)
|
||||||
sprintf (BrowserTimeZone,"-%02u:%02u",
|
snprintf (BrowserTimeZone,Dat_MAX_BYTES_TIME_ZONE,
|
||||||
|
"-%02u:%02u",
|
||||||
(unsigned) ClientUTCMinusLocal / 60,
|
(unsigned) ClientUTCMinusLocal / 60,
|
||||||
(unsigned) ClientUTCMinusLocal % 60);
|
(unsigned) ClientUTCMinusLocal % 60);
|
||||||
else // ClientUTCMinusLocal <= 0
|
else // ClientUTCMinusLocal <= 0
|
||||||
sprintf (BrowserTimeZone,"+%02u:%02u",
|
snprintf (BrowserTimeZone,Dat_MAX_BYTES_TIME_ZONE,
|
||||||
|
"+%02u:%02u",
|
||||||
(unsigned) (-ClientUTCMinusLocal) / 60,
|
(unsigned) (-ClientUTCMinusLocal) / 60,
|
||||||
(unsigned) (-ClientUTCMinusLocal) % 60);
|
(unsigned) (-ClientUTCMinusLocal) % 60);
|
||||||
}
|
}
|
||||||
|
|
|
@ -243,7 +243,9 @@ void Deg_DrawDegreeLogoAndNameWithLink (struct Degree *Deg,Act_Action_t Action,
|
||||||
Deg_PutParamDegCod (Deg->DegCod);
|
Deg_PutParamDegCod (Deg->DegCod);
|
||||||
|
|
||||||
/***** Link to action *****/
|
/***** Link to action *****/
|
||||||
sprintf (Gbl.Title,Txt_Go_to_X,Deg->FullName);
|
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||||
|
Txt_Go_to_X,
|
||||||
|
Deg->FullName);
|
||||||
Act_LinkFormSubmit (Gbl.Title,ClassLink,NULL);
|
Act_LinkFormSubmit (Gbl.Title,ClassLink,NULL);
|
||||||
|
|
||||||
/***** Draw degree logo *****/
|
/***** Draw degree logo *****/
|
||||||
|
@ -510,7 +512,8 @@ static void Deg_Configuration (bool PrintView)
|
||||||
/* Form to go to see courses of this degree */
|
/* Form to go to see courses of this degree */
|
||||||
Act_StartFormGoTo (ActSeeCrs);
|
Act_StartFormGoTo (ActSeeCrs);
|
||||||
Deg_PutParamDegCod (Gbl.CurrentDeg.Deg.DegCod);
|
Deg_PutParamDegCod (Gbl.CurrentDeg.Deg.DegCod);
|
||||||
sprintf (Gbl.Title,Txt_Courses_of_DEGREE_X,
|
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||||
|
Txt_Courses_of_DEGREE_X,
|
||||||
Gbl.CurrentDeg.Deg.ShrtName);
|
Gbl.CurrentDeg.Deg.ShrtName);
|
||||||
Act_LinkFormSubmit (Gbl.Title,"DAT",NULL);
|
Act_LinkFormSubmit (Gbl.Title,"DAT",NULL);
|
||||||
fprintf (Gbl.F.Out,"%u</a>",
|
fprintf (Gbl.F.Out,"%u</a>",
|
||||||
|
@ -1173,7 +1176,9 @@ static void Deg_ListDegrees (void)
|
||||||
unsigned NumDeg;
|
unsigned NumDeg;
|
||||||
|
|
||||||
/***** Start box *****/
|
/***** Start box *****/
|
||||||
sprintf (Gbl.Title,Txt_Degrees_of_CENTRE_X,Gbl.CurrentCtr.Ctr.ShrtName);
|
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||||
|
Txt_Degrees_of_CENTRE_X,
|
||||||
|
Gbl.CurrentCtr.Ctr.ShrtName);
|
||||||
Box_StartBox (NULL,Gbl.Title,Deg_PutIconsListDegrees,
|
Box_StartBox (NULL,Gbl.Title,Deg_PutIconsListDegrees,
|
||||||
Hlp_CENTRE_Degrees,Box_NOT_CLOSABLE);
|
Hlp_CENTRE_Degrees,Box_NOT_CLOSABLE);
|
||||||
|
|
||||||
|
@ -1351,7 +1356,8 @@ void Deg_EditDegrees (void)
|
||||||
DT_GetListDegreeTypes (Sco_SCOPE_SYS,DT_ORDER_BY_DEGREE_TYPE);
|
DT_GetListDegreeTypes (Sco_SCOPE_SYS,DT_ORDER_BY_DEGREE_TYPE);
|
||||||
|
|
||||||
/***** Start box *****/
|
/***** Start box *****/
|
||||||
sprintf (Gbl.Title,Txt_Degrees_of_CENTRE_X,
|
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||||
|
Txt_Degrees_of_CENTRE_X,
|
||||||
Gbl.CurrentCtr.Ctr.FullName);
|
Gbl.CurrentCtr.Ctr.FullName);
|
||||||
Box_StartBox (NULL,Gbl.Title,Deg_PutIconsEditingDegrees,
|
Box_StartBox (NULL,Gbl.Title,Deg_PutIconsEditingDegrees,
|
||||||
Hlp_CENTRE_Degrees,Box_NOT_CLOSABLE);
|
Hlp_CENTRE_Degrees,Box_NOT_CLOSABLE);
|
||||||
|
@ -1877,7 +1883,8 @@ void Deg_RemoveDegreeCompletely (long DegCod)
|
||||||
Brw_RemoveDegFilesFromDB (DegCod);
|
Brw_RemoveDegFilesFromDB (DegCod);
|
||||||
|
|
||||||
/***** Remove directories of the degree *****/
|
/***** Remove directories of the degree *****/
|
||||||
sprintf (PathDeg,"%s/%s/%02u/%u",
|
snprintf (PathDeg,sizeof (PathDeg),
|
||||||
|
"%s/%s/%02u/%u",
|
||||||
Cfg_PATH_SWAD_PUBLIC,Cfg_FOLDER_DEG,
|
Cfg_PATH_SWAD_PUBLIC,Cfg_FOLDER_DEG,
|
||||||
(unsigned) (DegCod % 100),
|
(unsigned) (DegCod % 100),
|
||||||
(unsigned) DegCod);
|
(unsigned) DegCod);
|
||||||
|
@ -2288,7 +2295,9 @@ void Deg_ShowAlertAndButtonToGoToDeg (void)
|
||||||
if (Gbl.Degs.EditingDeg.DegCod != Gbl.CurrentDeg.Deg.DegCod)
|
if (Gbl.Degs.EditingDeg.DegCod != Gbl.CurrentDeg.Deg.DegCod)
|
||||||
{
|
{
|
||||||
/***** Alert with button to go to degree *****/
|
/***** Alert with button to go to degree *****/
|
||||||
sprintf (Gbl.Title,Txt_Go_to_X,Gbl.Degs.EditingDeg.ShrtName);
|
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||||
|
Txt_Go_to_X,
|
||||||
|
Gbl.Degs.EditingDeg.ShrtName);
|
||||||
Ale_ShowAlertAndButton (Gbl.Alert.Type,Gbl.Alert.Txt,
|
Ale_ShowAlertAndButton (Gbl.Alert.Type,Gbl.Alert.Txt,
|
||||||
ActSeeCrs,NULL,NULL,Deg_PutParamGoToDeg,
|
ActSeeCrs,NULL,NULL,Deg_PutParamGoToDeg,
|
||||||
Btn_CONFIRM_BUTTON,Gbl.Title);
|
Btn_CONFIRM_BUTTON,Gbl.Title);
|
||||||
|
@ -2580,7 +2589,8 @@ unsigned Deg_ListDegsFound (const char *Query)
|
||||||
{
|
{
|
||||||
/***** Start box and table *****/
|
/***** Start box and table *****/
|
||||||
/* Number of degrees found */
|
/* Number of degrees found */
|
||||||
sprintf (Gbl.Title,"%u %s",
|
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||||
|
"%u %s",
|
||||||
NumDegs,(NumDegs == 1) ? Txt_degree :
|
NumDegs,(NumDegs == 1) ? Txt_degree :
|
||||||
Txt_degrees);
|
Txt_degrees);
|
||||||
Box_StartBoxTable (NULL,Gbl.Title,NULL,
|
Box_StartBoxTable (NULL,Gbl.Title,NULL,
|
||||||
|
|
|
@ -25,6 +25,8 @@
|
||||||
/*********************************** Headers *********************************/
|
/*********************************** Headers *********************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
#define _GNU_SOURCE // For asprintf
|
||||||
|
#include <stdio.h> // For asprintf
|
||||||
#include <stdlib.h> // For exit, system, malloc, free, rand, etc.
|
#include <stdlib.h> // For exit, system, malloc, free, rand, etc.
|
||||||
#include <string.h> // For string functions
|
#include <string.h> // For string functions
|
||||||
|
|
||||||
|
@ -2154,10 +2156,11 @@ void Enr_GetNotifEnrolmentRequest (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1],
|
||||||
Ntf_MAX_BYTES_SUMMARY);
|
Ntf_MAX_BYTES_SUMMARY);
|
||||||
|
|
||||||
if (GetContent)
|
if (GetContent)
|
||||||
if ((*ContentStr = (char *) malloc (256)))
|
|
||||||
/* Write desired role into content */
|
/* Write desired role into content */
|
||||||
sprintf (*ContentStr,"%s", // TODO: Write more info in this content
|
if (asprintf (ContentStr,
|
||||||
Txt_ROLES_SINGUL_Abc[DesiredRole][UsrDat.Sex]);
|
"%s", // TODO: Write more info in this content
|
||||||
|
Txt_ROLES_SINGUL_Abc[DesiredRole][UsrDat.Sex]) < 0)
|
||||||
|
Lay_ShowErrorAndExit ("Not enough memory to store string.");
|
||||||
|
|
||||||
/* Free memory used for user's data */
|
/* Free memory used for user's data */
|
||||||
Usr_UsrDataDestructor (&UsrDat);
|
Usr_UsrDataDestructor (&UsrDat);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user