This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
Log of /sourceforge.net/trunk/seamlessrdp
Directory Listing
Revision
1248 -
Directory Listing
Modified
Wed Jul 12 12:01:56 2006 UTC
(17 years, 11 months ago)
by
ossman_
Add some simple reference counting for vchannel_open()/close() as it might
be done multple times as seamlessrdp.dll hooks into seamlessrdpshell.exe.
Revision
1235 -
Directory Listing
Modified
Tue May 30 10:39:11 2006 UTC
(18 years ago)
by
ossman_
Use a polled system to detect when clients reconnect. This way we can support
Windows 2000 as well.
Revision
1233 -
Directory Listing
Modified
Fri Apr 28 07:56:57 2006 UTC
(18 years, 1 month ago)
by
ossman_
Send a destroy group command when a process is killed off.
Revision
1230 -
Directory Listing
Modified
Thu Apr 20 12:56:18 2006 UTC
(18 years, 2 months ago)
by
ossman_
Don't send STATE for hidden windows.
Revision
1192 -
Directory Listing
Modified
Wed Mar 22 16:19:41 2006 UTC
(18 years, 3 months ago)
by
ossman_
Detect when another desktop is activated and tell the connected client.
Revision
1188 -
Directory Listing
Modified
Wed Mar 22 13:32:01 2006 UTC
(18 years, 3 months ago)
by
ossman_
Restore SPI_SETFOREGROUNDLOCKTIMEOUT upon reconnect.
Revision
1187 -
Directory Listing
Modified
Wed Mar 22 13:31:09 2006 UTC
(18 years, 3 months ago)
by
ossman_
Since the user can start new processes, it's insufficient to monitor just
the process we started ourselves. Instead, we get a list of processes running
when we start up (to be able to exclude system processes) and terminate the
session once no non-system processes are running.
Revision
1186 -
Directory Listing
Modified
Wed Mar 22 11:56:46 2006 UTC
(18 years, 3 months ago)
by
ossman_
Avoid %p since it's implementation defined.
Revision
1185 -
Directory Listing
Modified
Wed Mar 22 11:52:07 2006 UTC
(18 years, 3 months ago)
by
ossman_
SetActiveWindow() only does what we want when the window is owned by the
same process as the currently active. SetForegroundWindow() does what we want
under all circumstances.
Revision
1179 -
Directory Listing
Modified
Tue Mar 21 14:58:29 2006 UTC
(18 years, 3 months ago)
by
ossman_
Also check window owner since it fall into our definition of "parent".
Revision
1178 -
Directory Listing
Modified
Tue Mar 21 14:51:19 2006 UTC
(18 years, 3 months ago)
by
astrand
Building a ZIP file with resulting binaries.
Revision
1177 -
Directory Listing
Modified
Tue Mar 21 14:42:25 2006 UTC
(18 years, 3 months ago)
by
ossman_
Support for window groups and modal windows.
Revision
1167 -
Directory Listing
Modified
Mon Mar 20 14:35:02 2006 UTC
(18 years, 3 months ago)
by
ossman_
Restructure ACK:s of POSITION a bit since Windows can ignore some requests.
Revision
1165 -
Directory Listing
Modified
Mon Mar 20 12:28:03 2006 UTC
(18 years, 3 months ago)
by
ossman_
Send an ACK for all client commands.
Revision
1163 -
Directory Listing
Modified
Mon Mar 20 10:31:58 2006 UTC
(18 years, 3 months ago)
by
ossman_
Add serial numbers to protocol.
Revision
1162 -
Directory Listing
Modified
Mon Mar 20 09:36:23 2006 UTC
(18 years, 3 months ago)
by
ossman_
Handle z order changes properly by waiting until the reordering is complete
and then examining the result.
Revision
1161 -
Directory Listing
Modified
Fri Mar 17 16:34:46 2006 UTC
(18 years, 3 months ago)
by
ossman_
Also store hwnd when doing blocking to make things a bit more fool proof.
Revision
1160 -
Directory Listing
Modified
Fri Mar 17 16:23:08 2006 UTC
(18 years, 3 months ago)
by
ossman_
Break loops caused by STATE.
Revision
1158 -
Directory Listing
Modified
Fri Mar 17 13:11:20 2006 UTC
(18 years, 3 months ago)
by
ossman_
Encapsulate ZCHANGE and FOCUS requests into safe wrappers to avoid loops.
Setting focus also needed a hack because it killed off menus.
Revision
1156 -
Directory Listing
Modified
Fri Mar 17 10:48:55 2006 UTC
(18 years, 3 months ago)
by
ossman_
Remove some commented code that never should have been checked in.
Revision
1153 -
Directory Listing
Modified
Fri Mar 17 09:55:35 2006 UTC
(18 years, 3 months ago)
by
ossman_
Handle FOCUS. We need to do this via an extra message because a process is
only allowed to focus its own windows.
Revision
1152 -
Directory Listing
Modified
Fri Mar 17 09:54:17 2006 UTC
(18 years, 3 months ago)
by
ossman_
Acidentally implemented the USC-4 algorithm instead of the USC-2 one.
Revision
1150 -
Directory Listing
Modified
Thu Mar 16 15:42:32 2006 UTC
(18 years, 3 months ago)
by
ossman_
Restore system parameters info on reconnect as they get reset.
Revision
1147 -
Directory Listing
Modified
Thu Mar 16 14:54:02 2006 UTC
(18 years, 3 months ago)
by
ossman_
Send a HELLO when starting up and when a client reconnects.
Revision
1145 -
Directory Listing
Modified
Thu Mar 16 13:24:18 2006 UTC
(18 years, 3 months ago)
by
ossman_
Prevent moves we do ourself from generating a POSITION. We do this by storing
the coordinate we're moving to in a shared variable. Since SetWindowPos is
synchronous, we know that the variable will have valid data when the hook
is called.
Revision
1135 -
Directory Listing
Modified
Wed Mar 15 13:45:42 2006 UTC
(18 years, 3 months ago)
by
ossman_
Fix unicode title for enumeration.
Revision
1134 -
Directory Listing
Modified
Wed Mar 15 13:19:54 2006 UTC
(18 years, 3 months ago)
by
ossman_
Get window titles in unicode and send them over the channel in UTF-8. This
also meant that we had to catch WM_SETTEXT after it was handled (so that we
can use GetWindowTextW()).
Revision
1131 -
Directory Listing
Modified
Wed Mar 15 12:15:23 2006 UTC
(18 years, 3 months ago)
by
ossman_
Change window creation so that POSITION is sent before STATE (as required by
the protocol). Also remove unnecessary z order comment.
Revision
1130 -
Directory Listing
Modified
Wed Mar 15 12:11:02 2006 UTC
(18 years, 3 months ago)
by
ossman_
Use strtoul on window id:s to be able to handle the full range.
Revision
1129 -
Directory Listing
Modified
Wed Mar 15 12:08:32 2006 UTC
(18 years, 3 months ago)
by
ossman_
Let characters outside the ascii range through.
Revision
1128 -
Directory Listing
Modified
Wed Mar 15 12:05:20 2006 UTC
(18 years, 3 months ago)
by
ossman_
ran indent-all
Revision
1117 -
Directory Listing
Modified
Tue Mar 14 09:03:19 2006 UTC
(18 years, 3 months ago)
by
astrand
Need to catch SW_RESTORE as well.
Revision
1114 -
Directory Listing
Modified
Fri Mar 10 16:41:49 2006 UTC
(18 years, 3 months ago)
by
ossman_
Change format to const char* to kill off some warnings.
Revision
1113 -
Directory Listing
Modified
Fri Mar 10 16:40:57 2006 UTC
(18 years, 3 months ago)
by
ossman_
Add filtering of dangerous characters in strings that are part of the
protocol.
Revision
1112 -
Directory Listing
Modified
Fri Mar 10 16:14:37 2006 UTC
(18 years, 3 months ago)
by
ossman_
Support client invoked POSITION and ZCHANGE.
Revision
1111 -
Directory Listing
Modified
Fri Mar 10 15:25:17 2006 UTC
(18 years, 3 months ago)
by
ossman_
Change state when requested by the client.
Revision
1109 -
Directory Listing
Modified
Fri Mar 10 15:12:28 2006 UTC
(18 years, 3 months ago)
by
ossman_
Windows can have popups without a parent. Indicate this by setting the parent
to -1.
Revision
1108 -
Directory Listing
Modified
Fri Mar 10 15:00:38 2006 UTC
(18 years, 3 months ago)
by
ossman_
Avoid sending position updates for minimized windows.
Revision
1106 -
Directory Listing
Modified
Fri Mar 10 13:47:41 2006 UTC
(18 years, 3 months ago)
by
ossman_
Add some more SW_ defines that we need to handle.
Revision
1102 -
Directory Listing
Modified
Fri Mar 10 13:25:25 2006 UTC
(18 years, 3 months ago)
by
ossman_
Catch WM_SETTEXT so that we follow changes to the window title.
Revision
1100 -
Directory Listing
Modified
Fri Mar 10 12:56:37 2006 UTC
(18 years, 3 months ago)
by
ossman_
show can have values we're not interested in, so we need to abort here.
Revision
1099 -
Directory Listing
Modified
Fri Mar 10 12:54:37 2006 UTC
(18 years, 3 months ago)
by
ossman_
Make sure we send a TITLE and STATE when a window is created.
Revision
1097 -
Directory Listing
Modified
Fri Mar 10 12:38:00 2006 UTC
(18 years, 3 months ago)
by
ossman_
Add the new parent argument to the CREATE command.
Revision
1096 -
Directory Listing
Modified
Fri Mar 10 12:27:38 2006 UTC
(18 years, 3 months ago)
by
ossman_
Move title info out of the STATE command.
Revision
1093 -
Directory Listing
Modified
Fri Mar 10 09:47:10 2006 UTC
(18 years, 3 months ago)
by
ossman_
Disable screen saver since its nothing but trouble.
Revision
1091 -
Directory Listing
Modified
Fri Mar 10 09:12:36 2006 UTC
(18 years, 3 months ago)
by
astrand
Removed the version numbers from SeamlessRDP commands
Revision
1084 -
Directory Listing
Modified
Thu Mar 9 16:42:26 2006 UTC
(18 years, 3 months ago)
by
ossman_
Rename hookdll.dll to seamlessrdp.dll.
Revision
1083 -
Directory Listing
Modified
Thu Mar 9 16:28:57 2006 UTC
(18 years, 3 months ago)
by
ossman_
Avoid sending messages for windows that aren't visible.
Revision
1082 -
Directory Listing
Modified
Thu Mar 9 16:27:59 2006 UTC
(18 years, 3 months ago)
by
ossman_
Microsoft's docs say that WS_CHILD and WS_POPUP is an illegal combination,
but they exist nonetheless. The resulting window is as if WS_CHILD wasn't
set.
Revision
1081 -
Directory Listing
Modified
Thu Mar 9 16:13:26 2006 UTC
(18 years, 3 months ago)
by
ossman_
Catch WM_MOVE and WM_SIZE.
Revision
1080 -
Directory Listing
Modified
Thu Mar 9 15:57:10 2006 UTC
(18 years, 3 months ago)
by
ossman_
Remove handling of WM_WINDOWPOSCHANGING and move that into WM_WINDOWPOSCHANGED
since the former isn't always sent.
Revision
1079 -
Directory Listing
Modified
Thu Mar 9 15:48:55 2006 UTC
(18 years, 3 months ago)
by
ossman_
More cleanup and reorganisation.
Revision
1078 -
Directory Listing
Modified
Thu Mar 9 15:27:39 2006 UTC
(18 years, 3 months ago)
by
ossman_
indentation fix.
Revision
1077 -
Directory Listing
Modified
Thu Mar 9 15:26:35 2006 UTC
(18 years, 3 months ago)
by
ossman_
Readd forcing immediate updates when resizing windows since it was lost in
the cleanup.
Revision
1076 -
Directory Listing
Modified
Thu Mar 9 15:23:40 2006 UTC
(18 years, 3 months ago)
by
ossman_
We don't have any headers in the dll directory anymore.
Revision
1075 -
Directory Listing
Modified
Thu Mar 9 15:14:53 2006 UTC
(18 years, 3 months ago)
by
ossman_
Implement the SYNC command. Enumerates all windows and sends over their
information.
Revision
1074 -
Directory Listing
Modified
Thu Mar 9 13:24:35 2006 UTC
(18 years, 3 months ago)
by
ossman_
Basic infrastructure for retrieving commands in the server.
Revision
1073 -
Directory Listing
Modified
Thu Mar 9 12:26:31 2006 UTC
(18 years, 3 months ago)
by
ossman_
Put virtual channel handling into a separate file since both the DLL and
the main program will use it.
Revision
1072 -
Directory Listing
Modified
Thu Mar 9 12:06:17 2006 UTC
(18 years, 3 months ago)
by
ossman_
Minor tweak of the Makefile to make sure we don't get a console.
Also fixed the clean target to whine a little less.
Revision
1071 -
Directory Listing
Modified
Thu Mar 9 12:00:15 2006 UTC
(18 years, 3 months ago)
by
ossman_
Big cleanup and reindentation of the code.
Revision
1070 -
Directory Listing
Modified
Thu Mar 9 09:54:13 2006 UTC
(18 years, 3 months ago)
by
ossman_
Since we now have C code, we can use the same indent-all as the rest of
rdesktop.
Revision
1069 -
Directory Listing
Modified
Thu Mar 9 09:46:30 2006 UTC
(18 years, 3 months ago)
by
ossman_
Use C instead of C++ since we don't depend on any C++ features anyway.
Revision
1068 -
Directory Listing
Modified
Thu Mar 9 09:17:55 2006 UTC
(18 years, 3 months ago)
by
ossman_
Refactor the hook dll loading so that we can remove hook.* and all C++ code.
Revision
1067 -
Directory Listing
Modified
Wed Mar 8 17:14:42 2006 UTC
(18 years, 3 months ago)
by
ossman_
Make WriteToChannel() a variable argument function. Cleans up the code a lot.
Also add a newline implicitly in the function. It is unsupported to call it
multiple times for one line anyway (because of locking).
Revision
1066 -
Directory Listing
Modified
Wed Mar 8 16:55:02 2006 UTC
(18 years, 3 months ago)
by
ossman_
Add a named mutex so that all hooks will write atomically into the virtual
channel.
Revision
1065 -
Directory Listing
Modified
Wed Mar 8 16:12:49 2006 UTC
(18 years, 3 months ago)
by
ossman_
Run indent-all on the server source.
Revision
1064 -
Directory Listing
Modified
Wed Mar 8 15:52:38 2006 UTC
(18 years, 3 months ago)
by
ossman_
Change strategy to catch WM_WINDOWPOSCHANGED instead as that seems to work
better.
Revision
1063 -
Directory Listing
Modified
Wed Mar 8 09:53:32 2006 UTC
(18 years, 3 months ago)
by
astrand
Added MinGW makefile
Revision
1062 -
Directory Listing
Modified
Wed Mar 8 09:41:55 2006 UTC
(18 years, 3 months ago)
by
astrand
Mark DllMain as extern "C".
Revision
1061 -
Directory Listing
Modified
Wed Mar 8 09:36:59 2006 UTC
(18 years, 3 months ago)
by
astrand
Use lowercase version of cchannel.h, for MinGW compatibility.
Revision
1060 -
Directory Listing
Modified
Wed Mar 8 09:30:21 2006 UTC
(18 years, 3 months ago)
by
astrand
Use correct case for HookDll/hook.h, for compliance with MinGW.
Revision
1059 -
Directory Listing
Modified
Tue Mar 7 15:07:19 2006 UTC
(18 years, 3 months ago)
by
astrand
When CreateProcess fails, print the requested cmdline.
Revision
1056 -
Directory Listing
Modified
Mon Mar 6 08:01:09 2006 UTC
(18 years, 3 months ago)
by
astrand
Changed channel name to seamrdp
Revision
1055 -
Directory Listing
Modified
Mon Mar 6 07:37:35 2006 UTC
(18 years, 3 months ago)
by
astrand
Changed channel name to seamlessrdp
Revision
1014 -
Directory Listing
Modified
Tue Sep 13 13:08:16 2005 UTC
(18 years, 9 months ago)
by
astrand
Reporting size/position changes in response to WM_WINDOWPOSCHANGED,
instead of WM_SIZING/WM_MOVING. This is more reliable.
Revision
1012 -
Directory Listing
Modified
Mon Sep 5 06:52:26 2005 UTC
(18 years, 9 months ago)
by
astrand
Do not send WM_CREATE messages for windows with negative sizes.
Revision
1011 -
Directory Listing
Modified
Wed Aug 31 15:36:59 2005 UTC
(18 years, 9 months ago)
by
astrand
Do a SPI_SETDRAGFULLWINDOWS, to make sure we use DragFullWindows. (The RDP setting is not always effective.)
Revision
1009 -
Directory Listing
Modified
Wed Aug 31 07:20:19 2005 UTC
(18 years, 9 months ago)
by
astrand
POSITION1 should be terminated by newline.
Revision
1008 -
Directory Listing
Modified
Tue Aug 30 12:31:58 2005 UTC
(18 years, 9 months ago)
by
astrand
Better names for global hook variables. Removed unnecessary hooked variables.
Revision
1007 -
Directory Listing
Modified
Tue Aug 30 12:04:08 2005 UTC
(18 years, 9 months ago)
by
astrand
Removed cbt from lots of variables, where it doesn't belong. Disabling hook of CbtProc.
Revision
1006 -
Directory Listing
Modified
Tue Aug 30 11:52:38 2005 UTC
(18 years, 9 months ago)
by
astrand
WM_CREATE now sends SETSTATE1 and POSITION1.
Revision
1005 -
Directory Listing
Modified
Tue Aug 30 11:34:05 2005 UTC
(18 years, 9 months ago)
by
astrand
Moved calls to WriteToChannel; now calling directly as we have our
string.
Also, make sure result from snprintf is null terminated.
Revision
1004 -
Directory Listing
Modified
Tue Aug 30 11:28:55 2005 UTC
(18 years, 9 months ago)
by
astrand
Moved usage of ChannelIsOpen into WriteToChannel.
Revision
1003 -
Directory Listing
Modified
Tue Aug 30 11:22:46 2005 UTC
(18 years, 9 months ago)
by
astrand
Got rid of unnecessary buffer variables.
Revision
1002 -
Directory Listing
Modified
Tue Aug 30 11:17:52 2005 UTC
(18 years, 9 months ago)
by
astrand
Fixed compiler warnings: Removed unused variables. Using %p for
converting HWND to hex.
Implemented SETSTATE1.
Revision
1001 -
Directory Listing
Modified
Tue Aug 30 09:48:07 2005 UTC
(18 years, 9 months ago)
by
astrand
Implemented DESTROY1.
Revision
1000 -
Directory Listing
Modified
Tue Aug 30 09:43:32 2005 UTC
(18 years, 9 months ago)
by
astrand
Only handle WM_SIZING/WM_MOVING for visible, toplevel windows.
Implemented CREATE1.
Revision
999 -
Directory Listing
Modified
Tue Aug 30 09:18:53 2005 UTC
(18 years, 9 months ago)
by
astrand
Removed the cases for HCBT_MOVESIZE and HCBT_SETFOCUS.
Revision
998 -
Directory Listing
Modified
Tue Aug 30 09:15:44 2005 UTC
(18 years, 9 months ago)
by
astrand
Added a function for sending debug printouts to the other end.
Re-implemented the code on WM_SIZING/WM_MOVING: Now generating
messages according to the new protocol.
Do not catch WM_WINDOWPOSCHANGED; WM_WINDOWPOSCHANGING is enough. In
response, generate a ZCHANGE1 messages according to the new protocol.
Revision
997 -
Directory Listing
Modified
Mon Aug 29 09:31:51 2005 UTC
(18 years, 9 months ago)
by
astrand
Added hack to silence WM_WINDOWPOSCHANGED for the language bar and the
Office XP speech/handwriting recognition.
Revision
996 -
Directory Listing
Modified
Mon Aug 29 09:11:50 2005 UTC
(18 years, 9 months ago)
by
astrand
Removed handling of WM_WINDOWPOSCHANGING.
Revision
995 -
Directory Listing
Modified
Mon Aug 29 09:10:13 2005 UTC
(18 years, 9 months ago)
by
astrand
Added temporary stubs for WM_CREATE and WM_DESTROY.
Revision
994 -
Directory Listing
Modified
Sun Aug 28 13:06:05 2005 UTC
(18 years, 9 months ago)
by
astrand
Imported changes from nxclipper-1.5.0-9
Revision
993 -
Directory Listing
Modified
Sun Aug 28 12:58:39 2005 UTC
(18 years, 9 months ago)
by
astrand
Indenting with the CVS version of astyle
Revision
992 -
Directory Listing
Modified
Sun Aug 28 12:56:38 2005 UTC
(18 years, 9 months ago)
by
astrand
Indenting with the CVS version of astyle
Revision
938 -
Directory Listing
Modified
Fri Jul 1 07:01:00 2005 UTC
(18 years, 11 months ago)
by
astrand
Added proper copyright headers
Revision
937 -
Directory Listing
Modified
Fri Jul 1 06:50:52 2005 UTC
(18 years, 11 months ago)
by
astrand
Indenting with astyle instead of indent
Revision
935 -
Directory Listing
Modified
Thu Jun 30 15:07:49 2005 UTC
(18 years, 11 months ago)
by
astrand
Link server exe with /MT, just like the other parts: get rid of dependency of msvcr71.dll.
Revision
934 -
Directory Listing
Modified
Thu Jun 30 14:59:32 2005 UTC
(18 years, 11 months ago)
by
astrand
Do not copy clientdll to C:\\WINDOWS\\SYSTEM32 after build.
(release configuration)
Revision
933 -
Directory Listing
Modified
Thu Jun 30 14:46:14 2005 UTC
(18 years, 11 months ago)
by
astrand
Fixed indentation, by running indent-all.
Revision
932 -
Directory Listing
Modified
Thu Jun 30 14:45:38 2005 UTC
(18 years, 11 months ago)
by
astrand
Added indent-all script
Revision
931 -
Directory Listing
Modified
Thu Jun 30 14:35:30 2005 UTC
(18 years, 11 months ago)
by
astrand
Using latest version of CStdString
Revision
930 -
Directory Listing
Modified
Thu Jun 30 14:14:56 2005 UTC
(18 years, 11 months ago)
by
astrand
Should have UNIX LF linebreaks, when running CVS from UNIX.
Revision
929 -
Directory Listing
Modified
Thu Jun 30 13:49:44 2005 UTC
(18 years, 11 months ago)
by
astrand
Resource file is still called clipper.rc.
Revision
928 -
Directory Listing
Modified
Thu Jun 30 13:43:59 2005 UTC
(18 years, 11 months ago)
by
astrand
Never use precompiled headers, since it's not possible to build from a network drive, then.
Revision
927 -
Directory Listing
Modified
Thu Jun 30 12:59:37 2005 UTC
(18 years, 11 months ago)
by
astrand
Renamed TSWinSender -> ServerExe
Revision
926 -
Directory Listing
Modified
Thu Jun 30 12:53:07 2005 UTC
(18 years, 11 months ago)
by
astrand
clipper renamed to seamlessrdpshell
Revision
925 -
Directory Listing
Modified
Thu Jun 30 09:44:24 2005 UTC
(18 years, 11 months ago)
by
astrand
Client DLL renamed from TSWindowClipper.dll to seamlessrdp.dll
Revision
924 -
Directory Listing
Modified
Thu Jun 30 09:13:11 2005 UTC
(18 years, 11 months ago)
by
astrand
Do not copy clientdll to C:\WINDOWS\SYSTEM32 after build.
Revision
923 -
Directory Listing
Modified
Thu Jun 30 09:11:26 2005 UTC
(18 years, 11 months ago)
by
astrand
WTS Window Clipper -> seamlessrdp
Revision
922 -
Directory Listing
Modified
Thu Jun 30 09:10:00 2005 UTC
(18 years, 11 months ago)
by
astrand
Added .cvsignore:s
Revision
921 -
Directory Listing
Modified
Thu Jun 30 09:06:43 2005 UTC
(18 years, 11 months ago)
by
astrand
Renamed solution to seamlessrdp.sln. Converted filenames to lowercase.
Revision
920 -
Directory Listing
Modified
Thu Jun 30 08:58:46 2005 UTC
(18 years, 11 months ago)
by
astrand
Converted solution to VC7.1
Revision
918 -
Directory Listing
Modified
Thu Jun 30 08:53:04 2005 UTC
(18 years, 11 months ago)
by
astrand
Imported CodeProject tswindowclipper source.
Revision
916 -
Directory Listing
Added
Thu Jun 30 08:23:32 2005 UTC
(18 years, 11 months ago)
by
astrand
This commit was generated by cvs2svn to compensate for changes in r914,
which included commits to RCS files with non-trunk default branches.